HomeProjectsSales Pipeline — CRM API to Power BI
2026Solo builderPortfolio build
Sales Pipeline — CRM API to Power BI
B2B pipeline report fed from a CRM API: an incremental extractor, a DuckDB warehouse that keeps every version of every deal, and a Power BI model with incremental refresh. Shows how much of the open pipeline is real.
Preview
Highlights
- An apparent 'fast deals lose' finding turned out to be a source-data quirk in three months; the chart says so instead of selling it
- Built and validated as code; not yet opened in Power BI Desktop
Problem
The headline pipeline looked healthy, but nobody knew how much of it was deals that would never close, whether win rate differed by person or product, or whether each monthly API sync had loaded cleanly.
Approach
- Incremental REST extraction with retry and throttling logs; warehouse keeps deal history so the pipeline can be rebuilt as of any sync date
- Beginner to intermediate: KPI cards, funnel, deal-age bands, what-if sliders for the stale threshold and forecast win probability, field parameters
- Advanced: decomposition tree, key influencers, small multiples, window functions (OFFSET, WINDOW, INDEX), ISINSCOPE share of parent, many-to-many funnel bridge
- Expert: DAX user-defined functions, calendar time intelligence group, visual calculations (running sum, moving average, rank), object-level security, mobile layout, CI checks
Stack
Power BIDAXTMDLPBIRREST APIDuckDBPython
Outcome
- 71% of the open pipeline ($3.51M of $4.97M) is stale: older than the 104 days in which 90% of deals close
- Win rate barely differs between managers (62–64%) or products, so revenue gaps come from team size and deal mix, not closing skill
- Model: 19 tables, 46 measures, 6 functions; 8 report pages, 191 visuals; both validators pass
Tags