How an SSMT stream becomes trusted, auditable infrastructure.
1.9 Emitted record (Full SSMT)
This is the portable object every system downstream should consume. It is intentionally self-describing.
{
"timestamp_utc": "...",
"e_T": <number>,
"a_T": <number, optional>, # bounded alignment dial
"a_phase": <number, optional>, # single-pivot phase dial
"a_phase_fused": <number, optional>, # fused multi-pivot dial (if used)
"Q_phase": <number, optional>, # soft hysteresis memory
"T_m_tag": "<string, optional>", # label if using single pivot
"T_m_tag_list": ["<string>", ...], # labels if using fused pivots
"manifest_id": "<string>",
"health": {
"range_ok": true/false,
"drift": true/false,
"sensor_ok": true/false
},
"oor": false | "below_min" | "above_max",
"uncertainty": { # optional
"e_T_std": <number, optional>,
"a_T_std": <number, optional>,
"method": "delta"
}
}
Read this slowly:
timestamp_utc
ISO-8601 UTC withZ. All streams must timestamp in UTC, not “local device time.”e_T
The core contrast, unitless, zero-centric atT_ref. This is mandatory.a_T(optional)
A bounded stress / alignment dial in (-1,+1). Only emit this if you are in a “bounded pooling / ML prior / fleet alignment” world. If you’re Lite, you probably skip it.a_phasevsa_phase_fuseda_phase: one pivot (“freeze line”, “warp temp”, “human skin burn limit”, etc.).a_phase_fused: multi-pivot survival dial that blends several pivots into one safety posture.
You typically emit exactly one of these, not both.
Q_phase
Memory dial (0..1). This is “how long we’ve effectively been on the risky side.” It suppresses flicker and tells you exposure, not just momentary spike.T_m_tag/T_m_tag_list
Human-auditable labels like"freeze","warp","crew_skin". Auditors love this. Keeps policy explainable.manifest_id
This is critical. This ties every reading back to the exact recipe: lens choice, pivots, ranges, clamps, etc. The manifest is how you prove you didn’t move the goalposts after an incident.health
Minimal truth flags:range_ok: did we stay within declaredT_valid_range_K?sensor_ok: is the reading physically valid under the declared lens and anchors? (Example: iflens = "log"andT_K <= 0, that’s not physically valid →sensor_ok := false.)drift: optional flag saying “this sensor looks like it’s drifting / miscalibrated.”
oor
Eitherfalse, or"below_min", or"above_max". This lets downstream logic acknowledge “we were literally below safe declared range” without guessing.uncertainty(optional)
Only include this if you are actually tracking noise (for example, standard deviation over a recent sliding window). If you emit faked numbers here, your audit story collapses.
Machine logic rule (non-negotiable):
- Downstream machine rules should consume only
e_T, (and if relevant)a_phaseora_phase_fused, andQ_phase. - User-facing dashboards can still render °C/°F for comfort, but those displays do not feed back into logic.
MQTT / telemetry example (copy/paste friendly):
topic: ssmt/{station_id}/s1
payload:
{
"timestamp_utc": "2025-09-24T12:00:00Z",
"e_T": 0.0331,
"a_phase": -0.12,
"Q_phase": 0.31,
"uncertainty": { "e_T_std": 0.004, "method": "delta" },
"manifest_id": "SSMT-CITY-2025-09-001",
"health": { "range_ok": true, "sensor_ok": true, "drift": false },
"oor": false
}
Notes:
- ASCII JSON only.
- You don’t need to ship raw °C/°F in the machine payload. If you want to show °C to a human later, you can regenerate it from local context. Keep the machine contract clean.
1.10 Commissioning checklist (must-do before first byte)
Commissioning = freezing the contract. After this, you are auditable.
You must decide and publish:
- Lens and anchors
- Pick one lens (
log,linear,beta,kBT,hybrid,qlog, orsmooth_hybrid). - Declare
T_ref. - Declare knobs (
DeltaT,E_unit,tau,alpha,width). - These must not silently change mid-run.
- Pick one lens (
- Phase pivots (if any)
- For each pivot:
{ tag, T_m, DeltaT_m, c_m }. - Publish hysteresis knobs:
k_side,rho. - If you emit a fused dial, also publish the ordered pivot tag list.
- For each pivot:
- Guards and clamps
eps_TK(Kelvin floor).eps_a(alignment clamp so|a| <= 1 - eps_a).eps_w(pooling denominator guard).T_valid_range_K = [T_min, T_max].
- Health flags
- Decide if you emit
range_ok,sensor_ok,drift. - Say what “drift” means.
- Decide if you emit
- Emission tier
- S1 (Lite): only
e_T. - S2: add
a_phase+Q_phase. - S3: add
a_T, pooling, etc. - Declare your tier. Don’t toggle ad hoc.
- S1 (Lite): only
- Manifest ID
- Assign
manifest_id. - Every record must carry it so anyone can replay the math and prove you didn’t move thresholds.
- Assign
- UTC timestamp discipline
- ISO-8601
timestamp_utcwithZ. No “local time.”
- ISO-8601
- (If relevant) Privacy / gating hooks
- If you quantize or noise
e_T, publish how. - If you drive an environment gate (
g_t) downstream, publish that this gate exists and where its knobs live.
- If you quantize or noise
Why this matters:
After commissioning, “what did this alert mean?” is answerable without begging your ops lead. That’s the difference between “neat math” and “regulator-ready.”
1.11 Optional — lens_mode = “auto” (resolve once, not per packet)
Extreme fleets get one concession: you can auto-select the lens at commissioning, then lock it.
Policy sketch:
lens_mode := "auto"
if min(T_K) <= T_qsafe:
lens := "qlog"
elif span_K >= 500:
lens := "log"
elif min(T_K) < 100:
lens := "beta"
elif span_K <= 50:
lens := "linear"
else:
lens := "hybrid"
Where:
span_K := max(T_K) - min(T_K)over your commissioning window.T_qsafeis a published guard (example: 1.0 K) for near-zero regimes.
Rules:
- You document
lens_mode := "auto"and the exact decision logic. - You also publish the resolved lens (for example
"log") and its knobs in the manifest. - You do not re-run this decision every minute. No “we quietly switched to linear for this alarm.” That kills auditability.
Why “auto” exists:
- Cryogenic → desert → re-entry is real.
- Manual guessing is brittle.
- Silent per-packet switching is unacceptable.
This gives you flexibility without letting policy drift in the dark.
Where we are now
You now have:
- How to encode temperature into
e_T. - How to express survivability and stress (a_phase, a_T, Q_phase).
- How to pool multiple sensors safely.
- The canonical emitted record.
- The commissioning ritual that freezes meaning.
- The one-time “auto lens” rule for extreme deployments.
This is enough to run SSMT in production and defend it.
Navigation
Previous: SSMT – Pooling Sensors, Declaring Valid Ranges, and Staying Honest (1.6.x–1.8)
Next: SSMT – The Manifest: One Tiny Contract Instead of 1,000 Ambiguous Rules (2.0–2.3)
Directory of Pages
SSMT – Table of Contents