calibration-reportlisted
Install: claude install-skill kensongan-prog/trading-advisor
# calibration-report — outcome engine (Analysis C1)
Aggregate expectancy (`portfolio.py expectancy`) answers "am I net positive."
This answers "**why**" — which entry conditions the wins/losses cluster
around — so the 20-trade Phase-2 calibration gate means something more than
a raw count.
## Usage
```bash
python3 .claude/skills/calibration-report/calibration_report.py report # human-readable
python3 .claude/skills/calibration-report/calibration_report.py report --json # machine-readable
```
Read-only, no config, no cron — run it whenever you want a cut of closed-trade
outcomes by entry context.
## What it does
For every CLOSED journal entry with a realized R-multiple, reads the entry's
`### Data snapshot` table (RSI, sector, sentiment flag, RS vs SPY 1m) and
`### Structural risk flags` section, then buckets win-rate/avg-R/sum-R by:
- **RSI band at entry** (`<30`, `30-50`, `50-70`, `>=70`)
- **Sentiment flag at entry** (FADE / BUY / unknown)
- **RS vs SPY (1m) at entry** (leader / laggard / flat / unknown)
- **Sector**
- **Structural-quality flags at entry** (has flags / clean)
Buckets with `n < 3` are printed but marked low-confidence — directional
only, never hidden (same warn-loudly-never-block spirit as `quality_flags.py`).
## Data-capture dependency
Sector / sentiment flag / RS-vs-SPY are only recorded in prospectuses created
via `j.py new` **after 2026-07-02** (when `--sector`/`--sentiment-flag`/`--rs-1m`
were added, threaded from the Risk Simulato