Pipeline Pulse
The weekly pipeline review, rebuilt — from a hand-made slide deck into a web app on scheduled Salesforce pulls. Open the link and the numbers are already there: every deal, every movement, every section drawn from the source on schedule — never assembled by hand.
The Monday deck was stale by Sunday.
The weekly pipeline review ran on a slide deck assembled by hand: export the report, paste the numbers, screenshot the charts, fix the fonts, ship it. Hours of assembly for a snapshot that was already wrong by the time leadership saw it.
Worse than slow: silent. Hand-carried numbers hide their errors — a missed filter or a stale export ships with full confidence, and decisions get made on it.
Why fresh data, and why an app.
The decisions that shaped the system:
From the source to the screen.
Scheduled SOQL against the systems of record; a shaping layer that turns raw records into the review’s sections; a gated Next.js app that renders them the moment they're asked for.
What it's made of. What it talks to.
Next.js + TypeScript, scheduled SOQL data layer, session-gated access, deployed on Vercel.
// Week-over-week movement is math on two matched pulls — never memory, never a copy. const prior = await soql(SNAPSHOT_QUERY, { asOf: lastReview }); // same query, matched window const now = await soql(SNAPSHOT_QUERY, { asOf: today }); const moved = now.filter(o => prior.byId[o.Id] && prior.byId[o.Id].StageName !== o.StageName); const generated = now.filter(o => !prior.byId[o.Id] && stageRank(o) >= STAGE_2); const slipped = moved.filter(o => stageRank(o) < stageRank(prior.byId[o.Id])); // Every section ships with its own query — "where did this number come from?" // is always answerable by running it. export const section = { rows: moved, query: SNAPSHOT_QUERY, window: [lastReview, today] };
The review itself.
Captures from the working demo — the open, the goal tracker, and the health section's deal cards. A short walkthrough of a full review lands here next.


The meeting, minus the assembly.
Decisions on current truth — the number on screen is the number in Salesforce as of the last pull, not last month’s deck. Errors surface before the meeting — bad data shows up as bad data, not as a confident slide. The ritual collapses to a link — no exports, no paste, no deck; the hours come back every single week.
Run the review yourself.
The full working shell on synthetic pipeline data — every section, every deal card, every movement view. Access is by code (it rotates per conversation — if we're talking, you have one; if not, transmit and I'll send it).
ENTER ACCESS CODE →LIVE DEMO · ACCESS IS CODE-GATED

