Canonical Specification — Extended Baseline Version
(FROZEN)
0. PURPOSE AND SCOPE
CTM Process v1.0 defines the foundational civic-stress processing pipeline for the Cortex Translation Methodology.
It is a fully deterministic, feed-forward model that translates real-world events into structured civic-stress signals.
v1.0 establishes the 8-step pipeline, baseline mathematical structures, and minimal system dynamics used in all subsequent versions.
This version introduces:
- Load accumulation
- Decay
- Smoothing
- Drift (early form)
- Threshold evaluation
- Basic ShockMemory
- Classification logic
v1.0 does not include:
- governance modifiers
- friction metrics
- composite metrics
- feedback loops
- CFC
- domain sensitivity
- oscillation metrics
- recursive behavior of any kind
These appear only in v1.1 and v1.2.
1. MODEL INPUTS AND DEFINITIONS
CTM consumes upstream signal metrics (e.g., persistence, diversity, load) that are defined and calculated by CT Monitor. CTM does not define or compute these metrics.
1.1 Domains
The system tracks stress across a fixed set of civic domains:
- Executive
- Legislature
- Judiciary
- Norms / Institutions
- Security
- Economy
- Media / Information
- Civic Culture
Each domain maintains:
- Load_i(t): numeric load at time t
- Threshold_i: baseline stress threshold
- DriftRate_i: rate at which threshold shifts over time
- Stability_i: resistance to threshold drift
- ShockMemory_i: memory of past shocks
1.2 Stress Vectors
Each event produces stress contributions for one or more domains.
Each contribution j to domain i has:
- RawImpact_j
- Polarity_j (positive / negative)
- Weight_j
EffectiveImpact_j is computed in Step 3.
1.3 Time Indexing
- t = current timestep
- t+1 = next timestep
No recursive dependencies exist in v1.0.
2. CTM PROCESS PIPELINE (8 STEPS)
The following steps must be executed in order for each event.
STEP 1 — Event Parsing
The event is translated into:
- stress vector components
- domain targets
- polarity of each stress component
- magnitude / weight
- contextual tags
Output: ParsedEvent.
STEP 2 — Domain Identification
Each stress vector component is mapped to one or more domains.
Output: DomainStressMap_i for each domain i.
STEP 3 — Effective Stress Computation
For each stress component j targeting domain i:
EffectiveImpact_j(t) = RawImpact_j * Weight_j
No modifiers yet exist in v1.0.
For domain i:
StressTerm_i(t) = Σ_j EffectiveImpact_j(t)
Output: StressTerm_i(t)
STEP 4 — Load Update (Baseline Model)
Load is updated using load persistence (decay) and current stress.
4.1 Decay
Each domain decays toward zero at a domain-specific rate:
DecayRate_i(t) = 1 - BaseDecay_i
Where:
- BaseDecay_i ∈ (0, 1) is a fixed domain parameter.
4.2 Load Accumulation
Load_i(t+1) = Load_i(t) * DecayRate_i(t)+ StressTerm_i(t)
No modifiers apply in v1.0.
STEP 5 — Threshold Evaluation
Threshold_i is the baseline domain stress limit.
We compute:
EffectiveThreshold_i(t) = Threshold_i + Drift_i(t)
Then determine state:
If Load_i(t+1) < 0.5 * EffectiveThreshold_i → “Normal”
If Load_i(t+1) < EffectiveThreshold_i → “Strained”
If Load_i(t+1) < 1.5 * EffectiveThreshold_i → “Crisis”
Else → “Breakdown”
State_i(t+1) = one of {Normal, Strained, Crisis, Breakdown}
STEP 6 — Drift (Early Form)
Threshold drift reflects long-term structural stresses.
Drift_i(t+1) = Drift_i(t)+ DriftRate_i * (Load_i(t+1) - EffectiveThreshold_i(t)) * Stability_i
Where:
- DriftRate_i is small (e.g., 0.01)
- Stability_i ∈ [0,1] controls how strongly thresholds move
No smoothing or feedback influences drift in v1.0.
STEP 7 — Shock Memory (Early Form)
ShockMemory integrates severity of past events.
ShockMemory_i(t+1) = ShockMemory_i(t) * MemoryDecay_i+ max(0, Load_i(t+1) - EffectiveThreshold_i(t))
MemoryDecay_i ∈ (0,1).
No cross-domain memory exists yet.
STEP 8 — Classification
Domains are aggregated to determine the overall system state.
8.1 System Load
SystemLoad(t+1) = Σ_i Load_i(t+1)
8.2 System Threshold State
If ≥ 3 domains are in “Crisis” → System State: Crisis
If ≥ 1 domain is in “Breakdown” → System State: Critical Breakdown
Else if ≥ 3 domains are Strained → System State: Strained
Else → Normal
8.3 Trajectory Classification
v1.0 uses a simple tri-class structure:
- Stabilizing
- Worsening
- Collapsing
Defined by Load derivative:
DeltaLoad = SystemLoad(t+1) - SystemLoad(t)If DeltaLoad < -ε → StabilizingIf |DeltaLoad| ≤ ε → FlatIf DeltaLoad > ε → WorseningIf System State = Critical Breakdown → Collapsing
ε is a small tolerance (e.g. 0.05).
3. SMOOTHING
v1.0 applies exponential smoothing to Load for reporting:
SmoothedLoad_i(t+1) =α * Load_i(t+1)+ (1 - α) * SmoothedLoad_i(t)
Where:
- α = 0.5 (default)
Smoothing does not affect computation — only reporting.
4. JSON RESULT STRUCTURE (v1.0)
v1.0 uses a minimal JSON structure:
{"version": "1.0","event_id": "string","timestamp": "string","system": {"system_load": "number","system_state": "string"},"domains": [{"name": "string","load_t": "number","load_t1": "number","stress": "number","effective_stress": "number","threshold": "number","drift": "number","shock_memory": "number","state": "string"}]}
No composites, no governance modifiers, no feedback, no sensitivities.
5. VERSION CHANGELOG
v1.0 (this document)
- Establishes CTM pipeline
- Defines stress → load → threshold → classification chain
- Introduces decay, drift (early), ShockMemory (early)
- No composites
- No governance modifiers
- No friction metrics
- No feedback loops
6. FREEZE DECLARATION
CTM Process v1.0 is hereby FROZEN.
No further changes may be made to v1.0.
All modifications must occur in subsequent versions (v1.1, v1.2, etc.).
Date of freeze: December 6, 2025
Status: STABLE BASELINE
Superseded by: CTM Process v1.1