Changelog
Every Board Ontology release — added, removed, promoted, and changed KPIs. Pin to a specific version using the immutable snapshots at /api/ontology/v/<version>/.
This page lists every Board Ontology release. Each release has an immutable snapshot URL — pin to it if your integration needs reproducibility. See methodology § 4 for the versioning policy.
The entries below are appended by the docs build (see
packages/docs/scripts/generate-ontology-changelog.ts) when a new
ONTOLOGY_VERSION is detected. Hand-edit only above this marker:
v1.9.0 — 2026-06-25
Calculation policy — Wave 2 (6 of 6): the 13 fundraising production: "primary" inputs.
Final batch of Wave 2 (epic #2287, PR #2320) — hardening the raw fundraising inputs (round sizing, valuations, commitments, and debt) that the fundraising and runway metrics read from.
Calculation policy added (13): fundraising.target_raise,
fundraising.total_round_size, fundraising.committed_amount,
fundraising.total_received, fundraising.minimum_close_amount,
fundraising.investors_in_pipeline, fundraising.pre_money_valuation,
fundraising.minimum_valuation, fundraising.target_valuation,
fundraising.convertible_outstanding, fundraising.venture_debt_drawn,
fundraising.venture_debt_available, fundraising.total_capital_raised.
Additive only — calculationPolicy remains optional; KPIs without one emit the
same JSON shape as before.
Snapshot: /api/ontology/v/1.9.0/index.json
v1.8.0 — 2026-06-25
Calculation policy — Wave 2 (5 of 6): the 7 product production: "primary" inputs.
Hardens the raw product/R&D inputs (epic #2287, PR #2319) — spend, headcount, scalability headroom, and roadmap allocation — that the product efficiency and capacity metrics read from.
Calculation policy added (7): product.rd_monthly_spend,
product.total_engineers, product.scalability_headroom,
product.offensive_roadmap_pct, product.defensive_roadmap_pct,
product.commitments_roadmap_pct, product.capacity_allocation_pct.
Additive only — calculationPolicy remains optional; KPIs without one emit the
same JSON shape as before.
Snapshot: /api/ontology/v/1.8.0/index.json
v1.7.0 — 2026-06-25
Calculation policy — Wave 2 (4 of 6): the 9 HR production: "primary" inputs.
Hardens the raw HR inputs (epic #2287, PR #2318) — headcount, hires and exits, open positions, and the approved headcount budget — that the headcount, attrition, and burn-per-head metrics read from.
Calculation policy added (9): hr.total_headcount, hr.total_contractors,
hr.new_hires, hr.voluntary_exits, hr.terminations, hr.open_positions,
hr.approved_headcount_budget, hr.at_risk_count, hr.performance_watch_count.
Additive only — calculationPolicy remains optional; KPIs without one emit the
same JSON shape as before.
Snapshot: /api/ontology/v/1.7.0/index.json
v1.6.0 — 2026-06-25
Calculation policy — Wave 2 (3 of 6): the 9 sales production: "primary" inputs.
Hardens the raw sales inputs (epic #2287, PR #2317) — revenue, pipeline, and closed-won/closed-lost counts and values — that the pipeline-coverage, win-rate, and forecast metrics read from.
Calculation policy added (9): sales.total_revenue, sales.pipeline_value,
sales.pipeline_deal_count, sales.new_opps_added_value,
sales.closed_won_count, sales.closed_won_value, sales.closed_lost_count,
sales.closed_lost_value, sales.quarterly_forecast.
Additive only — calculationPolicy remains optional; KPIs without one emit the
same JSON shape as before.
Snapshot: /api/ontology/v/1.6.0/index.json
v1.5.0 — 2026-06-25
Calculation policy — Wave 2 (2 of 6): the 44 finance production: "primary" inputs.
The largest batch of Wave 2 (epic #2287, PR #2315) — hardening the raw finance inputs (cash, the full operational inflow/outflow and burn ledger, every revenue and COGS line, the operating-expense payroll and tooling lines, and below-the-line items) that the P&L, burn, runway, and Rule-of-40 metrics read from.
Calculation policy added (44): finance.total_cash_in_bank,
finance.total_restricted_cash, finance.total_operational_inflow,
finance.total_operational_outflow, finance.burn_rate_actual,
finance.current_asset_adjustments, finance.current_liability_adjustments,
finance.subscription_revenue, finance.usage_revenue,
finance.services_revenue, finance.other_revenue, finance.cloud_hosting,
finance.customer_support_delivery, finance.services_delivery_costs,
finance.payment_transaction_costs, finance.third_party_data,
finance.other_cogs, finance.rd_payroll, finance.product_design_payroll,
finance.marketing_payroll, finance.sales_payroll, finance.cs_payroll,
finance.ga_payroll, finance.sales_commissions, finance.recruiting,
finance.paid_marketing, finance.events_conferences,
finance.rd_tools_software, finance.sm_tools_software,
finance.cs_tools_software, finance.software_it,
finance.legal_accounting_professional, finance.office_facilities,
finance.travel_entertainment, finance.insurance_compliance,
finance.contractors_outsourcing, finance.other_rnd, finance.other_sm,
finance.other_cs, finance.other_ga, finance.depreciation_amortization,
finance.interest_income_expense, finance.fx_gain_loss, finance.tax.
Additive only — calculationPolicy remains optional; KPIs without one emit the
same JSON shape as before.
Snapshot: /api/ontology/v/1.5.0/index.json
v1.4.0 — 2026-06-25
Calculation policy — Wave 2 (1 of 6): the 12 customers production: "primary" inputs.
First batch of Wave 2 (epic #2287, PR #2313) — hardening the raw customer inputs (customer counts, ARR at risk, average contract value, churn and additions, NPS, and the prior-quarter anchors) that the retention, concentration, and NRR/GRR metrics read from.
Calculation policy added (12): customers.total_customers,
customers.arr_at_risk, customers.avg_contract_value,
customers.customers_churned, customers.new_customers_added,
customers.nps_responses, customers.nps_score,
customers.prior_quarter_acv, customers.prior_quarter_concentration,
customers.prior_quarter_grr, customers.prior_quarter_nrr,
customers.prior_quarter_total_customers.
Additive only — calculationPolicy remains optional; KPIs without one emit the
same JSON shape as before.
Snapshot: /api/ontology/v/1.4.0/index.json
v1.3.0 — 2026-05-20
metricBasis — structured, machine-filterable measurement metadata.
Where calculationPolicy (v1.1.0–v1.2.0) is free-text guidance for an LLM,
metricBasis is a small set of enum axes a consumer can filter on
deterministically — "all point-in-time metrics", "all cohort-based
metrics", "all metrics measured on a cash basis".
New optional field metricBasis on every KPI, with five optional axes:
timeBasis—point_in_time/period_flow/trailing_windowmoneyBasis—contracted_arr/recognized_revenue/cash/bookingscohortBasis—closed_start_cohort/all_activedateBasis—go_live/signed/period_closeproduction—computed/primary(derived from other KPIs vs a raw input)
Each axis is independently optional and omitted when not meaningful — a KPI
carries only the axes that apply. Populated for all 101 numeric KPIs;
narrative (text) KPIs carry no metricBasis.
Additive — metricBasis is optional; consumers that ignore it see the same
shape as v1.2.1. The JSON Schema at /api/ontology/schema.json picks up
OntologyMetricBasis automatically (it is generated from the types).
Snapshot: /api/ontology/v/1.3.0/index.json
v1.2.1 — 2026-05-20
Correction — two KPI formulas were wrong. If you copied either formula, recompute.
An external review surfaced two formula strings (both predating the
calculationPolicy work and never re-audited) that produced incorrect
results:
sales.cac_payback_period— the formula paired a per-customer numerator (CAC, thesales.cacKPI) with an aggregate denominator (Monthly New ARR). Per-customer ÷ aggregate yields months-per-customer, not months. Corrected: the numerator is now total fully-loaded S&M spend for the period, so both terms are period aggregates.finance.runway_months— the formula usedmax(operationally_available_cash, total_unrestricted_cash), which always selects the less conservative figure when working capital is a headwind — the exact pitfall the KPI's own description warns against. Corrected: the cash basis is now stated explicitly (operationally-available at Series A+, unrestricted at early stage); nomax().
Both KPIs' calculationPolicy text was updated to match the corrected
formulas. No schema change, no KPI added or removed — patch release.
Snapshot: /api/ontology/v/1.2.1/index.json
v1.2.0 — 2026-05-20
Calculation policy — 20 more KPIs, covering the rest of the ARR waterfall, the CAC family, and cash/runway.
v1.1.0 seeded calculationPolicy on the 5 highest-leverage KPIs. v1.2.0
extends coverage to 25 total — adding the metrics most likely to be
miscomputed in agent-generated board packs after the original five.
Calculation policy added (20): finance.gross_burn_rate,
finance.net_burn_rate, finance.operationally_available_cash,
finance.runway_months, operations.rule_of_40,
sales.avg_contract_value, sales.blended_cac_ratio, sales.cac,
sales.churn_arr, sales.downgrades, sales.expansion,
sales.expansion_cac_ratio, sales.gross_margin, sales.growth_rate_yoy,
sales.new_business, sales.new_cac_ratio, sales.new_customers_added,
sales.starting_arr — plus customers.logo_retention_rate and
customers.logo_churn_rate.
Additive only — calculationPolicy remains optional; the 118 KPIs without
one emit the same JSON shape as before. The remaining KPIs gain policy
incrementally in future minor releases (see the draft pipeline at
packages/shared-types/scripts/draft-calculation-policies.ts).
Snapshot: /api/ontology/v/1.2.0/index.json
v1.1.0 — 2026-05-19
Calculation policy — first 5 KPIs gain an agent-safe execution contract.
PR #1481 (v1.0.0) gave each KPI a definition, a formula, and interpretation
guidance — enough for humans, not enough for AI agents asked to compute the
metric from a company's messy data. v1.1.0 introduces calculationPolicy, a
per-KPI block of inclusion / exclusion / required-input rules + edge cases +
validation checks + common miscomputations. Free-text strings consumed by
LLM agents at reasoning time (no DSL).
Calculation policy added (5): sales.arr, sales.carr,
sales.cac_payback_period, customers.net_revenue_retention,
customers.gross_revenue_retention.
Additive only — calculationPolicy is optional on every KPI; consumers with
no use for it can ignore it entirely. The 138 KPIs without a policy emit the
same JSON shape as in v1.0.0. Each editorial → published promotion
(epic #1415) is a
natural moment to add a policy block.
Snapshot: /api/ontology/v/1.1.0/index.json
v1.0.0 — 2026-05-19
Initial public release of the full Board Ontology.
- 143 KPIs across 7 domains: customers, finance, fundraising, hr, operations, product, sales.
- 27 anchored to third-party standards (
tier: "published") — SMSB, KBCM/Sapphire, Mercer, Carta, SaaS Capital, Retently, NVCA, YC SAFE, SHRM. - 116 I'mBoard-authored (
tier: "editorial") — visible in the JSON / MCP surface, tier-labeled so consumers can filter to the strict subset. - New: versioned response envelope
{ version, releasedAt, kpis }(breaking — the previous gated endpoint returned a flat array of 27). - New: immutable snapshots at
/api/ontology/v/1.0.0/— pin consumers here for reproducibility. - New: this changelog page.
Snapshot: /api/ontology/v/1.0.0/index.json
Methodology
Why every I'mBoard Board Ontology KPI cites its source — industry-backed vs I'mBoard-authored tiers, the versioned envelope, SMSB attribution requirements, definition lifecycle, and how disputes are handled.
Finance KPIs
Cash, revenue, burn, runway, expenses. 67 KPIs in this domain — 1 anchored to third-party standards, 66 editorial.