#The challenge
Leadership had reporting, but not reporting anyone would put in front of a board without checking it first. Pipeline, quota attainment and partner performance lived in a mix of manually maintained spreadsheets, native CRM reports, and a bolt-on forecasting tool that itself needed custom reports and support. Weighted pipeline was being calculated on the wrong contract-value basis. The BI layer and the CRM disagreed on picklist values because labels had been renamed in the CRM while the API names underneath stayed put. Trended views could not exist at all because nobody was snapshotting pipeline. Forecasting was, in the internal framing, gut feel.
#The approach
Start from the audience, not the data
The revenue leader circulated the reporting requirement to the full executive distribution list before any build started, explicitly framed as 'we have used a bolt-on forecasting tool, it needs support and custom reports too, tell me what you each actually need'. That produced a requirements pass across the leadership team rather than a dashboard built to one person's taste, and it set the bar: whatever got built had to be good enough to retire a purchased tool's views.
Ship a board pack, not a pile of dashboards
Four dashboards were built as a set: executive pipeline; rep pipeline and productivity; quota attainment and rep scorecard; and partner overview. They were demoed to the executive team together, and the feedback that came back was applied as one consolidated pass across all four rather than as four independent iteration loops. A weekly sales productivity tracker that had been a hand-maintained spreadsheet was rebuilt as a live dashboard alongside them.
Fix the metric definition before the visualisation
Weighted pipeline was being computed from total contract value rather than the contract-value measure the business actually runs on and sets quotas against. The calculated field was rebuilt so every card on every dashboard used the same, correct basis. This is the unglamorous half of board reporting: a beautiful dashboard on the wrong denominator is worse than a spreadsheet, because people believe it.
Snapshot the pipeline, then backfill the history
Trended pipeline views require a snapshot process nobody had. We stood one up, then backfilled it from the operations team's archive of month-end spreadsheet pulls going back roughly two years, so period-over-period views had real history the day they launched instead of starting from an empty baseline and becoming useful a year later.
Validate every card against the CRM, and chase the variances
Each dashboard was reconciled card-by-card against the equivalent native CRM report. Closed-won matched almost exactly. Pipeline-generated showed real variance. That variance was worked rather than waved off, and a separate data-quality investigation was opened on the partner dashboard when a stakeholder said the numbers 'didn't feel accurate' and produced a specific example. Reporting credibility is built by publicly losing arguments with the source system until you stop losing them.
Give partner reporting actual definitions
The partner dashboard was specified in metric terms, not chart terms: average won deals per active partner over a filterable date range; counts of partner accounts with an agreement in place, broken out by partner type (referral, selling agent, reseller); deal counts shown alongside dollar amounts rather than instead of them; and a definitional ruling that cross-sell above a threshold counts with new business, because excluding it was systematically undercounting partner-sourced production.
Reconcile picklist parity between the CRM and the BI layer
Value labels had been renamed in the CRM at some point while the API names underneath stayed unchanged, so the BI layer and the CRM reported different values for the same field. We worked the API-name change with the internal systems team rather than patching around it in the BI tool, so the fix held rather than needing to be re-applied on every new card.
Refuse to build the waterfall first
A pipeline waterfall was the obvious next ask, and we argued against it. A large hygiene pass had just removed a substantial volume of stale pipeline, which meant any period-over-period comparison spanning that cleanup would have been actively misleading. Instead we built a forward-looking competitive-loss and competitive-analysis view anchored on a fixed clean-data baseline date, and deferred the snapshot-driven waterfall until the new stage model was stable and there was enough clean history to make the comparison mean something.
Migrate stages without losing comparability
A new pipeline stage and weighting model was rolling out underneath the reporting. We built a stage-mapping framework keyed on qualifier definitions rather than on probability percentages, plus a backfill and re-stage strategy for open opportunities, so dashboards and forecast categories flexed with the new model instead of breaking, and historical comparisons survived the change.
Put forecasting in the CRM, next to the pipeline
Native collaborative forecasting was configured for both manager and individual-contributor reporting, aligned to the quarterly cadence: rep submissions, manager roll-ups, and override capability all living in the CRM alongside the pipeline they refer to, rather than in a separate tool with its own definitions to reconcile.
Harden the object model the reporting sits on
The opportunity object carried roughly 150 fields with only about 20 actively used. We ran a full inventory and usage audit across opportunity, account and contact; mapped dependencies out to the ERP integration, product integrations, the commission tool and the BI layer; and set a phased archive, then soft-deprecate, then remove sequence so no live dashboard or integration broke mid-flight.
Make the activity data underneath it trustworthy
The email-to-CRM connector was not fully wired, so reps were logging calls by hand and most simply did not. That was fixed as a prerequisite rather than a nice-to-have, because the incoming stage model requires activity to be logged against the opportunity, and every productivity dashboard downstream is only as honest as that logging.
Rebuild the manual commit sheet as a live view
A hand-maintained revenue-and-commit spreadsheet was recreated as an auto-rolling dashboard sourced from the CRM: rolling halves anchored on the current fiscal quarter, with the trailing two quarters as booked actuals and the current plus next quarter as commit and forecast, so the view moves forward on its own instead of being rebuilt each quarter.
#Outcomes
A four-dashboard board pack is live
Executive pipeline, rep pipeline and productivity, quota attainment and rep scorecard, and partner overview were built, demoed to the executive team, and revised through a consolidated feedback pass. A weekly sales productivity tracker and a closed-lost lookup report reps had been asking for shipped alongside them.
Trended views launched with real history
Pipeline snapshotting was stood up and backfilled from roughly two years of archived month-end pulls, so period-over-period reporting worked from day one rather than accumulating usefulness over the following year.
The pipeline math was corrected, not just re-drawn
Weighted pipeline moved onto the correct contract-value basis, and CRM-to-BI picklist parity was fixed at the source. Dashboard figures were reconciled card-by-card against native CRM reports, with remaining variances treated as open items rather than rounding.
Phase two is scoped and underway, deliberately sequenced
Native forecasting, pipeline-velocity and stage-stalling analysis, competitive-loss reporting, and the opportunity-object field rationalisation are all in build or scoped. The pipeline waterfall is explicitly deferred until there is clean comparable history. This is a mid-flight engagement, not a closed one.