We publish what hurts.
This page is the opposite of marketing. It shows every loss, every drawdown, every regime where the engine has negative edge, and every failure mode we are still chasing. If a number on the dashboard looks better than what you see here, the dashboard is wrong — not this page.
Loss reporting
Every loss is recorded with its reason code before the P&L tile updates. The engine cannot delete or re-sort this list — overrides and stop hits get equal billing.
| ID | Date | Symbol | Playbook | R | Reason | Engine note |
|---|---|---|---|---|---|---|
| L-2284 | 2026-05-28 | NIFTY 24800 CE | VWAP reclaim | -1.0R | stop hit | Breadth flipped negative at 09:52, exit at hard SL. |
| L-2281 | 2026-05-28 | BANKNIFTY 51200 PE | Opening drive fade | -0.7R | time stop | TTL expired flat; no follow-through within 4 bars. |
| L-2277 | 2026-05-27 | RELIANCE FUT | ORB long | -1.4R | slippage | Market order, queue jumped 9bps vs intended. |
| L-2274 | 2026-05-27 | NIFTY 24750 PE | Trend pullback | -1.2R | regime flip | VIX spiked +8%, classifier switched mid-trade. |
| L-2270 | 2026-05-26 | HDFCBANK FUT | Mean reversion | -0.9R | spread widened | Bid/ask widened to 41bps; exit took 3 prints. |
| L-2266 | 2026-05-26 | NIFTY 24900 CE | Power-hour squeeze | -1.0R | stop hit | Textbook stop, no excuses. |
| L-2261 | 2026-05-23 | INFY FUT | VWAP reclaim | -0.6R | manual override | User closed early at -0.6R; setup would have hit T1. |
Drawdown analytics
Signal grade history
Every closed signal is auto-graded A→F by an independent post-trade evaluator — not the same model that armed the trade. D and F grades are surfaced to the user with the same prominence as A grades.
Performance breakdown
Both losing playbooks and losing time-of-day buckets are kept visible. We do not cherry-pick the best slice and call it the strategy.
Confidence calibration
If the engine says 70% confidence, did it actually win 70% of the time? The diagonal is the truth; bars under the diagonal mean we were overconfident in that bucket.
| Bucket | Predicted | Actual | Δ | n |
|---|---|---|---|---|
| 0-20% | 12% | 14% | +2pt | 41 |
| 20-40% | 31% | 28% | -3pt | 88 |
| 40-60% | 50% | 47% | -3pt | 173 |
| 60-80% | 71% | 64% | -7pt | 142 |
| 80-100% | 88% | 76% | -12pt | 56 |
Risk-adjusted metrics
Sharpe (annualised):Computed on daily R; assumes 252 sessions. Drops to 0.91 if you include weekends as zero-return days.
Sortino:Penalises downside vol only; flatters strategies with rare large losses. Read alongside max DD.
Calmar:Net return / max drawdown. < 1 means the worst DD exceeded your annual return.
Profit factor:Gross win / gross loss. Above 1.30 is acceptable for a high-frequency intraday system, not great.
Expectancy / trade:Mean of all R-multiples after costs. Net of typical 6bps round-trip slippage.
Tail ratio (95/5):Right-tail vs left-tail magnitude. Close to 1 means wins and losses are symmetric.
Market condition attribution
Total P&L decomposed by regime classifier label. Two of four regimes have negative edge and are either disabled or force-throttled — we publish them anyway.
When NOT to trade
These are not suggestions. Each rule is a server-side gate — the engine refuses to arm a signal, and the manual ticket is disabled, until the condition clears.
Implied vol regime invalidates intraday playbook win rates by ~14pts. Engine refuses to arm.
Theta decay and OI unwind dominate price; the playbooks have negative edge in this window.
Execution slippage eats > 0.3R on average. Hard veto, no override.
Tick noise > signal; classifier confidence falls below 55%. Wait for the opening-drive window.
Mandatory 60-second cool-off. Revenge-trade detection halts new entries.
Quote staleness invalidates stops. Engine pauses arming until probe recovers.
Failure transparency
The most common ways DyadScalp has failed, ranked by occurrence. Each row carries the mitigation we shipped — or admits we have not fixed it yet.
| Failure mode | 30d count | Trend | Mitigation shipped |
|---|---|---|---|
| Slippage on market orders > 8bps | 31 | ↓ | Default order type switched to LIMIT-with-2bps-tolerance. |
| Stop hit within 2 bars of entry | 24 | → | Added micro-structure filter for false breakouts. |
| User override of engine veto | 17 | ↓ | Friction dialog with cool-off; logged to audit chain. |
| Regime flip mid-trade | 11 | ↑ | Trailing reclassifier now runs every 15s vs 60s. |
| Data gap > 2s | 6 | ↓ | Failover to secondary feed; positions held with widened stop. |
Trust reinforcement
Order ID, timestamp, intended price, fill price, slippage — written to an append-only ledger before P&L is shown.
We do not curate the loss feed. Stop hits, time stops and manual overrides all appear with the same prominence as wins.
All published win rates are out-of-sample. In-sample numbers are watermarked and never used in marketing.
Worst-case drawdown history is permanent. We show DD-05 (-8.9%) on the home page, not just the recovered curve.
When the engine says 70%, it should win 70% of the time. Calibration error > 8pts triggers a model review.
Uncertainty bands are shown on every projection. No point estimates without a confidence interval.