| Milestone | Scope | Status |
|---|---|---|
| M3 | News / flow dock | DONE |
| M4 | Stock hub (dossier) | DONE |
| M5 | Today / orientation home | DONE |
| M6 | Journey / guided + help layer | PLANNED |
| M7 | Clusters & portfolios (Strategies + Tracker) | PLANNED |
| M8 | Screener | PLANNED |
| M-Markets | Markets analytical estate (internals · anatomy · self-history · rotation · RS · seasonal · events · patterns · participants · compare · …) | PLANNED |
| UNSCOPED | Not yet assigned to any Sideways milestone | OPEN |
| Lens | Classic route | Disposition | Target | Note |
|---|---|---|---|---|
| Overview markets | /dash/markets | PORTED | /dash/home | the Graphite home IS the migrated markets overview / orientation home — the M5 Today anatomy (regime line · featured card · market map · pulse deck · today's conviction · what changed) now serving as the site's default landing (D148) |
| Newsletters newsletters | /dash/markets/newsletters | DEFERRED | M-Markets | |
| Attention attention | /dash/attention | DEFERRED | M-Markets | LANDED at /dash/home/attention: the magnitude-ranked queue with lens filters, per-batch counts, ?as_of= last-batch-on-or-before replay and the curated alert rail; the depth behind the home's 'What changed today' band (which keeps owning severity_counts/what_changed). NOT carried: the acknowledge WRITE and the cookie 'since you last looked' brief — owner actions that stay on the classic page. RE-OPENED by the 2026-07-28 gap audit (register §3k, 4 MAJOR): 'full' was wrong — the queue renders 30 rows where classic renders 200 with a 'showing N of M' line, and the severity/valence rail filter chips did not travel |
| Market internals market-internals | /dash/market-internals | DEFERRED | M-Markets | LANDED at /dash/home/internals: the five vital signs with Pro percentile references vs the full 2004-> history, the price-breadth-vs-tape hero, the delivery/dispersion/coil regimes, the crisis-fingerprint anchors and a session drill. NOT carried: the 1200-cell daily heat ribbon (the drill is reached from a 20-session strip instead) — classic keeps it. RE-OPENED by the 2026-07-28 gap audit (register §3a, 3 MAJOR): the three regime charts are Pro-BLURRED and the exact percentile ordinal Pro-only, both FREE in classic — this note claimed the regimes carried, with no Pro caveat |
| Move anatomy move-anatomy | /dash/move-anatomy | DEFERRED | M-Markets | SHIPPED /dash/home/anatomy — the precursor fingerprint as standardised gaps from the quiet baseline + the 6-month excursion envelope + the post-selection / survivorship / 1-in-10-baseline fence + the momentum-not-accumulation finding. OUTSTANDING: the full ~20-precursor family breakdown and the big-move rate column |
| Own-history map self-history | /dash/self-history | DEFERRED | M-Markets | SHIPPED /dash/home/own-history — the self-relative map rebuilt from STORED stock_signals ratio columns (turnover vs own 1m/1y norm, delivery 1m vs 6m, delivery size vs own 30-day and own best month, distance from own 52w high), plus a per-symbol view ranking each ratio against that symbol's own trailing history. DISCLOSED DIFFERENCE, NARROWED BY W1-CONVERGENCE (2026-07-27): the 3-year percentile over CORPORATE-ACTION-ADJUSTED OHLC now DOES exist, per-symbol, as the Own-history section of /dash/home/stock — reads.stock_selfref replicates the method (price · 3-month momentum · delivery · turnover · coil) without importing the banned web-view engine, and the adjustment is gate-pinned (a 1:1 bonus must not invert the percentile). What is still not reproduced is that percentile as an ESTATE-WIDE MAP here. OUTSTANDING: the cross-sectional second lens (peer percentile + the both-extreme gold ring) and the five-universe selector |
| Seasonal tape seasonal-tape | /dash/seasonal-tape | DEFERRED | M-Markets | SHIPPED /dash/home/seasonal?view=tape — month/weekday/ISO-week script grids (grey by default, coloured only on full certification), the 'N of M cells certified' winnowing headline, per-cell year-by-year stack, Pro forward-outlook band with the white=noise read, frozen-family sha256 provenance, 0-certified fence. CORRECTION 2026-07-28 (register §4b): the ISO-week grid was listed here as SHIPPED but could NEVER render on any entity — the read asked seasonal_cells for axis='week' while the engine persists 'iso_week', so the grid and its cell-drill were structurally dead. FIXED in lane/parity-truth (w2_reads translates the store key once) and pinned by an automated test. Also unrecorded until now: the forward-outlook band is FREE on classic and Pro-gated here. OUTSTANDING: monthly/weekly consolidation panels, the three per-year STACK grids (25-year month · 52-week · weekday), the per-cell placebo-null detail block, scope=stock + symbol search |
| This-month screen seasonal-screen | /dash/seasonal-screen | DEFERRED | M-Markets | SHIPPED /dash/home/seasonal?view=screen — Wilson-lower-bound ranking (not raw hit-%), the 95% band on every row, an explicit indistinguishable-from-chance flag, month + hot/cold selectors, server CSV. OUTSTANDING: the 'Strength t' sort dimension, the per-name month-rank column, and the index=<Name> constituent filter |
| Index divergence seasonal-divergence | /dash/seasonal-divergence | DEFERRED | M-Markets | SHIPPED /dash/home/seasonal?view=divergence — month-by-month cells for two entities side by side + the gap + per-side year counts. OUTSTANDING: the current-elapsed-year overlay read from seasonal_stack |
| Expiry & holidays seasonal-calendar | /dash/seasonal-calendar | PORTED | /dash/home/seasonal?view=calendar | Expiry/holiday conditioning, all four window deltas in bps + both counts + sort control + sym links + as-of + server CSV + the 0-certified null prior fence; reads the same bounded x_setups_signals snapshot |
| Corp actions actions | /dash/actions | DEFERRED | M-Markets | LANDED at /dash/home/events: the forward corporate-actions calendar grouped by ex-date with type counts, the recent-past + security-events context (Pro) and a server CSV; reuses the home's reads.upcoming_ca (same corp_actions.upcoming single source). E-11/E-12 logistics fence carried. RE-OPENED by the 2026-07-28 gap audit (register §3e, 2 MAJOR): the just-went-ex + restructure context is Pro-gated (free in classic) AND cut ~16× under that gate — 30d/200 rows became 14d/12, security_events 180d/40 became 14d/6 — a depth loss the note never named |
| Event cadence event-cadence | /dash/event-cadence | PORTED | /dash/home/events | overdue-vs-own-rhythm + expected-by-cadence tables with the event-type filter and the dormant count, off the same bounded seasonal_events snapshot; TIME-only fence carried verbatim. Index-membership filter not carried (event-type only) |
| Buyback calc buyback-calc | /dash/buyback-calc | DEFERRED | M-Markets | LANDED at /dash/home/events: the tender-quota calculator (accepted · tender P&L · residual · net · breakeven exit) with the live ₹2L small-shareholder eligibility read-out, anchored by the buyback rows on the corporate-actions feed; the acceptance-ratio-is-YOUR-assumption fence carried. RE-OPENED by the 2026-07-28 gap audit (register §3h, 2 MAJOR): the 20/33/50/66/100% acceptance-ratio SENSITIVITY TABLE — the classic module's stated substitute for refusing to fabricate a prior — and the days-locked/annualized-return pair did not travel |
| Band locks band-locks | /dash/band-locks | PORTED | /dash/home/events | the close-at-band streak board single-sourced through band_lock.active_streaks, with the honest-window note (bands reconstructable only back to the feed's first captured day) and the no-study-exists fence. GAP NOTE (register §3j): the one MAJOR row was a live CORRECTNESS defect — the read/render compared the direction against lowercase while the engine emits UP/DOWN, so every row read '▼ lower' and both tiles read 0. FIXED 2026-07-28 (lane/parity-truth) and pinned by an automated test; residue is MINOR only (Close column, longest-streak tile, ⚑ flag marker, 30-row cap) |
| Surveillance surveillance | /dash/surveillance | DEFERRED | M-Markets | LANDED at /dash/home/events: the ASM/GSM/price-band transition tape + current-state counts, single-sourced through surveillance.transitions/current_state so page == card == pillar; 'context, never a gate' fence carried. RE-OPENED by the 2026-07-28 gap audit (register §3i, 1 MAJOR): only the COUNTS carried — the per-framework 'under surveillance now' MEMBERSHIP LISTS (symbol · stage · dossier link) have no Graphite home, which this note implied rather than stated |
| Sectors sectors | /dash/sectors | DEFERRED | M-Markets | LANDED at /dash/home/sectors: the sector standing board — weather, 1/3/12-month RS, member breadth (the cross-check the classic board lacked) and the Pro return columns. RE-OPENED by the 2026-07-28 gap audit (register §2e, 1 MAJOR): 'the Pro return columns' IS the regression — 1m and 3m return were free in classic; the RS heat strip also collapsed 6 horizons to 3 |
| Sector economics sector-economics | /dash/sector-economics | DEFERRED | M-Markets | LANDED at /dash/home/sectors?tab=economics: the sector x financial-year median ROCE/OPM heat grid with the survivorship, thin-N, financials-blank and Screener-provenance fences intact, plus a new risk-economics table. UNVERIFIED ON DATA — the research fundamentals archive is absent from the local fixture, so only structure is proven. STILL OWED: the per-cell company breakdown and the biggest-swings panel |
| Relative strength rs-hub | /dash/rs-hub | DEFERRED | M-Markets | LANDED at /dash/home/strength: universe-wide standing counts, the four-reading card set, and today's strongest names with their phase and trend state. The PER-SYMBOL half (rank · trend state · phase · 1/3/6/12-month slopes · vs its own sector) is the Strength section of /dash/home/stock (W1). RE-OPENED by the 2026-07-28 gap audit (register §2a, 2 MAJOR): the benchmark selector ?den= — the hub's ONLY control, which also re-drove every child-lens link — did not travel (markets_reads hardcodes Nifty 500 lane-wide), and 3m RS / 12m RS / RSI-of-RS are Pro-gated though free on every classic RS surface |
| Leaders / Laggards leaders | /dash/leaders | DEFERRED | M-Markets | LANDED at /dash/home/strength?view=leaders: strong-in-strong / weak-in-weak, straight from the canonical stock_rs.leaders_laggards screen. RE-OPENED by the 2026-07-28 gap audit (register §2b, 2 MAJOR): 'shown in Pro' IS the regression — RSI-of-RS and all three alignment-state columns (stock vs broad · stock vs sector · sector vs broad) were unconditionally visible in classic and ARE the screen's thesis, so Free now sees only symbol/rank/sector |
| Risk-adj momentum momentum-scan | /dash/momentum-scan | DEFERRED | M-Markets | LANDED at /dash/home/strength?view=momentum: the risk-adjusted momentum table read from the same canonical momentum_scan rows, carrying the beta-not-skill fence. NOT CARRIED BY DECISION: the C-blend overlay (flat-cost-only, not fundable, and Screener-derived under primary-source remediation). STILL OWED: the insider/credit veto flag column, the equal-weight ensemble sort and the /dash/momentum-scan/slow child |
| All-weather map capture-map | /dash/capture-map | DEFERRED | M-Markets | LANDED at /dash/home/strength?view=capture: up-capture / down-capture / spread per sector at 3, 6 and 12 months, from the canonical automation/capture engine, with the four-way behaviour read. RE-OPENED by the 2026-07-28 gap audit (register §2d, 2 MAJOR): the SCATTER — the lens itself, whose docstring says the two table columns hide the up=down diagonal — is not in the module at all, and the ?den= benchmark selector did not travel |
| Results reactions results-reactions | /dash/results-reactions | DEFERRED | M-Markets | LANDED at /dash/home/events: the results-reaction board (surprise · delivery multiple · realized 22/60-day abnormal move) + who-reports-next, with the falsification fence stated ABOVE the table (tradeable book net ret/vol 0.10 vs bench 0.85). NOT carried: the CAR fan SVG and the published-brief cards — classic keeps them. RE-OPENED by the 2026-07-28 gap audit (register §3f, 3 MAJOR): on top of those two, the STALE-TAPE BANNER did not travel — the read returns tape_max_trade_date and nothing consumes it, so a board N weekdays behind reads as current |
| Rotation · Map rrg | /dash/rotation-map | DEFERRED | M-Markets | LANDED at /dash/home/rotation: the 6/12/24-month rotation-map journeys reuse the canonical rotation engine (automation/rrg._rs_ratio_momentum + quadrant). RE-OPENED by the 2026-07-28 gap audit (register §1a, 10 MAJOR): the whole Play apparatus (playback · 3 speeds · draggable scrubber · month badge · hover-to-trace), the 3-month horizon, the RS-depth table with its 7 turn-flag Signals pills; 12M+24M are Pro-locked though FREE in classic; and BOTH per-symbol drills (?idx= constituents, ?sym= single stock) — which this note said 'belong to the Graphite stock hub' — are neither there nor built anywhere |
| Rotation · Weather rotation | /dash/rotation | DEFERRED | M-Markets | LANDED at /dash/home/rotation?view=weather: the sector phase table (phases classified by the canonical rs_phase engine, not the additive column), the 2x2 lifecycle grid with the strict-diagonal shortlists, and the just-turned strip. RE-OPENED by the 2026-07-28 gap audit (register §1b, 5 MAJOR): the classic lens is STOCK-grain and that half did not travel — no ?phase= selector, no 300-row member table, the per-cell count is a dead number not a 'see all' door, no 7 leverage-read pills, and `early-signals`' DROP rationale still owes this page its just-turned-UP direction filter |
| Rotation · Band rsband | /dash/rsband | DEFERRED | M-Markets | LANDED at /dash/home/rotation?view=band: the per-sector RS-band position 0-100 with band label, regime honesty gate and (Pro) the trend-removed position, from the canonical automation/rsband engine; the engine's verdict KEY is never rendered, only its descriptive state label. STILL OWED: the per-index channel chart (support/median/resistance rails, POC, value area), the per-stock channel, the constituent lanes and the journey scrubber |
| Rotation · Clock cycle-clock | /dash/cycle-clock | DEFERRED | M-Markets | LANDED at /dash/home/rotation?view=clock: the lifecycle dial — every sector's strength x direction on one radial plot plus the same dial as a table, from the same rs_extras snapshot. RE-OPENED by the 2026-07-28 gap audit (register §1d, 2 MAJOR): the VELOCITY VECTOR (the tangent arrow that is the lens's stated reason to exist over the 2x2 grid) is absent, and RSI-of-RS is Pro-gated though free on the classic hover |
| Global Macro global-macro | /dash/global-macro | DEFERRED | M-Markets | |
| Divergence divergence | /dash/divergence | DEFERRED | M-Markets | LANDED at /dash/home/internals: the RSI-of-RS divergence watch (bullish/bearish columns + the momentum-extremes strip) is the Divergence-watch zone of the Graphite internals page; the home's own breadth-vs-delivery two-gauge stays the Today-level seed. RE-OPENED by the 2026-07-28 gap audit (register §3b, 1 MAJOR): every divergence name is a click-through to its RS-momentum pane in classic and is DEAD TEXT here — a divergence you cannot open is a list, not a watch; the bull/bear lists are also truncated to 10 a side (classic unbounded) |
| Early signals early-signals | /dash/early-signals | DROPPED | — | NAMED CHECK RUN 2026-07-27 (lane W2-C), mechanism traced not pattern-matched: the page owns NO data and NO compute of its own. Feed 1 is stock_rs.phase_movers() filtered to turn-ups into Recovery/Tailwind — the same rows /dash/rotation already renders (limit 40, both directions) and /dash/rs-hub's RS section shows; feed 2 is divergence_board._scan() filtered to the bullish half — that IS /dash/divergence's own scan. Its own docstring states 'reads only precomputed tables, no new compute/storage'. What is left after removing the duplication is a direction FILTER, i.e. a display preset, not a distinct data claim -> DROPPED as a lens. NOT LOST: the classic route stays live for bookmarks, and the claim must be re-homed as a 'just turned up' filter on the Graphite rotation + divergence ports (a recorded dependency on the W2 rotation/RS lane). NOTE for that lane: stock-grain rs_phase flips are NOT on the signal-alerts bus — signal_events' 'rs' lens is INDEX-grain (rsband_signals vs Nifty 500) — so the Graphite home's What-changed zone does NOT already carry this; the rotation port must |
| Sector drill sector-momentum | /dash/sector-momentum | DEFERRED | M-Markets | LANDED at /dash/home/sectors?sec=: the constituent drill-down, promoted from a deep-link-only orphan to a URL-addressable view of the sector board it belongs to. RE-OPENED by the 2026-07-28 gap audit (register §2f, 3 MAJOR): RSI-of-RS — the only thing the classic page ranks by — is Pro-gated, the momentum-breadth read is Pro-gated AND degraded (three free percentages with bars became a Pro sentence with two raw counts), and the sector picker chip row that IS the page's navigation is absent |
| Patterns · Harmonic harmonic-scan | /dash/harmonic | DEFERRED | M-Markets | SHIPPED /dash/home/patterns?view=harmonic — the full nine-column snapshot table (shape · side · state · in-zone · age · price · zone/PRZ · fit), as-of, read-by-side fence. OUTSTANDING: the weekly/monthly live multi-TF scan and the ?refresh=1 live recompute (both are on-demand compute the Graphite page deliberately does not do) |
| Patterns · Wolfe wolfe-scan | /dash/wolfe/scan | DEFERRED | M-Markets | SHIPPED /dash/home/patterns?view=wolfe — snapshot table (side · in-zone · age · price · zone · stop · first target · room), as-of, and the 'edge is in the SELECTION, not the craft' fence. Ported READ-ONLY over wolfe_signals with no import of wolfe*.py / stock_chart*.py (that lane is hot on origin/main). OUTSTANDING: the §B quality components A-I/D + Q column, the three sort dimensions, and the Fresh-setups / Open-trades toggle |
| Participants participants | /dash/participants | DEFERRED | M-Markets | LANDED at /dash/home/flows: the FII index-futures stance with its own-history percentile, the four-participant matrix (index fut net · long:short · stock fut net · index option lean) and the recent-session history (Pro). Sits beside the home's existing FII/DII cash reads rather than duplicating them. RE-OPENED by the 2026-07-28 gap audit (register §3c, 3 MAJOR): the FII-vs-retail MIRROR CHARTS this note claimed are one conditional sentence, the stance-ratio chart regressed to the 40-day window the classic module was built to replace, and Free lost the percentile extremity read-out |
| F&O positioning fno | /dash/fno | DEFERRED | M-Markets | LANDED at /dash/home/flows: the own-history F&O board (OI · PCR · max-pain percentiles + build-up streak) with the auto reality-check callouts and a server CSV; the Phase-0 fence travels ON the block (PCR selects weakly, forward-test-only; max-pain/basis/OI-change failed). The PER-SYMBOL F&O read (OI · change · quadrant · PCR · basis · max-pain · put/call walls from fno_oi_signals) is the F&O section of /dash/home/stock (W1). RE-OPENED by the 2026-07-28 gap audit (register §3d, 1 MAJOR): Free sees 12 of ~200 names and the rest is Pro-blurred — classic served the whole cross-section free |
| News / Wire wire | /dash/wire | PORTED | /dash/home | the 'Market news' zone of the Graphite home (reads.recent_news, 20 rows, symbol-tagged, title/source/link only per the copyright fence) is the migrated News/Wire. NOT carried: the preview's 6-channel dock as a separate component — its other five channels became first-class Graphite surfaces instead (filings + corporate actions + results on the home rail, deals/positioning on /dash/home/flows, alerts on /dash/home/attention) |
| Compare compare | /dash/compare | DEFERRED | M-Markets | SHIPPED /dash/home/compare — a NEW route; the sacred classic /dash/compare stays byte-untouched. Rebased-to-100 overlay of up to six stocks/indices, split/bonus adjusted from corporate_actions, URL-as-state with ?sym=&cmp=&idx=&r=. OUTSTANDING: the ratio-vs-denominator mode (mode=ratio&den=), the base=0 mode, and the searchable symbol picker |
| Lens | Classic route | Disposition | Target | Note |
|---|---|---|---|---|
| Screen+ screen2 | /dash/screen2 | DEFERRED | M8 | LANDED at /dash/home/screen as the migrated Screen+ — scope chips + sector picker, the 0-6 confluence lead column with its pillar dots, the self-scaling 30th-percentile turnover liquidity gate, the reclaim/slip descriptive cuts, column-family toggles, saved screens and CSV. Three recorded debts fixed in the rebuild: the ~2.3 MB single-document render became server-side pagination over a fixed-size internally-scrolling frozen-pane grid; the client-side CSV blob became a server ?format=csv export that honours the active filter/sort/column state; and the localStorage-only column/sort/filter state became URL state, so a screen is now a shareable link (saved screens = bookmarks, no per-browser silo). CORRECTED + RE-OPENED 2026-07-28 (register §7a, 2 MAJOR): 'Every capability carried' was not true — the FIVE inline instrument micro-visualisations that are the page's declared identity (DVPT-vs-power ladder · accum/distrib signed bar · RS spark · multi-TF RS heat strip · character triglyph) are absent, the table emits text cells and pillar dots only, and the Pat bridge ('Ask Pat: confluence here' + '★ Save as Pat board' + the scope->NL-query mapper) did not travel. The ~15 §J fundamentals columns stay a RATIFIED EXCLUSION (Guardrail #8), not a gap |
| Scans scans | /dash/home/scans | DEFERRED | M8 | |
| Screen (classic) screener | /dash/screener | DROPPED | — | CUT (plan §1b). Two full screeners over the same universe and the same precomputed tables is duplication, not choice — /dash/screen2 was already the declared superset (it carries the classic screener's Identity/Conviction/Positioning/RS/Quality/Context groups plus Accumulation, Credibility, Wolfe, reversal and capital-allocation), and the Graphite rebuild is a superset of THAT. Carrying a second grid would have meant two column registries, two export paths and two education scaffolds over one dataset. REVERSIBLE AND NON-DESTRUCTIVE: the classic route stays live and unmodified for existing bookmarks; nothing is deleted, only un-rebuilt in the new experience |
| Themes / Baskets themes | /dash/themes | DEFERRED | M8 | LANDED at /dash/home/themes as the non-ticker discovery door: the multi-label company_tags layer, grouped in the canonical vocabulary order with approved-only counts and index-seeded provenance shown, plus a per-theme participants view. New connection the classic page lacked: a theme hands off directly into the screener (/dash/home/screen?scope=theme:<tag>), so discovery and screening are one flow. RE-OPENED by the 2026-07-28 gap audit (register §7b, 1 MAJOR): the theme-detail participants table drops 6 of 11 columns (Themes chips · Trigger rank · p-score · %52wH · DVPT ₹cr · Δhot) |
| Open questions theme-queue | /dash/theme-queue | DEFERRED | M8 | |
| Review tags-review | /dash/tags-review | NA | — | Owner/ops tool, not a customer lens. The page is a tag QUALITY DESK — approve or reject AI-proposed theme tags, hand-add or remove them — i.e. it maintains the data that /dash/home/themes reads. A visitor has nothing to do here and every control on it is a write against the tag layer. It stays live and unmodified on the classic site as the owner workflow it always was; the new experience shows the RESULT (approved tags, with provenance) rather than the editing desk |
| Workbench workbench | /dash/workbench | DROPPED | — | EXAMINED, then absorbed (playbook §2.6 — 'what job does it do?'). The job was 'every DVPT / key-price / character / activity signal for the latest day in ONE wide sortable exportable table' — which is exactly the job the screener now does, with more columns and a real server export. Its one DISTINCT data claim was the key-price family (key_price_p3m/6m/12m + their gaps, avg_close_p3m, avg_trade_qty, avg_deliv_qty_per_trade, delivery_value_today, total_value_today), which classic screen2 did NOT carry. That family is now IN the Graphite column pool and ships as the named 'Key-price read' view — so this is an absorption with the evidence carried, not a capability loss. Part III §J had already scoped the key-price family into the ~70-column pool. Classic route stays live for bookmarks |
| Lens | Classic route | Disposition | Target | Note |
|---|---|---|---|---|
| Strategist strategist | /dash/strategist | PORTED | /dash/home/strategies | the Strategies hub: registry health cards + the estate's honest headline + the directory of every sub-page. NOT yet carried: the confluence-alerts strip, the per-strategy new/dropped diff, the credibility-rotation divergence tile and 'Your boards' |
| Factor league factor-league | /dash/factor-league | DEFERRED | M7 | LANDED at /dash/home/strategies/library, MERGED with `classics` into one Strategy library with 🧑/🏠/📚 origin filters. Live family rosters render from factor_league; the MEASURED verdicts (return/vol, CAGR, excess, MaxDD, pass/fail) are deliberately LINKED to the validation record + reference pages rather than restated — one copy of every number. NOT carried: the churn feed. RE-OPENED by the 2026-07-28 gap audit (register §6j, 3 MAJOR shared with `classics`): the library renders ONE fixed 5-column roster for every family, so the per-screen custom column sets are gone; the factor-league roster specifically loses 6m · 12m · Vol · Turn₹cr, and its per-family ?fmt=csv is unrecorded and absent |
| Rule-run books model-portfolios | /dash/model-portfolios | DEFERRED | M7 | LANDED at /dash/home/strategies/books: the 4 engine-locked books — per-book stats (return/vol labelled as a ratio, not a Sharpe), NAV vs Nifty 500, the §J identity spine + book-core constituents, the rebalance ledger, FUNDABLE-CORE vs GROSS-LENS banners. NOT carried: survivability ballast overlay, all-books comparative chart, Union/graduating table, CSV. CORRECTED + RE-OPENED 2026-07-28 (register §6b, 2 MAJOR): this note said 'time-travel stepper UI', i.e. a missing CONTROL — the whole TIME-TRAVEL CAPABILITY is missing. The route never passes ?asof= and book_holdings(conn, book) is called without it, so holdings at a past rebalance cannot be read at all, by any URL. The since-year chips (2012/2019/2022) are likewise parsed with no door rendered |
| Sector rotation sector-rotation | /dash/sector-rotation | PORTED | /dash/home/strategies/sector-rotation | the V21 sector-index book with the D138 scope gap ('picks SECTORS, not STOCKS') and the D141 rejection rendered ABOVE the headline stat; weights, rebalance diff, NAV, stats. NOT carried: the year-strip stepper UI, CSV |
| Classic screens classics | /dash/classics | DEFERRED | M7 | LANDED at /dash/home/strategies/library as the merge target: the classic-screens catalog + per-screen roster + NAV with the 'insufficient history — not a track record' fence. NOT carried: year-by-year table, backdate form, holdings-as-of, CSV. RE-OPENED by the 2026-07-28 gap audit (register §6j, 3 MAJOR): those first three ARE MAJOR, not residue, and a fourth was unrecorded — classic renders a screen-specific column list with per-header glossary popovers, Graphite one fixed #/Symbol/Sector/Price/Score roster for every screen |
| Alignment conviction | /dash/conviction | PORTED | /dash/home/strategies/conviction | the cross-pillar shortlist with the 'a sorting heuristic, not a validated model' chip ABOVE the table and the Screener-archive provenance note on the Quality column. NOT carried: the client-side filter pills — CORRECTED 2026-07-28 (register §6d): that list was incomplete, TWO DATA COLUMNS also vanished (the Accumulation confirmation column and the entry-read column: near-key / discount / extended / at-cost). Disposition unchanged — every open row is MINOR or COSMETIC, no MAJOR. + W1 dossier tab: the per-symbol conviction read ships as a digest tile on /dash/home/stock, carrying the same heuristic label |
| Stocks stocks | /dash/stocks | DEFERRED | M7 | LANDED at /dash/home/strategies/positioning: the DVPT positioning board. NOT carried: the weekly/monthly rollup, watchlist chips and filter pills. CORRECTED 2026-07-28 (register §6c): this note claimed all 14 default-hidden columns were dropped — 3 of them (RS#, 52w-hi, Gap3m) ARE carried; 11 genuinely are not. RE-OPENED (2 MAJOR): the ?sector= constituent filter did not travel at all, and the 8 filter pills became a 2-item All/Stealth strip. + W1 dossier tab: the per-symbol Positioning/DVPT read also lands on /dash/home/stock |
| Stealth stealth | /dash/stealth | PORTED | /dash/home/strategies/positioning?view=stealth | MERGED into `stocks` as a toggle — the classic site already admitted one renderer (/dash/stealth delegated to view=='stealth'); the stealth filter is reproduced exactly (accumulation + p>=3 + thinning trade count + <=-10% off the 52w high) |
| Accum / Distrib mep | /dash/mep | PORTED | /dash/home/strategies/mep | the accumulation/distribution tape with the D62 descriptor-only fence first and the five phase counts. NOT carried: glossary popovers. CORRECTED 2026-07-28 (register §6e): this note said 'the full component columns' — it is not the full set. The raw daily 'Today' score (mep_score), which classic shows BESIDE the smoothed phase score, is absent; the row cap also fell 300 -> 80. Disposition unchanged — both rows are MINOR, no MAJOR. + W1 dossier tab: the per-symbol Accumulation read (same D62 fence) also lands on /dash/home/stock |
| Structure cpr | /dash/cpr | PORTED | /dash/home/strategies/structure | PORTED 2026-09-16 (was DROPPED, plan §1c). The page's unique evidence was cross-SYMBOL ranking — the reversal leaderboard, the compression leaderboard and the per-timeframe EOD digests — and the structure board code now serves all three, with classic's timeframe, direction and tier filters and every column of both tables, over the SAME engine (dashboard._cpr_setups / _cpr_compressions). Per-name CPR stays on /dash/home/stock (D/W/M/Q pivots) and the chart overlay. Owner ruling 2026-09-16: new site only, so the classic door now points here instead of the page being kept as a destination |
| Credibility concalls | /dash/concalls | DEFERRED | M7 | LANDED at /dash/home/strategies/credibility, ABSORBING the orphaned /dash/credibility fingerprint as ?sym=. Gate-B fence rendered first ('descriptive only — never ranked') and the board is ordered coverage-first, not by score. NOT carried: the three ·AI behaviour columns (concall_behavior). RE-OPENED by the 2026-07-28 gap audit (register §6f, 1 MAJOR): 'ordered coverage-first' removed a CONTROL — classic offers an Avoid / Track-record view toggle that re-sorts worst-first, and the Graphite route takes only ?sym=. + W1 dossier tab: the per-symbol Credibility read (same Gate-B fence) also lands on /dash/home/stock |
| Growth growth | /dash/growth | PORTED | /dash/home/strategies/growth | the growth-intent proposal ledger with the placebo-kill verdict first. Adds the concall-corpus provenance disclosure (~98.6% discovered via Screener.in links, frozen legacy path) which the classic page did NOT carry. NOT carried: the instant text filter and the pullback tab (min-₹/since are query params, no UI). + W1 dossier tab: the per-symbol Quality read (pt14 + capital allocation) also lands on /dash/home/stock |
| Insider insider | /dash/insider | DEFERRED | M7 | LANDED at /dash/home/strategies/ownership, MERGED into the Ownership & filings hub (registry anomaly H): tiles + by-symbol board + the tape, all classified by the insider_events engine so the hub can never disagree with the classic lens. CORRECTED + RE-OPENED 2026-07-28 (register §6i, 3 MAJOR): this key was recorded with NO residual at all, which was false — the 30/90/180-day WINDOW SELECTOR is hardcoded to 90, the class tab filters (?cls=conviction|caution|…) and the per-symbol drill (?sym=, ?min_cr=) did not travel, and the Net-90d and Pledge-ev. columns are gone |
| Ratings ratings | /dash/ratings | DEFERRED | M7 | LANDED at /dash/home/strategies/ownership?lens=ratings — same hub, lens 2: company-level deduped transitions (credit_ratings engine) + the tape. ⚠ credit_rating_events is ABSENT from the laptop fixture, so this lens is SQL-verified against the canonical DDL but data-verified only on the box. RE-OPENED by the 2026-07-28 gap audit (register §6i, 3 MAJOR): the 90/180/365-day window selector is hardcoded to 180, the ?cls=UPGRADE|DOWNGRADE tab filter and the per-symbol drill did not travel; the Action column and the filing link are also off the board |
| Stake · Pledge sast | /dash/sast | DEFERRED | M7 | LANDED at /dash/home/strategies/ownership?lens=sast — same hub, lens 3: the stake × pledge confluence board (sast_events engine keeps the >=25% control exclusion and the Reg29(1) level-vs-flow split) + a unified tape over both feeds. NOT carried: the per-symbol drill. RE-OPENED by the 2026-07-28 gap audit (register §6i, 3 MAJOR): the drill was the only loss recorded, but the 30/90/180-day WINDOW SELECTOR is hardcoded to 90 and the ?feed=INVOKE|… class filter did not travel either; the Acq-90d, Sold-90d and Invoked columns are also off the board |
| Holdings shp | /dash/shp | PORTED | /dash/home/strategies/ownership?lens=shp | the ratified §I.5 quarter matrix (symbol × quarter × promoter/FII/DII, mixed-source cells marked). W3-A held this DEFERRED because shareholding_history lives in the SEPARATE research store, absent off-box. BOX-VERIFIED 2026-07-27 (W6, read-only): the page renders 40 symbol rows × 8 quarters (2025-08→2026-07) with zero empty-state markers, and cells cross-check EXACTLY against research.db.shareholding_history (89,943 rows / 1,967 symbols / 2019-06→2026-07) — e.g. AARTIDRUGS 2026-03 promoters 55.03 · FII 1.57 · DII 10.22 renders 55.0 / 1.6 / 10.2. NOT carried: the QoQ delta board and its 7 tiles |
| Launchpad launchpad | /dash/launchpad | PORTED | /dash/home/strategies/launchpad | the setup screen with the 'validated screen, no fundable edge net of cost' verdict above it. Reads the nightly snapshot only — never the live market-wide scan. NOT carried: the regime banner and — CORRECTED 2026-07-28 (register §6h) — ALL FOUR count tiles, not just the genuine-buyer one (Fresh triggers · ⭐ With genuine buyer · Precursor universe · Coiled). Disposition unchanged: the regime banner is the only MAJOR row and it was already recorded |
| Launchpad · evidence launchpad-track | /dash/launchpad-track | PORTED | /dash/home/strategies/launchpad?tab=evidence | MERGED into `launchpad` as its evidence tab (it IS the screen's evidence): the ignition_outcomes study — signals studied, hit rate, median 12m, median dip, per-setup cohorts, the outcome histogram and the recovery ladder, under its own gross-of-cost + survivorship warning. NOT carried: the click-through winners/losers drill |
| Lens | Classic route | Disposition | Target | Note |
|---|---|---|---|---|
| Dashboard dashboard | /dash/tracker/dashboard | DEFERRED | M7 | LANDED at /dash/home/tracker: book totals · worth-a-look flags · movers · allocation + concentration + Pro contribution · books table · the model-book door. RESIDUAL: alerts-firing, news-for-your-names and upcoming-corporate-actions blocks are NOT rebuilt here — the Graphite home already renders news (reads.recent_news) and going-ex (reads.upcoming_ca) for the whole market. RE-OPENED by the 2026-07-28 gap audit (register §5a, 4 MAJOR): beyond the recorded three, the zero-config READY-TO-ACT block is gone, the attention flags dropped 6 -> 4 (no DISTRIBUTION character, no RS-decay or conviction drift vs the frozen entry snapshot) and contributors/detractors — a free bar chart in classic — is Pro-only |
| Portfolios portfolios | /dash/tracker/portfolios | DEFERRED | M7 | LANDED at /dash/home/tracker/portfolios: positions in the Part III §J tracker column set, Kite-norm labels (Avg. cost · LTP · Cur. val · P&L · Day chg.), frozen identity spine, Pro column layer, book chips with URL state, server CSV. RESIDUAL: per-row WRITES (edit / close / add) and the dividends-since column stay on the classic page and are linked, not forked. RE-OPENED by the 2026-07-28 gap audit (register §5b, 4 MAJOR): the 'Pro column layer' hides SIX columns that were free in classic (Weight · Target · Stop · Days held · RS phase · Book), the Thesis-health column is absent, and 'single-position add' understates a 9-field quick-capture form with symbol autocomplete |
| Follow a book model-books | /dash/tracker/model-books | DROPPED | — | MERGE, not a deletion. model-books and model-portfolios rendered the SAME engine books — the Tracker copy's own nav rationale admitted the numbers were 'already covered by the model_portfolios data flow'. In the new experience the books live in Strategies (/dash/home/strategies/books) and the classic route stays live and linked so existing bookmarks and the Adopt write keep working. CORRECTION 2026-07-28 (register §5f): this note used to claim 'the Tracker carries the follow-a-book view … as a section of /dash/home/tracker'. IT DOES NOT — tracker_pages._model_books_block is prose plus two links, one of them back to the classic page, and its own docstring concedes 'the FOLLOW door deliberately stays on classic'. The DROP verdict stands (one engine, one data source) but the follow/adopt WRITE has no Graphite door, and the Graphite books page covers only the 4 auto books — classic also lists the classic_portfolio_nav estate with adopt buttons |
| Watchlists watchlists | /dash/tracker/watchlists | DEFERRED | M7 | LANDED at /dash/home/tracker/watchlists: the canonical stocks_in_play watch tier, added through the home's EXISTING POST /dash/home/watch/add (one write path, native date_added). RESIDUAL: per-row alerts, promote and remove stay on the classic page and are linked; the shared add POST still redirects to Today. RE-OPENED by the 2026-07-28 gap audit (register §5c, 4 MAJOR): six of thirteen columns are Pro-gated (four free in classic), the add form collapsed 9 fields to a bare symbol box, and the Signal/alerts column (ready badge + firing chips) did not travel |
| Performance performance | /dash/tracker/performance | DEFERRED | M7 | LANDED at /dash/home/tracker/performance: realised/unrealised ₹ P&L, hit-rate by strategy and book, average excess vs Nifty 500, average hold, a CHAINED TIME-WEIGHTED return curve vs the benchmark + its deepest fall. XIRR is rendered only when tracker_reads.cashflow_fidelity() passes on the live rows (ratified §K.4 pre-condition); otherwise the page prints the measurement and withholds the number. RESIDUAL: the classic page's CAGR and book-value equity curve are deliberately NOT carried — both inherit the same cash-flow defect (a deposit reads as a gain). Dividends received are still absent from every return figure. RE-OPENED by the 2026-07-28 gap audit (register §5d, 1 MAJOR): the RETURN-ATTRIBUTION section (by holding · sector · book · strategy) is gone entirely and was not in the recorded removals |
| Saved questions saved-questions | /dash/home/tracker/questions | DEFERRED | M7 | |
| Weekly issue weekly-issue | /dash/home/tracker/issue | DEFERRED | M7 | |
| Import import | /dash/tracker/import | DEFERRED | M7 | LANDED at /dash/home/tracker/import: file-or-paste onboarding — any column order, keyword header detection, symbols validated against bhavcopy_rows EQ/BE exactly as reads.watch_add does, unsaved preview with a per-row verdict, then a confirm that RE-VALIDATES before writing. RESIDUAL: .xlsx is not parsed (CSV/TSV/paste only). RE-OPENED by the 2026-07-28 gap audit (register §5e, 2 MAJOR): the manual column-mapping override also did not travel — classic guesses then lets you fix five selects against the real header list, so in Graphite a bad guess is unrecoverable |
| Lens | Classic route | Disposition | Target | Note |
|---|---|---|---|---|
| Coverage coverage | /dash/coverage | DEFERRED | M6 | LANDED at /dash/home/proof — leads with the published boundary ('what we do NOT claim'), then the same provenance.coverage_snapshot funnel + per-data-class matrix. RE-OPENED by the 2026-07-28 gap audit (register §8a, 3 MAJOR): the print-ready /dash/coverage/memo (the dated, sourced Coverage & Provenance Memo with its SEBI record-keeping footer) has no twin, EIGHT sections did not travel (universe & survivorship · credibility settlement crosstab · modeled-vs-filed · provenance receipts · methodology · degradation · principles & limits · strategy validation), and the provenance registry table is reduced to a single count tile |
| What backtests hide honest-backtest | /dash/honest-backtest | DEFERRED | M6 | |
| What being wrong costs cost-of-being-wrong | /dash/cost-of-being-wrong | DEFERRED | M6 | |
| What we got wrong what-we-got-wrong | /dash/what-we-got-wrong | DEFERRED | M6 | |
| What every scan hides scan-autopsy | /dash/scan-autopsy | DEFERRED | M6 | |
| Strategy validation testing | /dash/testing | PORTED | /dash/home/validation | the validation record — the same research.db strategy_registry/runs/holdings verdict table, plus the ledger's BLOCKING rows verbatim beside it |
| Glossary glossary | /dash/glossary | PORTED | /dash/home/glossary | 261 terms / 39 families rendered from the SAME the metrics glossary parse (src.web.glossary) that feeds the ? popovers and Pat — never a second copy |
| Strategy reference strategy-ref | /dash/strategy-ref | DEFERRED | M6 | LANDED at /dash/home/strategy-ref: the same the strategies folder pages, list DERIVED from the directory (so a new strategy page appears the day it lands) through a widened public sanitizer. RE-OPENED by the 2026-07-28 gap audit (register §8d, 1 MAJOR): the SURFACE HAND-OFF STRIP — 'Open the live surface this page describes →' on 13 of 16 pages, a ratified 2026-07-15 requirement — has no twin; the port renders the markdown only, and doc-relative cross-links are no longer rewritten to served hrefs |
| Known limits limitations | /dash/limitations | DEFERRED | M6 | |
| How to read reading-guide | /dash/reading-guide | DEFERRED | M6 | LANDED at /dash/home/guide — 'How to read this site', the newcomer exit and the standing destination of the M6 persistent help control; carries the five-step arc as structure. RE-OPENED by the 2026-07-28 gap audit (register §8e, 2 MAJOR): the page carries NO CHARTS — the live 22-year breadth heat-ribbon WORKED EXAMPLE read in four numbered steps, and the 'six shapes' card gallery (six real charts, each with what-it-is / how-to-read / an 'on: <page>' deep-link), are the two things a reading guide exists to be |
| Ask Pat pat | /dash/pat | DEFERRED | M6 | LANDED at /dash/home on the EXISTING Graphite floating dock (a dock, not a page — there is deliberately no third Pat), extended with the classic page's resolution (glossary + lens-registry auto-fold + symbol deep-link, model-free) via GET /dash/home/pat/ask. Not yet carried: threads, saved boards, the feedback loop. RE-OPENED by the 2026-07-28 gap audit (register §8j, 4 MAJOR): the open-items list missed the biggest one — the ~15 GUIDED FLOWS (accumulation · rs · rslag · fundamentals · movers · index · distribution · consolidation · pt14 · redflags · confluence · credibility · deterioration · trend · oscillators · strategy · why) and their chip-parameter drill have no flow router in pat_dock.resolve() |
| Spec sheets spec-sheets | /dash/spec-sheets | PORTED | /dash/home/prereg | the same 9 pre-registered studies with hypothesis, gate-written-first, result and the registered SHA-256, read from the one content source |
| Rule lab rule-lab | /dash/rule-lab | DEFERRED | M6 | LANDED at /dash/home/rule-lab over the same closed-vocabulary rule engine (src.automation.rule_lab); every verdict state round-trips through the SAME query params as the classic page, so a shared URL reproduces the rule on either surface (ratified §K.4). RE-OPENED by the 2026-07-28 gap audit (register §8g, 2 MAJOR): the params round-trip but the ARTIFACT does not — the VERDICT CARD (verdict + qualifier + the 9-row numbers table + the prereg SHA-256 chip + the refusal reason) renders pre-run ledger citations only, real numbers appearing solely in the synthetic demo, and the roster/current-cohort block is absent |
| Evidence pack evidence-pack | /dash/evidence-pack | DEFERRED | M6 | LANDED at /dash/home/validation?pack=1, MERGED into the validation record — the classic page was an ASSEMBLY of spec-sheets + coverage material with two self-originating claims (a verify-routes index and the replay narrative), both of which the merged view keeps. RE-OPENED by the 2026-07-28 gap audit (register §8i, 1 MAJOR): 'zero evidence lost' skipped the ARTIFACT — the pack is a procurement deliverable and the print / save-as-PDF button and its print stylesheet did not travel, so it is now just a long page; the generated-at stamp, scope line and tamper-evidence paragraph are gone too |
| Replay any date replay-any-date | /dash/replay-any-date | DEFERRED | M6 | LANDED at /dash/home/replay over the same in-process /v1 point-in-time calls (credibility · attention · universe) with the envelopes verbatim; also ships journey.replay_card for the Today page. RE-OPENED by the 2026-07-28 gap audit (register §8h, 1 MAJOR): the CURL LINE under every panel — the 'reproduce this yourself' affordance the page's whole thesis rests on — is nowhere in the file; ?symbol= was also renamed ?sym=, so classic deep links do not carry across |
| Review inbox inbox | /dash/inbox | NA | — | owner review workflow, not a visitor surface: an approve/reject decision queue (POST /dash/inbox/decide) whose anonymous view is already reduced to aggregate counts. It belongs to ops, so the visitor-facing rebuild has no counterpart; the classic route stays live for the owner. |