Skip to content

EOH Fulfillment & Registration

Modules: hours_eoh/core/eoh_fulfillment.py, hours_eoh/core/registration.py

These two modules form the fulfillment pipeline: registration curves gate which EOH enters the collective ledger; the fulfillment functions turn registered EOH into TEH. Both are genuinely ε-driven.


Registration (registration.py)

Registration curves are sigmoid functions of ε. Each domain uses a distinct curve.

personal_eoh_registration_share(epsilon, …)float

Share of personal EOH admitted to the collective ledger. Near-zero at ε = 0 (off-ledger subsistence), rising through the mid-automation range to most — not all — of personal EOH at ε = 0.99. It is a demand boundary (what the collective is formally accountable for), not a labor registration share.

Distinct mechanism from other domains

Personal EOH uses its own sigmoid — do not conflate with total_registration_share(). The two represent distinct mechanisms.

total_registration_share(epsilon, …)float

The weighted composite of care, production and stewardship registration, each weighted by its share of human EOH fulfillment at ε. The pipeline applies it to the non-personal domains.

Domain-specific registration

from hours_eoh.core.registration import (
    care_registration_share,
    production_registration_share,
    stewardship_registration_share,
    knowledge_eoh_registration_share,
    labor_category_weights,
    validate_registration_trajectory,
)

Each follows its own sigmoid with different inflection points. Care registration accelerates in the mid-ε range.

validate_registration_trajectory(epsilon_sequence) — verifies all registration curves are monotonically non-decreasing and well-behaved at the arc extremes.


Fulfillment Pipeline (eoh_fulfillment.py)

human_eoh_share(total_eoh, epsilon)float

The uniform split factor 1 − ε. This is not the human share of the obligation under the default per-component automation response: personal EOH has its own automation floors, so the human share is higher. Read human_fraction from human_eoh_per_domain() or the pipeline for that.

human_eoh_per_domain(total_eoh_dict, epsilon, …)dict

Applies the human/machine split to each domain's EOH.

registered_eoh(human_eoh, registration_share)float

EOH admitted to the collective ledger: human_eoh × registration_share.

teh_created(registered_eoh_hours, mean_multiplier)float

TEH entering circulation: registered_eoh × mean_multiplier.

teh_supply(teh_created_total, teh_destroyed_total)float

Net TEH for an economy that began with no endowment: cumulative creation minus cumulative destruction — Condition I's operational definition. It currently has no caller, and a test fails if it gains one.

capital_writedown(capital_stock_teh, …)float

D1 destruction: TEH removed when capital degrades beyond maintainability.

eoh_to_teh_pipeline(epsilon, …)dict

Full pipeline in one call — physical state (canonical where not supplied) → EOH → machine/human split → registration → TEH. With available_labor_eoh supplied, the mint is capped at the labour actually available and the shortfall is booked as deferral. Solvency is the fiscal layer's question, not this function's — see fiscal_snapshot() or scenarios.collective.collective_snapshot().

from hours_eoh.core.eoh_fulfillment import eoh_to_teh_pipeline

result = eoh_to_teh_pipeline(0.40)
# Returns, among others: teh_created, total_eoh, eoh_by_domain, human_eoh,
# registered_eoh, registration_share, human_fraction, epsilon_observable,
# labor_constrained, deferred_total. Supply available_labor_eoh= to mint from
# what was SERVED rather than what was demanded.
print(result["teh_created"], result["labor_constrained"])

TEH Destruction Mechanisms

D# Name Location
D1 Capital write-down capital.pyexecute_writedown()
D2 Income-driven consumption simulation.pysimulate_period() (the default)
D3 Biology-anchored consumption simulation.pysimulate_period(use_d3=True)
D4 CPI delivery prices.pycpi_goods_destruction()
D5 Estate dissolution capital.pyestate_dissolution()
D6 Accumulation ceiling fiscal.pyaccumulation_ceiling_commitment()

Levies and Trust spending are circulatory — TEH moves, not destroyed.