# Balancing Targets (base numbers)

The root numbers of the balancing. Everything in `derived.md` is tuned to
hit these; when rebalancing, **change these first and re-derive — never
patch derived values directly**. The rules these numbers follow live in
`rules.md`.

All time targets are in **game time**. The player can pause and
accelerate, so real session length differs; playtests measure both. The
time unit is the boss cycle (`world.toml boss_countdown_seconds`, 300 s).
Destroying a station set advances the boss countdown by
`boss_advance_seconds` (60 s), so cycles run shorter than nominal when
pushing actively — targets deliberately ignore that.

## Run shape

1. **Run length** — a winning run takes up to 2 hours of game time: win
   around boss cycle 20–24. Losing runs end earlier.
2. **Phase boundaries** — early = cycles 1–5 (iron/copper, small hulls),
   mid = cycles 6–14 (quartz, medium hulls), late = cycles 15+
   (voidsteel, capitals). Push cadence: first station set around cycle
   2–3, roughly one per cycle from mid onward — so the destroyed set's
   level ℓ is reached around cycle ℓ+2.
3. **Factory size curve** — producing buildings over time; when
   saturated, output threat/s equals this count, so this curve IS the
   player power curve: ~25 when the starting asteroid is full (end of
   cycle 2), ~60 at the start of mid (cycle 6), ~120 at the start of
   late (cycle 15), ~150 near the win. `threat_rate_formula` must remain
   a fraction of this curve; buildings plus belts must physically fit
   the asteroid plus affordable expansions.
4. **Threat-cost ladder** — total production-seconds per *fitted* hull
   (including the typical/default module loadout): drone 10.5,
   frigate 47, destroyer 99, cruiser 233.5, battlecruiser 354.5,
   battleship 722.5, dreadnought 1491.5, carrier 1436.5. Every
   production chain must sum to its ladder value. (The original strawman
   was 10/40/80/200/350/700/1500; the small end runs ~10–20% hot because
   fixed chain overhead dominates small hulls — accepted, and the
   achieved values adopted as the ladder. The ~×2-per-class curve shape
   is the invariant.)
5. **Fleet size** — swarm-leaning: ~25 player combat ships as the
   standing mid-game fleet. Standing fleet = build cadence (4) × average
   ship lifetime, so this target drives time-to-kill and therefore all
   combat stat magnitudes.
6. **Block economy roots** — bootstrap complete (starting asteroid full)
   by the end of cycle 2; a factory spending ~30% of its capacity on
   blocks doubles in ~4 minutes early game; one expansion affordable per
   cycle at ~1/3 of block income mid-game, decelerating to one per 2–3
   cycles late as escalating costs outrun income.

## Combat anchors

All combat stats derive from these; per-hull HP additionally carries
empirical trims from arena rounds (values in `derived.md`).

- **Weapon DPS per threat pays a concentration tax that grows with gun
  size**: small ≈ 0.62, medium ≈ 0.48, large ≈ 0.41 DPS per threat of
  weapon contribution, compensated by the range ladder 50/70/100 m.
  Rationale: concentration itself (focus fire, no DPS loss to attrition,
  range) is worth paying for — with a flat curve, concentrated fleets
  win equal-threat fights outright (arena round 1).
- **Hull HP = 15 per threat of hull contribution** as the prior; per-hull
  HP is the empirical trim knob (guns are shared across hulls, hull HP
  moves exactly one matchup). The arena consistently prices capitals as
  *tanks with taxed guns* — capital hulls sit well above the prior.
- **Armor HP ≈ 37 per threat** — a strong premium over hull HP because
  armor is pure HP with no capability, and fights snowball: killing
  removes enemy DPS, surviving merely delays — HP must be cheaper than
  DPS.
- **Repair ≈ 0.7 HP/s per threat** — in-combat sustain effectively
  removes enemy DPS and must be priced like DPS, not like HP.
- **TTK / fight duration**: parity fights in the 30–60 s band at
  mid-game scale; capital mirrors ~90 s deliberately; the extreme
  tank-vs-chip-damage matchup (dreadnought vs destroyer swarm, ~3.5 min)
  is an accepted outlier.
- **Mobility is monotone in size** — the smallest hulls are the fastest
  and nimblest. Sensor ranges (150→350 m) always exceed weapon ranges.
- **Weapon modifiers are capital economy**: a ×1.2 damage modifier at
  ~22.5 threat beats adding a gun once a ship carries more than ~68
  threat of weapons — modifiers pay off on gun-heavy big hulls, waste on
  small ones. Range modifiers are the strongest and are priced/kept
  small (×1.3): range is the dominant stat under the orbit AI (free
  approach fire).
- **Stations**: a fresh player station holds one early parity wave
  unaided; the enemy station at level 0 matches the player station
  exactly and scales per push level. Station range is the dominance
  lever, not HP (at 4× a small gun's range, two stations annihilated a
  3× threat swarm through approach fire alone).
- **Accepted imbalances**: the carrier loses its equal-threat fights
  until the drone-launching capability exists (the hangar is dead
  threat) — fix by implementing drones, not stats. A pure smallest-ship
  fleet modestly loses (~15–25%) to a range-fitted capital — desirable
  doctrine texture; the fair anti-capital answer is the mixed fleet.

## Pacing anchors

- **Starting set** is the rule-minimum: drone, frigate, small gun,
  salvager (plus the explicitly unlocked building-block recipe).
- **Threat rate shape**: below the player's achievable military output
  (≈ half the factory curve) early, crossing at the late boundary
  (~cycle 15), overwhelming by ~cycle 24.
- **Winning = five real decisions**: `artifact_win_count` is set so that
  across a winning run's ~15–18 pushes (~7 cumulative artifact offers at
  the current chance formula), the player must choose the artifact over
  a schematic about five times.
