Economy Lifecycle — The Money Loop¶
How credits are minted, circulated, and destroyed in SectorWars 2102. Sister doc to trading.md, which covers the station pricing engine; this doc covers the macro flow — every faucet, every sink, the target ratios between them, and the levers admins pull when the loop drifts.
A healthy economy has roughly balanced inflow and outflow at the population level, with mild deflationary pressure from sinks so that effort retains meaning. When faucets dominate, prices spiral and rank progression cheapens; when sinks dominate, players cannot afford ships and quit.
1. Sources of credits (faucets)¶
Every credit in circulation originated at one of these. Citations are target homes for the spawn logic.
1.1 Trade margin¶
Source: services/gameserver/src/services/trading_service.py (calculate_dynamic_price, SELL_SPREAD = 1.15, BUY_SPREAD = 0.85).
A player who buys low at a surplus station and sells high at a scarcity station extracts the spread. The credits they earn are not minted — they were already attached to the destination station's buying budget. Net effect on money supply: zero per round trip (the station's budget refills slowly via tick_production-driven price recovery, not by direct credit creation).
Status: ✅ Shipped — pricing engine, spread, regen tick all operational.
1.2 Combat loot¶
Source: services/gameserver/src/services/combat_service.py (loot drop on kill).
When an NPC ship or hostile player ship is destroyed, a fraction of its current_value plus any cargo credits is awarded to the winner. NPC kills mint new credits into the economy (true faucet). PvP kills are zero-sum — they only redistribute.
Target: NPC kill loot ≈ 5–15% of NPC ship current_value, capped per encounter to discourage farm loops.
Status: 🚧 Partial — combat resolution exists; loot drop tables and per-region scaling are 📐 Design-only.
1.3 Bounty payouts¶
Source: services/gameserver/src/services/bounty_service.py.
Federation Bounty Board payouts are minted by the issuing faction when a bountied target is destroyed (true faucet); player-placed bounties are zero-sum (redistributed from placer to collector). Target: 5,000–250,000 cr per kill scaling with target's personal-rep tier.
Status: 🚧 Partial — bounty placement / collection / Federation auto-attachment all exist as endpoints; the per-tier payout scale is 📐 Design-only. Faction reputation moves emergently per ADR-0032, not via quest acceptance.
1.4 Colonist sales¶
Source: services/gameserver/src/services/planetary_service.py, planets/colonization.md.
Owned planets produce surplus pioneers (births, retirees seeking transit, voluntary outbound migrants). The player ferries them back to Class-0 stations, where the regional Pioneer Office buys out their migration contracts at 30–80 cr per pioneer (COMMODITY_PRICE_RANGES["colonists"] in trading_service.py) and reabsorbs them into the available roster for redistribution. This is redistributive like ordinary trade — but unlike commodity arbitrage, the pioneer supply originates from a player asset (the planet) rather than a station. The station's pioneer-contract budget is a true faucet, since stations buy more pioneer transit-out than they will ever re-issue.
Target: a fully-developed planet should yield 1,000–5,000 cr/day in pioneer-export contracts.
Status: 🚧 Partial — planets and colonist counters exist; periodic production and selling flow are 📐 Design-only.
1.5 Guild loyalty stipend (per-faction payout)¶
Source: services/gameserver/src/services/economy_faucet_service.py (the daily-active stipend sweep + STIPEND_BY_TIER), wired into the NPC scheduler.
The factions a player is in good standing with each pay a daily guild loyalty stipend, scaled by the player's reputation tier with that faction and summed across factions — so loyalty to multiple guilds compounds into recurring income, and alignment carries a tangible economic reward on top of the station-price modifier. The grant is active-gated: it pays once per UTC day, and only on days the player was active (idle days pay nothing), idempotent against a durable per-day anchor. Factions the player stands poorly with pay nothing; a player in good standing with no faction earns no stipend. True faucet.
A global cap on the total daily stipend (summed across all factions) prevents a multi-guild-favored player from earning runaway income, and holds the total below the Galactic Citizen subscription perk (§1.6) so the paid perk stays the larger benefit.
Target: conservative per-faction-per-tier daily rates plus a global daily cap, started low (easier to raise than to claw back). The per-faction rates and the cap are NO-CANON pending Max — see DECISIONS economy-faucet-amounts.
Status: 🚧 Partial — a daily-active stipend sweep runs on the NPC scheduler; the per-faction-payout model + global cap are being wired (WO-BM); per-faction rates + cap are NO-CANON pending ratification.
1.6 Subscription perks¶
Source: services/gameserver/src/services/economy_faucet_service.py (_apply_citizen_perks, CITIZEN_WEEKLY_PERK), services/gameserver/src/services/paypal_service.py (SubscriptionTier), models/user.py:subscription_tier, Player.is_galactic_citizen. See OPERATIONS/monetization.md.
Galactic Citizens ($5/mo) receive a weekly credit grant on top of the §1.5 guild loyalty stipend (whose total daily payout is capped below this perk, so Citizenship stays the larger benefit), paid on its own weekly faucet cadence and gated on both Player.is_galactic_citizen and a live User.subscription_tier == "galactic_citizen" check so a lapsed subscription stops the grant. Region Owners ($25/mo) receive treasury seeding for their region, used for NPC bounties and infrastructure subsidies — not paid directly to the owner.
Target: a fixed per-week Galactic Citizen credit grant (≈ one extra small-haul profit per week); Region Owner ≈ 100,000 cr seeded into region treasury per month. The Citizen weekly magnitude is NO-CANON pending Max — see DECISIONS economy-faucet-amounts.
Status: 🚧 Partial — the Galactic Citizen weekly credit grant ships on the NPC scheduler (magnitude NO-CANON pending ratification); Region Owner treasury seeding is 📐 Design-only.
1.7 Starting grants¶
Source: models/player.py (credits = Column(... default=10000)), models/region.py (starting_credits = Column(..., default=1000)).
New characters spawn with 10,000 credits; per-region starting credits override this default. Pure faucet (one-time per character).
Status: ✅ Shipped — default in player model.
2. Sinks of credits¶
2.1 Port purchases¶
Source: services/gameserver/src/services/trading_service.py, trading.md.
Buying commodities at a station hands credits to that station's budget. The station's budget is not infinite — it refills slowly via the dynamic-pricing equilibrium. Net effect on money supply: depends on whether the station's budget overflows back into the void or stays bound. Today: bound (station credits are not tracked as explicit liability, so player credits leaving inventory effectively destroy money supply — this is a soft sink).
Status: ✅ Shipped (purchase flow), 📐 Design-only (explicit station treasury accounting).
2.2 Ship costs¶
Source: services/gameserver/src/services/ship_service.py:create_ship, models/ship.py:ShipSpecification.base_cost.
New ship purchases. Hard sink — credits leave the player's wallet and are not credited to any other player. Costs scale by ship type: Scout ≈ 30K, Fast Courier ≈ 50K, Light Freighter ≈ 80K, Cargo Hauler ≈ 250K, Defender ≈ 300K, Colony Ship ≈ 500K, Warp Jumper ≈ 1M (built only at TradeDocks; the Warp Jumper hull is also consumed per gate built per ADR-0029, making each gate creation an additional ~1M sink on top of the gate materials), Carrier ≈ 1.5M.
Status: ✅ Shipped — base costs in ShipSpecification.
2.3 Ship upgrades¶
Source: services/gameserver/src/services/ship_upgrade_service.py (UPGRADE_DEFINITIONS).
Each upgrade level applies a geometric cost multiplier (typical: 2.0x per level). See gameplay/ship-systems.md. Hard sink.
| Upgrade | Base cost | Multiplier |
|---|---|---|
| Engine | 5,000 | 2.0 |
| Cargo Hold | 3,000 | 1.8 |
| Shield | 8,000 | 2.2 |
| Hull | 7,000 | 2.0 |
| Sensor | 6,000 | 2.5 |
| Drone Bay | 10,000 | 2.0 |
| Genesis Containment | 15,000 | 3.0 |
Status: ✅ Shipped — costs and multipliers live in UPGRADE_DEFINITIONS.
2.4 Equipment slots¶
Source: services/gameserver/src/services/ship_upgrade_service.py (EQUIPMENT_DEFINITIONS).
Modular equipment (Quantum Harvester 50K, Mining Laser 35K, Planetary Lander 20K, Tractor Beam 40K). Hard sink. See gameplay/ship-systems.md.
Status: ✅ Shipped.
2.5 Citadel & planet upgrades¶
Source: services/gameserver/src/services/citadel_service.py, services/gameserver/src/services/planetary_service.py.
Building or upgrading a citadel on an owned planet, or constructing planetary infrastructure (production, defense, terraforming), drains hard credits from the player.
Target: tier-1 citadel ≈ free (issued on first colony), tier-5 citadel ≈ 2M (cumulative ladder L1→L5 ≈ 2.7M per ../planets/citadels.md); terraforming ≈ 1M per biome shift.
Status: ✅ Shipped — citadel_service.CITADEL_LEVELS holds the L1→L5 cost ladder (L2 50k, L3 150k, L4 500k, L5 2M credits plus per-level resource costs) and drives the timed upgrade tree.
2.6 Taxes¶
Source: models/region.py:tax_rate (DECIMAL(5,4), constraint 0.05–0.25), services/gameserver/src/services/regional_governance_service.py, services/gameserver/src/services/migration_service.py (region defaults).
Every market transaction in a region is taxed. The tax goes to the region's treasury (which funds NPC bounties, infrastructure, and — once the design is finalised — the region owner's payout share).
Tax rates per region type:
| Region type | Tax rate | Source |
|---|---|---|
| Central Nexus | 0.00% | migration_service.py:126 ("No taxes in Central Nexus") |
| Terran Space (Capital Sector / starter) | 2.0% | galaxy_service.py:681,1091 |
| Player-owned (default) | 5.0% floor – 25.0% ceiling, default 10.0% | models/region.py:100,134, valid_tax_rate constraint |
| Region Owner can adjust | within 5–25% | regional_governance_service.py:117 |
Status: ✅ Shipped — tax_rate column with constraint exists. ✅ Shipped — collection on every transaction credits the station treasury.
2.7 Repairs¶
Source: services/gameserver/src/services/ship_service.py:repair_ship.
Repair cost scales with damage % and ship current_value. Hard sink at the station's repair bay.
Target: 0.5% of current_value per 1% hull repaired; full repair of a 300K Defender from 50% hull ≈ 75,000 cr.
Status: 🚧 Partial — repair_ship exists; cost model is rough.
2.8 Insurance premiums¶
Source: models/ship.py:insurance (JSONB), models/ship.py:InsuranceType (NONE / BASIC / STANDARD / PREMIUM), services/gameserver/src/services/ship_service.py:_calculate_insurance_payout.
Players pay a one-time premium at ship commissioning, proportional to Ship.purchase_value; coverage stays attached to the hull for its lifetime. On ship loss, the policy pays out a fraction of purchase_value minus the tier's deductible. Premiums are a hard sink; payouts are a faucet, but the spread (premium total > expected payout across the population) guarantees insurance is net deflationary.
Canonical tiers (✅ Shipped — see ../gameplay/ship-insurance.md for full spec, worked examples, and edge cases):
| Tier | Premium (% of purchase_value) |
Coverage | Deductible | Net payout |
|---|---|---|---|---|
| BASIC | 10% | 50% | 5% | 45% |
| STANDARD | 17% | 75% | 10% | 65% |
| PREMIUM | 22% | 90% | 15% | 75% |
Warp Jumper and Escape Pod are non-insurable (ShipSpecification.insurable = false).
Status: ✅ Shipped — insurance field exists, payout calc applies the per-tier coverage minus deductible; one-time premium charge at commissioning is the canonical model (no recurring billing loop).
2.9 Warp gate construction¶
Source: services/gameserver/src/services/galaxy_service.py, models/warp_tunnel.py.
Player-built warp tunnels between sectors are extremely expensive (millions of credits) and consume materials. End-game sink.
Target: ~1.1M cr per gate all-in, dominated by the consumed Warp Jumper hull (1M) plus 1 Quantum Crystal at Phase 1 + Phase 3 materials (1,000 ORE / 500 TECHNOLOGY / 1,000 LUMEN_CRYSTALS). See ../galaxy/warp-gates.md#phase-totals and ADR-0029.
Status: ✅ Shipped — warp_gate_service.deploy_beacon runs the Phase 1 player-built construction flow (50 turns + 10,000 cr + 1,000 ore + 500 equipment + 1 Quantum Crystal).
2.10 Genesis device costs¶
Source: services/gameserver/src/services/genesis_service.py, models/genesis_device.py.
Genesis devices create new planets from empty sectors. Pricing is tier-based per GENESIS_TIERS: basic 25,000 / enhanced 75,000 / advanced 250,000 credits per device. The advanced tier additionally consumes the Colony Ship (~500,000 cr) at sacrifice. See ../galaxy/genesis-devices.md for the full mechanic and ADR-0012 for the pricing-model decision.
Status: ✅ Shipped — GENESIS_TIERS cost schedule is in code; deployment flow is 🚧 Partial.
2.11 Subscription fees (out-of-game, real currency)¶
Source: services/gameserver/src/services/paypal_service.py. See OPERATIONS/monetization.md.
Real-money subscriptions ($5 / $25 / $50 per month) are not in-game credit sinks but they fund the operator. Mentioned here because they intersect with in-game perks.
2.12 Gambling (net house edge)¶
Source: services/gameserver/src/api/routes/gambling.py. See gambling.md.
The four SpaceDock casino games (Cosmic Slots, Nebula Dice, Sector Sweep lottery, Stellar Blackjack) each pay back less than they take across the population — every game carries a built-in house edge, so credits wagered are a net sink at the money-supply level (the shortfall between stakes and payouts is destroyed, since the "house" is not a credit-holding entity). The deepest edge is Cosmic Slots, whose configured weights and payouts yield RTP ≈ 45.6% (house edge ≈ 54.4%) — for every 1,000 cr fed to the slots, ≈ 544 cr leaves circulation on average. Dice, lottery, and blackjack carry their own (smaller) edges. Gambling is a voluntary, self-throttling sink: heavy whales who chase jackpots drain themselves fastest.
Status: ✅ Shipped — all four games live and concurrency-hardened (blackjack server-authoritative anti-faucet b0b988d; slots/dice/lottery row-locked atomic settle 9a91895). See gambling.md for per-game tables and the venue-gating bug.
3. Faucet-vs-sink target ratio¶
The economy targets a mild net sink at steady state — sinks should slightly exceed faucets so that effort retains value and credits do not inflate to meaninglessness. Concretely:
- Daily aggregate faucet (combat loot + colonist sales + bounty payouts + stipends + contract completion) per active player: target 15,000–30,000 cr/day by mid-game.
- Daily aggregate sink (upgrades + repairs + insurance + taxes + ship purchases amortised) per active player: target 20,000–35,000 cr/day by mid-game.
- Net per-player drain: 5,000 cr/day mid-game, scaling up at end-game where citadels and genesis devices dominate.
For new players (first 10 hours), the ratio reverses — faucets dominate so the player accumulates the buffer needed to upgrade their first ship. This is the wealth ramp.
3.1 Net economy ledger — the empire-upkeep accounting¶
Status: 📐 Design-only — pending ratification. This ledger and the §3.2 acceptance gate define how "daily net" is computed for the T1.5 governed-flywheel economy. The drain rows below are the new faucet-governor / Citadel Research / promotion-gate / decay sinks; their magnitudes are NO-CANON placeholders shipped conservative and instrumented, not yet Max-blessed. The §3 target ratios above remain the canonical steady-state goal; this subsection makes that goal computable for a mature empire by enumerating every passive credit flow and defining their difference as the dashboard-read net.
The §3 target ratio is stated per active player at mid-game. The governed flywheel adds a second, sharper question: for a mature empire that has finished its build-out and now merely holds its worlds, does the recurring drain exceed the recurring income? An empire that nets positive while idle inflates the money supply exactly when its owner is richest. The net economy ledger is the per-empire accounting that answers this, summed over a colonized empire's passive flows:
Daily net = Σ faucets − Σ drains.
It is read on the admin Empire-Upkeep dashboard against the synthetic 10-world capstoned whale (§3.2). Both sides are passive/recurring flows — the steady-state of a held empire, excluding burst income (a single combat kill, a one-shot trade run) and burst spend (a ship purchase). One-time charges are amortized or noted as one-time.
Faucets (recurring credit income, per colonized world then scaled)¶
| Faucet | Per colonized world | 10-world whale | Source |
|---|---|---|---|
| Guild loyalty stipend (§1.5) | empire-level, not per-world | ≈ 700 cr/day | top reputation tier, summed across factions, under the global daily cap (held below the Citizen perk). NO-CANON. |
| Galactic Citizen perk (§1.6) | empire-level, if subscribed | ≈ 360 cr/day | 2,500 cr/week ÷ 7. NO-CANON; counted only for a subscribed whale. |
| Pioneer-export contracts (§1.4) | 1,000–5,000 cr/day | (activity-gated — see note) | a fully-developed world's ferry yield; realized only while the owner actively ferries pioneers, so it is not part of the passive held-empire net. |
| Trade margin (§1.1), combat loot (§1.2), bounty (§1.3) | activity-driven | (excluded) | burst/active income, zero passive contribution to a held empire. |
A held capstoned whale's passive faucet floor is therefore the two recurring stipends: ≈ 700 + 360 ≈ 1,060 cr/day (≈ 700 for a non-subscriber). Pioneer export and all activity income sit on top only when the player is playing and are deliberately excluded from the held-empire net so the gate measures the worst case (a parked empire), not an actively-farmed one.
Drains (recurring credit sinks, per colonized world then scaled)¶
| Drain | Mechanism | 10-world whale | Note |
|---|---|---|---|
| Faucet credit-copay | FAUCET_CREDIT_COPAY × governed_rp × RP_TO_CREDIT_RATE, charged every day RP is banked |
≈ 4,471 cr/day | empire-level — scales with the governed RP sum, not per-world. The recurring involuntary floor. FAUCET_CREDIT_COPAY = 0.10. |
| Citadel Research contract spend | Overclock (50,000 cr / 3 days = ~16,700 cr/day) or Rush (30,000 cr, instant) | 0–16,700+ cr/day | voluntary — a whale buying continuously to ceiling the faucet drains ~16,700 cr/day per active Overclock; a non-buyer drains 0 here. NO-CANON. |
| No-free-promotion levy | one-time charge at citadel tier ≥ 2 | one-time 50,000 cr | a gate, not a recurring floor — paid once per world promotion, then zero. Amortized to ~0 cr/day on a mature empire (every world long since promoted). NO-CANON. |
| Building / citadel upkeep | building_catalog.upkeep (FORGE 600, LAB 400, …) |
per the K1b-5 upkeep loop | a third distinct continuous drain class, sized in its own loop, not the recurring floor. |
| Decay-driven re-spend | decay_pressure() keeps a trickle of feed/Stabilize demand alive even on a capstoned world (DECAY_DONE_MULT = 0.1, not 0.0) |
small, variable | a resource/material class, not a direct credit sink — it keeps the contract-offer loop warm so the voluntary drain above has demand. NO-CANON. |
3.2 The #9 aggregate gate — hard ship-acceptance¶
The T1.5 economy tranche ships behind a single hard, falsifiable acceptance gate layered above the per-piece proofs: on the synthetic 10-world capstoned whale, the Empire-Upkeep dashboard must read
daily net ∈ [−8,000, −3,000] cr/day
before any economy knob (governor cap, copay rate, contract cost, decay multiplier, promotion levy) rises above its conservative first cut. Nothing locks hard until the dashboard confirms this band; the knobs are tuned as a set against it, never individually. A net above −3,000 cr/day (too shallow a drain, or positive) means the empire still inflates while idle — raise a drain. A net below −8,000 cr/day means a mature player is bled faster than they can sustain and risks the "can't afford ships and quit" failure — ease a drain.
3.3 Current gate check (the result Max ratifies)¶
Computed from the measured live CRT-4 build (governor caps the synthetic whale's research at ~4,471 governed
RP/day under GOV_BASE_SOFT_CAP = 1,500) and the ruled NO-CANON magnitudes:
Σ faucets (passive, held empire)
guild loyalty stipend (top tier, under cap) ≈ +700 cr/day
Galactic Citizen perk (2,500/wk ÷ 7) ≈ +360 cr/day
Σ ≈ +1,060 cr/day (≈ +700 if not a Citizen)
Σ drains (recurring)
faucet credit-copay (0.10 × 4,471 × 10) ≈ −4,471 cr/day
Overclock contract, run continuously ≈ −16,700 cr/day
promotion levy (one-time, amortized ≈ 0) ≈ 0 cr/day
Σ ≈ −21,171 cr/day (continuous-buyer)
Σ ≈ −4,471 cr/day (copay floor only, non-buyer)
Daily net = Σ faucets − Σ drains
held non-buyer (copay floor): +1,060 − 4,471 ≈ −3,411 cr/day → in band (≈ −3,771 if not a Citizen)
moderate cadence (~1 OC / 13d): ≈ −7,236 cr/day → in band
continuous Overclock buyer: +1,060 − 21,171 ≈ −20,111 cr/day → below −8k (voluntary over-spend)
Result: the gate PASSES. With the faucet credit-copay at 0.10, the realistic whale sits inside [−8,000, −3,000] cr/day across the held-to-moderate-cadence range: a fully held empire drains ≈ −3,411 cr/day (≈ −3,771 if not a Citizen), just inside the −3k idle-inflation guard, and a typical intermittent Overclock cadence deepens that toward the −5,000 midpoint (≈ −5,000 at ~1,589 cr/day of contract spend) and ≈ −7,236 cr/day at about one Overclock every ~13 days. Only a player who runs Overclock continuously falls past −8k (≈ −20,111 cr/day), which is a voluntary over-spend rather than a balance fault.
The band is measured against the expected contract cadence — a whale buys Overclock intermittently, not
continuously — and the copay floor is set at 0.10 so even a fully idle mature empire clears the −3k
idle-inflation guard. This is the ratified result: FAUCET_CREDIT_COPAY is 0.10, the expected-cadence
interpretation is accepted, and no further economy knob moves above its conservative first cut.
4. Inflation indicators¶
Source: services/gameserver/src/services/economy_analytics_service.py (get_economic_metrics, _calculate_inflation_rates, _calculate_money_supply, _calculate_health_score), models/market_transaction.py:EconomicMetrics.
The admin dashboard surfaces:
- Total credits in circulation (
EconomicMetrics.total_credits_in_circulation) — daily snapshot. Rising trend = inflationary. - Credit velocity (
EconomicMetrics.credit_velocity) — transactions per credit per day. Falling = stagnation; spiking = bubble. - Average commodity prices vs spec mid-points — drift toward the price ceiling indicates demand pressure / scarcity. Drift toward the floor indicates oversupply.
- Wealth distribution / Gini coefficient (
_calculate_wealth_distribution) — high concentration suggests faucets are reaching whales but not new players. - Market liquidity — ratio of credits to outstanding inventory.
- Health score — composite 0–100, rendered on the admin Economy Dashboard.
Status: ✅ Shipped — analytics service computes all of the above. 🚧 Partial — total_credits_in_circulation only updates if EconomicMetrics rows are written by a periodic job; that scheduler is 📐 Design-only.
UI: services/admin-ui/src/components/pages/EconomyDashboard.tsx.
5. Balancing levers (admin controls)¶
When the analytics dashboard signals drift, an operator can pull these levers without a code deploy. All exposed in the admin Economy Dashboard.
| Lever | Effect | Source of truth |
|---|---|---|
Adjust regional tax_rate (5–25%) |
Throttles a primary sink | models/region.py, regional_governance_service.py:117 |
Adjust Region.starting_credits |
Slows or accelerates the wealth ramp for new arrivals | models/region.py:103 |
Adjust Player.turns regen |
More turns → more activity → faster faucet and sink throughput | services/ranking_service.py (turn bonuses) |
Adjust commodity production_rate (per station) |
Loosens or tightens supply, shifts margins | Station.commodities JSONB, trading_service.py:tick_production |
Adjust commodity base_price (per station) |
Direct price floor lift/drop | Station.commodities.base_price |
| Adjust bounty payouts | Direct faucet throttle | bounty_service.py |
Adjust upgrade base_cost / cost_multiplier |
Direct sink throttle | ship_upgrade_service.UPGRADE_DEFINITIONS |
| Adjust insurance premium / payout ratios | Tunes deflationary pressure | ship.InsuranceType, ship_service._calculate_insurance_payout |
| Mint or burn credits via admin grant | Emergency intervention; logged in audit trail | services/audit_service.py, admin player editor |
| Pause production tick | Hard freeze — used during economic exploits investigation | scheduler (📐 Design-only) |
Status: ✅ Shipped — tax_rate, starting_credits, ship base costs, upgrade definitions are all editable. 🚧 Partial — many levers require direct DB edits today rather than admin-UI controls. 📐 Design-only — unified "Economy Levers" panel.
6. Cross-region economics¶
Source: services/gameserver/src/services/regional_governance_service.py, models/region.py, OPERATIONS/multi-regional.md.
Each region runs its own economy:
- Independent tax_rate.
- Independent commodity stock and price equilibria (stations are scoped to a region via Station.region_id).
- Independent treasury (the destination of taxes).
Galactic Citizens (paid tier) can move credits and goods across regions through the Central Nexus. This arbitrage between regions is intentional — it's the macro-trade game-loop that emerges once a player saturates one region's local margins.
Region owners control their region's tax_rate, can issue regional NPC bounties from the treasury, and can subsidise infrastructure (citadels, warp gates) for resident players.
Status: 🚧 Partial — region-scoped tax rate works; cross-region arbitrage and treasury-funded subsidies are 📐 Design-only.
7. Cross-references¶
- trading.md — micro pricing engine.
- planets/colonization.md — colonist faucet detail.
- gameplay/ship-systems.md — upgrade and equipment sinks.
- gameplay/ranking.md — rank progression unlocks bigger faucets and sinks.
- OPERATIONS/monetization.md — real-money subscription perks that intersect with the in-game economy.
- OPERATIONS/multi-regional.md — region-scoped economics and inter-region travel.