# Commercial KPI Framework

Version 1.0 · prepared as a bounded, non-cyber documentation deliverable

## Purpose and operating rules

This framework gives a small company one consistent way to measure growth,
delivery quality, product health, operating efficiency, and cost discipline.
Each KPI is evaluated for a reporting period (normally one calendar month,
with weekly operational readouts where useful). A value is only considered
decision-ready when its source, period, unit, and calculation inputs are
recorded. Do not mix bookings, recognized revenue, cash receipts, and
forecast values in one series.

The five modules are:

1. **Company** — financial and customer outcomes.
2. **Team** — capacity, predictability, and quality of delivery.
3. **Product** — adoption, retention, and product quality.
4. **Process** — flow efficiency and service reliability.
5. **Cost** — unit economics and controllable spend.

Targets below are starting points, not universal benchmarks. Set a baseline
from the last three complete periods, then revise targets only at a documented
review. A KPI should have one owner, one canonical source, and one explicit
decision it informs.

## KPI catalog

Direction `higher` means larger values are preferred; `lower` means smaller
values are preferred; `band` means the target is an interval rather than a
monotonic maximum or minimum.

### Company module

| ID | KPI | Definition and formula | Unit / direction | Starting target | Cadence | Canonical source |
|---|---|---|---|---|---|---|
| `company.revenue` | Recognized revenue | Sum of revenue recognized in the period | USD / higher | ≥ 5% month-over-month growth | monthly | accounting ledger |
| `company.gross_margin` | Gross margin | `(revenue - direct_costs) / revenue × 100` | percent / higher | ≥ 60% | monthly | accounting ledger |
| `company.cash_runway` | Cash runway | `unrestricted_cash / average_monthly_cash_burn` | months / higher | ≥ 6 months | monthly | treasury + ledger |
| `company.nrr` | Net revenue retention | `(opening_recurring_revenue + expansion - contraction - churn) / opening_recurring_revenue × 100` | percent / higher | ≥ 100% | monthly | billing system |
| `company.concentration` | Largest-customer concentration | `revenue_from_largest_customer / total_revenue × 100` | percent / lower | ≤ 30% | monthly | billing system |

### Team module

| ID | KPI | Definition and formula | Unit / direction | Starting target | Cadence | Canonical source |
|---|---|---|---|---|---|---|
| `team.commitment_accuracy` | Commitment accuracy | `completed_committed_items / committed_items × 100` | percent / higher | ≥ 85% | weekly | delivery tracker |
| `team.cycle_time` | Delivery cycle time | Median hours from work start to accepted delivery | hours / lower | ≤ 72 hours | weekly | delivery tracker |
| `team.utilization` | Productive utilization | `delivery_hours / available_work_hours × 100` | percent / band | 65–85% | weekly | time records |
| `team.first_pass_acceptance` | First-pass acceptance | `deliveries_accepted_without_revision / total_deliveries × 100` | percent / higher | ≥ 90% | weekly | review log |
| `team.critical_load` | Critical-person load | `critical_work_items_with_one_owner / critical_work_items × 100` | percent / lower | ≤ 20% | weekly | ownership register |

### Product module

| ID | KPI | Definition and formula | Unit / direction | Starting target | Cadence | Canonical source |
|---|---|---|---|---|---|---|
| `product.activation` | Activation rate | `new_accounts_reaching_activation_event / new_accounts × 100` | percent / higher | ≥ 40% | weekly | product analytics |
| `product.active_accounts` | Weekly active accounts | Count of distinct accounts completing the core action in seven days | count / higher | ≥ 5% growth monthly | weekly | product analytics |
| `product.retention_30d` | 30-day retention | `cohort_accounts_active_on_day_30 / cohort_accounts × 100` | percent / higher | ≥ 25% | monthly | product analytics |
| `product.feature_adoption` | Core-feature adoption | `active_accounts_using_core_feature / active_accounts × 100` | percent / higher | ≥ 50% | weekly | event log |
| `product.escape_rate` | Defect escape rate | `customer_found_defects / (customer_found_defects + pre-release_defects) × 100` | percent / lower | ≤ 5% | release | issue tracker |

### Process module

| ID | KPI | Definition and formula | Unit / direction | Starting target | Cadence | Canonical source |
|---|---|---|---|---|---|---|
| `process.lead_time` | Lead time for change | Median hours from approved work to production release | hours / lower | ≤ 120 hours | weekly | version-control/release log |
| `process.throughput` | Throughput | Count of accepted work items completed in the period | count / higher | baseline + 5% monthly | weekly | delivery tracker |
| `process.rework` | Rework rate | `reopened_or_revised_items / accepted_items × 100` | percent / lower | ≤ 10% | weekly | review log |
| `process.sla` | SLA attainment | `requests_within_promised_time / eligible_requests × 100` | percent / higher | ≥ 95% | weekly | support/ticket system |
| `process.automation` | Automation coverage | `eligible_repeatable_steps_automated / eligible_repeatable_steps × 100` | percent / higher | ≥ 50% | monthly | process register |

### Cost module

| ID | KPI | Definition and formula | Unit / direction | Starting target | Cadence | Canonical source |
|---|---|---|---|---|---|---|
| `cost.unit_service` | Cost per delivered service | `direct_delivery_cost / accepted_deliveries` | USD / lower | ≤ 25% of price | monthly | ledger + delivery tracker |
| `cost.cloud_ratio` | Cloud cost ratio | `cloud_infrastructure_cost / recognized_revenue × 100` | percent / lower | ≤ 10% | monthly | cloud billing + ledger |
| `cost.cac_payback` | CAC payback period | `customer_acquisition_cost / monthly_gross_profit_per_customer` | months / lower | ≤ 12 months | monthly | marketing + ledger |
| `cost.vendor_concentration` | Vendor concentration | `top_three_vendor_spend / total_vendor_spend × 100` | percent / lower | ≤ 70% | monthly | accounts payable |
| `cost.contribution_margin` | Unit contribution margin | `(unit_price - variable_unit_cost) / unit_price × 100` | percent / higher | ≥ 50% | monthly | pricing + cost ledger |

## Measurement contract

Every published KPI record should include:

- a stable `id` matching the catalog;
- the reporting `period` and an ISO-8601 `measuredAt` timestamp;
- the numeric `value`, `unit`, and `direction`;
- the formula version and source reference used to calculate it;
- the target and whether the target was met; and
- a short caveat when data is incomplete, estimated, or not comparable with
  the prior period.

Missing data must remain missing; do not substitute zero. If a denominator is
zero, report `null` with a caveat rather than manufacturing a percentage.
Currency values must name the currency, and percentages are stored as the
human-readable number (`63.5` means 63.5%, not 0.635).

## CBI scoring methodology

CBI means **Composite Business Index**. It is a portfolio score for a KPI
record, not a claim that the underlying business result is good. Score each
KPI from 0 to 100 using four independently recorded components:

1. **Attainment (50%)** — distance toward the target. For a `higher` KPI,
   `min(100, 100 × value / target)`; for a `lower` KPI,
   `min(100, 100 × target / value)`; for a `band` KPI, 100 inside the band and
   a linear reduction toward 0 outside it. If the denominator is zero or the
   target is unavailable, attainment is `null` and the CBI is not scored.
2. **Business impact (20%)** — owner-rated 0–100 score recorded with a written
   rationale. Use 100 only when the KPI directly controls a material decision.
3. **Coverage (15%)** — `valid_expected_observations / expected_observations ×
   100` for the period, capped at 100.
4. **Integrity (15%)** — source freshness, schema validity, and reconciliation
   checks, scored 0–100 by the validation job.

When all components exist:

```text
CBI = 0.50 × attainment
    + 0.20 × business_impact
    + 0.15 × coverage
    + 0.15 × integrity
```

Round only the displayed score to one decimal place; retain component values
for auditability. Portfolio CBI is the weighted mean of scored KPIs, weighted
by `business_impact` (not by missing or unscored rows). A score below 60 is a
review signal, 60–79 is monitor, and 80–100 is on-track evidence. CBI never
replaces financial controls or an owner’s judgment.

## Review routine

1. At period close, freeze the source extracts and compute KPI records.
2. Validate each record against `kpi_schema.json`.
3. Reconcile revenue and cost totals to the accounting ledger.
4. Record explanations for target misses and any changed formula version.
5. Review the portfolio CBI, choose no more than three corrective actions,
   assign owners and due dates, and retain the prior score for comparison.

