
Brief 012 put the first live thread into the cockpit as a single number. Today that thread became a real funnel — every live deal now shows in its actual pipeline stage, pulled straight from the CRM — and the feed was taught to refresh itself instead of waiting on a hand.
The Sales tab already carried one real reading from GoHighLevel — an aggregate count of open and won deals. Useful, but flat: it told you how many, never where. Today it gained depth. Every live opportunity is now placed in its true pipeline stage, named the way it reads inside the CRM, and drawn as a funnel the cockpit updates from live data.
Under that funnel, a second, quieter build: the feed learned to run itself. The manual pull that fetched live deals was rewritten as a scheduled service on the locked stack — the same architecture already chosen for every future data source. It is deployed and confirmed running. One access grant from you flips it from "built" to "refreshing every half hour," with no one touching a keyboard.
Where it stands: the funnel is live and deployed; the seeded demo board is untouched and the manual pull still works — nothing regressed. The automatic refresh waits only on two owner-level clicks on the database.
A number tells you the pipeline is busy. A funnel tells you where it is bleeding. This is the difference between a report you glance at and an instrument you steer by — and today the cockpit crossed that line for the acquisition motion.
Every live opportunity is placed in its real stage. The moment a stage clogs, it shows — coaching and forecasting stop being guesswork.
Live CRM data lives in its own isolated table. No real deal is ever averaged against a seeded placeholder — real always reads as real.
Once switched on, the pipeline refreshes every half hour with no hand on it — and every future source reuses the exact same pattern.
The $0 on every deal isn't a glitch — it's the board surfacing that deal values aren't being set in the CRM. The instrument found the gap.
The cockpit's acquisition motion now runs on live data, shown by real stage, and is one grant away from refreshing itself unattended. Live capture is no longer a single thread — it is a working funnel with a heartbeat. The next moves widen it: switch on the schedule, wire Stripe as the cash source of truth, and add appointment data so the board can show real show and close rates, not seeded ones.
Live deals are pulled read-only from GoHighLevel into an isolated staging table, then rolled up by named stage in a clean view the dashboard reads. The seeded demo board never mixes with it.
The pull now lives as a database-hosted function on the locked stack, deployed and confirmed running. A two-command runbook to switch on the half-hour schedule ships with it.
Both builds are committed to the KPI Command Center on one branch and deployed to kpi-command-center.pages.dev, awaiting review and merge.