Intent boundary: This is a formula, lineage, and reporting-control guide. It does not compare vendor reporting packages, prescribe universal performance targets, or replace accounting advice.
The evidence chain behind a useful KPI
Start with the management action
A KPI earns space only when a named owner will investigate, coach, schedule, price, collect, or redesign something in response.
Lock numerator, denominator, and cohort
Status, timestamp, inclusion, exclusion, attribution, currency, tax, refund, and cancellation rules must be explicit before two reports are compared.
Capture the operational source consistently
Calls, leads, estimates, visits, time, line items, completion codes, payments, and agreement events need required fields and reliable timestamps.
Aggregate without hiding the record
Filters, role permissions, time zones, backdating, and report refresh timing should be visible. Managers need to move from total to exception to source.
Explain movement before setting a target
Establish the business baseline, segment it by workflow and market, investigate data quality, then choose a target and review cadence.
A minimum KPI stack for a field-service operator
The metric dictionary every report should carry
| Dictionary field | Required answer | Reproduction test | Failure signal |
|---|---|---|---|
| Purpose + owner | Which decision changes, and who acts? | Ask the owner to name the next action for a high or low value | The metric is decorative or has multiple owners |
| Numerator + denominator | Exact record states and mathematical operation | Recalculate one period from exported source rows | The dashboard cannot be reproduced |
| Cohort + timestamps | Which event places a record in the period? | Create in one month and approve, cancel, or refund in another | Results change meaning across date filters |
| Inclusions + exclusions | Canceled, duplicate, warranty, no-charge, tax, tips, refunds, and unclassified treatment | Insert one example of every exception | Excluded records are invisible or undocumented |
| Attribution | Call source, salesperson, technician, team, branch, property, and service category rules | Reassign a shared job and inspect credit | One record is credited twice or to the wrong role |
| Drill-down + correction | Source rows, permission path, edit system, and refresh latency | Correct one source field and time the report update | The total changes without an auditable reason |
Direct-test protocol: reproduce the report before trusting it
Create a ten-record control set
Include won, lost, open, canceled, duplicate, refunded, warranty, recurring, multi-tech, and cross-period work with known values.
Pass when: Expected totals and formulas are written before data entry.Test cohort movement
Create an estimate in one period, approve it in the next, and compare creation-date, decision-date, and completion-date views.
Pass when: The interface names the cohort or the buyer can document it unambiguously.Reproduce the formula
Export the contributing records and independently calculate count, value, rate, average, median, and margin where supported.
Pass when: The result matches within a documented rounding and refresh tolerance.Stress permissions and corrections
View the report as admin, manager, dispatcher, and field user; then backdate, reassign, refund, and correct one source record.
Pass when: Visibility and recalculation follow a predictable policy with an audit trail.Run the management meeting
Give the dashboard to the future owner and require a drill from signal to segment to record to assigned action.
Pass when: The meeting produces an owned exception list without a shadow spreadsheet.Stop treating ambiguity as capability.
- A rate is shown without its denominator or eligible population
- The same KPI name produces different values across reports without a reconciliation note
- Averages hide skewed job values when no median or distribution is available
- Managers cannot see which records were excluded
- Permissions alter a total without making the visibility boundary obvious
- The vendor demo uses polished sample data but cannot export the contributing rows
Baseline the system, then improve it.
- Required source fields completed
- KPIs reproduced from export without adjustment
- Unclassified or excluded records by metric
- Time from dashboard signal to source exception
- Corrections that change a closed reporting period
- Management actions closed by the next review