Measurement framework
Make reporting useful by defining what each measure can and cannot tell you.
On this page
Begin with the decision
A useful KPI supports a decision with an accountable owner. Define the question before the visualization. Separate operational measures such as handoff time from commercial measures such as qualified pipeline and realized revenue.
Specify the metric contract
Document the grain, included records, filters, currency, timezone and time window. Make the distinction between a created date, a stage transition date and a closed date explicit. Define how changes to historical source records affect reporting.
Keep attribution claims proportionate
Attribution allocates credit under a model. It does not by itself establish causality or incremental impact. State the model, available touchpoints and identity limits alongside the report. Offline activity and incomplete tracking can change interpretation.
Reconcile source and model
Track freshness, excluded records and unresolved identifiers. Compare source totals to modeled totals on a representative sample and document legitimate differences. Give report users enough information to understand when a figure is provisional.
Establish a review cadence
Combine dashboard review with operational context. A conversion change may reflect seasonality, campaign mix or a definition change. Record decisions and follow up on the chosen action, rather than adding metrics without changing behavior.
Test the grain before writing a measure
Joining opportunity records to many campaign touches can multiply the opportunity value. Establish the grain of each table before introducing a measure and test its uniqueness. The example query checks an opportunity_current model designed to hold one row per opportunity. Any returned row indicates that the expected grain has been violated and requires investigation before revenue is summed.
SELECT
opportunity_id,
COUNT(*) AS row_count
FROM opportunity_current
GROUP BY opportunity_id
HAVING COUNT(*) > 1;Choose the date role that answers the question
Created date, stage transition date and close date describe different events. A report comparing them without explicit labels can produce apparently conflicting results from correct data. Define the period, timezone, currency and historical change policy in the metric contract. Power BI modeling guidance distinguishes fact observations from the dimensions used to filter and group them.
| Question | Relevant grain | Date role |
|---|---|---|
| How much pipeline was created? | Opportunity at creation | Created date |
| How did opportunities progress? | Stage transition event | Transition date |
| What business closed? | Closed opportunity under the agreed rule | Close date |
| What was the pipeline at period end? | Opportunity snapshot | Snapshot date |
Publish confidence and reconciliation context
Show the last successful source update, unresolved identity count and material exclusions with the report. Keep the expected source totals and reconciliation results as inspectable evidence. If a refresh fails, retain the previous data with a clear timestamp rather than presenting it as current. When an attribution model is used, state its coverage and assumptions so allocated credit is not mistaken for causal impact.
Standards and documentation
Explore the protocol specifications and platform guidance for this topic.
Bring the contract into your operating environment.
Discuss an implementation