Flip360 CRM · Live Sign in
Pre-Payment Pilot mode. Real CMs · real providers · real conversations. No money moves until Stripe live-wire (AF-9.5). Every activation carries pre_payment_pilot=1. Pilot status →
Flip360 CRM
BI · Budget vs Actuals
Period-bucketed variance against engine truth
Sprint C · Deploy 2.12. Snapshots, not live recalc. Append-only actuals_snapshots is the auditable record. Variance is computed pure-functionally via src/engine/variance.ts. Read-only UI — writes happen via the engine.

Periods

Showing FY26 quarters + annual rollup. Click a period to load its Budget vs Actuals (panel 3).

FY26Q1 closed FY26Q2 closed FY26Q3 open FY26Q4 open FY26 full year
Active period: FY26 Q4 (Apr-Jun 2026) · 2026-04-01 → 2026-06-30 · open

KPI definitions (the taxonomy)

12 KPIs defined. Each has a unit, aggregation method, and target direction. Higher-is-better KPIs use min_pct bands; lower-is-better use max_pct bands.

Key Name Unit Aggregation Direction
commission_paid_cents Commission paid
Total commission paid to partners and members through the engine, in cents. Sum of ledger_entries.amount_cents where status=POSTED bucketed by accrued_at.
CENTS SUM HIGHER
deals_settled Deals settled
Count of deals that reached the H3b_SETTLED handshake within the period.
COUNT COUNT HIGHER
chain_integrity_avg_pct Chain integrity (avg %)
Average percentage of expected referrer chain links that resolved cleanly across settled deals. 100% = every link in every chain validated; <100% = at least one stub/unknown referrer.
PCT AVG HIGHER
active_partners Active partners
Distinct count of partner contacts who triggered at least one ledger entry in the period.
COUNT DCT HIGHER
clawback_rate_pct Clawback rate
Percentage of commission paid that was subsequently clawed back. 0% = perfect; rising values indicate quality issues.
PCT AVG LOWER
time_to_settle_days Time to settle (days)
Average days from H1_INTENT to H3b_SETTLED across deals settled in period. Lower is better — measures marketplace velocity.
DAYS AVG LOWER
fy31_exit_valuation_cents FY31 Exit Valuation
Top of the strategy tree. Modelled at $248M low scenario per investors.tsx ASSUMPTIONS. Composite of FY31 revenue + ARR multiple + marketplace defensibility.
CENTS SUM HIGHER
fy31_revenue_cents FY31 Revenue
Annual revenue at end of FY31, modelled at $42M from 175k members. Rolls up active members × revenue-per-member × deals-settled-velocity.
CENTS SUM HIGHER
fy26_operating_plan_cents FY26 Operating Plan
FY26 revenue target ($100k commission flow) — the proof the engine works at small scale before scaling to FY31. Rolls up commission paid + active partners + chain integrity.
CENTS SUM HIGHER
marketplace_trust_score Marketplace Trust Score
Composite trust health: weighted average of chain integrity (positive), clawback rate (inverted), and time-to-settle (inverted). The Flip360 USP made measurable.
PCT AVG HIGHER
members_active Active members
Distinct member contacts who logged in or transacted within the last 90 days. Drives FY31 revenue trajectory (175k target).
COUNT DCT HIGHER
revenue_per_member_cents Revenue per active member
Trailing-90-day commission flow / active members. Drives FY31 revenue at scale.
CENTS AVG HIGHER

Budget vs Actuals · FY26Q4

Latest snapshot per KPI for the selected period. RAG status from variance_rules. Reasoning line under each row.

KPI Budget Actual Variance Variance % Status
Commission paid
commission_paid_cents
$50,000.00 No data
Deals settled
deals_settled
80 No data
Chain integrity (avg %)
chain_integrity_avg_pct
98% No data
Active partners
active_partners
40 No data
Clawback rate
clawback_rate_pct
5% No data
Time to settle (days)
time_to_settle_days
30 days No data
FY31 Exit Valuation
fy31_exit_valuation_cents
No data
FY31 Revenue
fy31_revenue_cents
No data
FY26 Operating Plan
fy26_operating_plan_cents
No data
Marketplace Trust Score
marketplace_trust_score
No data
Active members
members_active
No data
Revenue per active member
revenue_per_member_cents
No data
Engine truth check: live SUM of ledger_entries.amount_cents (POSTED) within FY26Q4 (2026-04-01 → 2026-06-30) = $0.00. Compare to the snapshot row above. Drift indicates a missing snapshot capture or a recent ledger entry not yet snapshotted.

Variance heatmap · FY26 quarters

% attainment per KPI per quarter. Colour = RAG band. Open quarters with no actuals snapshot show as grey.

KPI \ Period FY26Q1FY26Q2FY26Q3 (open)FY26Q4 (open)
Commission paid
commission_paid_cents
84% 99% 1% No data
Deals settled
deals_settled
80% 96% No data No data
Chain integrity (avg %)
chain_integrity_avg_pct
101% 99% No data No data
Active partners
active_partners
88% 93% No data No data
Clawback rate
clawback_rate_pct
60% 80% No data No data
Time to settle (days)
time_to_settle_days
107% 105% No data No data
FY31 Exit Valuation
fy31_exit_valuation_cents
No data No data No data No data
FY31 Revenue
fy31_revenue_cents
No data No data No data No data
FY26 Operating Plan
fy26_operating_plan_cents
No data No data No data No data
Marketplace Trust Score
marketplace_trust_score
No data No data No data No data
Active members
members_active
No data No data No data No data
Revenue per active member
revenue_per_member_cents
No data No data No data No data

KPI trend · Time to settle (days)

Commission paidDeals settledChain integrity (avg %)Active partnersClawback rateTime to settle (days)FY31 Exit ValuationFY31 RevenueFY26 Operating PlanMarketplace Trust ScoreActive membersRevenue per active member
FY26Q1
B: 45 days
A: 48 days
FY26Q2
B: 40 days
A: 42 days
FY26Q3
B: 35 days
A: —
FY26Q4
B: 30 days
A: —
Budget Actual (RAG-coloured)

Direction: LOWER · unit: DAYS · aggregation: AVG

How this layer works

  • Snapshots, not live recalc. actuals_snapshots is append-only. Once a period closes, its actuals don't change retroactively if a ledger entry later gets corrected.
  • Period-bucketed. Engine output (ledger entries, stage moves) gets grouped by financial_periods via accrued_at / stage_changed_at.
  • Pure variance engine. src/engine/variance.ts takes (budget, actual, rule) → returns variance + RAG. No I/O.
  • UI is read-only. Writes happen via the engine (e.g. computeCommissionPaidActualForPeriod) or via a separate snapshot action — never from this page.
  • Schema lives in migrations/0018_bi_layer.sql. 5 tables: financial_periods, kpi_definitions, budgets, actuals_snapshots, variance_rules.
Matt's page