0A — Introduction (purpose & scope)
Purpose. Give every finance KPI a simple, reliable way to say how sturdy it is today — without changing the number itself. In SSM-Audit, each metric is carried as a pair x := (m,a), where m is the classical value you already report and a in (-1,+1) is a bounded stability lane. By design, the classical number never changes: collapse parity phi((m,a)) = m. Executives see the same m, plus a clear band (A++/A+/A0/A-/A--) that answers: is this number built on rock or sand?
Disclosure posture. The stability lane is a supplemental, non-GAAP risk indicator published beside existing KPIs; ledgers and controls remain unchanged; no PII is carried in stamps or manifests.
Scope (initial modules).
- AR / Collections health. Publish the lane beside
m := collected/issuedto expose long-tail weakness early. - Refunds / Chargebacks reconciliation. Show daily agreement quality between platform and bank, not just month-end ties.
- Forecast vs Actuals stability. Reveal jitter in otherwise on-plan series so noise is fixed before it becomes misses.
Future modules (credit, revenue quality, cash predictability, opex control, cohort durability) inherit the same semantics.
Object model (what changes, what does not).
- Numbers stay numbers:
phi((m,a)) = m. Ledgers, SQL, joins, and reports remain intact. - Stability is bounded and comparable:
a in (-1,+1)enables sort, band, and trend without scale tricks. - Composition is disciplined: lanes combine with declared, deterministic rules so
batch == stream == shuffledwithin a fixed epsilon. - Bands are plain labels:
A++/A+/A0/A-/A--convertainto action without math in the room.
What you publish (minimal). For each KPI row/file, add: a (stability lane), band (A++/A+/A0/A-/A--), knobs_hash (declared settings fingerprint), build_id (run tag), and optionally a stamp (tamper-evident replay line):
SSMCLOCK1|iso_utc|rasi_idx|theta_deg|sha256(file)|chain
# chain bootstrap and step
chain_0 := "0"*64
chain_k := sha256( ascii(chain_{k-1} + "|" + stamp_core_k) )
Adoption path (read-only first).
- Publish the lane beside 3-5 core KPIs; no thresholds change on day one.
- Add bands to stop flicker and focus attention (
A++/A+/A0/A-/A--with gentle hysteresis). - Stamp daily exports (optional) for replayable provenance.
- Run conformance checks so teams trust that
batch == stream == shuffledand thatphi((m,a)) = mholds through every ETL hop.
Time to value. Hours to pilot with CSVs; two weeks to feel fewer false alarms, calmer reviews, and earlier course corrections — with the exact same reported numbers.
0B — What people see, what we lock (defaults)
On every KPI you already track, publish one extra lane and one label.
- Lane (inline):
x := (m,a)witha in (-1,+1)and collapse parityphi((m,a)) = m. - Label (band):
A++/A+/A0/A-/A--— a plain read on how sturdy today’s number is. - Dashboard: keep the usual line for
m; show a thin underlay or a side badge foraand its band.
Recommended band thresholds (finance-ready, gentle by default).
A++: a>=0.75
A+ : 0.50<=a<0.75
A0 : 0.25<=a<0.50
A- : 0.10<=a<0.25
A--: a<0.10
# Hysteresis
promote only if delta_a >= 0.05
demote only if delta_a <= -0.05
Minimal row fields to add (read-only pilot).
time, kpi, m, a, band, knobs_hash, build_id, stamp
# m = your classical value (unchanged by SSM-Audit)
# a = stability lane in (-1,+1)
# band = A++/A+/A0/A-/A-- from thresholds above
# knobs_hash = fingerprint of declared settings
# build_id = short tag for the run
# stamp (optional) = one-line ASCII provenance for replay:
# "SSMCLOCK1|iso_utc|rasi_idx|theta_deg|sha256(file)|chain"
Minimal manifest (plain ASCII).
[SSM_AUDIT_MANIFEST]
schema_version = 1
build_id = <short tag>
date_utc = <YYYY-MM-DD>
# Core safety
eps_a = 1e-6
eps_w = 1e-12
gamma = 1.0
division_policy = strict
# Bands and hysteresis
bands = {A++=0.75, A+=0.50, A0=0.25, A-=0.10, A--=-inf}
hysteresis = {promote=0.05, demote=0.05}
# Mapper declarations (examples; pin what you use)
mappings = { AR:..., Refunds:..., Forecast:... }
# Deterministic fingerprint (computed separately)
conformance_checksum = <hex>
Day-one scope (start with 3–5 line items; numbers stay identical).
- AR / Collections: publish the lane beside
m := collected/issued. - Refunds / Chargebacks: publish agreement quality between platform and bank (daily).
- Forecast vs Actuals: publish a lane that reflects on-plan vs jitter.
What changes in meetings (and what does not).
- Does not change: the number you report (
m) and the SQL/joins that produce it. - Does change: you now have a bounded, sortable
aand a band that expose stability debt early — so course corrections happen before surprises.
Navigation
Previous: SSM-Audit – Executive Primer (00)
Next: SSM-Audit – Two-Week Pilot (0C)
Directory of Pages
SSM-Audit – Table of Contents
Frequently asked questions
SSM-Audit – Q & A