Operations / Field guide
Why two revenue dashboards disagree
Two dashboards can be arithmetically correct and give different answers. Before investigating the chart, decide exactly what event the number represents.
2XD Studio · · 2 min read

Pick one transaction and follow it
Imagine a sale booked on March 30, invoiced on April 2, and partially refunded on April 15. A bookings report, an invoice report, and a cash report will treat it differently. Write down which date, amount, and status feed each dashboard before trying to reconcile monthly totals.
Make the grain visible
Joining invoices to line items can repeat the invoice total once per line. Joining owners to accounts can exclude records with no owner. Count distinct source records before and after each join. Then compare a handful of IDs rather than staring at the difference between two aggregates.
Publish a short metric contract
Include the event, time zone, date field, exclusions, treatment of refunds, and last refresh. Link the chart to a drill-down that uses the same filters. An AI-generated explanation should cite those definitions and avoid attributing a drop to demand when a source feed simply stopped updating.
Run a reconciliation exercise
An invoice worth $600 with three line items appears as $1,800 after a one-to-many join. Dropping duplicate amounts is unsafe because two real invoices can both total $600. Aggregate by the intended record key first, then join to dimensions at the right grain. Verify totals with both a multi-line invoice and two different invoices of equal value.
Reader questions
Should all teams use one revenue number?
Use different measures when the decisions differ. Give them names such as booked revenue and collected cash so the distinction travels with the chart.
What is the fastest first check?
Compare refresh timestamps, reporting windows, and the number of underlying records. These checks often narrow the problem before deeper reconciliation.