Files
settled-reach/decisions/economics.md
T
jpmschweitzerandClaude Opus 4.7 2c3e3ff5eb fix(content): PR #133 review — 9 remaining items resolved
Closes 9 of 10 review items (blocker 1 handled in add2507e + d78d3b59):

- decisions/economics.md: reformat D-189 §5 amendment to standard
  Amendment (YYYY-MM-DD) block pattern (review #4)
- tooling/planet-gen/sol_name_fixes.py: dedup guard + argparse
  --dry-run (reviews #5, #10a)
- tooling/planet-gen/sol_markers/earth_features.json: trim to 11
  cities with selection rationale (review #6A); user-approved
  rebalance Sydney → Lagos and London → Brussels (review #6B)
- wiki/star-systems/GJ-380/bodies/GJ380c/markers.json: 2 secondary
  features renamed to Akan/Asante register — Kesset → Nkwanta Beck,
  Holt Spur → Bosomtwe Spur (review #7)
- docs/atlas/hand-refine-log.md: Aethelred lore-migration
  documentation + see-also cross-link to refine_log_849.md
  (reviews #8, #13)
- tooling/planet-gen/refine_log_849.md: rebalance addendum
- wiki/star-systems/GJ-0/bodies/GJ0d/markers.json, server/data/
  systems.db: re-synced after rebalance

Stub depth (review blocker #2) handled via split — tracked as
follow-up ticket #861 (three-layer narrative authoring).

Final Earth cities (11): Beijing, Brussels, Cairo, Delhi, Istanbul,
Lagos, Moscow, New York, São Paulo, Singapore, Tokyo.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-19 15:51:17 +02:00

48 KiB
Raw Blame History

Economics Decisions

Confirmed decisions, open questions, and rejected alternatives for the economics layer of The Settled Reach.

This domain covers: currency system, commodity taxonomy, shadow economy, corporation structure, productivity seeding, simulation architecture, and the data pipeline. Cross-reference architecture.md for Phase 2 deliverable framing (D-166) and content.md for economic verb vocabulary (D-131, Phase 3+).


D-171: Three-Currency System

  • Date: 2026-04-05
  • Decision: The Settled Reach uses three currencies with distinct political identities and geographic zones:
    • Tractus — issued by the Concord Assembly (headquartered at Sirius). The Reach-wide standard currency. Accepted everywhere. Numeraire for all simulation pricing. The establishment currency. Groombridge hosts the clearing house (D-175 Tier 1 gap) but is not a co-issuer.
    • Mark — issued by the Compact of Westphalia. Created to disconnect from Tractus; circulates within the Compact zone (west reach hops 6+). Mostly refused outside Compact territory. Tractus is accepted within the Compact at punitive exchange rates.
    • Sol — Earth legacy currency. Finite pool, no active issuer, no formal exchange rate. Used for crime and untraceable transactions, and as payment for premium Earth luxury imports (wines, foods, exclusive goods). Sol is NOT a currency zone — it is modeled as a shadow economy commodity, not a simulation numeraire.
    • Commission fines and certification fees are Tractus-denominated (the Commission is Assembly-funded). Compact members paying Commission costs face currency conversion friction — this is a structural driver of the shadow economy in the Compact zone, not a coincidence.
  • Rationale: Three currencies create structural economic bloc tension without requiring event generation. The Tractus/Mark divide maps directly to the Assembly vs. Compact political divide. Sol's untraceable nature makes it the natural medium for crime — it has lore grounding and mechanical function without requiring a formal exchange rate.
  • Raised by: Full planning team, Sprint 32 Workshop #796. Lead directive on political framing.
  • Dissent: Burnelli-Sheldon (economist) recommended single currency for Phase 2 — see R-011. Overruled by lead.

D-172: Currency Zone Initialization

  • Date: 2026-04-05
  • Decision: Each star system receives a currency zone flag at initialization:
    • TRACTUS_PRIMARY — default for all Assembly-compliant systems
    • MARK_PRIMARY — Compact of Westphalia member systems
    • MIXED — Compact-sympathetic systems (west reach hops 56); both currencies accepted, neither dominant
    • Sol has no zone flag — tracked in shadow economy layer only (see D-174)
    • Mark-to-Tractus friction: ~3% conversion cost on cross-zone trade
    • Within MARK_PRIMARY zones: zero internal conversion friction (Compact's "no internal tariffs" principle extends to currency)
    • Zone assignment derives from political affiliation (Compact membership, Commission presence), NOT from hop distance. Hop distance correlates with Compact membership but is not the rule.
  • Rationale: Currency zones encode political reality, not geography. A hop-5 system that joined the Compact is MARK_PRIMARY; a hop-8 system that stayed Assembly-compliant is TRACTUS_PRIMARY. The zone flag must be authorable, not calculated.
  • Raised by: Tyre (schema design), Paula (geographic variance), Miri (lore grounding). Lead corrected political framing from hop-distance to affiliation-based.
  • Dissent: None.
  • Cross-reference: D-171, wiki/factions/compact-of-westphalia.md

D-173: Commodity Taxonomy

  • Date: 2026-04-05
  • Decision: The simulation uses approximately 30 commodity types organized in four categories:
    • 7 raw materials — extracted or harvested, location-bound production
    • 8 intermediate goods — processed from raws, transportable
    • 7 final goods — assembled from intermediates, carry cultural identity
    • ~5 professional services — legal, banking/credit, insurance, logistics management; location-bound (non-transportable through gates)
    • ~3 luxury/experiential services — tourism, holo-content/entertainment, cultural experiences; location-bound
    • Services sit outside the production chain (Raw → Intermediate → Final). Services consume goods but do not produce them.
    • Each commodity record: tier, elasticity class (4 categories per D-184: perfectly_inelastic, inelastic, unit_elastic, elastic), base price, bulk class, political sub-flags.
    • Leontief fixed-coefficient production: scarcity in one input cascades to all dependents. No substitution within a tier.
    • Substitutable inputs at intermediate level: multiple raw sources can satisfy the same intermediate demand (e.g., two ore types producing the same alloy). Substitution is structural (different production chain routes), not smooth.
  • Rationale: Fixed-coefficient production creates legible scarcity cascades — the player can trace why a final good is expensive by following the chain. Services are location-bound by definition (a legal service in Ostmark cannot be freighted to Groenland). The ~30 count is rich enough to generate interesting geographic specialization without becoming intractable to author.
  • Raised by: Burnelli-Sheldon (22-commodity formal model), Gestalt (production chain principles), Paula and lead directive (services and luxury services addition).
  • Dissent: None.
  • Cross-reference: D-131 (economic verbs — Phase 3+ player interaction), D-175 (corporation archetypes), D-184 (concrete realization: counts revised to 9/10/9/5/3 = 36 total, 4 elasticity classes)

D-174: Shadow Economy Layer

  • Date: 2026-04-05
  • Decision: Each economic node has a shadow_economy_intensity value (0.01.0) set at initialization:
    • Seeding inputs (additive): Commission presence (inverse — high Commission = low shadow), Compact membership (elevated shadow independently of distance), hop distance from Core, gate topology (dead-end systems higher than transit nodes)
    • Geographic reference bands: core systems ~0.00.2, mid-reach ~0.30.6, Compact and frontier ~0.60.9
    • Effects of intensity: Sol black-market premium (higher intensity = higher Sol premium), contraband shadow prices below Commission-certified prices, service quality degradation in formal sector
    • Sol is the shadow medium of exchange — untraceable, no lattice audit trail, no issuer to cooperate with enforcement
    • Canonical contraband types (from lore): unlicensed lattice components (D-037), Sol-denominated luxury goods, unregistered commercial intelligence, unlicensed re-embodiment
    • Shadow economy is a structural initialization parameter, not an event. Events from the storyteller/political layer can temporarily modify intensity, but do not create or destroy the layer.
    • The Compact's shadow economy is principled economic resistance to Assembly currency friction on enforcement costs — not frontier lawlessness. This distinction matters for NPC dialogue and narrative framing.
  • Rationale: Crime and smuggling are geographic realities with strong variation. Modeling them as a per-node intensity parameter keeps the simulation tractable — no need for a separate "crime sim." The Compact framing is important: Compact members aren't criminals by disposition, they're communities that have rationally priced Commission authority as unacceptable. Their shadow economy is a consequence of currency friction, not cultural character.
  • Raised by: Lead directive. Paula (geographic variance and Compact framing), Nigel (seeding architecture), Gestalt (official_coverage_ratio signal), Tyre (schema), Miri (Compact friction analysis).
  • Dissent: None.
  • Cross-reference: D-171 (Sol as shadow commodity), D-172 (Compact friction), D-037 (canonical contraband: lattice components)

D-175: Corporation Taxonomy and Prerequisite

  • Date: 2026-04-05
  • Decision: The corporation corpus is organized in three tiers and is a prerequisite for Phase 2:
    • Tier 1: ~38 named, textured corporations — 13 existing wiki corporations upgraded, 25 new including a Groombridge clearing house. Full identity, political relationships, behavioral archetype, administered silences, named leadership. These are the economic landmarks the player will recognize.
    • Tier 2: ~150 regional firms — proper identity (sector, corridor, backstory, distinct character) but not fully textured. Regional competitors that can fail, grow, or be acquired.
    • Tier 3: ~5,000 template instances — named businesses generated from templates, distributed by population. Name, location, product variation. The economic texture the player walks past.
    • Two orthogonal archetype systems apply independently:
      • 28 lore-taxonomy archetypes (WHAT/WHERE — Miri): extraction (5), agriculture (6), manufacturing (6), trade/logistics (4), services (6), intelligence (1), plus 5 east-reach archetypes
      • 6 behavioral archetypes (HOW — Burnelli-Sheldon): Monopolist, Distributor, Producer, Specialist, Cooperative, Intermediary
    • Priority gaps for Tier 1 creation: financial services, re-embodiment sector, clearing house (Groombridge), Compact-affiliated distributor, east reach anchors, information brokerage
    • Phase 2 begins when the corporation corpus reaches commodity coverage threshold (minimum: 3+ corporations per major commodity type, 1+ per inhabited system above 100K population). The simulation will not be seeded with placeholder corporations.
  • Rationale: Corporation density is what makes the simulation legible. A simulation running on 13 corporations in 3,700 nodes would generate nonsensical price signals — corporations would appear to be everywhere at once. The tier structure enables targeted authoring effort: Tier 1 gets full narrative investment, Tier 3 gets generation rules. The prerequisite gate prevents building a simulation that has nothing meaningful to simulate.
  • Raised by: Lead directive (prerequisite, density, 5,000 template instances). Miri (28 archetypes, east reach gap). Burnelli-Sheldon (6 behavioral archetypes). Paula (Tier 1 gap list, clearing house). Tyre (generation pipeline coverage rules).
  • Dissent: None.
  • Cross-reference: D-166 (Phase 1 content completion gates Phase 2), D-173 (commodity types requiring coverage), D-183

D-176: Productivity Seeding

  • Date: 2026-04-05
  • Decision: Each run seeds per-run productivity multipliers on five dimensions, attached to corporation×site pairs (not abstract nodes):
    • extraction_rate — output per unit time from mines, wells, fisheries
    • processing_throughput — units processed per tick in manufacturing and refineries
    • transit_capacity — freight volume per gate crossing for logistics operators
    • service_throughput — clients served per tick for service firms
    • service_capacity — maximum concurrent engagements for service firms
    • Standard nodes: 0.41.8× multiplier, log-normal distribution, corridor correlation ~0.6 (nearby sites in the same corridor tend toward similar productivity)
    • Monopoly-source nodes: 0.71.4× (tighter range — lore-grounded scarcity ceilings apply; see D-177)
    • The same lore picture appears every run; different underlying productivity cards. Emergence happens DURING play, not seeded before it.
    • Seeds are computed at runtime from PRNG seed. Stored in game save state. Never authored in TOML files.
  • Rationale: Seeding starting positions (corporate health, pre-existing disruptions) erodes the hand-crafted lore picture from Phase 1. Seeding productivity coefficients preserves the lore picture (same corporations, same locations, same relationships) while ensuring every run has a different underlying economic reality. "Same team, different cards."
  • Raised by: Lead directive (seed productivity, not starting positions). Nigel (architecture, ranges, corridor correlation). Miri (constraints table that defines the seeding bounds).
  • Dissent: None.
  • Cross-reference: D-177 (what can and cannot be seeded)

D-177: Productivity Constraints (Lore-Derived)

  • Date: 2026-04-05
  • Decision: Lore-derived ceilings constrain what productivity seeding can vary. These constraints are authoritative and not subject to per-run seeding:
    • Hard biological ceilings: Kvitfjell marble ~800t/y maximum; brach fiber (Braemar only, herd expansion takes decades — volume cannot spike); Calloway terroir is system-specific (cannot be relocated); VGV varietals require F8V stellar spectrum (cannot be farmed elsewhere)
    • Aging pipelines: Calloway whisky 1220y aging time; VGV classified wine 5y+; VGV corridor wine 12y — pipeline contents at game start are fixed by lore, not seeded
    • Capital goods lead times: Stalownia large rigs 13y; MVG bespoke vehicles 12y; Cygni B station sections 25y; Gate Corp span gates 13y — these lead times are real and not compressible by productivity seeds
    • What CAN be seeded: harvest yield ±2040%, factory output ±1530%, quarry output ±1025%, service throughput ±1020%
    • What CANNOT be seeded: location of production, biological monopoly ceilings, aging pipeline contents, gate topology
  • Rationale: The constraints table defines the seeding boundary. Seeding something that lore says cannot vary (Calloway terroir, brach fiber herd size) would invalidate the wiki canon. The constraints ensure seeding creates variation within lore-consistent bounds.
  • Raised by: Miri (full constraint table from wiki lore). Nigel (seeding architecture requiring the bounds).
  • Dissent: None.
  • Cross-reference: D-176

D-178: Economic Model Architecture

  • Date: 2026-04-05
  • Decision: The economics layer uses a spatial input-output model with agent-based overlay:
    • Layer 1: Leontief production with seeded per-corporation capacity. Fixed-coefficient — scarcity in one input cascades to all downstream dependents. No smooth substitution.
    • Layer 2: Spatial price equilibrium via damped tâtonnement (α=0.03, β=0.4). Prices propagate through the gate topology. Lagged adjustment — NOT instant equilibrium. Prices respond to supply/demand signals with a realistic delay.
    • Layer 3: Corporate behavioral agents — 6 archetypes (Monopolist, Distributor, Producer, Specialist, Cooperative, Intermediary) with template-instantiated behavioral parameters.
    • Transport graph: gate edges (inter-system, cost 512%/hop) + orbital edges (intra-system, cost 13%). Derived from existing star map DB relationships.
    • Market node tiering: ~760 active market nodes (inhabited bodies + all stations), ~240 passive producers (feed output to nearest active node, no full market), ~2,700 inert (no economic footprint)
    • Floyd-Warshall over the ~760 active node subgraph at startup (~0.5s, one-time cost).
    • Economics seeks stability. The simulation is a believable backdrop, not a drama generator. In the absence of external events, prices trend toward equilibrium. Events from the storyteller, political, or disaster layer create disruption; the economy responds and re-equilibrates.
  • Rationale: The three-layer architecture is standard for spatial economic modeling: production determines supply, price adjustment determines flow, agents determine strategic behavior. Lagged tâtonnement prevents cobweb oscillation while still producing realistic price dynamics. The "boring economics" mandate means stability is a feature, not a failure.
  • Raised by: Burnelli-Sheldon (formal model), Tyre (implementation architecture and market tiering). Lead directive (economics seeks stability, responds to events, does not generate them).
  • Dissent: None.
  • Cross-reference: D-179 (test criteria), D-180 (external event interface), D-182 (data pipeline)

D-179: Stability Acceptance Criteria

  • Date: 2026-04-05
  • Decision: The economics simulation must pass four stability tests before Phase 2 is considered complete:
    1. Cold-start convergence: Prices settle within ±5% of equilibrium within 100 game-days from initialization.
    2. Long-run stability: Zero drift greater than ±2% over 1,000 game-days with zero external events injected.
    3. Shock response: After a single supply shock, cascade propagates realistically; recovery within 200 ticks; no price explosions or negative prices.
    4. Cross-zone trade balance: After a cross-zone trade volume change, exchange rate adjusts and re-stabilizes within 50 ticks.
    • If the model oscillates, drifts, or diverges under zero external input, the model is broken.
    • These criteria are the --stability-check mode of the economy-sim binary.
  • Rationale: Without explicit stability criteria, "the economy seems to be working" is not a testable claim. These four tests cover the failure modes most likely in tâtonnement-based models: failure to converge, slow drift, shock amplification, and cross-zone instability.
  • Raised by: Burnelli-Sheldon (formal model and test design). Lead endorsed ("economics should be boring" — stability IS the success condition).
  • Dissent: None.
  • Cross-reference: D-178, D-183

D-180: Event Input Port

  • Date: 2026-04-05
  • Decision: The economics layer accepts external events through a typed input port:
    EconEvent {
      target:     Node | NodeSet | Corridor | TradeRoute | Currency | Commodity,
      effect:     ProductivityMultiplier | CapacityMultiplier | DemandShock | ExchangeShock,
      duration:   ticks,
      visibility: Global | Proximate(hops) | Disclosed(specific_nodes) | Hidden,
    }
    
    • Visibility modes: Global — all actors know immediately. Proximate(hops) — propagates at trade speed from target. Disclosed(nodes) — only named actors are informed. Hidden — creates observable price effects with no knowledge flag; no actor knows the cause.
    • Hidden events protect the inspect verb: the player can observe that prices have moved without the system revealing why. This is Phase 3 territory — Phase 2 sim must implement the port, but Hidden events will not be exercised until the player layer exists.
    • The economics layer accepts events; it does NOT generate them. Drama comes from the storyteller, political, or disaster layer. The economics layer is a receiver, not an emitter of narrative tension.
  • Rationale: The sharp boundary between economics (responds to events) and the event layer (generates events) is architecturally critical. It prevents the economics simulation from drifting into a drama engine — which would violate D-178's stability mandate and undermine the Phase 2 deliverable.
  • Raised by: Gestalt (interface design and visibility model), Nigel (Rust spec). Lead directive (economics responds, does not generate).
  • Dissent: None.
  • Cross-reference: D-178 (economics seeks stability), D-181 (what the event port affects)

D-181: Signal Vocabulary

  • Date: 2026-04-05
  • Decision: Each active economic node produces 7 signals:
    1. price_current — current market price (Public)
    2. price_trend — direction and rate of change over last N ticks (Public)
    3. trade_flow_volume — freight volume through node (Observable — requires physical presence or proximate access)
    4. corporate_presence — which corporations operate here (Observable)
    5. stockpile_weeks — estimated inventory at current consumption rate (Semi-private — requires corporate contact)
    6. production_vs_baseline — actual output vs. seeded baseline (Private — requires insider access)
    7. official_coverage_ratio — ratio of formal to total (formal + shadow) economic activity (Meta-signal — gap between official and real economy)
    • Visibility ladder: Public signals are available to all. Observable requires presence. Semi-private requires a corporate relationship. Private requires an insider. The visibility ladder is the inspect verb's backing system — Phase 3 player interaction will use it.
    • Phase 2 sim must produce all 7 signals. Phase 3 determines how the player accesses them.
  • Rationale: The 7 signals define what the economy communicates. Signals 12 are what appears on investor screens (Phase 2 deliverable). Signals 34 reward presence. Signals 56 reward relationships and risk. Signal 7 quantifies the shadow economy gap, giving the inspector a readable metric for how much the official picture understates reality.
  • Raised by: Gestalt (6 signals + visibility layering). Gestalt (7th signal: official_coverage_ratio, derived from shadow economy work). Phase 3 reference per lead directive (f).
  • Dissent: None.
  • Cross-reference: D-174 (shadow economy as input to signal 7), D-131 (inspect verb — Phase 3+)

D-182: TOML Source of Truth for Economics Data

  • Date: 2026-04-05
  • Decision: Economics data is authored as TOML files and compiled to a queryable .db:
    • Source location: wiki/economics/ — TOML files for corporations, commodities, production chains, currency zone assignments
    • Build step: make economy-db compiles TOML + systems.db into a dev .db artifact
    • Dev artifact: Always on disk; rebuilt when source TOML changes. Agents and the sim binary query the .db as usual.
    • Production: Same build step. On "new game," the .db is copied into the game save directory. The simulation mutates it live from that point.
    • Rollback: Rebuild from TOML source files. The .db is never the source of truth.
    • Sync constraint: Wiki corporation entries and TOML corporation records must stay in sync. The build fails on name divergence.
    • TOML is chosen because it is diffable, reviewable in git, and authorable without database tooling. The .db is a build artifact, not a collaboration surface.
  • Rationale: The economics data must be auditable in git (TOML) while remaining queryable at runtime (SQLite). Keeping the .db as a build artifact means the source is always recoverable and reviewable in pull requests. The sync constraint prevents the wiki (narrative) and TOML (simulation data) from drifting apart.
  • Raised by: Lead directive (hybrid architecture, rollback via source rebuild). Tyre (build pipeline and artifact spec).
  • Dissent: None.
  • Cross-reference: D-178, D-175 (corporation records requiring sync)

D-183: Iterative Economics Development Cycle

  • Date: 2026-04-05
  • Decision: Economics layer development is iterative, not waterfall:
    • Cycle: skeleton sim → data population → test → skeleton tweaks → data tweaks → test → repeat
    • Simulation schema, data authoring, and the standalone economy-sim binary are developed in tandem. No phase gates between data work and code work.
    • Corporation corpus population is the prerequisite that gates the first iteration (see D-175).
    • The --stability-check mode (D-179) is the exit condition for each iteration — not a final gate.
  • Rationale: Waterfall sequencing (schema → data → sim → test) produces long feedback cycles and late discovery of data-model mismatches. Iterating data and code together catches modeling errors early and enables the sim to be tested against real (partial) data rather than synthetic fixtures.
  • Raised by: Lead directive.
  • Dissent: None.
  • Cross-reference: D-175 (prerequisite), D-179 (iteration exit condition), D-182 (data pipeline)

D-184: Commodity Catalog (36 Types)

  • Date: 2026-04-05
  • Decision: The simulation uses 36 commodity types as the concrete implementation of the taxonomy in D-173:
    • 9 raw materials — extracted or harvested, location-bound
    • 10 intermediate goods — processed from raws, transportable
    • 9 final goods — assembled from intermediates, carry cultural identity
    • 5 professional services — legal, financial, medical/re-embodiment, insurance, commission certification; location-bound
    • 3 luxury services — tourism, entertainment/holo-content, fine dining/hospitality; location-bound
    • Source of truth: wiki/economics/commodities.toml and wiki/economics/production_chains.toml
    • 21 production chains including 2 substitution routes
    • Schema: 14 fields per commodity including 3 political sub-flags (commission_certifiable, compact_contested, shadow_viable), production_ubiquity, demand_model, panic_threshold_weeks
  • Rationale: The catalog is the concrete realization of the D-173 taxonomy. 36 types is rich enough to produce meaningful geographic specialization while remaining authorable. The 14-field schema captures economic, political, and behavioral properties needed by the tâtonnement simulation. Two substitution routes prevent hard lock-outs in chains where one raw source is geographically constrained.
  • Raised by: Full planning team, Sprint 32 Workshop #801.
  • Dissent: None.
  • Cross-reference: D-173 (taxonomy), D-182 (TOML pipeline), D-185 (what is excluded from this catalog)

D-185: Brands Are Not Commodities

  • Date: 2026-04-05
  • Decision: Branded and luxury goods (Calloway whisky, VGV wine, thrds garments, Bífröst marble, etc.) are NOT entries in the commodity catalog. They are priced through a separate brand/cultural value system, not through the tâtonnement:
    • Brands consume commodities as inputs — they appear as demand nodes in the production graph
    • Brand revenue appears as income in the GDP cluster for their origin system
    • The brand system is a future deliverable (post-Phase 2, possible DLC) built on top of the commodity foundation
    • The commodity chain terminates at abstract generic finals (e.g., "premium spirits", "luxury textiles")
    • Brand premium lives in the corporate behavioral layer — it is not modeled in Phase 2
  • Rationale: Adding 30+ named brands to the commodity catalog would require per-brand pricing models, cultural preference curves, aging pipeline tracking, and star-system terroir logic — a separate simulation in its own right. Phase 2 must deliver a working generic commodity simulation first. Brands consuming generic commodities as inputs correctly captures the economic relationship without requiring brand simulation code.
  • Raised by: Lead directive, Sprint 32 Workshop #801.
  • Dissent: None.
  • Cross-reference: D-184 (the catalog that excludes brands), D-177 (lore ceilings on brand production — still authoritative), D-175 (brand corporations exist as Tier 1 entities)

D-186: Gate Transmission Levels (Mass + Data + Energy)

  • Date: 2026-04-05
  • Decision: Span gates transmit mass, data, and energy — three distinct transmission classes with distinct governance:
    • Mass: Standard freight transmission. All gates, always-on. No decision needed.
    • Data (The Meridian): Live real-time network. Already canon. Information asymmetry in the simulation comes from access control and cost, not from physical delay. The Meridian is not a Phase 2 simulation concern — it is narrative backdrop.
    • Energy: Gate Corporation offers energy-over-gate as a commercial service. Explicitly NOT an Assembly policy — Gate Corp is an independent monopoly. On-grid nodes get reduced fusion_fuel utility demand (~0.3× baseline). Industrial chain inputs (smelting, alloys, electronics) are unaffected — the energy discount applies only to utility/habitation consumption.
    • Implementation: per-node gate_energy_connected boolean. Nodes lacking the boolean or set to false are treated as off-grid.
    • MARK_PRIMARY zones default to gate_energy_connected = false. The Compact refused Gate Corp energy dependency as a deliberate political choice — it preserves Compact energy sovereignty and economic independence.
    • Gate Corp cutoff scenario: If Gate Corp cuts energy to a dependent node, fusion_fuel demand spikes. Compact surplus capacity (from their independence) becomes the emergency supply source. The Compact's refusal of dependency is an economic asset with concrete mechanics.
  • Rationale: Energy-over-gate gives the gate topology an additional economic dimension beyond freight routing. Opt-in model prevents mandatory complexity for every node. The Compact's structural refusal creates the primary counterplay scenario Gestalt was concerned about — without opt-in, no interesting asymmetry. Gate Corp as private monopoly (not Assembly policy) makes it an independent economic actor, enabling corporate storylines.
  • Raised by: Lead directive + Miri (lore) + Gestalt (mechanics) + Burnelli-Sheldon (economics) + Tyre (implementation), Sprint 32 Workshop #801.
  • Dissent: Gestalt initially recommended Level 2 (no energy transmission) due to counterplay concerns. Resolved by the opt-in model — the Compact's refusal to connect provides the counterplay without requiring adversarial defaults.
  • Cross-reference: D-172 (MARK_PRIMARY zone flag), D-173 (fusion_fuel as a commodity), D-187 (fuel chain), D-175 (Gate Corp as Tier 1 corporation)

D-187: Fusion Fuel as Intermediate (8:1 Water Yield)

  • Date: 2026-04-05
  • Decision: Fusion fuel is an intermediate good refined from water at an 8:1 yield ratio. It is NOT a raw material:
    • Water is the raw input — ubiquitous and cheap across the Reach
    • The 8:1 refinement ratio makes fuel expensive despite cheap inputs (8 units of water → 1 unit of fusion fuel)
    • Fusion fuel is a Leontief input to 3 energy-intensive production chains: smelt_ore (0.3), alloy_fabrication (0.2), electronics_fabrication (0.2)
    • Additionally carries demand_model = utility — consumed as operational overhead at every active node (population × per-capita rate), separate from the chain inputs
    • Creates a structural frontier energy cost premium: frontier nodes pay more for fusion fuel because water transport costs accumulate in the refining input cost, and the chain demand from smelting/alloys/electronics cascades that cost into the manufacturing sector
    • This premium arises from geography and chain structure — no event generation required
  • Rationale: Raw-material fuel would make energy cost geography flat (water is everywhere, therefore fuel is everywhere at the same price). Intermediate fuel with a high water yield ratio creates a conversion cost that multiplies transport costs — frontier refineries are expensive to run because fuel production itself consumes large volumes of low-value bulk water. The cascade effect through 3 industrial chains means frontier manufacturing is structurally more expensive, which is consistent with real-world frontier economics and the lore of the Compact vs. Core divide.
  • Raised by: Lead directive, validated by Burnelli-Sheldon (economics), Sprint 32 Workshop #801.
  • Dissent: None.
  • Cross-reference: D-184 (fuel and water are catalog entries), D-186 (energy-over-gate reduces fuel demand), D-178 (Leontief production cascade)

Rejected Alternatives

R-011: Single currency for Phase 2 (rejected)

  • Date: 2026-04-05
  • Proposed by: Burnelli-Sheldon (economist), Sprint 32 Workshop #796 Round 1
  • Proposal: Use a single currency for the Phase 2 economics simulation to reduce model complexity. Exchange rate mechanics could be added in a later phase.
  • Rejected because: Three currencies create structural economic bloc tension as an emergent property of initialization — no event generation required. The Tractus/Mark divide maps directly to the Assembly vs. Compact political divide that is already canonical lore. Deferring currencies to a later phase would require retrofitting political geography into an already-running simulation. The complexity cost of three currencies is low; the design value is high.
  • Raised by: Lead directive overruling the recommendation.

D-189: Brand Layer Architecture

  • Date: 2026-04-10

  • Decision: The simulation supports a brand layer above the commodity tâtonnement. Brands are NOT commodities (D-185). They consume commodities as demand nodes and are priced through an administered pricing model with cultural premium curves. The brand layer serves dual purposes: economic simulation (demand nodes, pricing, GDP contribution) and queryable localized content for client UI (bar shelves, restaurant menus, shop displays, entertainment listings).

    1. Brand Taxonomy

    • 8 categories: terroir, heritage_craft, tech_premium, cultural, service_premium, commodity_branded, design_heritage, platform_catalogue
    • value_trajectory: appreciating | depreciating | timeless (first-class field)
    • 3 scale tiers for generated brands: local (13 systems), regional (corridor-scale), reach-wide budget (everywhere, corridor-neutral naming, no cultural premium)

    2. Pricing Model

    brand_price = max(price_floor, [base_cost × (1 + target_margin) + cultural_premium × (1 + veblen × scarcity)] × value_trajectory_factor × currency_factor)
    
    • Cultural premium split into identity_term + exotic_term with exotic_floor to support 3 curve types: Scarcity-Distance (artisan), Dual-Peak (media/content), Aspirational Gradient (tech)
    • Two-component scarcity: structural (production_volume / addressable_demand ratio, permanent) + situational (stockpile depletion, temporary)
    • Veblen per-location derived: veblen_base × income_quintile × corridor_affinity — zero authoring cost
    • cost_passthrough_ratio: insulates brand pricing from tâtonnement volatility (low 0.100.25 for terroir, high 0.500.75 for tech)
    • value_trajectory_factor: appreciating goods gain value with vintage age, depreciating goods lose value with a floor, timeless = 1.0; updated per game-year

    3. Halo/Volume Tier Structure

    • Universal pattern: every notable brand has a halo product (defines identity ceiling) + volume tier(s) (makes the brand economically relevant at population scale ~80B)
    • halo_lift_factor: volume tier borrows a fraction of the halo's cultural premium
    • Direction inverts by category: terroir pushes scarcity up, tech/media pushes quality up from a mass base
    • Brands without volume tiers are economically marginal regardless of prestige — population asymmetry (10B systems vs. 50k) makes this structurally necessary

    4. Brand Census

    • Notable (hand-authored): 120170 corps with TOML records; ~27 currently named
    • Minor (template-generated): ~10,000 brands from ~120130 template definitions (3540 archetypes × 3 sub-variants), corridor-specific naming patterns, 3 scale tiers
    • Naming patterns: corridor-appropriate — north_reach = British/Australian inflection, east_reach = Korean/Japanese, west_reach = German/Dutch/Nordic, south_reach = Portuguese/Swahili, inner_corridor = pan-corridor neutral, frontier = founder surname + noun
    • Queryable content: brand_products JOIN corp_presence filtered by location and product_subcategory; sub-millisecond at 10K+ rows — primary use case alongside economic simulation

    5. DB Schema

    • brand_products: brand_product_id, corp_id, product_name, brand_category (8 values), value_trajectory, scarcity_class (capped / constrained / scalable / unlimited), product_subcategory, base_premium_multiplier, premium_floor, origin_system, terroir_locked, currency_denomination, shadow_viable, brand_tier (halo / volume), halo_brand_id (for volume tiers), price_tier (enum — see below)
    • price_tier enum (5 values): mass (widely accessible, lowest price point; commodity_branded volume tiers) / premium (above-average quality signal; most volume tiers across categories) / luxury (aspirational, restricted availability; terroir and design_heritage halos) / flagship (pinnacle output, ultra-scarce; Veblen curve inflection; max 1 per brand, lore-grounded scarcity ceiling required) / institutional (B2B contract pricing, not market price; service_premium and platform_catalogue)
    • Amendment (2026-04-19): price_tier valid values were not defined in the original decision. Locked to the five values above per team decision, Sprint 36.
    • brand_inputs: brand_product_id, commodity_id, quantity
    • system_fiscal: system_id, corp_tax_rate, collection_efficiency (derived from shadow_economy_intensity)
    • corp_financial_state + corp_lifecycle_events tables for acquisition/startup lifecycle
    • Composite index on brand_products(corp_id, brand_category) for UI queries

    6. Corp Tax & GDP

    • Corp tax = revenue × (1 - category_deduction) × tax_rate × collection_efficiency
    • Category deductions: terroir 0.30, geological 0.20, tech 0.60, media 0.15, vehicles 0.55, apparel 0.45
    • Tax flows to HQ system; GDP computed every 100 ticks
    • collection_efficiency = 1.0 - shadow_economy_intensity × 0.6
    • Visible line item when player owns a company

    7. Player Verb Ladder

    • 6 stages: Operate → Specialize → Distribute → Create → Scale → Corporate
    • Founding verbs: brand, register, market
    • Content verbs: acquire-rights, royalty-contract, exclusive-window
    • Corporate verbs: acquire, merge, spin-off, license-out
    • Temporal verbs: cellar (appreciating), refresh (depreciating), license-legacy (EOL)
    • authenticate is the mechanically richest new verb — 3 service economies: expert appraisal (artisan), Commission inspection (tech/vehicles), Meridian rights lookup (content)

    8. Acquisition & Startup Lifecycle

    • Corp lifecycle states: Founded → Growing → Active → Distressed → Acquired/Dissolved
    • Startup triggers: market gap, spin-off, player-founded, storyteller event
    • Acquisition triggers: financial distress, strategic AI acquisition, player-initiated, hostile takeover event
    • Player acquisition and mergers are in scope; if acquisition exists, startups must exist (or the well dries)
    • Phase 2: corp health tracking as passive metric. Phase 3: lifecycle state machine, startup generation, player acquisition

    9. Events

    • BrandPrestigeShock via EconEvent port (D-180) — very occasional scandal events (pollution, fraud)
    • Exponential decay with authored half-life
    • Direct-vector only: events hit the brand's known vectors (commodity input price, production location); no indirect cascading beyond that

    10. Phase 2 Boundary

    • Phase 2 (this sprint cycle): brand corps as commodity demand stubs in tâtonnement, brand_products / brand_inputs / system_fiscal schema, corp_financial_state passive tracking, generate_brands pipeline
    • Brand layer (post-Phase 2): pricing engine, awareness propagation, cultural preference curves, aging pipeline simulation, lifecycle state machine, player acquisition verbs

    11. Named Brand Corps (~27)

    Corp Category Origin
    Calloway Distillery terroir north_reach
    VGV terroir west_reach
    thrds heritage_craft north_reach
    Bífröst Marmor terroir north_reach / Compact
    Destilaria Confluência / Lento terroir south_reach
    Veldfontein Botanical terroir + heritage_craft south_reach
    Comptoir Lendel terroir + service_premium inner_core
    Maison Cinq design_heritage inner_core / Gateway
    MVG (Manifattura Veicoli Gherardi) design_heritage west_reach Italian
    Higashiyama Vehicle Engineering tech_premium + design_heritage east_reach
    Rijdbaar Personal Mobility design_heritage west_reach / Compact
    Byeolbit Entertainment cultural + platform_catalogue east_reach
    Leerfeld Records cultural west_reach / Compact
    Vuma Sound cultural south_reach
    Resonance Premium platform_catalogue inner_core
    Dalbit Systems tech_premium + platform_catalogue east_reach
    Arclamp cultural + design_heritage inner_core
    Kellervolk cultural Compact
    Hangang Studio platform_catalogue east_reach
    Hanyang Precision — (Tier 1, branded_products)
    Sato Medical — (Tier 1, branded_products)
    Takamori Lattice — (Tier 1, branded_products)
    Thalassa Resort — (Tier 1, branded_products)
    Somatic Futures — (Tier 1, branded_products)
    The Registry — (Tier 1, branded_products)
    Meridian Risk — (Tier 1, branded_products)
  • Rationale: Administered pricing is the correct model because brands violate all three tâtonnement assumptions: heterogeneity (Calloway ≠ VGV ≠ generic spirits), supply inelasticity (terroir production cannot respond to price signals per D-177), and Veblen demand effects (prestige goods can have upward-sloping demand). The one-way interface (commodity prices → brand input costs; brand output prices do NOT feed back into tâtonnement) is architecturally clean and matches the D-178 layer model. The identity/exotic split in cultural premium is the minimal structural addition needed to produce all three observed pricing curves (Scarcity-Distance, Dual-Peak, Aspirational Gradient). Population asymmetry (~80B total Reach population, systems ranging from 10B to <50k) makes the halo/volume tier pattern structurally necessary — brands from tiny worlds are astronomically exclusive and need volume derivatives to be economically relevant.

  • Raised by: Full planning team workshop, Sprint 34 (#811).

  • Dissent: None.

  • Cross-reference: D-185 (brands are not commodities), D-184 (commodity catalog), D-177 (productivity constraints), D-175 (corporation taxonomy), D-178 (economic model architecture), D-180 (event input port), D-181 (signal vocabulary), D-173 (commodity taxonomy), D-171 (three-currency system), D-131 (economic verb vocabulary), D-118 (small business owner starting state)


D-190: Brand Volume Calibration — Population-Relative Scale

  • Date: 2026-04-10
  • Decision: All brand production and distribution volume numbers must be specified relative to a reference population, not as absolute counts. Volume without a reference population is not meaningful at Reach scale:
    • Scale reference table (~80B Reach):
      • Single-system local phenomenon: 100M500M (15% of a 10B system)
      • Corridor-known hit: 250M1B (~0.5% of corridor addressable population)
      • Reach-wide genuine hit: ~1B (1 in 80 Reach population)
      • All-time Reach canonical: 2B5B (1 in 1640 Reach population)
    • Earth rule of thumb: multiply Earth-scale phenomenon volumes by 1215× for comparable cultural penetration. A 100M-seller on Earth ≈ 1.21.5B in the Reach.
    • 40M benchmark: 40M units/streams Reach-wide = 0.04% penetration — a cult hit or successful regional release, not a cultural touchstone. 40M within a single large system (10B population) = 0.4% — respectable but not legendary.
    • Authoring rule: wiki volume figures for media brands and any good with brand_category = cultural must include a reference_population annotation alongside the count. "40M" is incomplete; "40M (west_reach corridor, ~10B addressable)" is correct. This applies to corporation production ceilings, media distribution figures, and market penetration estimates in wiki pages and TOML files.
    • Structural scarcity principle: for physical brand goods, production volume only has meaning relative to addressable demand. The structural_scarcity_base parameter in the brand pricing layer (D-189) is derived from this ratio: 1.0 - min(1.0, annual_volume / (addressable_population × demand_rate)). A 12,000-unit/year artisan product against 100M addressable consumers yields structural_scarcity_base ≈ 0.88 — perpetually near-maximum scarcity regardless of local stockpile state. This scarcity floor is permanent, not situational.
  • Rationale: The Reach's population asymmetry (core systems 10B+, frontier systems under 50K) makes absolute volume numbers meaningless without a reference population. Without an explicit calibration rule, brand and media content significance will be systematically miscalibrated across all authoring. The structural scarcity principle connects volume calibration to the administered pricing model: a brand's Veblen premium floor is derived from the same population-relative ratio, ensuring that pricing and authoring are grounded in the same underlying reality.
  • Raised by: Jeroen (population asymmetry insight), Burnelli-Sheldon (structural scarcity derivation and calibration table), Sprint 34 Workshop #811.
  • Dissent: None.
  • Cross-reference: D-189 (structural_scarcity_base parameter), D-177 (lore-constrained production ceilings), D-175 (corporation production volumes)

Rejected Alternatives

R-011: Single currency for Phase 2 (rejected)

  • Date: 2026-04-05
  • Proposed by: Burnelli-Sheldon (economist), Sprint 32 Workshop #796 Round 1
  • Proposal: Use a single currency for the Phase 2 economics simulation to reduce model complexity. Exchange rate mechanics could be added in a later phase.
  • Rejected because: Three currencies create structural economic bloc tension as an emergent property of initialization — no event generation required. The Tractus/Mark divide maps directly to the Assembly vs. Compact political divide that is already canonical lore. Deferring currencies to a later phase would require retrofitting political geography into an already-running simulation. The complexity cost of three currencies is low; the design value is high.
  • Raised by: Lead directive overruling the recommendation.

19 decisions (D-171D-187, D-189D-190), 1 rejected alternative (R-011). Domain: economics. Last updated: 2026-04-19.