Core — Physics Layer¶
Package: hours_eoh/core/
The core/ package contains pure physics and mechanics — the stable API. It imports only from data.py, params.py, and other core/ modules. Nothing imports from core/ except the layers above it (land/, scenarios/, research/, utils/).
Module Overview¶
| Module | What it models |
|---|---|
trajectory.py |
Canonical arc at each ε; ε derivation from physical state |
eoh_generation.py |
Four EOH domain functions + total_eoh() — pure physics |
eoh_fulfillment.md |
EOH → TEH pipeline; human/machine split; registration |
multipliers.py |
Condition II: skill-tier multipliers, population-weighted band |
fiscal.py |
Levies, allocations, sufficiency guarantee, trust mechanics |
prices.py |
TEH prices, basket cost, purchasing power arc |
capital.py |
Asset lifecycle, write-down, birth/death events |
population.py |
Age distribution, aging, demographic events (on same page as capital) |
eoh_dynamics.py |
Compounding, regenerative labor, investment ranking |
workforce.py |
Competency reserve, minimum hours allocation |
civilization.py |
Endogenous ε from capital stock (on same page as workforce) |
conditions.py |
Structural conditions I–IV enforcement |
dashboard.py |
EOH health, fiscal health, system dashboard (on same page as conditions) |
simulation.py |
Period simulation engine |
The EOH → TEH Pipeline¶
# Step 1: physical state → total EOH
state = canonical_physical_state(epsilon) # or pass real tracked state
eoh = total_eoh(**state, p=p)
# Step 2: EOH → human/machine split
human_eoh = human_eoh_per_domain(eoh_dict, epsilon)
# Step 3: registration (different curves per domain)
# Personal: personal_eoh_registration_share(epsilon) — near-zero at ε=0
# Other: total_registration_share(epsilon) — labor composite sigmoid
reg_share = total_registration_share(epsilon, p=p)
reg_eoh = registered_eoh(human_eoh, reg_share)
# Step 4: TEH creation
teh = teh_created(reg_eoh, mean_multiplier)
# Or use the full pipeline in one call:
result = eoh_to_teh_pipeline(epsilon, p=p)
Key design invariant: EOH generation takes physical state. EOH fulfillment takes ε. These two concerns must never be conflated. See Design Principles.