2.7.0¶
Released: TBD
Highlights¶
- A new Financial KPI dashboard answers the three questions owners actually ask — will I run out of cash, how efficiently am I running, are sales converting? — as a single query of ready-to-render tiles, each with a period-over-period trend and a health flag. No new tables; it's computed from the ledger and sales pipeline that already exist.
Added¶
financialKpis(startDate, endDate)query returning six KPI groups (profitability, liquidity, working-capital efficiency, receivables & payables, growth, sales conversion) — 23 KPIs including DSO/DPO/DIO, the cash conversion cycle, current/quick ratio, gross/net margin, revenue & net-income growth, quote win rate, and order fulfillment rate. Each tile carries avalue,format,previousValue,changePct,trend, andhealth. See Financial KPI Dashboard.- New GraphQL types
FinancialKpis,FinancialKpiGroup,FinancialKpiand enumsKpiFormat,KpiTrendDirection,KpiHealth.
Changed¶
- Nothing changed in existing behaviour — this release is purely additive.
Fixed¶
- N/A.
Migrations¶
- None. The KPIs are computed from posted ledger entries, the quote/order
report repositories, and the aged receivable/payable summaries. No new tables,
no backfill, and no new RBAC
Path(the query reusesPath.DASHBOARD, the same permission asgetNetIncomeKpi).
Frontend impact¶
- Call
financialKpis(startDate, endDate)once per dashboard load (default the range to the current month / the dashboard date picker). - Render one section per
group(group.label), one tile perkpi. - Render
kpi.valuebykpi.format:CURRENCY→ money,PERCENTAGE→value%,RATIO→value×,DAYS→value days,NUMBER→ plain. kpi.value == nullmeans "not enough data" (e.g. a ratio with a zero denominator) — render a muted dash, not0.- Show a trend chip from
kpi.trend+kpi.changePct. Colour the tile fromkpi.health(GOOD/WARNING/BAD/NEUTRAL), not from trend direction — for lower-is-better KPIs (DSO, DIO, CCC, overdue %, opex ratio) a downward trend is good andhealthalready encodes that. kpi.descriptionis a ready-made one-line tooltip.
Versioning notes¶
- Bumped with
uv run python scripts/bump_version.py 2.7.0 --changelog-stub. - Deploy order: none — additive schema only, no migration. Frontend can adopt
the query whenever it's ready; the
getNetIncomeKpitile keeps working. - This is Feature 1 of a two-part analytics push; the heavier standalone reports (cash-flow forecast, customer profitability, project P&L, AR collections effectiveness, inventory turnover / dead stock, ITBMS liability) are the planned fast-follow — see the Future additions section of the feature page.