Skip to content

Regional Economy

Deep dive on the commodity, pricing, and population engine that drives Manifest Rail's dynamic economy. The economy is per-region, per-commodity, and dynamic — prices reflect local supply and demand, populations swing with commodity availability, and industries need specific inputs to produce anything.

→ Parent: GDD.md


Concept

Each region runs its own micro-economy. Commodities flow into and out of each region; prices react to local supply and demand; the regional population and the industries within it respond to whether they get what they need. The player's rail network is the connective tissue that makes the wider economy work — without rail, regions are isolated, prices distort, populations stagnate, and industries idle.

The economy is not pre-scripted. It runs continuously. Scenario authors shape starting conditions and inject events, but the day-to-day flow of goods and prices is driven by the simulation.


Commodity Categories

Commodities fall into four categories, each with its own role in the economy:

Consumer Staples

Basic necessities: food (grain, meat, produce), fuel (firewood, coal for heating), basic clothing materials, basic building materials. The local population needs these to survive. Whether they are reliably supplied determines whether the regional population grows, holds steady, or shrinks.

Consumer Luxuries

Non-essential goods: imported foods, fine textiles, manufactured furniture, period-appropriate luxury items. The local population wants these but doesn't need them to live. Their availability affects how attractive the region is to migrants — well-supplied regions attract people; poorly-supplied regions stagnate even when staples are met.

Industry Staples

Generic industrial inputs that nearly every industry needs: tooling, machine parts, lubricants, replacement components, basic metals. Industries cannot operate without their staples — they are the universal cost of doing business for any productive enterprise.

Industry-Specifics

Inputs unique to particular industries — iron ore for steel mills, raw cotton for textile mills, cattle for meat-packing plants, lumber for furniture factories, specific chemicals for refineries, and so on. Each industry has its own list of required specifics; without them, the industry produces nothing.

Starter rosters of canonical commodities and industries per era are authored per scenario. Scenarios extend or override the defaults.


Per-Region, Per-Commodity Pricing

Each commodity has its own price in each region, and prices move dynamically based on local supply and demand:

  • Local production raises supply and (all else equal) lowers price.
  • Local demand — consumption by the population, by industries, or by export — raises price.
  • Imports via rail raise local supply, lowering price at destination.
  • Exports via rail raise demand from the source's perspective, lowering price at source.

The canonical example: Chicago has many meat-packing plants that demand cattle. Local cattle prices rise to attract supply. Surrounding rural regions with cattle ranches sell at premium because Chicago is willing to pay. Rail networks that connect ranches to Chicago profit from the price differential.

Price differentials between regions create the shipping opportunities that drive contract formation (see Contracts).

Price Formula: Floor, Ceiling, and Median

Each commodity in each region has a floor price and a ceiling price, set per scenario based on historical research. The current price interpolates between the two based on local supply versus demand:

  • Pure surplus (supply far exceeds demand): price approaches the floor.
  • Pure shortage (demand far exceeds supply): price approaches the ceiling.
  • Balance (supply roughly equals demand): price sits near the median between floor and ceiling.

The interpolation is smooth (the design's quadratic curve preference applies; alternative shapes are scenario-tunable), with floor and ceiling acting as asymptotes — prices never crash to zero or spike to infinity. This bounded model reflects historical reality: even when wheat was cheap, it had a floor; even when cattle were scarce in Chicago, there was a ceiling beyond which buyers walked away or substituted. Within the bounds, supply/demand changes drive dynamic price movement that creates the shipping opportunities the contract system runs on.


Population Dynamics

Population exists at two levels — settlement population (a town's own people) and regional / rural population (a county's countryside) — per Populations. Both are dynamic values; this section describes the economic forces that move the totals. Migration in particular is what grows a settlement — including a railroad-created stop that starts at population 0 (see Settlement Growth).

Each total is driven by two layers:

Natural Shifting

Births and deaths, set per region/era based on historical demographic baselines. In short scenarios this layer typically moves slowly and may not produce much visible change — over a 5-year scenario, natural shifting alone might shift a region's count by a few percent. Over decades it adds up. It's the slow background pulse of the economy.

Migration

Driven by economic conditions, particularly:

  • Staples availability. Insufficient staples cause people to leave (or, in extreme shortages, worse).
  • Job availability. Industries hiring and railroad expansion attract workers — historically, the rapid factory and meat-packing-plant booms saw significant migration deltas as workers moved from farming regions to the new urban industrial centers.
  • Luxuries availability. Well-supplied regions become attractive to migrants beyond just job pull, accelerating their growth.

Explicit Region-to-Region Flows

Migration is tracked as explicit region-to-region flows, not just per-region net change. When the simulation runs its periodic migration pass, it pairs net-negative regions (people leaving) with net-positive regions (people arriving) and resolves specific flows weighted by rail-network distance and pull strength. The player sees the flow pattern explicitly — "Chicago grew by 15,000 this year. Primary sources: Iowa farms (+7,000), Wisconsin lumber regions (+4,000), Minnesota mining (+2,000), other (+2,000)."

Rail Infrastructure Speeds Migration

A settlement connected to its destination by rail experiences faster, larger migration than one without. Rail makes moving cheap, fast, and known — workers can hear about jobs in a destination (per the information-lag system) and physically reach it within days instead of weeks. The pull effect scales with the destination settlement's station tier — Halt has negligible pull (a flag-stop is barely visible to migrants), Depot exerts modest pull, and a Terminal-tier settlement exerts strong pull (it is a recognized destination, the station can absorb the traffic, the surrounding industry has the capacity to hire). This is the migration engine behind settlement growth: a stop the railroad plants in open country grows precisely as the network routes people and freight through it and jobs accrete around it. It produces a deliberate gameplay loop:

A large share of historical economic growth came from moving unproductive labor to productive labor — farming regions with surplus workers sending people to industrial regions where their labor produced much more output. The railroad earns twice on this dynamic:

  • Once on transport revenue (passengers traveling to the new region, plus freight supporting the new arrivals).
  • Again on downstream output (the industries those new arrivals work for ship more product through the same rail network).

Connecting a labor-rich rural region to a labor-hungry urban region is one of the highest-return strategic moves a player can make.

In active scenarios, migration is the layer the player will see move first. A railroad that opens a new urban region to staple imports, or that connects an industrial city to a labor-rich rural region, will witness migration deltas across years rather than generations. Natural shifting remains the slow baseline beneath.

The regional total is the substrate underneath the interest-group breakdown described in Populations.md — the breakdown changes the composition of the population; the economy changes the total.


Industry Production

Each industry in a region has its own production logic:

  • Inputs — a list of required commodities, separated into industry staples (universal) and industry-specifics (unique to the industry type).
  • Outputs — what the industry produces when its inputs are met.

If an industry's required inputs are not supplied, the industry produces nothing that period and operates at a loss (or shutters if the shortage persists). When inputs flow steadily, the industry produces its outputs and sells them locally or exports them via rail.

The player's strategic role is the connective work: hooking raw-material sources to industries that need them, and hooking industry outputs to consumers who want them. Each successful link enables the supply chain to keep producing.


Connection-Driven Demand — the Reinvestment Loop

Connecting a settlement to the network generates freight demand of its own — the act of expansion pays partway for the next expansion, turning growth from a war-chest drawdown into a reinvestment loop. This is the economic engine behind Pillar 7: the railroad shapes the world and is rewarded for it, not just as flavor.

When a settlement comes on-network, its own population and archetype begin emitting recurring, population-scaled freight offers into the standard contract pool — offers the player triages (or a delegate evaluates) like any other. A newly-connected farm town starts originating its dominant outbound haul (grain, then beans/hay/potatoes/livestock); a Thumb beet town adds a violently seasonal sugar/coal spike; a cut-over northern town emits little; a resort town leans to passengers over freight. The archetype gates the shape and magnitude — connecting the right town underwrites the next build, connecting a marginal one barely moves the needle.

The Shape — Partial, Diminishing, No Runaway

The payback is deliberately partial and diminishing, never a lump sum and never a flywheel:

  • Partial. A good hop-one town returns a fraction of the next build's cost per year (calibrated to a ~25–40% band). Two-to-four good connections underwrite the next line; one marginal one cannot. Expansion stays war-chest- and bond-assisted, not self-funding.
  • Sub-linear in population. A town's freight scales sub-linearly with its own population (outbound bulk originates from the rural hinterland through the depot, not resident headcount), which caps any single-town flywheel.
  • Global saturation. Each additional connection's marginal return decays as the network grows — good sites are taken first, nearby towns cannibalize each other's hinterland freight, and car supply saturates. The marginal payback halves at a scenario-tuned cadence.

These two decay terms together are the no-runaway guarantee: the loop rewards measured growth without letting either a mega-town or a wide-shallow network spiral. Only new connections beyond the founding network pay back — the starting network emits nothing extra, so a hands-off delegate's baseline is unchanged.

Period Grounding

Undiluted "a line funds the next" was a pre-1900 frontier / townsite-promotion dynamic. By the 1920s Michigan was densely railed, good corridors were taken, construction was bond- and war-chest-funded, and ICC tariffs capped what a branch could earn — so the model is intentionally partial + diminishing, with the frontier pointing north into declining cut-over land. Freight magnitudes and archetype shapes trace to real 1920s Michigan commodity flows. (First shipped as M20; values are scenario-authored and inert on scenarios that don't author them.)


Player Visibility

The economic picture surfaces to the player in three complementary views, each suited to different decisions:

Per-Region Drilldown Panel

Open any region's profile page — from a table, a link, or by clicking it on the map — to see its full economic profile: local commodity prices (each with floor / ceiling / current), supply and demand levels, industries operating in the region with their input/output flows, and recent migration deltas. The default deep-dive view for understanding any specific region.

Heat Map Overlay

A toggleable overlay (per commodity) showing prices across the regional map as a color gradient — high-price regions saturated, low-price regions pale, balanced regions neutral. Lets the player spot price differentials at a glance and identify shipping opportunities. Parallels the Territory View overlay used for ownership visualization.

Tabular Commodity Browser

A sortable, filterable matrix of commodities × regions showing prices, supply, and demand. Power-user view for finding arbitrage opportunities, planning long-haul contract chains, and tracking commodity trends across the whole map. Searchable and exportable.

The three views are layered — the player can hop between them as needed. The region profile page and the tabular browser are the primary surfaces: region drilldown answers "what's going on in this region?", the table answers "show me everything." The heat map is the on-demand spatial overview ("where are the price differentials?") — one of the map view's modes, called up when the player wants to read differentials geographically.


Scripted Economic Events

Economic shocks — panics, booms, harvest failures, gold rushes, regulatory upheavals — enter the simulation through the standard event system, using generic primitives that scenarios apply through scripted triggers. This mirrors the pattern used for lag disruptions: the simulation provides reusable mechanisms; scenarios script when and where they fire. The pattern applies to events generally across the design — see Events.md — not just economic ones.

Generic Primitives

The simulation supports the following economic-event primitives, each applicable to one or more regions for a defined duration:

  • Price shock — apply a multiplier to a commodity's floor / ceiling / current price in specified regions. Used for booms, busts, panics, regional shortages.
  • Supply shock — boost or cut a commodity's production rate in specified regions. Used for harvest failures, mine collapses, factory openings, agricultural windfalls.
  • Population shift — directly migrate people in or out of specified regions, bypassing the slow normal migration pass. Used for gold rushes, mass evacuations, sudden displacements.

Each primitive carries magnitude, duration, scope (which regions are affected), and recovery shape (sudden / linear / quadratic), the same parameter set used for lag disruptions.

Scenario-Scripted Triggers

Scenarios author specific events that fire these primitives in combination:

  • Panic of 1893. Global price shocks on financial-sensitive commodities; supply cut on imports as credit tightens; population shifts away from collapsed industrial regions.
  • California Gold Rush. Sudden population pull into the gold-mining region; supply boom on gold; supply demand spike (food, equipment, transport) into the region.
  • Plains harvest failure. Regional supply cut on grain; population pressure away from affected farming regions; price spike on grain in everywhere it's normally shipped.
  • Industrial boom. Regional demand spikes for industry staples; population pull into hub regions; price pressure on labor-supporting commodities (housing materials, fuel, food).

Scope

Events can be authored at any scope:

  • Region-specific — a hurricane on Galveston only affects Galveston region.
  • Global — a national panic affects every region.
  • Mixed — a financial panic hits financial-center regions harder than rural ones; a westward migration boom hits eastern source regions and western destination regions but leaves central plains untouched.

Interaction with Other Systems

  • Map and Regions. Each region carries its commodity profile (what it produces, what it consumes, what industries are present) as a region property; see MapAndRegions.md. Terrain and the urban/rural classification naturally inform that profile.
  • Populations. Total regional population is driven by this economy; the breakdown into interest groups lives in Populations.md.
  • Contracts (Business Dealings). Commodity price differentials between regions are what give contracts their value. A shipper paying the company to move cattle from a Texas ranch region to Chicago is paying for the rail link that captures the differential. Tier eligibility uses the endpoint-only station / interior-line rule (see How the Two Ladders Interact): the commodity's station-tier requirement applies at the pickup and delivery regions, and its line-tier requirement applies to the interior haul — branch-tier feeders are allowed at the start and end of a route into a Trunk-tier mainline. This is what lets the canonical "Halt-tier farm → Branch feeder → Trunk mainline → Terminal-tier city" pattern be a single legal contract.
  • Goodwill. Failure to supply staples to a region damages goodwill with the regional Public; consistent supply lifts it. Local industry failures (when inputs aren't supplied) cascade into Industrialist and Government goodwill effects.
  • Construction and Operations. Connecting a new region opens new economic flows. A rail line into a region with surplus production unlocks export potential and lowers local prices; opening an isolated region to imports of staples can save it from population collapse. Connecting a settlement also generates its own recurring freight demand (see Connection-Driven Demand) that partially funds the next build — expansion is a reinvestment loop, not a pure drawdown.
  • Network throughput. Each rail segment between adjacent regions has a finite throughput capacity (see Per-Segment Composition). The volume that flows through the network is checked against that capacity every day — saturation starves contracts via the standard triage mechanic. Investment in parallel lines, line upgrades, and signaling tech raises a corridor's effective capacity. This means a contract has commercial value only if there's physical room on the route to carry it. Price differentials still drive contract generation; throughput determines which of those contracts can actually be served.

Open Questions

All major Economy design questions are currently resolved. Specific tunable values — base migration rates, rail-speedup multipliers per era, price-shock magnitudes for typical economic events, supply-shock recovery curves — are scenario-tunable and will need playtesting. Default commodity and industry templates are authored per era and extensible per scenario.