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
mclassically; 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
mwith 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