SSM-Audit – Case Study B: Growth Steady, Foundations Eroding (4.1B)

Scope (anonymized). A growth-stage business with rising revenue. We keep classical values identical (phi((m,a)) = m) and surface creeping fragility through bounded lanes on quality and schedule. No third-party data is embedded here; full, stampable artifacts are available via the repository link below.

What we show (executive view).

  • Revenue up, stability down: composite lane slides A+ → A0 → A- while revenue m grows.
  • Quality first, then schedule: a deterioration in adjustments/reconciliation precedes on-time receipts softening.
  • Deterministic, repeatable: same knobs → same bands; batch == stream via the order-invariant fuse.

Invariants (non-negotiable).

collapse:   phi((m,a)) = m                    # value is sacred
clamp:      a := clamp(a, -1+eps_a, +1-eps_a)   with eps_a = 1e-6
fuse:       a_out := tanh( (SUM w*atanh(a)) / max(SUM w, eps_w) )  with eps_w = 1e-12
bands:      A++: a>=0.75; A+: a>=0.50; A0: a>=0.25; A-: a>=0.10; else A--
hysteresis: promote if delta_a >= +0.05; demote if delta_a <= -0.05

KPIs and lanes (declared once).

# KPI 1 — Revenue (level) — residual vs early baseline
res := Revenue - (beta0 + beta1*Time)
s   := 1.4826 * MAD(res)
a_rev := tanh( k_rev * ( 1 - |res|/s ) )

# KPI 2 — Revenue quality (two cues)
adj_ratio := adjustments / max(gross_revenue, eps_adj)
a_adj     := tanh( 1 - adj_ratio / b_adj )

d := |m_platform - m_bank|            # daily reconciliation gap
a_agree := tanh( 1 - d / b_ag )

# Rapiditiy-fused quality lane (clamp parts before fuse)
a_revq := tanh( ( w1*atanh(a_adj) + w2*atanh(a_agree) ) / max(w1+w2, 1e-12) )

# KPI 3 — Collections schedule
q_on_time := receipts_on_or_before_due / receipts_total
a_sched   := 2*q_on_time - 1

Choose modest defaults (document once): k_rev≈1.2, b_adj≈0.02, b_ag≈0.005, w1=w2=0.5, eps_adj≈1.0.

Composite stability index (one-look).

a_index := tanh( ( atanh(a_rev) + atanh(a_revq) + atanh(a_sched) ) / 3 )

Strength lens (for ranking and drift sense).

S(m,a) := m * a_rev      # strength of the revenue series itself

What the timeline shows (anonymized narrative).

  • Early: Revenue grows; a_rev healthy. Quality lanes (a_adj, a_agree) start to soften → a_revq slides from A+ toward A0.
  • Mid: a_revq reaches A0; a_sched drifts down as collections slip a bit. Composite a_index enters A0 despite rising m.
  • Late: a_sched and a_revq nudge the composite into A-. Cash-predictability risk rises though the headline remains strong.
    The lens S(m,a) weakens quarter-on-quarter—early warning without touching the number.

Actions this would have triggered (examples).

  • On quality drop (A+→A0): tighten discount/approval gates; daily reconciliation staffing; source-level analysis of adjustments.
  • On sustained A0/A-: AR policy tune-ups for slipping segments; re-baseline forecast cadence; CFO review of cash predictability.

Calculator-fast replication (no data embedded).

# Step 0 — Fix knobs once
eps_a=1e-6; eps_w=1e-12; k_rev=1.2; b_adj=0.02; b_ag=0.005; w1=w2=0.5; eps_adj=1.0

# Step 1 — Fit early baseline for revenue
fit Revenue ≈ beta0 + beta1*Time on a calm window

# Step 2 — Lanes (clamp before any atanh)
res := Revenue - (beta0 + beta1*Time)
s   := 1.4826 * MAD(res)
a_rev := clamp( tanh( k_rev * ( 1 - |res|/s ) ) )

adj_ratio := adjustments / max(gross_revenue, eps_adj)
a_adj     := clamp( tanh( 1 - adj_ratio / b_adj ) )

d := |m_platform - m_bank|
a_agree := clamp( tanh( 1 - d / b_ag ) )

a_revq := clamp( tanh( ( w1*atanh(a_adj) + w2*atanh(a_agree) ) / max(w1+w2, 1e-12) ) )

q_on_time := receipts_on_or_before_due / receipts_total
a_sched   := clamp( 2*q_on_time - 1 )

# Step 3 — Composite and strength
a_index := tanh( (atanh(a_rev) + atanh(a_revq) + atanh(a_sched)) / 3 )
S_rev   := Revenue * a_rev

# Step 4 — Bands + hysteresis gates
band := band_from(a_index) with promote>=+0.05, demote<=-0.05

# Step 5 — Order-invariance for rollups (if any)
# use the U/W fuse on lanes with defined weights

Artifacts you can obtain from the repository link (no dataset here).

  • Minimal scripts to compute a_rev, a_revq, a_sched, a_index, S(m,a).
  • A manifest with knobs and knobs_hash.
  • Optional stamped CSVs for replayable evidence.

Navigation
Previous: SSM-Audit – Case Study A: Stability Debt in a Collapsing Firm (4.1A)
Next: SSM-Audit – Case Study C: FX & Inflation Hide Margin Erosion (4.1C)


Directory of Pages
SSM-Audit – Table of Contents


Frequently asked questions
SSM-Audit Q & A


Explore Further
https://github.com/OMPSHUNYAYA/Symbolic-Mathematical-Audit

Disclaimer
Research/observation only. Not for operational, safety-critical, or legal decision-making.