SSM-Audit – Arithmetic Lifts & Bands (1.4–1.5)

1.4 — Arithmetic lifts (how lanes behave with common KPIs)

  • Identity (collapse). Classical output is preserved: phi((m,a)) = m
  • Scale-free display on m. Any monotone transform applied only for display leaves the lane unchanged.
  • Sum / average. Use the canonical fusion; weights are declared (uniform or magnitude-aware). # Fusion for sums/means (order-invariant) U := SUM w_i*atanh(a_i) W := SUM w_i a_out := tanh( U / max(W, eps_w) ) # eps_w = 1e-12 (default) # Typical weights: w_i := |m_i|^gamma (gamma = 1.0), or set w_i := 1 for uniform
  • Product / ratio. Compute m classically; lift the lane with exact rapidity forms (closed forms shown for convenience). # Product (lane lift for m := f*g) a_mul := tanh( atanh(a1) + atanh(a2) ) # Equivalent closed form (after clamp) a_mul := (a1 + a2) / (1 + a1*a2) # Ratio (lane lift for m := f/g) a_div := tanh( atanh(a_f) - atanh(a_g) ) # Equivalent closed form (after clamp) a_div := (a_f - a_g) / (1 - a_f*a_g)
  • Joins. Compute m with your existing SQL. Compute lanes via the declared rules; require pre-join vs post-join parity (within epsilon) when factors provide lanes. # Conformance sketch # Pre-join: compute a_f and a_g at sources, then lift ratio via a_div # Post-join: compute f/g to get m, then recompute a_div from source lanes # Expect: |a_div_pre - a_div_post| <= epsilon
  • Group-bys / rollups. Apply the same (U,W) fusion in each group; nested aggregations preserve results because addition composes.
  • Always clamp before atanh, and re-clamp on output. a := clamp(a, -1+eps_a, +1-eps_a) # eps_a = 1e-6 (default)

1.5 — Bands and hysteresis (executive-friendly labels)

  • Default thresholds (finance-ready, gentle). 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 (anti-flicker state machine). # Promote only on meaningful improvement; demote only on clear decline promote if delta_a >= +0.05 demote if delta_a <= -0.05
  • Band-from-lane (reference logic). def band_of(a): if a >= 0.75: return "A++" if a >= 0.50: return "A+" if a >= 0.25: return "A0" if a >= 0.10: return "A-" return "A--"
  • Hysteresis application (reference logic). # prev_band is yesterday's band; delta_a := a_today - a_yday def band_with_hysteresis(prev_band, a_today, delta_a, promote=0.05, demote=-0.05): cand = band_of(a_today) if cand > prev_band and delta_a >= promote: # lexical order A-- < A- < A0 < A+ < A++ return cand if cand < prev_band and delta_a <= demote: return cand return prev_band
  • Declaration. Band edges and hysteresis live in the manifest; any change regenerates knobs_hash.

Navigation
Previous: SSM-Audit – Formal Canon (1.1–1.3)
Next: SSM-Audit – Implementation Guide (2.1–2.3)


Directory of Pages
SSM-Audit – Table of Contents


Frequently asked questions
SSM-Audit Q & A