Economy Formulas

Economy Formulas

Accurate as of v1.22.0 (July 2026).

For players who want to optimize every credit. These are the live formulas as of v1.22.0, verified against the game backend. Numbers can shift in future releases — check the version stamp.

One rhythm underpins most of them: the 4-hour cycle. Turn resets, planet production, disabled-ship recovery, trade-pressure recovery, and trading post refills all run at 00/04/08/12/16/20 UTC.

Trade Prices

Each port type charges a fixed base price per commodity — identical in every galaxy. Stock level has no effect on price.

buyPrice  = basePrice[portType][commodity]
sellPrice = floor(buyPrice × 0.9)

Base buy prices (cr/unit):

Port TypeFuelOrganicsEquipment
Stardock100120500
Federation Port120140600
Standard Port90110450
Fuel Depot70180500
Agricultural Station13060700
Tech Outpost110130300
Pirate Base80100400
Black Market6080200
Mining Station85200450
Research Complex120150280

Two live modifiers apply on top, in order:

Trade pressure (standard-economy ports only — Standard, Fuel Depot, Agricultural, Tech, Mining, Research):

buyPrice'  = floor(buyPrice × (1 + B × 0.002))          // no ceiling
sellPrice' = max(1, floor(sellPrice × (1 − S × 0.002))) // floor 1 cr

B and S are per-commodity transaction counts (buys and sells). Pressure decays 20 points per 4-hour cycle, but only for commodities with zero trades during that cycle.

Reputation:

buyPrice''  = buyPrice'  × factionMult × traderMult
sellPrice'' = sellPrice' × 1 / (factionMult × traderMult)

factionMult ranges 0.80 (friendly) to 1.50 (hostile), linear over ±1000 alignment, at Federation and Pirate ports only. traderMult ranges 0.90 to 1.10 over trader reputation 0–100. See Reputation & Factions.

Fees and taxes (per transaction):

buyTotal  = subtotal + round(subtotal × taxRate) + round(subtotal × 0.01)
sellTotal = subtotal − tax − portFee

taxRate: Federation 5% (7% for Pirate-faction players), Tech Outpost 3%, everything else 2% (player trading posts: 0% when you buy, 2% when you sell). The 1% port fee applies everywhere.

Ship Combat

Full context in the Combat guide. Attack and defense are asymmetric — fighters and torpedoes only attack, shields only defend:

attackPower  = basePower × 0.5 + 2.0 × fighters + 5.0 × torpedoes
defensePower = basePower × 0.5 + 3.0 × shields

Torpedo shield penetration: each attacker torpedo bypasses 1% of the defender’s shield contribution, capped at 50%:

defensePower −= 3.0 × shields × min(0.50, torpedoes × 0.01)

Modifiers (multiply the relevant side’s power):

ModifierEffect
Ship roleoffense/defense multipliers roughly 0.95–1.12 by class
Ship tier+4% per tier above 1 (max +16% at Tier 5)
Advanced Attack Systems+10% offense
Reinforced Armor Plating+10% defense
Combat AI Corefighters count ×1.20
Region: FED_CORE / FED_SPACE+10% / +5% to Federation-aligned defenders
Region: MIDDLE / OUTER+2% / +5% to any attacker
Region: OUTER_RIM+10% to pirate-aligned ships (either role)

Win probability:

p = A × U[0.98, 1.02] / (A × U + D × U)
  + 0.30 × (atkFighters / (atkFighters + defFighters + 1) − 0.5)   // ±15% max
  + stealth first-strike (+12%, −6% if defender has sensors)
p clamped to [0.05, 0.95];  attacker wins if rand() < p

No fight is ever safer than 95% or more hopeless than 5%.

Combat is pre-rolled. NPC encounter outcomes are computed the moment the encounter fires — pressing Attack on a non-aggressive NPC commits an already-decided result, and an ambush is applied before you even see the modal.

Retreat (defending players only, rolled before any power math):

escape = 0.25 + 0.35 × escapeRating − 0.15 × (atkFighters / totalFighters)
         (+0.05 in FED_CORE/FED_SPACE) (+0.15 Stealth Plating) (+ship-ability escape bonuses)
clamped to [0.05, 0.85]

Attrition. With a = (1 − p) × (1 − shields/(shields + 100) × 0.5):

Winner: fighters −= floor(fighters × a × 0.4)
        shields  −= floor(shields × a × 0.25)
        torps    −= floor(torps × (0.2 + 0.5 × a))
Loser:  loses (0.5 + 0.5 × p) × own shield mitigation, applied to all three stats

The loser is always disabled (not destroyed, unless it entered the fight with 0 shields, 0 fighters, and 0 torpedoes — then it’s destroyed). Disabled ships auto-repair at the next 4-hour boundary: status OK, shields restored to 50% of max. Fighters and torpedoes are consumables — re-buy them at a starport, or use port repair to restore everything.

Siege (Port & Planet Attacks)

Attacks on ports and planets use a separate, simpler formula — this is where the old 0.8/1.2/2.0 weights live:

A = ceil(fighters × 1.2 if Combat AI) × 0.8 + shields × 1.2 + torpedoes × 2.0
D = max(10, garrison × 0.8 × (1 + defenseBonus) + structuralDefense)
p = clamp01(A / (A + D) ± 0.02)

For planets, defenseBonus combines Shield and Citadel structures multiplicatively: defenseBonus = (1 + 0.15 × shieldLevel) × (1 + 0.10 × citadelLevel) − 1 (so 5/5 gives +158.75%, not +125%), and structuralDefense = 12 × shieldLevel + 25 × citadelLevel. Win: garrison −50%. Loss: garrison −20%, your ship disabled with fighters and shields wiped.

Loot

Winner takes credits from the loser’s wallet — banked credits are never touched:

creditsLooted = floor(min(tierCap, loserWallet × lootFactor))

Loot factors by the winner’s faction:

Winner FactionCreditsCargo
Neutral25%30%
Federation20%25%
Pirate35%40%

Credit caps by the winner’s ship tier:

TierCredit Cap
15,000 cr
215,000 cr
340,000 cr
4100,000 cr
5200,000 cr

In PvP, loot is credits only — cargo is not transferred between players. When an NPC defeats you, it also takes cargo (the cargo factor of what you carry), deducted from your cheapest lots first; contraband lots are never looted.

Planet Production

Runs every 4-hour cycle (6 ticks per day). Uncollected output does not accumulate — the next tick overwrites it. Full context in the Planets guide.

factoryMult = 1 + 0.15 × factoryLevel
popMult     = 0.2 + (population / populationCap) × 0.8
citadelMult = 1 + 0.10 × citadelLevel

output[c] = floor(base[c] × factoryMult × popMult × citadelMult)

Base rates per tick: Fuel 35, Organics 25, Equipment 13. A maxed planet (Factory 5, Citadel 5, full population) produces 91 fuel + 65 organics + 34 equipment = 190 units per tick. Planet type and location have no effect on production.

Export income is paid automatically every tick, straight to your bank:

exportCredits = round(totalUnitsProduced × 30)

A maxed planet earns about 5,700 cr per tick — roughly 34,000 cr per day — on top of the goods themselves.

Population growth (per tick):

growth = floor(10 × (1 + 0.10 × habitatLevel) − floor(population × 0.01))
newPopulation = min(population + growth, populationCap)

The 1% attrition means natural growth stalls before the cap on upgraded Habitats — ship in Mining Workers to top out.

Garrison cap (also caps deployed sector fighters):

cap = floor(500 × 2^citadelLevel)     // 500 → 16,000 at Citadel 5

Barracks add 4 × level free garrison fighters per tick, up to the cap.

Structure Upgrade Costs

cost = floor(baseCost × multiplier^(level − 1))    // level = the level being bought
StructureBase CostMultiplierEffect per Level
Warehouse5,000 cr1.8×+2,000 storage
Habitat6,000 cr1.8×+250 population cap, +10% growth
Factory7,500 cr1.8×+15% production
Barracks7,500 cr1.9×+4 garrison fighters/tick
Shield Generator10,000 cr2.0×+15% siege defense, +12 structural
Citadel25,000 cr2.0×+10% production & defense, +25 structural, garrison cap ×2

All six structures max at level 5. The Citadel requires Factory 3 and Shield 3 before you can build it.

Factory ladder (typical of the 1.8× structures):

LevelLevel CostCumulative
17,5007,500
213,50021,000
324,30045,300
443,74089,040
578,732167,772

Fully maxing all six structures costs about 1.7 million credits, plus the 150,000 cr claim.

NPC Spawn Rates

One roll per sector move (types tried in priority order Pirate → Patrol → Trader; at most one NPC spawns per move):

P(type) = baseRate × regionMultiplier

Base rates: Pirate 3%, Trader 2%, Patrol 1.5%.

Region multipliers:

RegionPirateTraderPatrol
FED_CORE1.5×4.0×
FED_SPACE1.5×3.5×
INNER0.4×1.8×1.5×
MIDDLE1.0×2.0×0.8×
OUTER1.5×0.5×0.1×
OUTER_RIM2.0×0.3×

Territory adds hard blocks regardless of region: pirates never spawn in Federation territory, patrols never spawn in pirate territory. Per-sector caps: 2 patrols, 3 pirates, traders unlimited. Warp hops roll at min(5% per hop, capped at ~30% for the whole journey). See NPCs.

Contraband Detection

Two separate systems. Full context in Smuggling.

Entry scans (Federation port customs and patrol scans):

threshold = 75%
with Goods Cloaking Device:  25%   (one device consumed per scan, caught or not)
Stealth Hull Plating:        −30 points, floor 5%
MitigationCatch Chance
None75%
Stealth Plating only45%
Cloaking Device only25%
Device + Plating5%

Scans are skipped entirely if you carry no contraband or your alignment is above +300. Port customs scans fire when you open the trade screen at a Federation port, on a 30-minute cooldown (the cooldown gates customs only — patrol scans always run when you submit). If customs catches you: all contraband seized galaxy-wide, fine = 10% of its value (capped at your wallet), −5 alignment. A patrol scan bust seizes contraband and costs −5 alignment but carries no fine — the only patrol fine is a flat 2,000 cr when a failed bribe’s forced scan catches you.

Sale-time detection (rolled when you sell a contraband lot):

p = regionBase                          // FED_CORE 22%, FED_SPACE 18%, INNER 12%,
                                        // MIDDLE 8%, OUTER 3%, OUTER_RIM 1%
  + criminal alignment bonus            // up to +25 points at −1000
  + cargo fullness                      // up to +20 points when holds are full
  − 30 points with Stealth Hull Plating
  − ship stealth/smuggler abilities

A detected sale is simply blocked — no fine, no seizure, no turn spent — and you can retry immediately. Cloaking Devices do not affect this roll.

Tech Upgrade Effects

The Tech Hub catalog is exactly 7 items (sold at Stardock and Tech Outpost ports; see Tech Upgrades):

UpgradeEffect
Cargo Compressorsholds += floor(maxHolds × 0.20), computed at purchase time
Shield Booster Arraysmax shields += floor(currentShields × 0.15)
Combat AI Corefighters count ×1.20 in all combat
Stealth Hull Plating−30 points on both detection systems; +15% escape chance when defending
Warp Drive Optimizerwarp turn cost −1 (min 1); does not apply to Tesseract jumps
Advanced Attack Systems+10% combat offense
Reinforced Armor Plating+10% combat defense

Two order-of-purchase quirks worth exploiting:

  • Cargo Compressors scale off your max holds at purchase time — buy them after your cargo hold tiers for the biggest bonus.
  • Shield Booster Arrays compute from your current shields, not max — repair to full before buying, or the smaller bonus is permanent.