EOH Generation¶
Module: hours_eoh/core/eoh_generation.py
Pure physics — these functions take the actual physical state of the civilization and return entropy obligations. ε is not a primary input here; these functions measure what entropy demands, not who fulfills it.
Four Domain Functions¶
personal_eoh(population, age_distribution, ..., p) → float¶
Entropy obligation from human bodies — biological needs across the population.
Inputs: population, age distribution, p: EohParams
Arc: At ε = 0 this domain consumes nearly all labor. The physical obligation never disappears — only who (or what) fulfills it changes.
infrastructure_eoh(capital_stock_teh, capital_age_ratio, ..., p) → float¶
Entropy obligation from built systems — maintenance burden of the capital stock.
Inputs: capital stock in TEH, capital age ratio (older stock generates more EOH), monitoring capability, p
Arc: Grows as the capital stock expands. Drives increasing stewardship obligation at high ε.
ecological_eoh(ecosystem_health, monitoring_capability, ..., p) → float¶
Entropy obligation from natural systems — what ecosystem degradation demands.
Inputs: ecosystem health index, monitoring capability, p
Arc: Independent of automation level. Compounding consequences when neglected.
knowledge_eoh(knowledge_base_size, knowledge_complexity_per_unit, ..., p) → float¶
Entropy obligation from information systems — skill atrophy, institutional memory, standard drift.
Arc: Grows monotonically with ε; becomes the dominant domain at high automation.
total_eoh(**physical_state, p) → dict¶
Aggregate entropy obligation across all four domains.
from hours_eoh.core.eoh_generation import total_eoh
from hours_eoh.core.trajectory import canonical_physical_state
state = canonical_physical_state(0.40)
eoh = total_eoh(**state, p=p)
# Returns: {personal, infrastructure, ecological, knowledge, total}
Supporting Functions¶
| Function | Returns | Description |
|---|---|---|
ecological_eoh_breakdown(...) |
dict |
Decompose ecological EOH by service category |
domain_labor_requirements(eoh_dict, epsilon, p) |
dict |
Human labor requirements per domain |
eoh_to_essential_domains(total_eoh, epsilon, p) |
dict |
EOH allocation for Condition IV competency modeling |
epsilon_delta_sensitivity(epsilon, delta, p) |
dict |
Sensitivity of EOH totals to Δε at a given point |
Design invariant
EOH generation functions must not use ε to proxy physical assumptions. If ε is accepted as an optional backward-compat parameter, it must call canonical_physical_state(epsilon) to derive physical state — it must never use ε directly inside EOH calculation logic. See Extending the Library.