SLS> Type HELP and press Enter
Q2 FY26 · WEEK 8 OF 13
Commit at $55.9M vs $60M quota · best case $69.8M · need $4.1M to close gap.
▲ COVERAGE 3.1x ● COMMIT GAP ↗ WIN RATE +1.6pts
ACTION INBOX
    WHAT CHANGED SINCE LAST FORECAST SNAPSHOT DIFF
    Click a deal row to jump to TOP OPEN DEALS
    YoY SAME-QUARTER COMPARE Q2 FY26 vs Q2 FY25
    Same week-of-quarter comparison · reconciles with KPI DESK
    KPI THIS Q SAME Q LAST YR YoY Δ
    KPI DESK SNAPSHOT · 6 METRICS
    BENCHMARKS PAVILION SaaS · MID-MKT $50-100M ARR · N=312 · 2024-Q4
    PIPELINE FUNNEL $M · STAGE → STAGE CONVERSION · MED DAYS
    FORECAST vs QUOTA CUMULATIVE · WEEKLY
    Selected series Quota line Pace line Confidence band Projected W9-W13
    SCENARIO MODELER · WHAT-IF PULL A LEVER · WATCH THE NUMBERS MOVE
    TOP OPEN DEALS
    ACCOUNT STAGE AMOUNT PROB HEALTH MOMENTUM QUAL REACH CLOSE NEXT STEP OWNER REGION SEG MOT FCST
    SLIPPAGE THIS QUARTER DEALS PUSHED OUT OF PERIOD
    Click a row to jump to that account in TOP OPEN DEALS
    ACCOUNT OWNER RGN AMOUNT FROM → TO REASON
    PIPELINE CREATED $M / WEEK · NEW IN vs OUT vs TARGET Trailing 8 weeks
    NEW IN OUT (won + lost + DQ) Weekly target Below-target week
    SOURCE MIX% of trailing-8w NEW IN
    NEXT-QUARTER COVERAGE Q2 · Q3 · Q4 · COVERAGE vs 3.0x TARGET Open pipe by close-date quarter
    Unweighted pipe 3.0x coverage target Weighted (probability-adjusted)
    PIPELINE EROSION FORECAST SURVIVAL MODEL · STAGE × AGE × COHORT — CFO/CRO PREDICTIVE VIEW Click a stage row or FLUSH CANDIDATES to jump to TOP OPEN DEALS
    AT-RISK REPS COACHING LIST · AUTO-DERIVED
    TEAM ATTAIN · MANAGER ROLLUP 3 RVPs · 6 REPS · CLICK A MGR ROW TO FILTER LEADERBOARD
    REP LEADERBOARD QUOTA ATTAINMENT · Q2
    REP MGR RGN QUOTA ATTAIN PIPE WON ACTIVITY FCST ACC BIAS
    PIPELINE BY SEGMENT $M · % SHARE
    PIPELINE BY REGION
    REGION PIPE DEALS GROWTH STATUS
    WIN / LOSS REASONS TTM · TOP REASONS · LOSS-BY-STAGE · COMPETITORS
    WIN REASONS
      LOSS REASONS
        LOSS BY STAGE ·
          COMPETITIVE SPLIT (among Lost-to-Competitor)
            DEAL RISK & ANOMALY
              AI INSIGHTS SYNTHESIZED · ROTATING
                LIVE AUDIENCE FEEDBACK GITHUB ISSUES · AUTO-REFRESH 30s
                + NEW
                WHEN TYPE TITLE WHO STATUS
                LOADING…
                RELEASE NOTES UPDATED BY THE BUILDER AGENT
                • v0.30 FUNCTION PAGES — Bloomberg-style F1-F7 page nav splits the 22-panel single-scroll into 7 task-scoped pages (closes #37) — after shipping 27 panels the dashboard's single-scroll surface had crossed an ergonomic cliff: every operator persona's first action was "scroll past 80% of the page to find the 3 panels I actually use today". Bloomberg-terminal and every mature trading-floor UI (Eikon, FactSet, S&P CapIQ) solves this with F-key paginated workspaces — function keys partition the surface by task, not by feature. The dashboard already had a decorative .fkeys nav row (F1 DASH / F2 KPIS / F3 FUNNEL...) that scrolled-to-section; we reclaim that exact row as real page navigation. New PAGES registry maps every panel into 7 task-scoped pages: F1 OVERVIEW (hero, KPI DESK, ACTION INBOX, WHAT CHANGED, YoY, AI INSIGHTS — the morning landing page), F2 PIPELINE (funnel + aging, PIPELINE CREATED, segments/regions, NEXT-Q COVERAGE — pipe-gen / health view), F3 FORECAST (FORECAST vs QUOTA, SCENARIO MODELER, NEXT-Q COVERAGE, EROSION FORECAST — CFO/BoD prep view), F4 DEALS (TOP OPEN DEALS w/ expanders, SLIPPAGE, WIN/LOSS, DEAL RISK — AE/Mgr Monday pipe-review view), F5 TEAM (TEAM ATTAIN ROLLUP, REP LEADERBOARD, AT-RISK REPS, AUDIENCE FEEDBACK — Sales-Mgr coaching view), F6 INTEL (BENCHMARKS, WIN/LOSS, RISKS, AI INSIGHTS — competitive intelligence view), F7 HISTORY (RELEASE NOTES — and the future home of #38 changelog drawer, #25 TIME MACHINE). Some panels appear on multiple pages (e.g. WIN/LOSS on DEALS + INTEL; NEXT-Q COVERAGE on PIPELINE + FORECAST) since they answer different questions in different contexts. Implementation: each <section> tagged at init with class list pg-overview pg-pipeline ... + data-pages attribute. CSS rules main[data-page="overview"] section[data-pages]:not(.pg-overview) { display: none !important } (one rule per page). Click a pill OR press F1-F7 (also raw 1-7 when not in input) → switches page instantly. State persisted in localStorage salespulse.activePage + URL hash #page=pipeline (deep-linkable / shareable). Active pill highlighted in var(--green). Status-bar gains PG: OVERVIEW segment showing current page. ARIA role="tab" / aria-selected on each pill + offscreen aria-live region announces page changes for screen readers. LENS coexistence (#24): LENS rules use ID selectors → win on CSS specificity → element hidden by lens stays hidden across page switches; lens=cro + page=pipeline shows the intersection. Cross-page jump preserved: ACTION INBOX [JUMP →], EROSION stage-row clicks, etc. now first switch to the target panel's page if needed, then scroll + pulse. First-run discoverability: dismissible ★ NEW: FUNCTION PAGES — press F1-F7 or click a pill above to switch pages callout under the nav (one-time; sets salespulse.pagesIntroSeen=1). Mobile (≤480px): pill row becomes horizontal scroll strip with snap. New GO F1-F7 / GO PAGE OVERVIEW / GO PIPELINE commands. Page switch scrolls to top (matches Bloomberg behavior). Together with #24 LENS (persona scoping) and #23 ACTION INBOX (cross-cutting triage), PAGES completes the three-axis information architecture: LENS = who you are, PAGE = what you're doing right now, INBOX = what needs your attention now. Cache bump 0.29.0 → 0.30.0 · closes #37
                • v0.29 PIPELINE EROSION FORECAST — predictive survival model on $200M+ open pipe (closes #35) — after 26 shipped panels the dashboard was excellent at current state + historical trend but had zero predictive modeling of pipeline survival. CFO/Board question — "of our $204M open pipe, what's realistic Q2-Q4 close expectation?" — was un-answerable; coverage ratio (#16) gave a multiplier hint, not a $-expected value. New PIPELINE EROSION FORECAST panel below NEXT-Q COVERAGE ships a deterministic survival model: predictedSurvival = STAGE_BASE × ageDecay × cohortFit. STAGE_BASE calibrated from historical TTM win-rate by stage (Lead 5% / Discovery 28% / Proposal 55% / Negotiation 74% / Contract 88%). ageDecay halves per stage-median past the median day (Gong 2024: win-rate halves per ~doubling of stage age past stage-median). cohortFit by source (AE-Sourced 1.25 / Inbound 1.05 / Outbound 0.75). Top panel renders TOTAL OPEN PIPE $204M → PREDICTED SURVIVAL 46.2% (Pavilion P58 above median ●) → EXPECTED CLOSURE $94M across next 4 quarters. EXPECTED CLOSURE BY QUARTER table shows Q2 (this Q) = $55.9M (matches COMMIT — sanity check ✓), Q3 / Q4 / Q1+1 with ASCII fill bars. SURVIVAL BY STAGE table shows where the pipe leaks most: Lead 95% leakage ⛔, Discovery 88% ⚠, Demo 76% ⚠, Negotiation 32% ●, Contract 15% ★. Click a stage row → scrolls to TOP OPEN DEALS + pulses. New FLUSH CANDIDATES surface lists deals with predicted survival < 15% (17 deals · $23M open · $1.8M predicted) with "disposition: close-lost / re-engage / push to next quarter" recommendation; click to filter TOP OPEN DEALS. SHOW METHODOLOGY ▾ toggle expands a CFO-auditable panel exposing the full formula, factor tables, sources (Gong 2024 + Pavilion 2024), and limitations disclosure. New pipelineSurvival benchmark in D.benchmarks.kpis (P25 0.32 / P50 0.41 / P75 0.52 / ours 0.462). AI INSIGHTS prepends rotating bullet: "Pipeline erosion forecast: $204M open pipe → $94M predicted closure (46% survival, P58 above Pavilion median). Top leakage: Discovery stage 88%. 17 deals ($23M) are flush candidates — disposition them this week." Reconciliation guard fires ⚠ MISMATCH if model Q2 closure drifts from live COMMIT by > $0.5M — re-calibrate survival probabilities. Visible in CRO/CFO/Board LENS (predictive scope; hidden for AE/Sales-Mgr/CMO). New GO EROSION / GO SURVIVAL / GO FLUSH commands. ALL_PANEL_IDS now 22. Cache bump 0.28.0 → 0.29.0 · closes #35
                • v0.28 TEAM ATTAIN · MANAGER ROLLUP — closes the Sales Manager persona gap (closes #36) — every shipped feature so far scaffolded either rep-level (#19 leaderboard, #21 at-risk) or deal-level (#14/20/27/32/33) or org-level (KPIs, forecast) — the middle layer (3 RVPs each owning 2-4 reps) had no aggregated surface. "Which manager is strongest? Which team needs MOR cadence this week?" was un-answerable from one screen. New TEAM ATTAIN · MANAGER ROLLUP panel above REP LEADERBOARD ships 3 managers × 2 reps with computed-at-render metrics: C. Park (RVP Enterprise West · Rivera + Patel) · M. Liu (RVP Enterprise East · Okafor + Sokolova) · D. Tan (RVP Mid-Market · Chen + Yamada). Columns: MGR (TEAM) · QUOTA · ATTAIN · % · PIPE · BIAS · ACC · AT-RISK · HEALTH 0-100. Health formula (mirrors #33 banding): 0.35·attain + 0.20·(1−|bias|/0.20) + 0.20·(1−accErr/0.15) + 0.15·atRiskFactor + 0.10 → STRONG ≥80 ★ · OK ≥60 ● · AT-RISK ≥40 ⚠ · CRITICAL <40 ⛔. Story: Park's West team strongest (~95% attain, 0 at-risk), Tan's MM mid (~67%, 1 at-risk), Liu's East weakest (~53%, 2 at-risk). Click a manager row → filters REP LEADERBOARD to that manager's direct reports + scrolls + pulses + sets localStorage salespulse.managerFilter; click chip ✕ to clear. New MGR column added to REP LEADERBOARD between REP and RGN — every rep now shows their manager. AI INSIGHTS prepends rotating bullet: "Manager rollup: Park's team strongest at 95% attain (health 91). Liu's team at 53% (-42pp gap) — 2 of 2 reps at-risk. Recommended: 1:1 with Liu this week on coaching plan." Reconciliation guard fires ⚠ MISMATCH if Σ(manager.quotaSum) drifts from total D.reps quota by > $0.1M. New GO TEAM / GO MGR commands. Visible in CRO/Sales-Mgr LENS (added to both); hidden for AE/CFO/CMO/Board. ALL_PANEL_IDS now 21. Cache bump 0.27.0 → 0.28.0 · closes #36
                • v0.27 DEAL HEALTH SCORE — composite 0-100 on every TOP OPEN DEALS row + PORTFOLIO HEALTH tile + <40 ONLY triage filter (closes #33) — over the last 14 rounds we shipped 6 per-deal dimensions (MEDDIC, STAKEHOLDER REACH, ENGAGEMENT MOMENTUM, NEXT-STEP, EXEC SPONSOR, STAGE) and the row got denser, but the AE/Mgr's actual triage question — "which 3 deals do I work today?" — still required reading 6 columns and doing mental math. Every mature pipeline app (Clari "Deal Score" · Gong "Engagement Score" · BoostUp "Health" · SF Einstein) rolls the dimensions up into a single 0-100 the operator scans first. New HEALTH column between PROB and MOMENTUM renders ⛔ 26 / ⚠ 47 / ● 68 / ★ 84 with band-toned color. Composite formula: SCORE = MEDDIC(0.25) + REACH(0.20) + MOMENTUM(0.20) + NEXT-STEP(0.15) + ENGAGEMENT(0.10) + EXEC-SPONSOR(0.10) — weights derived from CRO-Pavilion deal-conversion research (MEDDIC + REACH dominate signal; soft factors trim). Banding: STRONG ≥80 ★, OK ≥60 ●, AT-RISK ≥40 ⚠, CRITICAL <40 ⛔. Cell tooltip exposes the full math (every dimension's 0-100 input + the weighted contribution) — auditable transparency the CFO will love. Click HEALTH column header → sort ascending (lowest first — operator triage flow); other sort modes auto-clear (exclusive sort). New PORTFOLIO HEALTH tile inside DEAL RISK panel shows portfolio avg + band-chip + horizontal fill-bar (0-100) + 4 bucket-filter buttons (STRONG / OK / AT-RISK / CRITICAL) + WoW Δ + $X.XM in CRITICAL deals banner. New <40 ONLY ✕ filter chip above TOP OPEN DEALS toggles dealMatchesHealthBucket(d, 'critical') filter (persisted in localStorage salespulse.healthFilter); clicking ✕ clears. AI INSIGHTS prepends live bullet naming portfolio avg, count + $$ in CRITICAL, biggest dimension drag (e.g. "Portfolio health 58/100 (P50 SaaS benchmark) — 3 deals CRITICAL totaling $4.8M. Biggest drag = STAKEHOLDER REACH (avg 42%); fixing single-thread on Northwind + Fabrikam alone would lift portfolio avg to 64/100."). Click portfolio-bucket button OR filter chip → filter TOP OPEN DEALS to that band. Mobile (≤480px) HEALTH cell collapses to glyph + tooltip-on-tap (keeps the row readable on phone). Composite formula future-proofs the dashboard: any new per-deal signal we add (CALL TRAJECTORY #28, COHORT MATRIX #26) can be folded into the weight blend without re-architecting the table. expanderColspan bumped 14 → 15. Cache bump 0.26.0 → 0.27.0 · closes #33
                • v0.26 EARNED vs SOFT COMMIT decomposition on FORECAST panel — split the commit into "what we can count on" — every enterprise forecast system (Clari · BoostUp · Salesforce · Gong) splits commit into confidence-tiered buckets because raw commit is a lie of aggregation — a $55.9M commit with 70% qualified vs the same $55.9M with 30% qualified are very different conversations. SalesPulse showed commit as a single number with no confidence decomposition; the CFO/Board literally could not tell how much of commit they can actually count on. This ship splits commit live: EARNED = deals passing ALL gates (MEDDIC ≥ 6/8 · REACH ≥ 0.5 · momentum stable ≥ 50 · stage = Negotiation/Closed-Won · next-step on-track or stale, not missing/overdue · exec sponsor assigned if ≥ $1M); SOFT = everything else in commit. A horizontal stacked bar at the bottom of the FORECAST panel renders COMMIT $X.XM = EARNED $A.AM (65%) ● + SOFT $B.BM (35%) ⚠, color-toned earned-green / soft-amber, with a benchmark whisper EARNED 65% · P40 below median (new earnedCommitRatio Pavilion benchmark added). Below the bar: SOFT drivers tally — REACH < 0.5: N deals ($Y.YM) · MEDDIC < 6: N · MOMENTUM < 50: N · NEXT-STEP missing: N · STAGE < Negotiation: N · EXEC sponsor missing: N — sorted by $$ impact, click any chip → highlight the failing deals. Click EARNED segment → filter TOP OPEN DEALS to earned (persisted in localStorage); click SOFT → filter to soft. AI INSIGHTS prepends a live bullet naming earned %, P-tier vs Pavilion, top SOFT driver + "if all SOFT slipped, commit drops to $A.AM (X% attain)". Reconciliation guard fires ⚠ MISMATCH if EARNED + SOFT ≠ commit ± $0.1M. Tooltip on the bar exposes the full formula — CFO transparency: the math is auditable. New D.dealExecSponsors map (Northwind + Fabrikam unassigned — the big-bet coverage gap that #31 SCENARIO MODELER's exec-sponsor lever exposes). Cache bump 0.25.0 → 0.26.0 · closes #34
                • v0.25 SCENARIO MODELER · WHAT-IF — the dashboard becomes interactive (closes #31) — after 20+ shipped panels SalesPulse was descriptive (KPIs, trends) and diagnostic (#23 INBOX, #21 AT-RISK) but never prescriptive in a numerical sense — the CRO's actual weekly question ("if Northwind closes, where do we land? if Yamada's bias unwinds, does coverage hold?") was unanswerable without a calculator. New SCENARIO MODELER panel directly below FORECAST vs QUOTA ships 5 levers: NORTHWIND $2.4M outcome (closes / on-track / slips-next-q / lost), K.YAMADA bias unwind (fully / half / status-quo / holds-firm), EXEC SPONSOR push (assign-all-big-bets / none), Win-rate → P50, Pipegen → P50. Mono <select> dropdowns; on change the RESULT strip recomputes instantly showing COMMIT / UPSIDE / ATTAIN / Q3 COVERAGE with Δ-vs-baseline + an auto-derived SCENARIO LABEL (BEST CASE → UPSIDE → STATUS QUO → DOWNSIDE → WORST CASE, color-toned, ⚠ on worst). 4 preset buttons [BASELINE] [BEST CASE] [WORST CASE] [BOARD STRESS] set all 5 levers in one click — BOARD STRESS = the conservative case to defend in board prep. Cross-reference micro-labels (#29 BIG BETS) and (#30 BENCHMARKS) on the relevant levers. AI INSIGHTS prepends a scenario-aware bullet (regenerates by scenario shape — status-quo names hedges, worst-case names recovery levers + required deal count). Reconciliation guard fires ⚠ MISMATCH when baseline commit drifts > $0.1M from data.forecast.commit. State persisted in localStorage; RESET pulses the result strip. LENS visible for CRO/MGR/CFO/BOARD/FULL; hidden for AE/CMO. New GO SCN / GO SCENARIO command. New SCN ticker entry. ALL_PANEL_IDS → 20. Cache bump 0.24.0 → 0.25.0 · closes #31
                • v0.24 DEAL DETAIL EXPANDER — Bloomberg DES-style inline expand on every TOP OPEN DEALS row — TOP OPEN DEALS had reached the density-vs-truncation inflection point: 13 per-deal fields fight for ~7 visible columns. The mature pattern (Bloomberg DES · Clari Deal Card · Gong Deal Page · BoostUp Drawer · Outreach inline preview · SF Lightning Console) is an inline expander — one click reveals the full record without leaving the desk. Click any row (account cell) → inline 3-column expander slides under the row showing ACTIVITY (last 8 touches) with date / channel-glyph (✉ ☎ ⌘ ✎) / summary, MEDDIC breakdown (per-letter ★/⚠ with note like "⚠ NOT identified" for Northwind's economic buyer), and STAKEHOLDERS · REACH% with named individuals + titles per role (champion J. Patel / VP Sales Ops, EB — MISSING —, etc.) — pulling from new D.dealDetailExtras map keyed by account. Notes line below the grid; two action chips [JUMP TO REPS →] (scrolls to owner row + pulse) and [SCENARIO →] (placeholder for #31 ship). Click row again or press Esc → collapse. Arrow ↓/↑ while expanded → navigate to next/previous deal (auto-collapse previous, auto-expand next — Bloomberg DES behavior); auto-scrolls. Shift+click a second row → multi-expand (compare mode). State persisted in localStorage so the last-opened deal survives a refresh. When a row is expanded, AI INSIGHTS prepends a deal-specific bullet ("Northwind expanded: MEDDIC 4/8, REACH 40% (single-thread risk). Champion strong but EB never identified after 2 attempts. Legal redlines back 03/08. Recommended exec-sponsor: C. Park."). Reconciliation guard fires ⚠ MISMATCH when the detail's per-letter MEDDIC narrative diverges from the row's aggregate by > 1. Mobile (≤480px) drops the inline expander in favor of a full-screen modal overlay (terminal-density on phone is impossible). REP LEADERBOARD rows gain data-rep attributes so the JUMP affordance can scroll-anchor. Uses only existing CSS variables; no new colors. Cache bump 0.23.0 → 0.24.0 · closes #32
                • v0.23 BENCHMARKS panel — every KPI placed vs Pavilion SaaS $50-100M ARR P25/P50/P75 + BENCHMARK INDEX + KPI-tile whispers — every internal metric on the dashboard was previously a number without a yardstick: 27% win-rate, 68d cycle, ±5.1% forecast accuracy — were any of those good? CFO at the board: "how does our forecast accuracy compare to similar-stage SaaS companies?" — currently un-answerable. New BENCHMARKS panel directly under KPI DESK ships an 8-chip strip placing every KPI vs Pavilion SaaS Operator Benchmarks (mock data, real source cited): WIN RATE 27% · P50 ●, SALES CYCLE 68d · P72 ★, ASP $198K · P58, COVERAGE 3.0x · P48, FCST ACC ±5.1% · P74 ★, PIPEGEN 21% · P34 ⚠, MKT SOURCE 38% · P65, NEW LOGOS 6 · P40. Status glyphs ★ (P75+ top-quartile) · ● (P40-75 mid) · ⚠ (sub-P40) · ⛔ (sub-P25). Right-aligned BENCHMARK INDEX 55/100 = mean of all 8 placements — a single CCK-Bloomberg-style number the Board can track. Status tone applied throughout from var(--green) / var(--green-soft) / var(--amber) / var(--red) — no new colors. Source attribution line is itself clickable to reveal a 1-paragraph methodology note + About this benchmark drawer. Every KPI tile in the KPI DESK row gains a third whisper line below the existing WoW + YoY whispers: e.g. P50 · at industry median under Win Rate, P72 · top-quartile under Sales Cycle, P58 · above median under ASP, P48 · at median under Pipeline Coverage. Click any chip → flashes that chip + scrolls to the panel. Reconciliation guard reads each chip's `ours` value against the live KPI (renders ⚠ MISMATCH chip on drift > 0.5%, pattern from #16/#18/#20/#27). New AI INSIGHTS bullet: "Top-quartile on sales-cycle (68d vs P75=64d) and forecast-accuracy (±5.1% vs P75=±5%). Below median on pipegen-to-quota (21% vs P50=24%) — the single highest-leverage gap. If pipegen normalized to P50, Q3 coverage gap closes 38%." LENS (#24): panel + chips show for CRO / CFO / CMO / BOARD / FULL (the budget-conversation seats); AE / Sales-Mgr lenses hide it (less actionable for their loops); KPI-tile whispers stay visible across all lenses since the placement context is universally useful. New BENCH ticker entry. ALL_PANEL_IDS grows to 19; lens preview chip auto-updates. Mobile (≤480px): chip strip wraps to 2×4 grid. Uses only existing CSS variables and existing .k-whisper styling for KPI-tile whispers. Cache bump 0.22.0 → 0.23.0 · closes #30
                • v0.22 STAKEHOLDER REACH column + portfolio rollup — multi-threading visibility on every deal — every CRO / VP Sales / AE who has lost a late-stage deal knows the post-mortem story: "we only had a champion — no economic-buyer contact, no decision-maker visibility." Gartner B2B Buying Group research finds single-threaded deals win at ~18% vs ~47% for deals engaging ≥5 stakeholders (2024). SalesPulse previously had no representation of buying-group coverage on TOP OPEN DEALS — MEDDIC tracked who was qualified, not who was actually engaged. New sortable REACH column between QUAL and CLOSE renders a 5-cell heatmap in C·EB·DM·I·T order (Champion · Economic Buyer · Decision Maker · Influencer · Tech Evaluator) — each cell colored by engagement intensity (▓ engaged · ▒ touched · ░ none) + a STRONG / OK / THIN / SINGLE-THREADED status badge sized by sum-of-scores ÷ 10. Hover any cell to see the named role + state. The MEDDIC reconciliation guard (pattern from #16/#18/#20) fires ⚠ MISMATCH when a deal has MEDDIC ≥ 7 but REACH < 0.4 — calling out the deals being "scored qualified" without real buying-group access. New STAKEHOLDER REACH sub-section atop the DEAL RISK panel shows the portfolio rollup: avg reach across top-12, single-threaded count (clickable → filters table to just those deals; persisted in localStorage; ✕ CLEAR chip), missing-EB count, missing-DM count, STRONG count — so a manager can answer "how many of my top deals can survive a champion leaving?" in one glance. Story this quarter: 2 single-threaded (Northwind $2.4M slipping on champion-only + Fabrikam $1.2M on champion + tech), 4 missing decision-maker engagement, portfolio avg 0.67 (OK band). New AI INSIGHTS bullet names Northwind as the #1 reach-risk and frames it as the demo-narrative root cause of the slip ("schedule an exec-sponsor intro this week"). Click any REACH cell to jump to that deal row with highlight-pulse. MOTION-aware thresholds (EXPANSION relaxes single-threaded floor since renewals naturally narrow). LENS visibility: shown for CRO/MGR/AE/FULL; CFO/CMO/BOARD already hide #deals via the LENS map. Mobile (≤480px): column collapses to a single status word (e.g. ● SINGLE-THREADED). Cache bump 0.21.0 → 0.22.0 · closes #27
                • v0.21 WIN / LOSS REASONS panel — top-5 win + loss reasons, loss-by-stage, top competitor — surfaces the playbook hidden in TTM losses. The dashboard previously showed Win Rate = 28.4% but said nothing about the ~196 losses worth ~$58.2M behind that number — that's the §9.1 / §9.3 double-miss this panel fixes. New panel WIN / LOSS REASONS (placed above DEAL RISK + AI INSIGHTS) renders two compact halves — WIN REASONS (5-segment horizontal stacked bar in green shades + mini-list with Product fit 32% / Champion 24% / Price/ROI 18% / Implementation speed 14% / Integration 12%) and LOSS REASONS (5-segment red/amber bar + mini-list with Lost-to-competitor 34% / No decision 26% / Budget cut 18% / Price 14% / Missing capability 8%) — top loss reason carries an inline ▸ Acme RevPro chip naming the #1 competitor. A LOSS BY STAGE sub-section answers "where in the funnel are we losing the most $$?" (Discovery $18.6M is the biggest leak, then Proposal $16.4M, Qualified $14.2M, Negotiation $9.0M). A COMPETITIVE SPLIT mini-bar at the bottom breaks down the 34% lost-to-competitor share — Acme RevPro 48% ($9.5M direct loss) is the single biggest competitive threat. Header micro-stat: WIN RATE TTM: 28.4% ▲+1.6 pts vs prior · $44.6M WON / $58.2M LOST, reconciles against the Win Rate KPI tile (renders ⚠ MISMATCH warning if they drift). All rows are click-ready with data-reason / data-stage / data-competitor attributes for future drill-down. All competitor names are fictitious per dashboard-context.md §7. Existing DEAL RISK item "Litware Inc. — competitor mentioned" upgraded to name Acme RevPro + their TTM $9.5M direct loss number so the risk's significance is now defensible. New AI INSIGHTS bullet: combined ~60% of losses are NOT product gaps but URGENCY + COMPETITIVE gaps — action: refresh Acme RevPro battlecard + tighten Discovery qualification. New GO WL / GO WINLOSS commands. Panel added to CRO/MGR/CFO/CMO/BOARD lens maps (#24). Mobile (≤480px): two halves stack vertically; bars remain readable. Uses only existing CSS variables. Cache bump 0.20.0 → 0.21.0 · closes #18
                • v0.20 PIPELINE FUNNEL — median days-in-stage per stage + longest-stage callout — decomposes the 68d Sales Cycle KPI into actionable friction points. Each funnel stage bar now shows a small inline MED <X>D chip alongside the existing conversion % chip, tone-colored by per-stage benchmark (green ≤1.0× · amber 1.0–1.5× · red >1.5×). Benchmarks (Clari/Gong public industry medians for B2B SaaS): Prospects 14d · Qualified 12d · Discovery 14d · Proposal 14d · Negotiation 12d. Caption below the funnel computes TOTAL CYCLE: 68D · LONGEST STAGE: PROPOSAL (22D, 1.6× BENCHMARK) live from data (sum of medians reconciles to the existing Sales Cycle KPI). The Sales Cycle KPI tile gets a tiny LONGEST: PROPOSAL (22D) whisper line (reuses the vs-snapshot whisper pattern from #10) and becomes click-to-funnel — clicking the tile smooth-scrolls to PIPELINE FUNNEL and pulses the longest stage in green-soft for 1.5s (same affordance shipped in #8/#10). A new AI INSIGHTS bullet ties cycle improvement to where the remaining friction lives: "Proposal stage takes 22 median days — 1.6× benchmark — and drives most of the 68d total cycle... friction now lives in pricing/legal templating. Action: assign Sales Ops to review pricing approval SLAs + Legal redline turnaround." Cache bump 0.19.0 → 0.20.0 · closes #13
                • v0.19 LENS persona modes — re-scope the dashboard for the seat in the chair — closes the §9.2 cognitive-overload heuristic by letting each role see only the panels that map to their job-to-be-done. New top-bar pill group LENS: [CRO][MGR][AE][CFO][CMO][BOARD][FULL] (default FULL = full dashboard, unchanged from prior versions). Per-persona panel maps (CSS-only hide via main.lens-cro section#X { display: none } — DOM stays intact, so KPIs/totals/insights remain in sync; only visibility changes). CRO sees the executive close-set (INBOX, hero, KPIs, FORECAST, WHAT CHANGED, YoY, FORWARD COVERAGE, at-risk reps, top-3 concentration, slippage, AI insights). MGR sees deal/rep ops (INBOX, KPIs, FUNNEL, TOP DEALS, REPS, AT-RISK REPS, slippage, WHAT CHANGED). AE sees individual-rep view (INBOX, KPIs scoped to MY DEALS — toggle auto-on, TOP DEALS, momentum heatmap, AI insights) — also flips salespulse.dealsMine = true on persona switch. CFO sees the money-only set (KPIs, FORECAST, projection, YoY, slippage). CMO sees demand-gen (KPIs, PIPELINE CREATED, FUNNEL, segments/regions) — auto-sets motion lens to ALL + pre-expands pipegen. BOARD sees the quarterly-narrative subset (hero, headline KPIs, FORECAST, YoY) — auto-flips WHAT CHANGED basis to YoY on persona switch. Persisted in localStorage.salespulse.lens. Shift+F1-F7 shortcuts cycle personas (CRO/MGR/AE/CFO/CMO/BOARD/FULL). Status-bar USR segment now reflects the active lens. A floating preview chip LENS: CRO · 10/18 PANELS VISIBLE · [✕ CLEAR] appears above the inbox when non-FULL. AI INSIGHTS prepends a lens-specific intro bullet when non-FULL. @media (prefers-reduced-motion) respected — no fade if user opted out. On mobile the pill group collapses to a single dropdown. New LENS <persona> command (e.g. LENS CRO, LENS FULL). New USR ticker reflecting the live lens. Together with #23 ACTION INBOX (v0.18) and #10 WHAT CHANGED (v0.6), LENS completes the §9 cognitive-load mitigation triad · closes #24
                • v0.18 ACTION INBOX — consolidated, deduped, ranked queue of every red+amber across the dashboard — single answer to "what do I do right now?" across every persona. New panel directly under the hero strip aggregates alerts from 9 sources: slippage (#8), missing/overdue next-step (#15), cold momentum (#14), weak-commit MEDDIC (#20), at-risk reps (#21), negative WoW prob moves (#10), forward coverage gaps (#16), top-3 concentration (#11), and over-committers in commit (#19). Same-account items dedupe into one row (severity = max of merged, title concatenates issues, amount = max deal amount). Sort: severity desc → amount desc → category alpha. Top 12 visible; rest collapse under a + N MORE expander. Each row shows a severity dot (●), category chip (8 chars), title (~80 char truncate with full text on hover), $$ at risk, and a tone-colored suggested-action chip (PIPE REVIEW · 1:1 COACH · DEAL INSPECT · PIPE GEN · FORECAST RECAL · COMPETE PLAY). Clicking a row jumps to the source row/panel and triggers the standard 1.5s highlight pulse. Panel-head micro-stat: N ACTIONS · $X.XM AT RISK · N●HIGH · N●MED · N●LOW. Filter chips in header: ALL · HIGH ONLY · BY ACCOUNT · BY REP (persisted in localStorage.salespulse.inboxView; the BY-* views re-group same items into account/rep buckets without removing any). Empty state celebrates: ALL CLEAR — NO ACTIONS PENDING · Friday looks easy. Go close something. Status bar gets a new clickable INBOX N● segment color-toned by highest queue severity — click jumps to the panel. New INBOX ticker (count + $$ at risk). New AI insight bullet computed from the actual inbox contents — names the top account with the most overlapping alerts and quantifies the single-meeting fix. Partially mitigates §9.2 cognitive overload by giving every persona a single landing target before they fan out across 17 panels · closes #23
                • v0.17 YoY SAME-QUARTER COMPARE — completes the temporal matrix — adds the dimension every board-deck and CFO conversation needs but the dashboard didn't render. New compact 4-column panel (KPI · THIS Q · SAME Q LAST YR · YoY Δ) sits between WHAT CHANGED and KPI DESK, comparing 8 KPIs at the same week-of-quarter (Jun 12 2026 vs Jun 13 2025): Pipeline Value, Weighted Pipeline, Win Rate, Avg Deal Size, Sales Cycle, Coverage, Commit @ W8/13, and Slippage. Story: 7 of 8 UP YoY (pipeline +17.8% · weighted +21.8% · commit +21% · cycle −7d) with slippage +45.1% as the lone regression — the friction-tax dimension that explains why a strong top-line doesn't feel strong at the Friday call. Panel-head summary stat: N UP · M DOWN · BEST · WORST. THIS Q reconciles automatically with the existing KPI DESK; a ⚠ MISMATCH chip appears if drift is detected (reuses #16 pattern). Each KPI tile gains a second vs Jun 2025 whisper line under the #10 WoW whisper — so an AE/CRO sees temporal context at three depths (week / year / projection) in the same tile. HERO STRIP appends · commit +21% YoY. WHAT CHANGED panel gets a WoW | YoY toggle in the header — flipping to YoY re-renders the commit-movement card against the year-ago basis instead of the week-ago snapshot; persisted in localStorage.salespulse.changedBasis. New YOY ticker (+17.8% PIPE vs Q2 FY25) + AI insight bullet quantifies which 7 are up and why slippage is the one to fix · contributes to #3 (broader vs-what labeling remains open) · closes #22
                • v0.16 QUAL column on TOP OPEN DEALS — MEDDIC 0-8 score + weak-commit alarm — completes the daily-use trinity (momentum + next-step + qual) on the most-trafficked panel. New sortable QUAL column between MOMENTUM and CLOSE renders a tone-colored X/8 score (green ≥ 6 · amber 4-5 · red ≤ 3) + an 8-cell segmented bar in MEDDPICC order (M·E·D·D·I·C·P·C) so an AE can see at a glance which letters are missing without opening the deal. Hover the bar to list the missed checks by name. Panel-head micro-stat: QUAL HEALTH: X.X/8 AVG · N WEAK-COMMIT DEALS where weak = prob ≥ 70 AND qual < 5/8 — clickable to filter the table to just those deals (persisted in localStorage). TOP-3 CONCENTRATION tooltip now appends top-3 avg qual. PROJECTED Q-END methodology tooltip notes that qual < 5/8 deals historically land 35% less often than qual ≥ 6/8 — so the projection range should be read with that lens. New AI insight bullet names Northwind ($2.4M, 4/8) as the single largest commit-defensibility gap in the book. Mobile (≤480px): column collapses to numeric only, tap reveals the bar · closes #20
                • v0.15 AT-RISK REPS — auto-derived coaching list — saves Sales Mgrs ~30 min of pre-1:1 prep. New panel above REPS+SEGMENTS row surfaces every rep who trips any of 6 watchlist rules: attain < 70 · activity < 65 · over-commit + behind · top deal missing next step · cold top deal (engagement < 40) · WoW attain ≤ −3pts. Each row shows the rep + region + bias chip, the highest-severity reason chip (RED if 2+ rules, AMBER if 1), an auto-generated one-line rationale that combines all triggered rules, and a suggested action chip (PIPE REVIEW · 1:1 COACH · RAMP CHECK · DEAL INSPECT). Panel header rollup: N reps at risk · N need 1:1 this week (or ALL REPS ON TRACK in green). Each row is clickable — scrolls to the REP LEADERBOARD and pulses that rep. TOP-3 CONCENTRATION tooltip now appends top-3 owners and flags any owner who's on the coaching list — concentration + rep risk now visibly compound. New RISKREP ticker symbol + new AI insight bullet quantifies which 5 of 6 reps are flagged + how concentration risk overlaps. New commands GO COACH / GO RISK / GO ATRISK. Mobile: each row's rationale wraps under the rep name; action chip remains visible · closes #21
                • v0.14 REP LEADERBOARD: FCST ACC + BIAS columns (last 4Q) + reliability rollup — answers the CRO's #1 Friday-call question ("whose forecast can I actually trust?") before commit gets rolled up. Two new right-aligned columns: FCST ACC shows last-4Q rep forecast accuracy %, tone-colored green ≥ 80 / amber 65–79 / red < 65. BIAS chip flags RELIABLE (green), SANDBAG (amber), or OVER (red) with a hover tooltip surfacing the actual last-4Q (actual−commit)/commit values + a 4-dot sparkline of the same. Panel header gains a RELIABILITY rollup: % of pipeline-weighted commit from RELIABLE forecasters + counts of sandbaggers / over-committers. FORECAST vs QUOTA chart caption appends a reliability whisper estimating $$ over-commit risk and $$ sandbag upside hidden in the current commit. WHAT CHANGED SINCE LAST FORECAST cross-references with a RELY/SAND/OVER mini-chip next to each moving rep — so a +10pt jump from a SANDBAGGER reads differently than the same jump from an OVER-COMMITTER. New RELY ticker · new AI insight bullet quantifies Yamada's likely $0.4M overstatement + Sokolova's $1.2M hidden upside. PROJECTED Q-END comment now flags the future weight-by-reliability follow-up · closes #19
                • v0.13 NEXT-QUARTER COVERAGE panel — surfaces the board+CFO conversation that's invisible today. New 3-column panel renders open pipe by close-date quarter for Q2 (current) / Q3 / Q4: big tone-colored coverage ratio (green ≥ 3x · amber 0.7–1.0× · red < 0.7×) vs the 3.0x target, weighted/unweighted/deal-count secondaries, and a NEED $XM MORE PIPE TO HIT 3x action row computed at render. Shared horizontal-bar viz beneath the columns shows unweighted-pipe-to-target visually, with a dashed 3x marker. Q2 reconciles exactly with existing Weighted Pipeline + Coverage KPIs — renders a ⚠ MISMATCH warning if they drift. New Q3COV / Q4COV ticker symbols + AI insight bullet cross-references the PIPELINE CREATED panel. GO COV / GO COVERAGE commands. Story this quarter: Q3 is 2.0x — alarm bell · need $61.6M more unweighted in 18 weeks · closes #16
                • v0.12 FORECAST vs QUOTA: W9-W13 dashed projection + PROJECTED Q-END mini-stat — answers the Friday CRO question ("what will we land at?") in one glance. Chart now spans the full quarter; W1-W8 actuals stay solid, W9-W13 renders as a dashed continuation with a translucent extended confidence band and a "NOW" marker at the W8 boundary. New PROJECTED Q-END stat block beside the existing stats: big tone-colored projection $$, range (±7% TTM accuracy), gap vs quota, and "BEST CASE →" sub-stat — methodology tooltip explains the transparent formula (commit + (bestcase−commit) × 40% − slippage drag at 30% recurrence). Hero strip rewrites every render to incorporate the projection. New PROJ ticker symbol + AI insight bullet ties the projection to a recommended Wednesday action · closes #17
                • v0.11 TOP OPEN DEALS: per-deal MOMENTUM column + heatmap ribbon — surfaces ghosting deals before they slip. New MOMENTUM column between PROB and CLOSE shows a dot (green / amber / red by score), a 0–100 score, and a ▲/─/▼ trend arrow vs prior week. Hover any cell for the underlying touchpoints, last-touch days, and single/multi-thread tooltip (§9.7 trust). Sortable column. A 12-cell heatmap ribbon above the table is sorted by amount: scan momentum vs deal-size at a glance, click any cell to scroll + pulse that row in the table (§9.5 action). Story this quarter: 4 of the top-12 are trending DOWN (Northwind / Fabrikam / Lucerne / Litware — combined $3.1M weighted) and the new AI insight bullet ties the count to the recommended manager-led pipe review · closes #14
                • v0.10 TOP OPEN DEALS: NEXT STEP column + health rollup — the #1 Monday pipe-review question ("which deals don't have a defined next step?") answered inline. New column between CLOSE and OWNER renders the next step action + a chip for due-in-N-days (green ✓), N-days OVERDUE (red ◀), or bold MISSING for deals with no logged next step. Panel-head NEXT-STEP HEALTH stat shows ✓ on track · ● due soon · ✗ overdue/missing — click the ✗ count to filter the table down to just the un-defensible commit deals in one click (persisted via localStorage). Sortable column header (missing → overdue → due-soon → on-track). TOP-3 CONCENTRATION tile tooltip now also flags top-3 deals missing a next step. New AI insight bullet ties the count + $$ to a recommended action · closes #15
                • v0.9 PIPELINE CREATED panel — the missing leading indicator for the marketing↔sales handoff. Weekly NEW IN (green) vs OUT / closed / DQ'd (amber) bar pairs over the trailing 8 weeks, with a dashed target line ($13.5M/wk derived from quota × 3x coverage ÷ 13 weeks) and a red flag tick on any week below target (W1, W3, W7 in the current data). Header stat row shows THIS WK NET · TTW AVG NET · TARGET. Compact source-mix stacked bar below (outbound / inbound / partner / expansion). Pipegen ticker symbol and AI insight bullet added. `GO PIPE` / `GO PIPEGEN` commands · closes #12
                • v0.8 TOP-3 CONCENTRATION tile appended to the KPI desk — "if top 3 deals slip, do we still hit number?" answered in one glance. Headline % of weighted pipe, $$ in 3 accounts, and a footer micro-stat showing whether commit still covers quota or by how much it would miss. Tone shifts at 25% (warn) and 40% (bad). Click the tile to scroll to TOP OPEN DEALS and pulse the 3 starred rows; same accounts also get a badge in the table for instant visual link. AI insights bullet added. The tile honors the NEW vs EXPANSION lens so the top-3 always matches the currently visible deal slice · closes #11
                • v0.7 NEW vs EXPANSION motion lens — global toggle pill in the hero strip (ALL · NEW LOGO · EXPANSION, persisted in localStorage) that re-slices KPI DESK, PIPELINE FUNNEL, FORECAST vs QUOTA, TOP OPEN DEALS (new MOT column), PIPELINE BY SEGMENT, and PIPELINE BY REGION to the selected motion. New motion-split stacked bar at the top of SEGMENTS shows the $$ + % + win-rate split at a glance even on ALL. Affected panels carry a motion chip in their subhead so the lens is always visible. `MOTION ALL/NEW/EXP` commands · closes #9
                • v0.6 WHAT CHANGED SINCE LAST FORECAST panel directly below the hero strip — WoW commit movement, deal-probability moves (click to jump), rep-attainment moves, risks added/resolved. Every KPI tile now also carries a small vs Jun 5 whisper line so the basis of every number is unambiguous (§9.7 trust). Updated AI Insights to reference the commit-recovery story · closes #10
                • v0.5 SLIPPAGE THIS QUARTER panel — slipped deals, $$ out of period, FROM → TO dates, reasons, with concentration footer (top owner / region / reason). Click any row to jump to that account in TOP OPEN DEALS with a brief highlight. Removed the redundant single-line slippage entry from DEAL RISK & ANOMALY (the new panel owns the story) · closes #8
                • v0.4 FORECAST vs QUOTA: dashed pace line (linear $0 → quota across 13 weeks) + PACE W8 / vs PACE stats so CROs can answer "are we ahead or behind pace?" in one glance — recomputes on COMMIT/BEST CASE toggle · closes #7
                • v0.3 FORECAST vs QUOTA: confidence band around the COMMIT series (±7% TTM forecast accuracy) so CROs can defend the commit number on Friday calls · Mobile (≤720px): funnel conversion label now wraps under the bar so every stage — including Closed Won's "— win —" — renders consistently at 360px · closes #1 and #5
                • v0.2 Pipeline Funnel: deal aging buckets per stage (0-14d / 15-30d / 30d+) — stalled deals now visible at a glance · Top Open Deals: one-click MY DEALS toggle (filters to the rep selected in the new ACTING AS picker, persisted across visits) · closes #2 and #4
                • v0.1 Baseline SalesPulse Live dashboard · 6 KPIs · funnel · forecast vs quota · top deals · rep leaderboard · segments + regions · risks · live audience feedback
                ENV DEMO USR VP SALES PG OVERVIEW INBOX PER Q2 FY26 CCY USD DATA SYNTHETIC SYS --:--:--