Language: English · Русский · Español · Français · Deutsch · العربية · Português · Türkçe
Army Encyclopedia MAPS › About the method

About the method

Every figure of the Analysis tab on the map is derived from the equipment cards and from the table of published norms below. Nothing is estimated per country by hand, and the same engine serves every country, My Army and VS. Words such as equivalent, could and by published norms are deliberate: these are models of what an inventory could form or cost, not the real order of battle.

Status of a norm: sourced = taken directly from a published table of organisation or an official report; derived = arithmetic on sourced figures; low-confidence source = only a weak source was found; assumption = no source, a stated working value. Norms table dated 2026-10-19.

What each block shows

Formation equivalents

Equivalents = units ÷ the norm of the category (for example tanks ÷ 36 = tank battalion-equivalents). Manoeuvre brigade-equivalents = (tank + mechanised battalion-equivalents) ÷ 3; division-equivalents = brigades ÷ 3. Motorised (protected mobility) battalions (MRAP and protected 4×4) are shown but not added to brigades. Surface-to-air systems are converted with a norm per family (Patriot 24 per battalion, S-400 8, Buk 9, Tor 4 per battery …); families without a line use the fallback 8 per long-range battalion or 4 per battery. Navies are listed by class with the crews they need. The result is an estimate of what the inventory could form — not the actual order of battle, training, doctrine or losses.

Manning & readiness

Direct personnel = Σ units × (crew + maintainers) from the operating-cost table of the map, with three rules: light 4×4s, MRAPs, trucks and ambulances have pooled crews (crew × 0.3, maintainers × 0.5 — their drivers are the infantry and support soldiers already on strength); mortars, anti-aircraft guns, ATGM, MANPADS and anti-tank guns are manned by line infantry (crews × 0.25); crews of auxiliaries, patrol vessels and landing craft follow the size of the hull (from the unit price). Support personnel = direct × 0.6 (staffs, logistics, medical, training — derived from tooth-to-tail ratios); required = direct + support. Manning = people on strength ÷ required, calibrated so that the United States — the best-documented inventory with a known personnel figure — comes out near 100 %. Effective fleet = units × availability × min(1, manning), with availability 0.65 for aircraft (USAF mission-capable average), 0.36 for ships (US Navy share at sea) and 0.70 for ground equipment (assumption). In My Army the readiness setting low / normal / high replaces the defaults.

Budget realism

Inventory value = documented unit prices × units (My Army: estimates too); the share of priced types and units is shown next to it. Yearly operation & support per unit = the unit price × the category rate of the cost table — the documented price where there is one, otherwise the same estimate that My Army uses (shown as «O&S from estimated unit prices», never used for the inventory value), otherwise the category default — or the light-platform default of the cost table when the type is a turboprop, a boat or a light truck; a drone type with a unit price under $1 M (or, when no price is known, recorded in quantities of 200 or more) is a small tactical or loitering drone ($20,000 a year, 1 operator), and the equipment-family overhead is capped at 30%. Personnel cost = people on strength × an assumed all-in cost per service member — a model tier (low $15k / mid $45k / high $120k, never a salary) fitted to the budget: the highest tier at which personnel stays within 45% of the annual budget; if even the low tier exceeds it the army is flagged «budget too small for the personnel at any tier». Implied procurement share = 1 − O&S share − personnel share; years to re-buy = inventory value ÷ (budget × procurement share). Benchmarks: US FY2025 request and the NATO guideline. Where rear categories are not documented the figures are a lower bound.

World standing

Ten metrics ranked among the documented countries — those whose inventory is loaded on the map; the denominator grows as countries are added. Closest armies: every inventory becomes a vector of the square roots of its category-group shares (about thirty groups, mass categories damped as in the index), normalised to length 1; the three armies with the highest cosine similarity are shown — the shape of the inventory, not its size.

Inventory Strength Index

Five blocks — Land, Air, Sea, Air defence & missiles, Enablers (with active personnel). Block score = Σ weight × units over its categories, with quality factor 1 for every type in this stage (price is a poor proxy of quality; a modifier comes only after the year of introduction and characteristics are collected). Mass categories — light vehicles, MRAPs, trucks, ambulances, patrol boats, auxiliaries, landing craft, mortars, anti-aircraft guns, ATGM, MANPADS and small drones — enter on a square-root scale above 100 units (1,000 count as 316, 10,000 as 1,000), so that 160,000 light vehicles cannot outweigh tanks and artillery. A documented type without a published quantity counts as 1 unit, a lower bound. Each block is divided by the best documented country and scaled to 0–100; the index is the mean of the five blocks. Nuclear warheads are shown separately and never enter the index. Enablers are computed only over documented categories; when none is documented the block is n/a and the index is the mean of the other four.

Why publish the weights: the well-known rankings either do not disclose their formula (Global Firepower, more than 60 undisclosed factors and unexplained jumps between years) or weight population and industry as heavily as forces (Correlates of War CINC, six equal shares). This index is a transparent arithmetic score: move a weight and the result moves, and everyone can see by how much. It measures inventory, not training, doctrine, readiness, allies, geography or will — like every such index.

A gap in the data is not a gap in the army

Open sources rarely list the rear: trucks, engineering, medical, command and CBRN vehicles. For a real country such a category with no card is shown as not documented in open sources — it enters neither the structure score nor the Enablers block, and the manning and cost figures are marked as a lower bound. Combat categories (tanks, artillery, air defence, aircraft, ships) are always listed by open sources, so a zero there is a real absence. In My Army every zero is real: the user did not add it.

Stage 2 — per-type figures, coverage and reach

Stage 2 adds one documented figure per type where a source states it: engagement range of air-defence, anti-tank and coastal systems, detection range of radars and AEW aircraft, combat radius of combat aircraft and helicopters, range of ballistic and cruise missiles and rocket artillery, endurance and speed of major warships, and the year each type entered service. The figures were collected by a research pass over the Wikipedia infobox of every type (a reputable defence source where the infobox is silent) and checked by an independent second pass; a type without a documented figure keeps null and is listed on the tab as not counted — nothing is estimated. Combat radius is kept as the source gives it: an explicit radius, a published combat range, or a plain range, which the map divides by three (the sourced radius-of-action rule) and labels as such.

Coverage of the figures at this build: engagement range 218 types, detection range 115, combat radius 104, missile range 78, ship endurance 51, year of introduction 585 — out of 832 types with at least one documented figure.

Air-defence coverage

Systems are grouped by engagement range into short (under 30 km), medium (30–100 km) and long (100 km and more). Batteries = launchers ÷ launchers per battery (the family norm of sam_units where defined, otherwise 4 for short-range and 6 for longer systems). Area covered by a tier = batteries × π × range² × 0.6 — the 0.6 stands for overlap between batteries, terrain and gaps (assumption); coverage = min(1, area covered ÷ area of the territory), the area being computed from the country outline on the map (spherical polygon area) or from the My Army territory. Against low-flying aircraft and drones the useful radius is limited by the radar horizon, 4.12 × (√h_radar + √h_target) km with a 10 m mast and a 30 m target ≈ 36 km, whatever the missile range — so the tab shows every tier twice: at altitude and against low-flying targets. MANPADS, anti-aircraft guns and counter-UAS systems defend points and columns, not territory; they are counted as point defence and never added to the covered area.

Strike reach

The tab lists the systems with the longest documented ranges: combat aircraft by combat radius, ballistic and cruise missiles and rocket artillery by missile range, coastal systems by the range of their anti-ship missile; with tanker aircraft on record a second, dashed ring shows the radius × 1.5. For a real country the rings are drawn from the border — a buffer of the outline by the range, read as from any point of its territory the system reaches this far — because the markers on the map stand in formation, not at bases; the rings are never drawn from the markers. In My Army the rings are drawn from the markers the user placed, so a self-built army gets a real coverage map (air-defence rings too, with a dashed low-altitude ring). At most five systems get a ring (two per kind); the rest are listed.

Fleet age

For every category with a service-life norm the tab shows the average year of introduction of the types on record (weighted by units), the share of units whose type entered service more than 30 years ago and the share that will be past the service life of its category by 2036 — destroyers 35 years, carriers 50, submarines 33 and helicopters 25 are sourced, the rest are assumptions. Only types with a documented year count, and the line says how many types of the category have one. Upgrades and life-extension programmes are not tracked: past service life means due for replacement or modernisation, not unusable — the M1 and the F-16 show that airframes and hulls serve 40–70 years with upgrades.

Two rules added after the stage-2 review: a helicopter figure above 400 km is a range, not a radius, and is halved (jets: a published combat range above 2,500 km is a total range and is divided by three); the fleet-age table shows the year the TYPE entered service, not the airframes — fleets built long after the debut of the type (Mi-8, F-16, Tu-95) look older there than they are.

Transport helicopters are not strike systems: their combat radius is collected for the fleet-age table but is never listed under strike reach or drawn as a ring; attack helicopters stay (Eduard, 30.09.2026).

Stage 3 — consumption and days of stock (My Army only)

Shown only in My Army: for a real country the figures would be read as its actual stocks, which nobody publishes. Inputs: intensity (low = peacetime training, medium = sustained operations, high = major combat) and days of stock (30 by default — the NATO stockpile planning period). Fuel per day = Σ vehicles × litres per 100 km of their category × km driven a day; the MBT figure (300 l per 100 km on roads) is published for the Leopard 2, the other classes are scaled from it, and cross-country consumption is 1.5–2 times higher, so the result is a lower bound. Artillery rounds per day = self-propelled and towed guns × rounds per gun (6 = the Ukrainian 2025 fleet average, derived from 5,000+ rounds a day over about 900 155 mm guns; 30 at high intensity, 2 at low). Sorties per day = combat aircraft × sorties per aircraft (1.0 at high intensity — the Desert Storm average; 0.5 in peacetime; 0.75 at medium). Stock for N days = daily burn × N, shown in tonnes of diesel (0.84 kg per litre), rounds and sorties. Mortars, rocket artillery, tank guns, helicopters, drones and ships are not modelled. The three intensity assumptions (50 km a day, 30 rounds at high intensity, 0.5 / 1.0 sorties) were confirmed by the author on 30.09.2026; the low and medium interpolations are working values of the same kind.

High is the tempo of a protracted major war (Ukraine 2022–25), not the doctrinal peak of the first days of combat: US planning norms for intense combat give several times more rounds per barrel. The three values were approved as they stand by Eduard on 30.09.2026; the status stays assumption.

Live War model

In VS the button «Live War» runs an attrition model for N days (30 by default): both inventories wear down day by day, the markers of exhausted types fade from the two outlines, each side shows the share of its inventory that remains. No winner is declared: the result is «remaining inventory after N days — A x %, B y %», a model of how fast two inventories would wear down at a given tempo, computed from the cards and the Analysis norms alone.

Composition and block sizes

A side is the index list of its cards (a type without a published quantity counts as 1 unit, except a card marked «counted elsewhere» — its units sit in another card's figure, such as the missile types of Iran whose launchers are counted by family) — for My Army, the types the user added. Only types with a block in the index enter the model; personnel, reserve stocks, orders, nuclear and space assets stay out. S_g = Σ weight × damped units over the categories of block g (the Inventory Strength Index arithmetic without the personnel term, mass categories on the root scale). Remaining = Σ_g 100 × S_g(t) ÷ Wmax_g divided by the same sum on day 0, over the blocks the side has — i.e. the index score that remains; per block simply S_g(t) ÷ S_g(0). Units lost = Σ (q(0) − q(t)) over the types.

Power of a block

P_g = S_g × A_g × M × I: A_g is the availability norm (ground 0.70 for land, air-defence and enablers; 0.65 for air; 0.36 for sea; My Army with a readiness setting uses its value for every block), M = min(1, manning) from the manning block (1 when the strength is unknown), I = the tempo multiplier (sustained 0.03, campaign 1, sprint 1.85), multiplied by stock_cut once the day count passes the side's days of stock (30 — the NATO planning period; My Army uses its own figure). P_sam is the same product over the SAM categories only — the launchers of ballistic and cruise missiles neither shoot at aircraft nor enter it; the missiles themselves are a stock (below).

P_cmb is the same product over the combat aviation only — fighters, attack aircraft, bombers and attack helicopters (cmb_cats): it is the air power that strikes and fights in the air. Drones, transport, trainer, patrol, AEW and tanker aircraft stay in the Air block for the losses but do not strike (tanker aircraft still extend the reach × 1.5). Air superiority sup = P_cmb(s) ÷ (P_cmb(s) + P_cmb(d)), recomputed every day from the combat aviation that remains, scales the strikes of side s on land, air defence and sea; air → air stays symmetric.

Gates — who can reach whom

dist = the shortest distance between the two outlines (0 when one lies inside the other), from the outline points sampled every 25 km. Ground contact: automatic when dist ≤ contact_km, or forced on / off by the switch. Aviation: g_air = clamp(1 − dist ÷ reach, 0, 1), where reach is the longest documented combat radius of the side (× 1.5 with tanker aircraft on record); a side without a documented radius reaches only an adjacent opponent. Missiles: a ballistic or cruise missile type launches when its own documented range covers dist (a type without a documented range follows the side's longest one; rocket artillery belongs to the land block and fires only in ground contact). Fleets meet only when the outlines lie within sea_km (500 km): navies of distant countries do not meet in the model — beyond it sea → sea = 0 and ships are reached by aviation alone (g_air × sup). The defender's air defence cuts incoming air strikes by g_ad = 1 − ad_k × cov, cov = the larger of its long-range and medium-range SAM coverage at altitude, recomputed every day from the SAM quantities that remain — so SEAD opens the sky gradually.

Daily losses

For the defender d and each block g the share lost in a day is f_g = min(cap, Σ terms ÷ S_g(d)) with a ceiling of cap (10 %) a day. The ground-fire and the fleet terms are k × gate × P_attacker — a Lanchester-type linear law; the air terms are the results of the attacker's sorties (the subsection «Sorties» below) and the missile and drone terms the damage of what gets through. A type of the block loses the block share × its exposure (part I); a marker leaves the outline when fewer than 0.5 units remain. Both sides are computed from the state at the start of the day and applied together. Enablers wear at f_en = en_k × f_land plus their share of missile damage. One term is special: SEAD divides by S_sam(d), the defender's SAM strength without the missile launchers — the launchers lose the same share as the block, so a side whose SAMs are gone loses its launchers at the cap when aircraft reach them. The table below lists the rates that remain; all are assumptions (status A), published so that anyone can argue with them — a change is one line of norms.json.

attacker → defender blockrate k per daygate
land → land0.024ground contact
sea → sea0.016g_sea — the outlines within sea_km
air → land, air defence, sea and air; SAM → air—through sorties since part K — see «Sorties» below
— → enablers0.5 × f_landfollows the land block

Sorties

Since part K the aviation strikes and loses through sorties, not through a weighted power. Every combat-air type — fighters, attack aircraft, bombers, attack helicopters and the reusable strike UAVs that are not mass tactical drones — flies units × avail_air × manning × gate_t × sortie_rate sorties a day: the gate of the type is the one of parts G and H (the theatre radius with tankers, the global bombers, the carrier part, the forward bases), the rate depends on the class and the tempo — fighters and attack aircraft 0.3 / 1.2 / 2.0 sorties per aircraft a day at the sustained / campaign / sprint tempo, bombers 0.2 / 0.5 / 0.8, attack helicopters 0.5 / 1.5 / 2.5, strike UAVs 0.5 / 1.0 / 1.5. The sorties that reach the opponent are split over four missions by priority × what the opponent has (mission_target × the size of its block, the rule of part H): counter-air (fighters and attack aircraft only), SEAD (× sead_x 3 while the opponent's long / medium SAM coverage at altitude is above cov_sead 0.5 — the air defence is suppressed first, 1991 and June 2025), strikes on the land block (× land_nocontact 0.2 without ground contact — a strategic air war strikes the missile force, the air defence and the fleet before the army in its barracks) and on the sea block. The fighters that cannot reach fly defensive counter-air at home — (all − reach) × the air share × the side's air superiority: a side that has lost the air keeps its fighters on the ground.

The result of a sortie is pk[mission] weighted units of the opponent — the expected result of one sortie of index weight 1 (a fighter): land 0.06, SEAD 0.06, sea 0.02, counter-air 0.03. A sortie counts × the index weight of its type (a bomber 2.0, an attack aircraft 0.8, a helicopter 0.6, a strike UAV 0.2) × gen_f, the land strikes × g_ad of the defender as before, and × pk_tempo at the sustained tempo (0.25: the glide-bomb war of 2024–25 strikes positions, not vehicles in the open). A counter-air sortie that reaches finds the opponent's aircraft in the air (presence = its sorties ÷ its combat aircraft) and on the ground (oca_ground 0.5 of the parked fleet), a defensive one only in the air; the kill is × the quality ratio (gen_s ÷ gen_d)^air_q, clamped to 0.1 … 2 — a generation-3 fleet against a generation-5 one scores a fifth. The sums by block replace the former air → land / air defence / sea / air rates; the cap of 10 % a day stays.

The losses of the attacker's own sorties: att = att_base ÷ gen_f × (1 + sam_x × the defender's surviving SAM share × its coverage at altitude × (1 − the attacker's air superiority) × the share of the engagements the defender's interceptor stock covers) × (1 + air_x × the share of the defender's counter-air among the aircraft in the air) for the strike sorties, without the air term for the counter-air sorties that reach (the sweeps meet the opponent's fighters through pk.air), the base rate alone at home — att_base 0.00025 (the coalition of 1991: 38 combat losses in about 65,000 combat sorties, 0.0006; the model's base is half of it, the SAM term carries the rest), sam_x 3, air_x 2. The surface-to-air units draw int_shots.aircraft 0.1 interceptors per sortie over the covered share of the territory (fixed-wing from the long / medium pool first, helicopters from the short-range pool first — part I); an air defence whose interceptors are gone no longer kills sorties. The air block of a side loses its own sorties and the opponent's counter-air kills on top of the missile and drone damage; the panel shows «sorties: N today · N since day 1 · aircraft lost N», the window of the line the sorties by type and mission with their results and their losses, the CSV adds the sorties and the aircraft lost by day.

The Ammunition switch of the pair (part K): published — the artillery rounds and the surface-to-air interceptors are the stocks of part I and run out; unlimited — no stock runs out, the model of parts H and J. The corridors of the calibration are checked at unlimited (the regression check of the core); the published figures are reported on their own, with the Ukraine – Russia campaign at 45–55 % instead of 28–38 % — the published flows of shells feed the campaign tempo for 3 (Ukraine) and 9 (Russia) days.

Calibration of part K (01.11.2026, once, after the two steps of the part; the knobs sortie_rate, pk, att_base, sam_x and air_x within × 0.5 … × 2 of the brief's start, the Ammunition switch at unlimited for the corridors of parts H and I; the figures by step and pair are in the project report): moved pk.ad 0.04 → 0.06 (× 1.5 — the SEAD of a sprint must take half of Iran's launchers and SAM strength in 40 days, the June 2025 claims), att_base 0.0005 → 0.00025 (× 0.5 — the 1991 rate holds the SAM and gun losses too; with the SAM term on top the full rate doubled the losses) and sam_x 6 → 3 (× 0.5 — Ukraine's aviation would otherwise lose 7 aircraft a month against the 1–3 of Oryx); not moved sortie_rate, pk.land / sea / air, air_x; added by the executor (status A) pk_tempo, land_nocontact, oca_ground, air_q and int_shots.aircraft. After: Ukraine – Russia sustained 94.5 / 99.4 % at unlimited (94.3 / 99.5 published), the drone share 57 / 78 %, Russia 227 fixed-wing sorties a day (100–300) and 3.3 aircraft a month (Oryx 2–5), Ukraine 36 and 2.9 (1–3); campaign 30.8 / 96.0 % at unlimited (28–38 / ≥ 94) and 48.5 / 98.0 % published (45–55); Russia – United States campaign 71.4 / 94.9 % (68–74 / 93–97); United States – Iran campaign: Iran's air defence −46 %, land −8 %, the United States 100 % — its aviation −25 % against the corridor −30 … −60 % (the former air → air term struck a 532-unit air block with the whole reaching power of the United States; the sorties find Iran's aircraft on the airfields at oca_ground); Israel – Iran sprint 40 days 95.1 / 77.3 % — Iran in the corridor 76.2 ± 1 with its launchers and SAM strength −60 %, Israel 1.0 above the upper edge 94.1: its aviation loses 14 aircraft in 40 days (93 %) where the former SAM → air term took 90 (84 %); the Desert Storm reference with forward bases, 43 days at the campaign tempo: 0.68 sorties per inventory aircraft a day (about one per deployed aircraft), 0.0003 losses a sortie (≤ 0.001), Iran's army −63 % (1991: 32–47 % from the air). Not reached: Israel without a loss in 12 days — at the floor of att_base the model loses 5 aircraft (2 on sorties, 3 to Iran's counter-air); zero needs att_base below the band and breaks the 1991 reference.

Missiles — stock, launches, interception

Ballistic and ground-launched cruise missile types are a stock, not a rate. Stock M(0) = the missile figure of the card (ms) where one is published, else launchers × msl_per_launcher. Launches a day U = min(M, launchers × msl_rate), where msl_rate depends on the intensity; the launchers are the card's quantity and wear down with the air-defence block. Interception = int_max × the defender's long / medium SAM coverage at altitude (recomputed every day), so H = U × (1 − interception) missiles get through; each removes msl_dmg weighted index units from the defender, split by msl_target over air (airfields), air defence, land and enablers: f_g += H × msl_dmg × share_g ÷ S_g(d). The panel shows «missiles: launched · intercepted · stock left» for every side that has missiles, the feed «−N missiles in stock», and the end table the launches and interceptions.

missile parametervaluemeaning
msl_per_launcher8missiles per launcher when the card has no missile figure
msl_rate0.1 / 0.25 / 0.25launches per launcher a day at low / medium / high intensity
int_max0.9interception at full coverage
msl_dmg0.15weighted index units removed by one missile that gets through
msl_target0.6 / 0.25 / 0.1 / 0.05priorities of the damage: air / air defence / land / enablers — since part H weighted by what the defender has
alcm_rate0.0333 / 0.0667 / 0.1air-launched cruise missiles a day as a share of the 30-day stock: sustained / campaign / sprint

Since part H the damage of the missiles and drones that get through falls on the defender's blocks in proportion to priority × what the defender has: share_g = target_g × S_g ÷ Σ_h target_h × S_h, so f_g += dmg × target_g ÷ Σ_h target_h × S_h — msl_target and uav_target stay the priorities (a priority weighted by availability), a block the defender does not have takes nothing, and a small block no longer takes a fixed share of every missile (before part H a 76-unit block of enablers took a tenth of every Tomahawk's damage, and «Safir Jeep −16,612» led the losses of United States – Iran). The cap of 10 % a block and day stays. The five types that lost the most in the end table are ordered by the index weight of the loss (units lost × the weight of the category); the figures shown are units. The reusable strike UAVs take the missile share of the air block like the rest of the block.

Air-launched cruise missiles (since part H): there are no cards for them — the norm alcm holds, per country and missile family, the carrier types as they stand on the map, the range, the stock for a 30-day window (on hand plus a month of output; 0 where nothing is published — the family then launches nothing), the warhead and a confidence, with a source per entry. A family counts when at least one carrier has aircraft on the side's cards; the side's stock is the sum of those families; launches a day = alcm_rate × the 30-day stock × the gate of the family (the drone rule: 1/30 at the sustained tempo, 1/15 at the campaign, 1/10 at the sprint), never more than what is left; the gate of a family is the best of its carriers — clamp(1 − dist ÷ (radius × tanker factor + range)), or the carrier's global or carrier-borne gate; interception as for the other cruise missiles, the damage msl_dmg × (warhead ÷ 450 kg, within 0.5 … 1.5), split as above. The missiles line of the panel counts them in the stock («incl. N air-launched»), the end table shows «of which air-launched», the feed says on day 1 «N air-launched cruise missiles on M bombers and fighters (model)»; in the cinema their arcs start from the carrier's marker. The Kinzhal is aeroballistic and is intercepted like a cruise missile — a known simplification.

Stocks for a 30-day window (2026-10-27; family, stock, carriers): Egypt — SCALP-EG 100 (Dassault Rafale); France — SCALP-EG 300 (Dassault Rafale, Dassault Mirage 2000); Germany — Taurus KEPD 350 150 (Panavia Tornado IDS); Russia — Kh-101 / Kh-555 185 (Tupolev Tu-95, Tupolev Tu-160), Kh-22 / Kh-32 250 (Tupolev Tu-22M), Kh-59 / Kh-69 24 (Sukhoi Su-34, Sukhoi Su-35, Sukhoi Su-30, Sukhoi Su-57, Sukhoi Su-24), Kh-47M2 Kinzhal 50 (Mikoyan MiG-31); Ukraine — Storm Shadow / SCALP-EG 30 (Sukhoi Su-24, Mirage 2000-5F); United Arab Emirates — Black Shaheen (SCALP export) 600 (Dassault Mirage 2000); United Kingdom — Storm Shadow 400 (Eurofighter Typhoon); United States — AGM-158 JASSM / JASSM-ER 2,950 (B-1 Lancer, B-52 Stratofortress, B-2 Spirit, McDonnell Douglas F-15E Strike Eagle, F-16 Fighting Falcon, F-15EX Eagle II, F/A-18 Super Hornet), AGM-158C LRASM 450 (B-1 Lancer, F/A-18 Super Hornet, B-2 Spirit). No published stock — launches nothing: Azerbaijan, China, Iran, Israel, Netherlands, Turkey.

Drones — one-way-attack stocks, tactical swarms, reusable strike UAVs

Every UAV type has a role in uav_roles.json, collected by research agents with a source for each type (a country card can override it with ur and a source us): one-way attack (owa — loitering munitions, FPV strike drones, long-range strike drones such as Geran-2, Shahed-136, Liutyi, FP-1), reusable strike (TB2, MQ-9, Orion, Mohajer-6, Hermes 900 …), reconnaissance (Orlan-10, Raven, ScanEagle, the mini and micro drones) and other (cargo, targets, tankers, decoys); a type nobody could identify is reconnaissance and only takes losses. One-way-attack drones are a consumable, not a unit: the card carries ds — the stock for a 30-day window, on hand plus one month of production, with its source (Russia's Geran-2 6,000 a month: the Ukrainian Air Force counted 6,297 Shahed / Geran and decoys in July 2025; Ukraine's FPV output about 200,000 a month in 2025; Iran's Shahed-136 1,500; the US Switchblade 4,400) — a card without ds uses its quantity. The stock falls with the launches, apart from the missiles, and is never replenished; the Inventory Strength Index, Balance and the remaining % do not see it (the aggregate FPV cards carry no quantity).

Long-range drones (range ≥ 500 km) are launched like missiles: uav_rate × the stock a day (0.0333 at the sustained tempo — a month of output spread over 30 days; 0.0667 at the campaign, 0.1 at the sprint tempo), never more than what is left; a type reaches when its range covers the distance between the outlines (Geran-2 reaches Alaska across the Bering Strait, the Shahed-136 Israel, the FP-1 Russia's European part); the defender intercepts min(uav_int_max, int_max × its long / medium SAM coverage) — the Ukrainian Air Force reports 85–90 % of the Shahed launches of 2025 intercepted or lost; each drone that gets through removes uav_dmg_long weighted units, split by uav_target over land 0.5, air defence 0.25 and enablers 0.25 — a 50 kg warhead, a tenth of a Tomahawk-class missile; most of the real damage falls on power plants and refineries, which are outside the model.

Tactical drones (FPV, Lancet, Switchblade, Phoenix Ghost, Molniya — under 500 km) fly only where the ground forces meet: the same launch rate from the tactical stock, uav_int_tac of them stopped by electronic warfare, misses and weather (plus uav_cuas when the defender has counter-UAS systems with units left — in 2024–25 only one to three FPV launches in ten reached their target), and each drone that gets through removes uav_dmg_tac weighted units of the land block. With the drones in the model the land → land rate is split: land_split.fire of the former 0.030 stays with artillery and direct fire (k.land_land = 0.024), the rest is the drone term — a pair without tactical drones loses that share. Oryx counts 60–70 % of the visually confirmed vehicle losses of 2024–26 as drone strikes.

Reusable strike UAVs enter the combat-air power P_cmb at uav_k per unit of index weight — a TB2 is not an F-16 — with the generation factor of the year of the variant (the band of gen_f.air: ≤ 1975 → 3, 1976–99 → 4, 2000–14 → 4.5, ≥ 2015 → 5), and since part K fly their own sorties (the class uav of sortie_rate) and lose through them — a small mass drone (the index's mass rule) stays out of the sorties. Reconnaissance and other drones stay as before — in the air block for the losses only.

On the screen: a line «drones: launched · intercepted · stock left» under the missiles for every side with one-way-attack drones, «−N drones in stock» in the feed, a card «drone stock exhausted», the sentence of the day in its drone form when the day's drone launches outnumber the missiles («Russia launches 200 drones at Ukraine; Ukraine intercepts 180 …»), and two rows of the end table. In the cinema the long-range drones are a stream of dashed arcs — slower than the missiles (2.5 s), a 3 px head, from the attacker's UAV markers, at most six in the air per direction, a «✕» on interception; the tactical drones are the swarms at the front.

Types with a role at this build: 246 — one-way attack 42 (long-range 10), reusable strike 46, reconnaissance 147, other 11; cards with a sourced 30-day stock: 29.

Calibration of part F (20.10.2026, Ukraine – Russia at the sustained and campaign tempos, Israel – Iran at the sprint, Russia – United States at the campaign; before → after): the specification's start — a fire share of 0.4, uav_dmg_tac 0.005, uav_int_tac 0.5, uav_k 0.3, uav_dmg_long 0.03 — gave Ukraine – Russia 92.7 / 98.7 % at the sustained tempo and Ukraine 52 % at the campaign tempo against 94.3 / 99.5 and 33.2 % before. The campaign corridor (28–38 %) cannot be reached with a fire share of 0.4 whatever the drone coefficients: the drone stock is one month of production and is spent within the window at every tempo, while the fire term grows 17 × with the tempo — so the fire share went to 0.8 (land_land 0.024, the limit of the corridor), uav_int_tac to (nine FPV launches in ten fail), uav_k to 0.15 (Iran's Mohajer-6, Saegheh and Shahed 129 would otherwise lift its combat-air power by 22 % and take Israel to 91.3 %) and uav_dmg_long to 0.015 (a tenth of msl_dmg, proportional to the warhead). After: Ukraine – Russia sustained 93.9 / 99.3 %, campaign 35.8 / 95.6 %, Russia – United States 71.1 / 94.9 %, Israel – Iran sprint 92.2 / 76.8 %, My Army – Israel unchanged. At the sustained tempo the drones now do about a quarter to a third of the land attrition of Ukraine – Russia; at the campaign tempo the fire carries it, as a production-limited stock cannot grow with the tempo.

Long-range aviation — strategic bombers, carrier aviation, forward bases

Since part G the air gate is set per type, not per side. P_cmb(s) = Σ over the combat-aviation types (and the reusable strike UAVs × uav_k) of weight × n × gen_f × gate_t, where gate_t = max(theatre, global, carrier): the theatre gate is the former gate of the side — clamp(1 − dist ÷ reach) with the tanker factor — or 1 when the side's switch «Forward bases: in theatre» is on; the global gate is 1 for a strategic bomber with tanker support; the carrier gate is the naval gate for the part of a type that flies from ships. Attack helicopters and strike UAVs take the theatre gate only. The strikes on land, air defence and sea use the power that reaches, × sup as before; air → air and SAM → air take the share of P_cmb that reaches where the side's gate stood; the losses of the air block and the rates k are unchanged, and sup keeps the whole P_cmb.

Strategic bombers: a type of the Bombers category whose published unrefuelled range (perf.json cr with crk «range», reviewed in perf/range_overrides.json with a source per type) is bomber_global_km = 9,000 km or more reaches any opponent while the side has aerial refuelling tankers with units left — B-52H 14,200 km, B-1B 9,400, B-2 11,000, Tu-95MS 15,000, Tu-160 12,300; the Tu-22M3 (6,800) and the H-6K (6,000) stay below the threshold and reach by radius (range × ⅓, × 1.5 with tankers) like the fighters. Without tankers the former radius rule holds for every bomber.

Carrier aviation (norm cv): a combat-aviation type whose name contains one of cv.names flies from ships (pool cv = aircraft carriers; both = carriers and amphibious assault ships, for the STOVL types F-35B and AV-8B), and a mixed card listed in cv.share flies its carrier share only (the US «F-35 Lightning II» 0.3 — the F-35B and F-35C among the three variants; France's «Dassault Rafale» 0.2 — the Rafale M). The air-wing capacity of a side = Σ q × cap over its carriers (cap by name — Nimitz and Gerald R. Ford 48, Queen Elizabeth and Charles de Gaulle 24, Liaoning and Shandong 24, Fujian 36, Admiral Kuznetsov —, the light carriers and amphibious ships 12; else by category: aircraft carriers 48, amphibious assault ships 12; the helicopter carriers Mistral and Type 075 carry no fixed-wing aircraft) × the sea availability (avail_sea: about a third of the carriers are at sea at any time), and it falls with the carriers of the sea block. The carrier part of a type = min(n × share, the free capacity), served in the order of cv.names (the Super Hornets fill the US carriers first, the F-35B take the amphibious ships); it strikes through the naval gate — from the day after nav_delay when the outlines lie beyond sea_km, never at a landlocked opponent — while the rest of the type keeps the theatre gate.

Forward bases: a switch per side on the panel — «none» (default) or «in theatre»: the side's aviation and attack helicopters fly from bases next to the opponent, so every type reaches (the United States from the Gulf bases against Iran); the hash keeps it as the seventh and eighth fields of &war= (none | theatre), an old link without them means none. The feed says on day 1 which types of a side reach — the bombers with tanker support, the carrier wing and the day it starts, the forward bases.

Since part H the theatre gate is set per type by its own radius: gate_t = clamp(1 − dist ÷ (radius_t × tk_t)), where radius_t comes from perf.json (a combat radius, or a range × the radius factor) or from the country's own card (cr with its kind crk and its source crs — Israel's F-16I Sufa 1,500 km with conformal tanks against the 550 km of a clean F-16C) and tk_t is the tanker factor for fighters, attack aircraft and bombers while the side has tanker aircraft with units left, 1 for helicopters; an attack helicopter without a perf radius takes heli_radius_km (300 km — the Ka-52 and the AH-64 fly 250–300 km), a reusable strike UAV its range from uav_roles, a combat type without any figure the median radius of its category on the side, and only a side without any radius keeps the former gate of the side. The global and carrier gates of part G are unchanged (gate_t = max of the three); the «reach: air» figure on the panel stays as a reference — the longest radius of the side. Israel – Iran at 896 km: the F-15 at 0.68, the F-16I at 0.60, the F-15I at 0.53, the F-35I at 0.46 — 56 % of Israel's combat-air power reaches instead of the 68 % of the side gate; China's J-10 against the United States 0 (the H-6K no longer opens the gate for the fighters).

Calibration of part G (27.10.2026, United States – Iran at the campaign tempo, 30 days, mutual, no forward bases — a pair whose aviation gate was closed before: the outlines lie 7,529 km apart, beyond the longest radius × 1.5, so the United States struck with the fleet's missiles alone and Iran kept 95 %): with the bombers (140 B-52H / B-1B / B-2 from day 1) and the carrier wing (about 230 Super Hornets and F-35 at sea from day 8) Iran keeps 76.4 % — air defence and missiles −48 %, aviation −39 %, land −2 %, the United States 100 % (its aircraft meet Iran's SAMs: a few units). The reviewer's corridors for air defence (−35 … −60 %) and aviation (−30 … −60 %) hold; the land corridor (−5 … −15 %) is not reached — with k.air_land 0.012 and a land block of 6,400 weighted units the whole US combat aviation at full reach would wear it by about 5 % in 30 days (forward bases in theatre: −12 %), and the model has no air → land term beyond that rate; the rates were not moved. Israel – Iran, Russia – United States, Ukraine – Russia and My Army – Israel are within the corridors of the brief (± 1 / ± 2 / unchanged / unchanged).

Breaking point

A block that has lost a large part of itself does not fight like the whole: the studies of Dupuy and the TNDM put the loss of combat effectiveness of a unit at 30–50 % casualties, and the withdrawals of March – April 2022 left columns of abandoned vehicles behind. The model gives every block a breaking point as a share of its day-0 size — break_pt: land 0.5, aviation 0.4, air defence and missiles 0.3, fleet 0.4. Above it the block fights at full cohesion; below it the block's power is multiplied by cohesion_f, linear from 1 at the threshold to cohesion_min (0.2) at zero — the remnants fight on, they do not vanish. The ground fire, the sorties, the SAM fire and the fleet strikes of a broken block fall with it. A land block below the threshold in ground contact loses × break_loss_x (1.5) — the abandoned and captured vehicles whose share in the Oryx lists rises during a withdrawal.

On the screen: a card «ground forces below the breaking point (48 %)» with the flag and the name of the side, once per block on the day it crosses, the same chip in the feed, a row «below the breaking point since day N» in the end table, the multiplier in the «why» window of the block and of the attacker's power, and the front line drawn shifted into the territory of the side below the threshold — 20 px at the threshold, 60 px at zero. No block is ever «defeated»: the words of the screen are the threshold and the multiplier.

Saturation of the air defence

A salvo of 500 missiles is not intercepted at the rate of a salvo of 50. Every launcher of the air defence engages a number of targets a day — ad_channels of its family (engagement channels × firing cycles a day): Patriot 6, S-400 8, SAMP/T 6, Buk 6, Tor 12, Pantsir 16, Iron Dome 20, NASAMS 8; a family not in the list takes the value of its tier — long 6 / medium 8 / short 12. The capacity of the defence a day = Σ launchers × channels × availability; the targets of the day = the missiles + the long-range drones × sat_uav_ch (0.3 of a channel each) + the opponent's sorties over the coverage. The ballistic missiles are engaged by the long- and medium-range pool (A) alone, the cruise missiles, drones and aircraft by the short-range pool (B) first and then by what pool A has left. The interception of the day = the full rate × min(1, capacity ÷ targets)^sat_k (1.0); the excess over the capacity passes at the floor.

References: Ukraine's record nights of 2025 (700 + Shaheds and 20–40 missiles — about 85 % of the drones and 50–70 % of the missiles intercepted, the Ukrainian Air Force), the twelve-day war (salvos of 100–200 ballistic missiles — 86–90 % intercepted, the IDF), the Red Sea of 2024 (the Houthi salvos against the destroyers — about 100 % at two or more SM-2 a target). On the calibrated pairs the capacity is never reached — Ukraine about 4,300 targets a day, Russia about 14,700, Israel 500–650, Iran 700–1,000, the United States about 7,400 against at most 1,500 targets a day — so the saturation changes none of the corridors; it shows for a small air defence against a large salvo. On the screen: «AD capacity N targets a day — today N» under the missiles, a card «air defence saturated: N of N targets engaged» with the flag and the name of the side on the first day the targets exceed the capacity, the table of the pools in the «why» window of the interceptors.

Targets outside the model and the drone chain

Most missiles and long-range drones are not fired at the equipment the map counts: power plants, cities, refineries, factories and command posts are outside the model. strike_outside is the share of the launches at such targets — 0.4 by default (an assumption), and for the pairs with a source: Russia → Ukraine 0.65 (the Ukrainian Air Force, 2024–25: most Shaheds and Kh-101 go to the energy system and the cities), Ukraine → Russia 0.7 (refineries, airfields without equipment in the model, depots), the United States → Iran 0.3 (nuclear sites, command, industry), Israel ↔ Iran 0.4. The share is taken out before the damage; the interception is counted on every launch, so the screen's «launched · intercepted» stays the fact and the damage to the equipment comes from the rest alone. msl_target went back to the neutral priorities and was recalibrated with the share (part N.4).

The tactical drones are one chain with the same result as before and honest links: launches × (1 − uav_void 0.89: misses, jamming, weather and repeat strikes on a vehicle already hit — RUSI 2024–25: 10–30 % of the FPV launches reach the target; × (1 − uav_cuas 0.1) when the defender has counter-UAS systems with units left) = the drones that reach; × uav_hit_kill 0.05 = the vehicles destroyed (most FPV hits immobilise, the kill takes a second or third drone — about one destroyed vehicle per 180 launches, Oryx against the launch volumes of 2025); × the average weighted size of a vehicle of the defender's land block (the vehicles alone — the ATGM systems, mortars, anti-tank guns, MANPADS and personnel of the block are not vehicles; Ukraine 0.27, Russia 0.47 index units) = the weighted units lost. The calibration keeps the drone share of Ukraine's land losses in its corridor (50–70 %). The screen says «6,970 launches → 836 reached → 84 vehicles» in the «why» window and «N vehicles destroyed» under the drones.

Scenario, tempo, supply, the fleet and the strategic launchers

Scenario: a mutual war, or «A attacks B» — the defending side strikes with its land power × def_k (2.0: the 3 : 1 rule of thumb for an attacker, FM 3-0 / Dupuy) in the land → land term, the attacker's strikes carry no multiplier; aviation, air defence, sea and missiles do not change. The feed says on day 1 who defends.

Tempo: sustained is the observed 2022–2026 rate — a fire intensity of 0.03 plus the tactical drones, which launch a month of output within the window whatever the tempo (Oryx, visually confirmed losses of 2025 — a floor: Russia about 53 tanks and 344 vehicles of all kinds a month, Ukraine 27 and 283; the model's 30 days at the sustained tempo wear Russia's land block by about 3 % and Ukraine's by about 8 %). Campaign (1) is about 33 × and sprint (1.85) about 62 × the fire intensity of the sustained tempo, and the panel says so: «Tempo: sprint ≈ 62× the observed 2022–2026 rate»; the land losses of the 30 days differ less than that, because the drone term does not grow with the tempo.

External supply per side: moderate 5 % or high 10 % of the initial weighted land, air and air-defence park a month (deliveries to Ukraine in 2022–24 were of that order for armour), credited every day to every type of those blocks — q += q(0) × supply ÷ 30, never above q(0); a type that had vanished returns to the outline with «+N». Missiles are not replenished: the stock ms does not grow.

The fleet strikes the coast with cruise missiles: a ship whose class carries land-attack missiles (nav_cells — cells per ship × the share loaded with land-attack missiles; Ticonderoga 122 × 0.4, Arleigh Burke 96 × 0.3, Ohio SSGN 154, Virginia 12, Yasen 32, Oscar II 72 × 0.5, the Russian corvettes and frigates with a universal launcher 8) adds its cells to the naval missile stock of its side; launches a day = Σ q × nav_strike × nav_rate (0.1 / 2 / 4 per ship-weight at sustained / campaign / sprint — about one Kalibr a day is the observed 2022–2026 rate; cruisers weigh 1.0, destroyers 0.8, frigates and corvettes 0.5, SSGN 3.0, other submarines 0.3), from day nav_delay + 1 (7) when the outlines lie beyond sea_km, never at a landlocked defender (landlocked_iso); interception and damage are those of the land missiles. The missiles line counts them together, the end table shows «of which naval». United States – Russia at the campaign tempo, 30 days: about 3,700 cruise missiles from the US fleet and about 700 Kalibr from Russian submarines and corvettes; Iran has no strike-capable ship.

Strategic launchers — a card of the missile categories whose name is in icbm_names (Yars, Topol, Voevoda, DF-5, DF-31, DF-41, Minuteman, Trident …) or that carries nuc: 1 — stand outside the conventional model: they neither launch in the missile exchange nor enter the air-defence & missiles block (the card says «not in the model: strategic nuclear»); the Inventory Strength Index and Balance keep them as before. Russia's launches at the United States in 30 days fall from about 4,000 (2,500 of them ICBMs) to about 1,700 — 1,000 from the land launchers and 700 from the fleet.

The ballistic-missile submarines are strategic launchers as well: a Submarines card whose name is exactly one of ssbn_names (Ohio class SSBN, Borei, Delta IV, Type 094, Vanguard, Triomphant) carries nuc: 1 and stays out of the sea block — on deterrent patrol it takes no part in the conventional exchange and it carries no land-attack cruise missiles in nav_cells; the Ohio class SSGN with Tomahawk and the attack submarines stay in.

Generation of the types

The generation of a type multiplies its combat power in Live War — P_cmb of the combat aviation (gen_f.air), P_sam of the area air defence (gen_f.sam) and the main-battle-tank part of P_land (gen_f.mbt; the other land types at 1.0): a 1960s F-4 strikes and fights at 40 % of an F-35, a 1980s F-14 or MiG-29 at 70 %, an I-HAWK battery of 1971 defends at 40 % of a David's Sling. The inventory, the remaining %, the Inventory Strength Index and Balance do not change — a type counts as one unit however old it is; only how hard it hits and how much it shoots down does.

The value comes from perf.json (gen — collected by research agents with a source for each type: a stated fighter generation 3 / 4 / 4.5 / 5, or for bombers, attack helicopters and air-defence systems the band of the year the variant entered service, ≤ 1975 → 3, 1976–99 → 4, 2000–14 → 4.5, ≥ 2015 → 5; main battle tanks 1 / 2 / 3 / 3.5) or from the country's own card (gn with its source gs — Israel's F-16I Sufa 4.5, Iran's F-5-derived Saeqeh 3), which takes precedence. A type without a value counts at 1.0; the panel says «N types without generation data» and lists them in a tooltip.

Combat types of the documented countries: 263 · with a generation: 261 · without generation data (counted at 1.0): 2

Calibration with the generation factor (Israel – Iran, sprint, 40 days, October 2026): Iran's air superiority falls from 0.37 to 0.22 — its F-4, F-5 and the F-5-derived Saeqeh / Kowsar count at 0.35, its F-14 and MiG-29 at 0.7, its HAWK, Rapier and S-200 batteries at 0.4; Israel keeps 93 % of its inventory, its aviation 88 % and its air defence 82 % (85 / 75 / 53 % without the factor), Iran's launchers and SAM strength −51 %. The specification's air multipliers {3: 0.5, 4: 0.8, 4.5: 0.9} gave Israel's aviation 83 %, an air superiority of 0.71 and Iran −45 %, so 3 → 0.35, 4 → 0.7 and 4.5 → 0.95; air_ad stays 0.030. Ukraine – Russia at the campaign tempo: Ukraine keeps 33 % (26 % without the factor — Russia's T-72B3 strike at 0.6, its Su-34 and Su-35 at 0.95, Ukraine's Leopard 2A6 at 1.0); Russia – United States 71 / 95 %.

gen_f — generation multipliervalue
air — combat aviation, generation 3 / 4 / 4.5 / 50.35 / 0.7 / 0.95 / 1.0
sam — area air defence, the variant's year ≤ 1975 / 1976–99 / 2000–14 / ≥ 20150.4 / 0.7 / 0.9 / 1.0
mbt — main battle tanks, generation 1 / 2 / 3 / 3.50.4 / 0.6 / 0.85 / 1.0
none — a type without generation data1.0

Calibration and what the model leaves out

Reference points of the rates (v2 with combat aviation and air superiority, October 2026): two equal neighbouring armies at the campaign tempo each lose about 30 % of their inventory in 30 days — the land block about 45 %, the air block 15–25 %, the air-defence block up to 40 % (the United States against itself: 29 %; Israel 42 %; at the sustained tempo about 2 %); the air blocks of two equal sides no longer wear each other down fast, because each strikes with half the air superiority and only with its combat aviation. A 3 : 1 opponent is worn down to about a tenth in 30 days while the stronger side loses about 7 % — the linear law keeps the attacker's power while the defender's blocks shrink; two armies that do not touch and have neither long-range aviation nor missiles lose nothing on the ground — only in the air, by the gates, and at sea only within sea_km.

Calibration on Israel – Iran 2026 (high intensity, 40 days, no ground contact), against the published figures of the war of 28 February – 8 April 2026: Iran's ballistic-missile launchers −55 % (IDF, 10 April 2026: about 200 of 470 destroyed and 80 disabled), its SAM strength −55 % (IDF and CENTCOM: about 80 % of the air-defence systems hit; the model counts launchers that survive, not radars), its stock of missiles able to reach Israel −54 % (650 launched at Israel in 40 days and about 1,400 at Gulf states), its fleet −28 % (CENTCOM: more than 155 vessels damaged or destroyed, most of them small craft of low index weight), about 70 % of the launches intercepted as Israel's coverage is worn down (about 90 % in 2026). With the combat aviation and air superiority of October 2026 the model gives: Iran's launchers and SAM strength −43 %, its missile stock −61 % (about 1,500 launches, 90 % intercepted), its fleet −27 % — reached by Israel's aviation alone, because the two outlines lie 900 km apart and the fleets do not meet; Israel keeps 85 % of its inventory, its aviation 75 % and its air defence 53 % against the real 97–98 % and a few batteries hit. The coefficients were moved within × 0.5 … × 2 of the specification: air_ad 0.030 (the upper limit — the strikes now come from the combat aviation alone, scaled by air superiority), sam_air 0.008 and sam_eff 0.25 (no Israeli aircraft was lost to Iranian SAMs), msl_rate at high 0.25 (the average over 40 days, not the day-1 rate), msl_dmg 0.15, air_sea 0.006, land_land 0.030. What remains open is the quality of the types: a quantity-only index gives Iran's 200 fighters of the 1960s–80s the same weight per unit as Israel's F-16, F-15 and F-35, so Iran's combat aviation keeps 37 % of the air superiority and wears Israel's small SAM force at the same share per unit as Israel wears Iran's; a generation factor is the next step and is not part of v2. In 2026 most of the strikes on Iran were flown by the United States: the model reproduces the direction and the order of magnitude of the 2026 figures, not the war.

The cinematic layer of the war screen is decorative: it draws the day's figures and never feeds back into the arithmetic; it is off under a reduced-motion setting of the system and can be switched off in the panel (Cinematic). Each panel has its own layer clipped to the panel — nothing is drawn over the middle column; a flight from one outline to the other leaves at the edge of its panel and enters at the edge of the other panel on the same curve. The action runs in real seconds whatever the speed of the run — the day is only a counter: the sorties and the missiles are a continuous stream drawn from the current day's figures. A sortie takes 3 s: the aircraft or helicopter sprite takes off from the attacker's marker nearest to the target (1.2 s out), strikes (a burst of three rings, smoke over the hit marker for 6 s), flies back along the same arc (1.2 s) and lands with a flash on its base; the share lost that day, at least one when one was lost, does not come back and falls with a trail of smoke. A new sortie leaves every 0.8 s while the day has strikes, two to six are in the air per direction. Missiles fly 1.5 s on high ballistic arcs with a bright head and a tail; the interceptors start from the defender's nearest SAM marker (at most min(6, interceptions ÷ 20)) and burst on the approach with a «✕». Where the ground forces meet, the front line is drawn along the common border on both outlines, with artillery flashes along it and the tanks and fighting vehicles nearest to it pushing 20–30 px towards the front and back. At most four «−N» labels a panel, 3 s each; at most six bursts a panel at once; the sentence of the day under the plate changes at most every 3 s; a type that reached zero stays two days as a grey wreck. Sprites are 40 px at zoom 6 and closer, 32 px at zoom 5 and 26 px further out. At most 60 elements move at once in a panel.

Record is a clean scene for a video: 4 s a day, the camera on, the pickers and the buttons hidden (Esc brings them back); an intro of 4 s and a finale of 8 s frame the run (2 s and 4 s at 1 s a day). The camera is a real zoom of the map (Leaflet flyTo), on by default at 1, 2 and 4 s a day, and works like a film: a shot is one camera position held for 6 s with a single slow movement inside it — a push-in of 0.7 zoom level (× 1.6 of scale, never above zoom 8.5, so the outline stays recognisable) or the pull-out back to the fit; the camera never follows the day. A cycle of five shots takes about 30 s: the overview of both panels (where the event cards show — stocks exhausted, a block below 75 / 50 / 25 %, the fleets engaging, the first supply, a status line every tenth day; one card at a time, 3 s), the attacker's panel pushing in towards the cluster its sorties and missiles start from, the defender's panel pushing in towards the cluster of the strikes, the attacker's panel pulling out while the sorties return and land, the defender's panel pulling out. The roles swap every cycle, so both panels get the same close-ups whoever dominates; a push-in that would leave fewer than three markers in the frame stays at the fit. On Day 0 and on «Fit each» both panels fit the equipment — the bounding box of the markers plus 10 % (Russia: its European part, the United States: the continental part); a zoom or a drag by the user stops the flight and keeps the camera off that panel for 10 s; at 0.5 s a day there is no camera. The figures are the same as without the cinema.

Not modelled, by design: production, mobilisation, allies, terrain, training, morale, repair of damaged equipment, weather, intelligence (external supply and the generation of the types are the only quality terms — above). Reserve stocks are never committed (a «reserve enters on day X» option is in the backlog). Personnel is not «killed» — it enters only as manning. Nuclear weapons are left out entirely. The feed names the day's losses by category and the end table shows initial → remaining per block, total units lost, missiles and drones launched and intercepted, and the five types that lost the most on each side.

Validation and limits

Calibration of part H (27.10.2026, once, after the three changes of the part — the damage split by priority × availability, the theatre gate per type, the air-launched cruise missiles; every coefficient within × 0.5 … × 2 of build 2026-10-19k; the figures by step and pair are in the project report): three corridors from before were kept — Ukraine – Russia sustained 94 ± 1 / 99.5 ± 0.5 and campaign 28–38 / ≥ 94, Israel – Iran sprint 40 days 93.1 / 76.2 ± 1, Russia – United States campaign 68–74 / 93–97, United States – Iran campaign without bases: air defence −35 … −60 %, aviation −30 … −60 %, land −5 … −15 % — and one was added: at the sustained tempo the tactical drones carry 50–70 % of Ukraine's land losses and at least half of Russia's (Ukrainian claims of 2025: 66 % of the Russian equipment disabled in January by strike UAVs; RUSI, February 2025: 60–70 %), against 22 % and 40 % in the model before. Moved: intensity_f.low 0.03 (× 0.5, the floor of the corridor — the observed losses are now fire plus drones, so the fire half is smaller), uav_dmg_tac (× 2, the ceiling), uav_int_tac (× 0.95: with counter-UAS systems 14 launches in 100 reach a target), intensity_f.high 1.85 (× 1.23 — the per-type gates cut the reaching share of both sides of Israel – Iran, Israel 0.68 → 0.56 and Iran 0.48 → 0.21 of P_cmb, and the 40-day sprint had risen to 94.3 / 81.0 %), msl_target 0.6 / 0.25 / 0.1 / 0.05 (the air priority up, the land priority down: a cruise-missile campaign opens on airfields and air defence — June 2025: 15–16 Iranian aircraft destroyed on the ground at six airfields). After: Ukraine – Russia sustained 94.8 / 99.0 % with a drone share of 59 / 78 %, campaign 31.8 / 95.2 %; Israel – Iran sprint 93.5 / 76.7 %; Russia – United States campaign 72.4 / 95.1 %; United States – Iran campaign without bases: Iran 73.5 % — air defence −52 %, aviation −38 %, land −8 %, the United States 100 %. Russia's sustained figure stands at the edge of its corridor: the three sustained targets meet only in a narrow band at the floor of intensity_f.low — reported, not forced.

The sprint tempo is anchored to a single reference — the twelve-day war of June 2025 (Israel – Iran, 40 days at the sprint in the model); the sprint figures of every other pair are an extrapolation of that one case, not a calibration.

Three published cases against the model — the facts with their sources, the model's figures for the nearest pair and tempo, and what the comparison says. The facts are counts where a count exists (Oryx, the imagery-based GWAPS tables) and claims where only claims exist (the IDF's and CENTCOM's figures); the model is run as it stands, with no setting changed for the comparison.

casefact (source)modelreading
Ukraine – Russia, 2025 — Oryx, visually confirmed list additions (a floor): Russia January – December, Ukraine March – AugustRussia loses about 53 tanks, 157 armoured vehicles (IFV, APC, MRAP, IMV) and 28 artillery pieces a month — 344 units of all kinds; Ukraine 27 / 172 / 28 — 283 (Ukrainian losses are filmed far less: 2.3 : 1 against the Russian ones in the same window). The share of drone strikes is claimed, not counted: 60–70 % (RUSI, February 2025; Syrskyi: 66 % in January 2025). Oryx ↗ RUSI / Forbes ↗Sustained tempo, 30 days (build 2026-10-19o, with the exposure of part I and the sorties of part K): Russia 157 tanks, 333 armoured vehicles, 55 artillery pieces — its land block −1.4 %; Ukraine 105 / 655 / 250 — its land block −7.7 %; the tactical drones carry 85 % of Russia's and 56 % of Ukraine's land losses, the aviation 5 % of Ukraine's (Ukraine's shells run out on day 15 and its fire falls to the floor). Before part I the same run gave 121 / 429 / 128 and 53 / 1,103 / 369.Since part I a type wears at its category's exposure (tanks and IFVs 1.0–1.3, towed guns 0.25, MRAPs 0.1) and the weighted loss of the block is unchanged, so the split moved towards the front: Russia's categories now sit at 2–3 × the Oryx floor (tanks 2.9, armoured vehicles 2.1, artillery 2.0 — Oryx is a lower bound; IISS put Russia's 2024 tank losses at 1,400 against about 1,300 documented), Ukraine's at 3.4–3.6 × for tanks and armoured vehicles and 8.5 × for artillery (its cards carry 2,101 self-propelled guns — a park far above the active one). What the split cannot do: the block's weighted loss is fixed by the calibrated corridors, so the sum over the categories is fixed too — Ukraine's land block loses about 4.8 × and Russia's about 2.9 × the Oryx-2025 weighted loss whatever the exposure; the owner's decision (01.11.2026): this is the honest picture — Oryx is a floor, Russia's categories at 2–3 × are accepted as they stand, Ukraine's artillery park on the cards is overstated and goes to an audit in part M, the sustained land rate is not touched. Read the block, not the category.
The twelve-day war, 13–24 June 2025 — Israel – Iran at the sprint tempo, 12 daysIran launched about 550 ballistic missiles and 1,000 drones; 86–90 % of the missiles were intercepted, 31–42 impacts; the IDF claims about 250 of 350 launchers, over 80 SAM batteries and 15–16 aircraft destroyed on the ground; Israel lost no manned aircraft (two to seven UAVs). Times of Israel ↗ FDD ↗Since part K (build 2026-10-19o): Iran launches 556 missiles and 1,500 drones (its whole 30-day stock), about 90 % intercepted; Israel flies about 300 sorties a day (2.0 per aircraft × avail 0.65 × the gates), three quarters of the strike sorties on SEAD while Iran's coverage stands — Iran's launchers and SAM strength −60 % in 40 days, its aviation −13 % (the counter-air sorties find its aircraft on the airfields), its fleet −2 %; Israel loses 5 aircraft in 12 days (2 on sorties, 3 to Iran's counter-air) and 14 in 40 days, its aviation 93 %, its air defence 74 %.The launches and the interception match; the SEAD through sorties takes the launchers and the air defence at the order of the IDF claims (claims, not counts), the aviation on the ground at the 15–16 reported. What the model still does: it loses 5 Israeli aircraft in 12 days where none was lost — att_base at the floor of its band and Iran's remaining counter-air (its fighters fly a quarter of their cover at an air superiority of 0.23); zero needs a loss rate below the 1991 reference. A known limit — no stealth, no stand-off weapons.
Interceptors — Israel, June 2025 and February – April 2026; Ukraine 2026June 2025: Israel fired at least 43 and up to about 140 Arrow in twelve days (34 Arrow-3 on video), the United States over 150 THAAD and about 80 SM-3 for Israel — about 70 % of the interceptors used; by 18 June the Wall Street Journal reported Israel running low on Arrow. The 2026 war (650 ballistic missiles in 40 days): 81 % of the Arrow and 54 % of the David's Sling stock expended by day 25 (RUSI), Israel rationing Arrow and pushing David's Sling and Iron Dome onto ballistic targets. Ukraine, July 2026: with the PAC-3 MSE stock spent, 29 of 195 ballistic missiles intercepted (15 %). RUSI ↗ JINSA ↗Israel – Iran at the sprint, 40 days: Israel's 2,660 interceptors (Arrow 80 and Iron Dome 2,000 published — the post-2026 stocks; David's Sling and C-Dome by norm) spend 1,400 in the first 12 days against 556 missiles and 1,500 drones, the long- and medium-range pool runs out on day 33 and the ballistic interception falls to int_floor 15 %; Ukraine – Russia at the campaign tempo: Ukraine's long- and medium-range pool (Patriot 50, S-300 10, SAMP/T 40 published; Buk, NASAMS, IRIS-T, Hawk by norm) runs out on day 15.The consumption is of the right order — a sprint spends an Arrow stock in weeks, not months — and the exhaustion follows the published stocks; what the model does not have is the allied resupply in the war (the US interceptors fired for Israel in 2025 are not on Israel's cards) and the rationing a staff applies when the stock runs low (the model fires at the full rate to the last missile).
Artillery ammunition — Russia and Ukraine, 2025–2026Russia fires 10,000–15,000 rounds a day after rationing (Estonian Foreign Intelligence, February 2026; 22,700 a day on average since August 2023 with the North Korean rounds, RUSI), from an output of about 3.4 million howitzer and 0.5 million rocket rounds a year plus 200,000–260,000 North Korean rounds a month in the autumn of 2025 that nearly stopped in 2026; Ukraine about 4,000–6,000 155-mm rounds a day from 100,000 a month of the Czech initiative, 30,000 a month from Germany and 8,000 of its own. Estonian FIS ↗ RUSI ↗Sustained tempo: Russia needs about 8,100 rounds a day (the tubes that fire × 3) and spends 245,000 of its 475,000 in 30 days; Ukraine needs about 9,100 a day and spends its 138,000 by day 15, after which its fire runs at the floor (× 0.2). Campaign tempo (20 rounds a tube a day): Russia's flow lasts 9 days, Ukraine's 3; sprint: 4 and 1.At the sustained tempo the model's Russian consumption matches the intelligence estimate; Ukraine's need is overstated by its card park (4,500 tubes, where the active park is far smaller) and its shortfall comes a week earlier than the rationing of 2025–26 suggests. At the campaign and sprint tempos the published monthly flows cannot carry the modelled fire — the stockpiles are not published and the model assumes none, which is what the intelligence assessments of the Russian reserve say; a campaign of more than two weeks at 20 rounds a tube is a statement about a stockpile the sources do not give.
Sorties and losses per sortie — Russia over Ukraine 2022–25, the coalition of 1991, Israel in June 2025The Russian Aerospace Forces fly about 100–300 combat sorties a day over Ukraine on about 300 active aircraft and lose 2–5 fixed-wing aircraft a month by the Oryx count (about 0.001 a sortie against a living air defence); the coalition of 1991 flew about 65,000 combat sorties in 43 days — about 1.0–1.2 per aircraft a day — and lost 38 aircraft in combat (0.0006 a sortie); the Israeli Air Force flew over 1,000 sorties in the twelve days of June 2025 at about 1.5–2 per aircraft a day and lost none. Oryx ↗ GAO / GWAPS ↗Sustained tempo, 30 days: Russia 227 fixed-wing sorties a day (436 with the helicopters and the strike UAVs) and 3.3 fixed-wing aircraft lost a month, Ukraine 36 and 2.9; the United States against Iran with forward bases, 43 days at the campaign tempo: 0.68 sorties per inventory aircraft a day and 0.0003 losses a sortie; Israel against Iran at the sprint: 300 sorties a day, 0.0012 losses a sortie, 5 aircraft in 12 days.The sorties and the loss rates are of the published order for the two references the brief gave; the twelve-day war stays the exception — the model's floor loses what Israel did not (see the row above).
Desert Storm, 1991 — 43 days of air campaign, 38 before the ground offensive; the United States against Iran with forward bases in theatre, 43 days — the nearest the map can getCENTCOM, 23 February 1991: 39 % of the Iraqi tanks, 32 % of the armoured vehicles and 47 % of the artillery in the theatre destroyed from the air (1,688 / 929 / 1,452 of 4,280 / 2,870 / 3,110); the post-war GWAPS imagery count: 1,388 tanks, 929 APCs and 1,152 artillery pieces of a smaller force in the Kuwait theatre — 40 / 30 / 47 %, with the Republican Guard under 24 %; about 65,000 combat sorties; the Iraqi air force and air defence neutralised in the first week. GWAPS / GlobalSecurity ↗ GAO ↗Since part K: the United States flies about 2,050 fixed-wing sorties a day from the bases (0.68 per inventory aircraft, about one per deployed aircraft — 1991: about 1,500 combat sorties a day), loses 0.0003 aircraft a sortie (1991: 0.0006 with the SAM and gun losses), Iran's air defence is gone in the first week and its army −63 % after 43 days at the campaign tempo (−25 % before part K); the United States −0.1 %.The sorties and the losses per sortie are of the 1991 order; the army loses more than in 1991 (−63 % against 32–47 %) — the model has no shelters, no decoys, no Republican Guard and no weather, and pk.land is the GWAPS average over the whole campaign; a type wears at its exposure (part I), so a towed gun in the open and a tank in a revetment lose at different rates but the block's loss is the sum of the sorties.
March 2022 — 24 February – 31 March, 36 days, Russia attacks, the pre-war depots (no ammunition limit); Ukraine – Russia, «Russia attacks», campaign, unlimited, 30 days — a reference row, not a corridorOryx: Russia lost about 460 tanks, 800 armoured vehicles, 100 artillery pieces and 100 aircraft and helicopters; Ukraine about 100 tanks — Russia's land block about −14 % of a park of about 3,300 in service (the corridor −12 … −18 %), its aviation −5 … −9 %, Ukraine's land −8 … −15 %. Oryx ↗At the campaign tempo the model gives Russia's land −24 %, its aviation −0.6 % and Ukraine's land −85 %; at a tempo of about five times the sustained one (where the fact sits) −7 / −0.6 / −22 %. The attacker's loss ratio of March 2022 (3–4 : 1 — ambushes, anti-tank missiles, a logistic collapse) is beyond def_k, and the aviation losses to the low-altitude air defence are outside the SAM term.Not met, by design reported: the guard prints the row with its corridor and never counts it as out. Two limits of the model show here — the defender's loss ratio in an ambush war (a term the model lacks) and the MANPADS / SHORAD channel of the aviation losses (the SAM term is the long- and medium-range coverage × (1 − air superiority)). Both are in «Known limits» below.
Karabakh 2020 — 27 September – 10 November, 44 days; Armenia is not documented on the map, so the row is arithmetic with Azerbaijan's park, not a runOryx: Armenia lost about 250 tanks and 150 artillery pieces (plus about 60 rocket launchers and 40 air-defence systems), most of them on the video of the TB2, Harop, Orbiter and SkyStriker strikes — about 350 weighted index units. Oryx ↗Azerbaijan's 12 TB2 on the map × availability 0.65 × one sortie a day × 44 days = 343 sorties, about 60 % of them on the land mission, × the UAV index weight 0.2 × gen 0.95 × pk.land 0.06 × g_ad ≈ 0.7 — about 1.6 weighted units; the Harop has no quantity on the card (absent from the model; about 100 by the SIPRI arms transfers): 100 × 55 % through × uav_dmg_long 0.015 ≈ 0.8. The model's arithmetic: about 2–3 weighted units against about 350 — × 0.01.Not met, by two orders: pk is calibrated on contested air (Russia over Ukraine, the coalition of 1991), where a sortie of index weight 1 removes 0.06 weighted units; in 2020 no fighter met the TB2, the Soviet-era batteries did not engage it at 5–7 km and the loitering munitions hunted the radars first — an uncontested drone war, a regime the model has no term for (a per-sortie result × 50–100 against a side without counter-UAV air defence). Known limit, listed below; the Harop quantity is a data gap of the Azerbaijan card.

Sensitivity (part K.5, re-run at build 2026-10-19s after part N): doubling or halving any single knob of the norms war, sam_load and exposure — 42 knobs: the rates and tempo multipliers of parts B–H, the sortie rates by class, the mission priorities, pk by mission, pk_tempo, land_nocontact, oca_ground, air_q, att_base, sam_x, air_x, int_shots, rounds_per_tube, the reloads, reserve_rate, reserve_days, the exposure of tanks and IFV and of the artillery, and the knobs of part N (uav_hit_kill, cohesion_min, break_loss_x, sat_uav_ch, strike_outside) — changes the 30-day remaining of Ukraine – Russia at the sustained tempo by at most 2.0 points (uav_hit_kill × 2 (Ukraine)) and at the campaign tempo by at most 26.0 points (k.land_land × 2 (Ukraine)), Israel – Iran at the sprint by at most 13.9 points (sortie_rate.fighter × 2 (Iran)), the United States – Iran campaign by at most 8.9 points (pk.ad × 2 (Iran)); the breaking point and the saturation move none of the calibrated pairs (their thresholds are not crossed there). The full table of all 84 runs is in the project report (test/war_sens.js --mode sens; war_figures.js --k name=value runs any single set).

Uncertainty band

Since build 2026-10-19t every run carries its own uncertainty band: when a war opens (and after every change of its settings) the model is re-run silently with each of the six largest movers of this sweep — k.land_land, intensity_f, sortie_rate.fighter, rounds_per_tube, pk.ad, pk.land — at × 0.5 and × 2, twelve runs from day 0 to the last day, in idle chunks beside the real run; the band is the lowest and the highest remaining share by day over those runs, with the base run inside it. It is drawn as a shaded band around each curve of the chart, written as «41–63 % · at ± 50 % on the key coefficients» under the remaining row of the end table, and the «remaining» window names the two coefficients that gave the edges. The band says how far the figure moves when one key coefficient is halved or doubled — not a confidence interval of the outcome: the data gaps, the tempo and the scenario are not in it.

Known limits

What part N did not close and the model does not claim — the reader should hold these against every figure of the war panel:

Data readiness

Every documented country carries one figure, «data for Live War: N %» (the Analysis tab, this page's analysis of the country and the war panel show the same one): the share of the fields the war model needs that are on record, weighted by their importance — the combat radius of the combat-aviation types (weight 3: without it the theatre gate of the type is 0), the published quantity of the combat cards (3: a card without one counts as 1 unit), the generation, the UAV role, the 30-day stock of the one-way-attack drones, the missile stock of the launcher cards and the artillery-rounds line of the country (2 each), the bomber range, the interceptor stock of the SAM cards, the missile range, the strike cells of the ships, the air-launched cruise-missile family, the production and the storage lines (1 each). A check with nothing to close does not count; where a field is missing the norm or the quantity stands in, as the parts E–K describe. nc/nc_check.py --war <Country> lists the gaps type by type with the field that closes each; --task writes the research task for the agents, nc/war_data_merge.py merges their results.json, test/test_war_all.js runs the war of every country against three reference opponents and test/war_figures.js --check compares the calibrated pairs with analysis/war_ref.json after every build.

The per-country checks apply only where there is something to close (part L.6): the artillery-rounds line from 20 artillery tubes, the production and the storage lines from 200 cards or with a documented storage, the air-launched cruise-missile family with a carrier aircraft of a cv or alcm family on the cards; a check that does not apply is neither in the denominator nor among the gaps — a small army does not lose 30 % for what it does not have.

Reading the war panel

Every figure of the war panel opens a window that says where it comes from (part J): click a block row (Land / Air / Sea / Air defence & missiles / Enablers), the «remaining N %» of a side, the missiles or drones line, a number in the sentence of the day, or a row of the end table. The block window shows the weighted units of the block on day 0 and today (Σ over its categories of units × idx_w, the mass categories damped above 100 on the root scale), the loss of the last day as the sum of its terms — ground fire, aviation, tactical drones, missiles, long-range drones for the land block; air-to-air and SAM fire for the air block; SEAD for the air-defence block; the fleet and aviation for the sea block; the land share × en_k for the enablers — each with its formula and the figures of the day (k.land_land 0.024 × g_land 1 × P_land 7,833 ÷ S_land 5,336 …), the name and status of the norm behind it and a link to its row in the table of norms, the cap when it was reached, and the power of the attacker behind the terms (P = S × availability × manning × tempo; strike = sup × the reaching combat-air power). The sum of the terms is the loss of the block (above the cap, the cap).

The window of «remaining N %» lists the blocks with their weighted units on day 0 and today, the Wmax of each block (the largest block of the documented countries — the scale of the Inventory Strength Index) and the points 100 × S ÷ Wmax, whose sum today divided by the sum on day 0 is the figure. The missiles window splits the day's launches into land launchers × msl_rate, the fleet (ships × strike weight × nav_rate) and the air-launched families (alcm_rate × the 30-day stock × the gate of the family), shows the interception as min(1, int_max × coverage) with the coverage of the defender's SAM at altitude (batteries × π × range² × overlap ÷ the area of the territory — the Analysis tab) and the damage of the missiles that got through, split by priority × what the defender has; the drones window does the same for the long-range and the tactical drones. The window of the sentence of the day lists both sides' blocks with their terms and the missiles and drones of the day; a card popup during the war shows the type's initial → remaining figure and the causes of the day as shares of its block's terms.

Before the start the panel «Assumptions of this pair» lists what the model has decided from the two inventories and the map: the distance between the outlines, whether the ground forces meet and why, the share of each side's combat-air power that reaches the opponent (the theatre gate by radius, the bombers with tanker support, the carrier wing and the day it starts, the forward bases), which missile types reach, whether the fleets meet and when the fleet strikes, the drone stocks by class, the SAM coverage of each side and the interception it gives, the combat types without generation data, the scenario, tempo, supply and bases. Under it the data line says how many types of each side are in the model, how many have a published quantity (the rest count as 1), how many carry a source link, how many lack generation data and how confident the drone stocks are; the calibration line says whether the pair stands on a direct historical reference — Israel – Iran 2025 at the sprint, Ukraine – Russia 2025 by Oryx at the sustained tempo — or is an extrapolation of the calibrated rates. The end table repeats the panel collapsed and offers the table by day as a CSV (day, side, the blocks, the losses by term, the launches, interceptions and stocks of missiles and drones, the event cards; the header carries the assumptions and the data version) — built in the browser, nothing is sent anywhere. In the Record scene the windows and the button are hidden.

Since build 2026-10-19t the day plate carries the plates of the run: CALIBRATED with the years of the reference when the pair and tempo stand on a historical case (Israel – Iran 2025 at the sprint, Ukraine – Russia 2022–2026 at the sustained tempo), CORRIDOR when the owner accepted a corridor without a historical case (the three campaign corridors), EXTRAPOLATION otherwise; INCOMPLETE DATA with the readiness figure when a side's data readiness is under 60 %; «hypothetical tempo × N» beside the campaign and sprint tempos; a note beyond the 30-day stock window with published ammunition (exhausted stocks stay exhausted — no production beyond the cards' lines); and in Record the permanent «MODEL · not a forecast». The plates warn, they never block a run. The percentages of the panel, the plate, the end table, the cards and the PNG are whole numbers (the top-5 losses with «≈»); the CSV and the «why» windows keep the decimals.

The cinema has three channels of cards: the centre card of an event (with a second line that carries its number — «29 of 58 weighted units · fleet strikes since day 1»), and a compact card in the corner of each panel — the flag and one or two lines, 2.5 s, at most one per 4 s per side, never while the centre card is up. The threshold lines come once (the air defence saturated, the long-range pool on reserve, interceptors for N days, shells for N days, shells exhausted, the drone stock exhausted, the reserves from storage, the breaking point, the first carrier strike, the fleet strike); the status lines rotate about every 6 s (intercepted of launched, sorties · lost · SEAD, FPV launches → vehicles, the long-range drones and their share at targets outside the model, the reach of the combat aviation, the air block and its losses by cause, produced · from storage) — all from the figures of the «why» windows and the assumptions. The director shows the side card of the panel it pushes into. The war code itself (about 330 KB with its styles) is loaded only on the first entry into Live War or by a &war= link, so the map page is a third lighter for everyone who does not open a war.

Munitions, reserves and replacement

Exposure (part I.0): a block still loses its daily share f_g, but its types do not lose it evenly — a type loses f_g × exposure × n_g, where exposure is the loss rate of its category relative to the block (norm exposure: tanks 1.0, IFVs 1.3, APCs 0.5, MRAPs 0.1, self-propelled guns 0.4, towed guns 0.25, rocket launchers 0.25; fighters 1.0, attack helicopters 1.2, transports 0.3, tankers 0.1, UAVs 1.5; boats 1.0, submarines 0.3; SAM 1.0, MANPADS 0.2; trucks 0.3 — the Oryx 2025 additions against the parks of the cards, and the logic of what stands at the front) and n_g the norm of the block, Σ m·q ÷ Σ m·q·exposure over its types, so that the weighted loss of the block stays exactly what the calibration gives; m is the marginal index weight of a unit. The block figures of part H do not move; the losses by type, the top-5 and the fact → model table do. A card's popup shows its share of the day: block share × exposure × n.

Interceptors (I.1): the surface-to-air missiles of a side are a stock. A SAM card with a published 30-day stock carries it (is, with its source iss — Israel's Iron Dome and Arrow, Ukraine's Patriot, S-300 and SAMP/T, the US Patriot, THAAD, Stinger pool and Iron Dome, Iran's Tor, China's S-300, all low or medium confidence); every other card takes launchers × ready missiles per launcher of its family (norm sam_load) × (1 + reloads in the window: 3 at the sustained tempo, 2 in a campaign, 1.5 in a sprint), and the panel says «estimated by norm». Each interception spends int_shots missiles — 2 per ballistic missile, 1.2 per cruise missile, 0.3 per long-range drone (the tactical drones fall to electronic warfare and mobile groups, not to missiles). The stock is drawn in two pools: the long- and medium-range types alone engage ballistic missiles; cruise missiles and drones draw on the short-range types first. When a pool does not cover the day, the interception falls in proportion to int_floor 0.15 for missiles and uav_floor 0.5 for drones (guns, electronic warfare, aviation); without the long- and medium-range pool the coverage no longer cuts the air strikes (g_ad = 1), without any interceptors the SAM units stop firing at aircraft (P_sam = 0). The panel line «interceptors: fired · stock left», the end table, the event card «air-defence interceptors exhausted», the sentence of the day and the «why» window carry it.

Shells (I.2): the ground-fire term of a side is limited by its artillery ammunition. Norm ammo gives the rounds for a 30-day window where they are published — Russia 475,000 (its 2025 output plus the North Korean deliveries, no stockpile added: the intelligence services say it was mostly spent), Ukraine 138,000 (its own output plus the Czech initiative and the German deliveries) — and null where they are not (the United States, Israel, Iran, China): then the fire is not limited and the panel says «not limited — the stock is not published», honestly, without an estimate. The need of a day = the tubes that fire (the park of self-propelled and towed guns and rocket launchers × availability × manning, as in P_land) × rounds_per_tube at the tempo — 3 a tube a day sustained (Russia 2025: 10,000–15,000 a day on about 4,000 guns), 20 in a campaign (the Desert Storm averages), 50 in a sprint (one Soviet unit of fire); nothing is fired without ground contact. The fire term is multiplied by the smaller of 1 and stock ÷ need, and by fire_floor 0.2 when the stock is gone (direct fire and mortars). At the campaign tempo the published flows last 9 days (Russia) and 3 (Ukraine) — a campaign on the 2025 flows runs out of shells within two weeks, which is what the stockpile assessments say.

Storage and production (I.3): equipment in storage judged restorable sits on the cards (rs, with its source rss — Russia 8,354 units on 26 cards from the 2025–2026 satellite counts of the storage bases and the IISS in-store lines, the United States 6,616 on 12 cards from the AMARG and the Army depots, Israel's M113) or as a category total in norm storage (Israel's 400 tanks); from day reserve_delay + 1 (day 8) every stored type returns reserve_rate × its stored stock a day — 0.3 % at the sustained tempo, 1 % in a campaign, 1.5 % in a sprint — into its quantity and its block, never into the losses, and never above the quantity it had on day 0 (storage replaces losses, it does not grow the army). New production (norm prod, units a month by country and category, to the named types where the source names them: Russia T-90M 12, BMP-3 40, BTR-82A 50, artillery 25, Su-34 / Su-35 / Su-57 one each; Ukraine Bohdana 40; the United States F-35 8, AMPV 8, HIMARS 4; China J-20 10, J-16 8, ZTZ-99A 5, PCL-181 12 …) adds per_month ÷ 30 a day to its types, with no ceiling — a side with no losses shows 100.1 % remaining. The panel line «replacement: +N from storage · +N produced», the end table, the feed and the «why» window show the arrivals; the external supply switch of part E stays separate.

What the model does not have: mobilisation (the storage return and the production are fixed flows, nothing accelerates with the tempo); the stockpiles behind the published monthly flows of shells and interceptors (where they are not published the model assumes none, or no limit); allied resupply in the war (the interceptors the United States fired for Israel are not on Israel's cards); the rationing a staff applies when a stock runs low (the model fires at the full rate to the last round); repair (a damaged vehicle is lost, while Oryx counts damaged and abandoned too); command, electronic warfare, intelligence and training (a generation factor and a manning factor are the only quality terms); terrain and logistics (the front is a line of contact, the rear is never cut); personnel and morale (people enter only as manning and never break); stealth and stand-off weapons (an F-35 and an F-4 take the same SAM share per unit of power); dispersal, shelters and decoys (the same share for every unit of a block); allies and coalitions (one country against one); manoeuvre — it is a linear attrition model: the sides wear each other down in place, nobody encircles, withdraws or surrenders.

Table of norms

Formation equivalents · 18

normvaluestatussource and note
Main battle tanks per tank battalion-equivalent
tanks / battalion
36 (range 31–44)derivedsource ↗
«equipped with 31 main battle tanks organized into three companies of 10 tanks plus a command vehicle»
Russian/Chinese battalion 31 (3 companies × 10 + 1; 10 per company confirmed by eARMOR 2022), older Russian TO&E 40 (4 × 10), NATO-style 40–44. Decision №1: one neutral value for every country, 36 = the midpoint, so the same tank count reads the same for every army; the range is shown.
Light tank counted as this fraction of a main battle tank
ratio
0.5assumptionno source — assumption
Light tanks (and amphibious/airborne tanks) enter the tank-battalion count at half weight. No published norm; an assumption to keep them visible without inflating tank battalions.
Armoured carriers (IFV + APC) per mechanised battalion-equivalent
vehicles / battalion
30 (range 30–38)sourcedsource ↗
«three motorized-infantry companies totaling 30 infantry fighting vehicles»
Russian motor-rifle battalion 3 × 10 (two sources); US ABCT 152 Bradley / 4 battalions = 38 (derived, includes scouts). Only IFV and APC form manoeuvre brigade-equivalents: MRAP and infantry mobility vehicles are counted separately as motorised battalions (mot_bn) — otherwise the 143,500 US Humvees alone would make 4,800 "mechanised battalions" (stage-1 change, ANALYSIS_SPEC §2.1 listed all four categories).
Protected vehicles (MRAP + infantry mobility) per motorised (protected mobility) battalion-equivalent
vehicles / battalion
30 (range 30–38)derivedsource ↗
«A Stryker brigade is made up of more than 300 Stryker vehicles and 4,500 soldiers.»
Same 30-vehicle battalion shape applied to MRAP and light protected 4×4s; shown as a separate line «motorised (protected mobility) battalion-equivalents» and NOT added to manoeuvre brigade-equivalents (most light 4×4s are liaison, patrol and utility vehicles, not troop carriers). Accepted by Eduard, 29.09.2026.
Guns per artillery battalion-equivalent
guns / battalion
18 (range 18–27)sourcedsource ↗
«each battery mans 6 guns split into 2 Firing Platoons / 3 Field Artillery Batteries»
US Paladin battalion 3 batteries × 6 = 18; Soviet/Russian battalion 3 × 6 = 18 (Wikipedia, Battalion); PLA brigade artillery battalion 27. Self-propelled and towed guns together.
Launchers per rocket-artillery battalion-equivalent
launchers / battalion
18 (range 9–18)derivedsource ↗
«three firing batteries equipped with BM-21 Grads»
Russian battalion 3 batteries × 6 = 18; US battery 6 launchers (originally 9), batteries per battalion not found; PLA 9 per brigade. The 18 rests on the Russian source.
Mortars per mortar battery-equivalent
mortars / battery
6sourcedsource ↗
«each maneuver battalion has six 120–mm combination guns»
PLA six 120 mm per manoeuvre battalion; Russian BTG "a half dozen mortars". Towed and self-propelled mortars together.
Manoeuvre battalions per brigade-equivalent
battalions / brigade
3 (range 3–4)sourcedsource ↗
«The ABCT comprises seven battalions: three combined arms battalions, one cavalry reconnaissance squadron, one artillery battalion, one engineer battalion, and one brigade support battalion.»
US BCT 3 manoeuvre battalions; PLA heavy combined-arms brigade 4; Russian motor-rifle brigade 3 + 1 tank. Brigade-equivalents = (tank + mechanised battalion-equivalents) / 3; motorised battalions are shown but not added.
Brigades per division-equivalent
brigades / division
3sourcedsource ↗
«A divisional unit in the United States Army typically consists of 17,000 to 21,000 soldiers»
US division = 3 manoeuvre brigades + aviation brigade. PLA group army = 6 brigades (a corps-level unit).
SAM units per battalion / battery by family (§12.2) — matched by type name
launchers per unit
familylauncherspernote
Patriot24battalion6 launchers per battery, 4 batteries per battalion ↗
S-30012battalionS-300PS/PM: 12 launchers per battalion (divizion); a battery taken as half a battalion ↗
S-4008battalionsources say 6–12 per battalion (72 launchers / 8 divizions; India 12); 6 launchers per battery ↗
S-3508battalion8 launchers per battalion; a battery taken as half a battalion ↗
HQ-98battalion8 launchers per battalion; a battery taken as half a battalion ↗
Buk9battalion6 TELAR + 3 TEL per battalion; battery 2 TELAR + 1 TEL ↗
SAMP/T5battery4–6 launchers per battery ↗
NASAMS12battery3 launchers per fire unit, up to 4 fire units per battery ↗
Tor4battery4 vehicles per battery ↗
Pantsir6batteryup to 6 vehicles per battery ↗
Iron Dome3.5battery3–4 launchers per battery ↗
THAAD6battery6 launchers per battery ↗
HAWK6battery6 launchers per battery ↗
David's Sling6battery6 launchers per battery (was 4 without a source until 14.10.2026 — Live War v2 part A, Eduard: the figure with a source wins) ↗
S-1254battery4 launchers per battery (site) — added 14.10.2026 for the launcher audit (Egypt) ↗
S-756battery6 launchers per battalion (site) — added 14.10.2026 for the launcher audit (Egypt, Iran HQ-2J) ↗
sourcedsource ↗
«Each line battery consists of (nominally) six launchers / Each battery (or firing unit) is equipped with 6 launchers, a radar and a control centre / A Buk missile battery consists of two TELAR and one TEL vehicle / David…»
Sources: norms_research_air_sea.md §B3 and norms_research_ground.md §A4. A SAM card whose name contains one of the match strings uses its family norm; every other SAM is a fallback: 8 per battalion if its name is in lr_sam_names (long-range), otherwise 4 per battery (sam_bty). Gun-missile systems (Pantsir, Tunguska) use the battery line. STAGE1_REVIEW §4 (accepted): when the quantity string says "batteries" the number is batteries, not launchers (UAE Patriot "12 batteries" = 3 battalions, not 0.5): battalion families count q × battery size (ub) ÷ battalion size, battery families count q; "battalion" / "regiment" / "divizion" in the quantity → battalions. The row says "12 batteries (as recorded)". Launchers = batteries × ub also feed the index and the manning.
Launchers per long-range SAM battalion-equivalent (fallback for families not in sam_units)
launchers / battalion
8 (range 6–12)low-confidence sourcesource ↗
«One system comprising eight divizion (battalions) can control 72 launchers, with a maximum of 384 missiles / Each battery (or firing unit) is equipped with 6 launchers, a radar and a control centre»
Sources conflict: S-400 9 per battalion (72 / 8), India 12, Wikipedia 6 per battery; Patriot 6 per battery × 4 batteries = 24 per battalion (GlobalSecurity). Decision №2: 8 — used only as the fallback for long-range families without a line in sam_units (§12.2). "Long-range" is decided by the system name list (lr_sam_names) until the range table (perf.json) exists. Quantities are launchers or systems as recorded on the card.
Systems counted as long-range SAM (published engagement range ≥ 100 km)
name list

S-200, S-300, S-350, S-400, S-500, Patriot, MIM-104, THAAD, SAMP/T, Aster 30, HQ-9, HQ-22, HQ-19, Barak 8, Barak-8, Barak ER, David's Sling, Arrow 2, Arrow 3, Arrow-2, Arrow-3, Bavar-373, Sky Bow III, Tien Kung III, KM-SAM, L-SAM, Talash, Sayyad

derivedsource ↗
«380 (240) / 195 km (121 mi) / 160 km (est.) / THAAD has an operational range of 200 km. / 260 km (HQ-9B) / 170 kilometres (110 mi)»
From the SAM range table in norms_research_air_sea.md §B6 (tier "long-range 100–250 km" and "extra-long > 250 km"). A card whose name contains one of these strings is long-range; every other SAM card is medium/short. Replaced by the per-type range (rg) in stage 2.
Launcher vehicles per SAM battery-equivalent (fallback for families not in sam_units)
vehicles / battery
4 (range 3–6)derivedsource ↗
«Typically, a battery of four Tor vehicles is accompanied by the mobile Ranzhir-M command center.»
Tor 4; Buk battery 3 (2 TELAR + 1 TEL; battalion 9); Pantsir up to 6; NASAMS 3 per fire unit; Iron Dome 3–4; medium/long-range batteries 6. Median 4. Gun-missile systems (Pantsir, Tunguska) count here.
Attack helicopters per attack battalion-equivalent
helicopters / battalion
24sourcedsource ↗
«24 Boeing AH-64 Apache per attack reconnaissance battalion»
US Army attack reconnaissance battalion. Russian and Chinese battalion sizes were not found.
Transport/utility helicopters per assault battalion-equivalent
helicopters / battalion
30sourcedsource ↗
«30 x UH-60 Black Hawk»
US Army assault helicopter battalion; heavy-lift company 12 CH-47F. Transport, utility, special-mission helicopters and tiltrotors together.
Combat aircraft per fighter squadron-equivalent
aircraft / squadron
18 (range 12–24)derivedsource ↗
«Fighter squadrons may support between 18 and 24 aircraft, while squadrons flying larger aircraft (e.g. bomber, cargo, reconnaissance) may support fewer aircraft.»
USAF 18–24 (current plan 24 PMAI + 4 = 28), PLAAF brigade 24, NATO 12–24, RAF / US Navy 12. 18 = midpoint of the NATO range. Fighter and attack aircraft together.
Aircraft per bomber / transport / tanker / AEW / UAV squadron-equivalent
aircraft / squadron
9 (range 9–12)assumptionsource ↗
«squadrons flying larger aircraft (e.g. bomber, cargo, reconnaissance) may support fewer aircraft»
No published squadron size was found for these types; placeholder = half a fighter squadron (decision №3: 9). Each category is divided separately.
Naval classes shown as counts with crews (no formation equivalents)
class → categories

aircraft carriers: Aircraft Carriers

major surface combatants: Cruisers, Destroyers, Frigates

corvettes & fast attack craft: Corvettes, Fast Attack Craft

submarines: Submarines

amphibious: Amphibious Assault Ships, Landing Ships, Landing Craft

patrol vessels: Patrol Vessels

mine warfare: Mine Warfare Vessels

auxiliaries: Support Ships

sourcedsource ↗
«a destroyer squadron of at least two destroyers or frigates ; Up to two attack submarines»
Navies are not divided into "battalions": the module lists hulls by class and the crews they need (crew norms from oands_rules.json: Nimitz 5,000–5,200 with air wing, Arleigh Burke 303–323, FREMM 145, K130 65, Kilo 52, Virginia 135).

Manning & readiness · 8

normvaluestatussource and note
Support personnel per direct crew/maintainer (staffs, logistics, medical, training)
ratio
0.6 (range 0.5–1.0)derivedsource ↗
«an armored brigade in the Army's active component has about 4,200 military personnel assigned to it. But that number rises to about 17,450 military personnel if it includes the units that support the armored brigade»
Tooth-to-tail: US combat share 11 % (Iraq 2005) – 17 % (Gulf War), armoured brigade = 24 % of the personnel needed to sustain it (CBO), Indian division 65 % combat (own support only). Direct crews + maintainers already include the equipment tail, so 0.6 (decision №4) adds the rest: staffs, logistics, medical, training. Required personnel = direct × 1.6.
Pooled crews for vehicle mass categories: crew × 0.3, maintainers × 0.5
factor

cats: ['Infantry Mobility Vehicles', 'MRAP Vehicles', 'Light Utility Vehicles', 'Logistics & Transport Vehicles', 'Medical Vehicles'], crew: 0.3, maint: 0.5

assumptionno source — assumption
STAGE1_REVIEW §2 (accepted): drivers of light 4×4s, MRAPs, trucks and ambulances are the infantry and support soldiers already on strength, and the vehicles are pooled — a dedicated crew per vehicle counted 162,675 US Humvees as 490,000 people. Calibrated so that the US, the best-documented inventory with a known personnel figure, comes out at ≈ 100 %.
Light weapons manned by line infantry: crews × 0.25
factor

cats: ['Mortars', 'Anti-Aircraft Guns', 'Anti-Tank Guided Missile Systems', 'Man-Portable Air Defense Systems', 'Anti-Tank Guns'], crew: 0.25

assumptionno source — assumption
STAGE1_REVIEW §2 (accepted): mortars, anti-aircraft guns, ATGM, MANPADS and anti-tank guns are served by line infantry, not by dedicated crews — 7,200 ZPU of Sudan counted as 83,000 people (79 % of its army).
Crews of support ships, patrol vessels and landing craft by size tier (from the unit price)
crew per hull

cats: {'Support Ships': [40, 10], 'Patrol Vessels': [20, 6], 'Landing Craft': [10, 4]}, big: 100000000, mid: 20000000

assumptionno source — assumption
STAGE1_REVIEW §2 (accepted): the cost table gives one crew per category (support ship 150), so three tugs of Montenegro needed 4,032 people. Price ≥ $100 M → table crew; ≥ $20 M → 40 / 20 / 10; below → 10 / 6 / 4 (support ship / patrol vessel / landing craft); the price is the documented one or the My Army estimate.
Mission-capable share of an air fleet (default)
ratio
0.65 (range 0.62–0.71)sourcedsource ↗
«The unweighted average of all fleets in 2023 was 69.92 percent, down from 71.24 percent in fiscal 2022. / 67.15 percent (FY2024)»
USAF fleet average FY22–24: 71 %, 70 %, 67 % (unweighted) or 62 % (aircraft-weighted); F-35A 44–51 %, F-22 40 %, F-16C 64–69 %, MQ-9A 86 %. Other countries publish no rates — the same default is applied to every air force.
Share of a fleet at sea (snapshot)
ratio
0.36 (range 0.19–0.67)sourcedsource ↗
«105 warships at sea for an OPTEMPO of 36.1 percent»
US Navy September 2025 snapshot; planning presence rate 19 % for a home-based ship, 67 % forward-based. The "rule of thirds" is not a published rule.
Operational share of ground equipment (default)
ratio
0.7 (range 0.5–0.85)assumptionno source — assumption
No published tank/vehicle readiness rate was found (decision №5: 0.70). Effective fleet = quantity × availability × min(1, manning).
My Army readiness setting (low / normal / high) replaces the default availability
ratio

low: 0.5, normal: None, high: 0.85

assumptionno source — assumption
In My Army the user chooses: low = 0.5, normal = the defaults above, high = 0.85 for every group.

Budget realism · 10

normvaluestatussource and note
Assumed cost per service member — model tier (low / mid / high) = the highest tier whose personnel cost stays within this share of the budget
share of budget
0.45derivedsource ↗
«$182 billion for military personnel and $340 billion for O&M»
Tier values from oands_rules.json personnel_cost (low $15k, mid $45k, high $120k — an all-in cost model, never a salary). The tier is fitted to the budget: the highest tier at which people on strength × tier cost ≤ 45 % of the annual budget (US 21 %, India 50 % with pensions — 45 % is the ceiling of a normal structure). If even the low tier exceeds it, the low tier is kept and the army is flagged "budget too small for the personnel at any tier". Replaces the $20k / $80k budget-per-soldier thresholds of decision №6 (they put Russia and Ukraine in the US tier: 83 % and 97 % of the budget) — Eduard, 29.09.2026, STAGE1_REVIEW §5: one rule instead of two thresholds, consistent with the benchmark «personnel ≈ 22–26 %, never more than half».
Yearly O&S per unit = unit price × the category O&S rate; without a documented price the My Army estimate is used
rule
1assumptionno source — assumption
STAGE1_REVIEW §6 (accepted): O&S per unit = documented price × the category rate (oands_rules.json os_pct); no documented price → the estimate from estimates.json × the rate (marked "estimate", never used for the inventory value); no estimate → the category default, or the light-platform default os_usd_light of the cost table when the type is a light platform (os_light). Removes the old floor of 15 % of the category default, which charged three King Air patrol aircraft of Malta $54 M a year. Eduard, 29.09.2026: estimates are allowed for the O&S model (the «estimates only in My Army» rule concerns the display of prices), with the caption «O&S from estimated unit prices».
Light platforms (turboprop and piston aircraft, boats under ~30 m, light trucks and pickups): when a type has neither a documented price nor an estimate, its yearly O&S is the light default of the category (os_usd_light in oands_rules.json), not the category default
name rule

cats: ['Maritime Patrol Aircraft', 'Transport Aircraft', 'Reconnaissance & SIGINT Aircraft', 'Electronic Warfare Aircraft', 'Utility & Liaison Aircraft', 'Trainer Aircraft', 'Patrol Vessels', 'Fast Attack Craft', 'Landing Craft', 'Support Ships', 'Logistics & Transport Vehicles', 'Medical Vehicles'], names: King Air|Beech|Cessna|Caravan|PC-12|PC-6|PC-7|PC-9|Twin Otter|DHC-6|Islander|BN-2|Do 228|Dornier 228|An-2|An-28|L-410|Tecnam|Diamond|DA42|DA62|Piper|Grob|Extra |Zlin|Yak-52|Yak-18|Cirrus|Bonanza|Baron|TBM|Learjet|Citation|Skyvan|Turbo Commander|Pilatus|boat|RIB|RHIB|craft|interceptor|Defender class|Boomeranger|Metal Shark|Zodiac|dinghy|skiff|launch|pickup|Hilux|Land Cruiser|Ranger|F-350|F-250|D-Max|L200|Navara|Amarok|Wrangler|Sprinter|Transit

assumptionno source — assumption
Eduard, 29.09.2026: the category default of e.g. Maritime Patrol Aircraft ($18 M a year) is a P-8 figure; a King Air without any price would otherwise be charged the same. The type is recognised by its name (regex over the listed categories only); the rule is a last resort — with 3,900 estimated prices it rarely fires.
Small tactical / loitering drones: a UAV type with a unit price under $1 M (documented or estimated), or — when no price is known — recorded in this quantity or more
$ per unit / units per type

price: 1000000, q: 200, os: 20000, crew: 1, maint: 0

assumptionno source — assumption
A small tactical or loitering drone (Orlan-10, Raven, Switchblade, Black Hornet, FPV) is left out of squadron-equivalents and costs $20,000 a year with 1 operator and no dedicated maintainer, instead of the $4 M / 2 crew / 6 maintainers of the cost table. Recognised by price first (under $1 M, documented or the My Army estimate) and only by quantity (200+ of a type) when no price is known — Eduard, 29.09.2026: by quantity alone 300 Bayraktar TB2 would become «small drones»; by price 312 MQ-1C Gray Eagle and 500 RQ-7 Shadow of the US Army are full UAVs again.
Cap on the equipment-family overhead in yearly O&S
%
30assumptionno source — assumption
The cost table adds 10 % of O&S for every equipment family beyond the normal number (a My Army rule of thumb). A complete national inventory lists dozens of families (Russia 111 extra → +1,110 %), so the Analysis caps the overhead at 30 %.
Personnel share of a defence budget (benchmark)
share
0.22 (range 0.21–0.26)sourcedsource ↗
«$182 billion for military personnel and $340 billion for O&M»
US FY2025 request 21.4 %; India salaries 26 % + pensions 24 %.
Operation & maintenance share (benchmark)
share
0.4 (range 0.13–0.4)sourcedsource ↗
«$340 billion for O&M»
US FY2025 40.0 %; India "maintenance" 13 % is a narrower category.
Procurement share (benchmark)
share
0.2 (range 0.2–0.31)sourcedsource ↗
«at least 20% of defence expenditures should be devoted to spending on major equipment, including the associated research and development»
US FY2025 19.8 %; NATO guideline ≥ 20 % on major equipment incl. R&D (median of members ≈ 31 %); India capital outlay 28 %.
Research & development share (benchmark)
share
0.17sourcedsource ↗
«Research, Development, Test, and Evaluation: $143 billion»
US FY2025 16.8 %; US only.
Infrastructure share (benchmark)
share
0.02sourcedsource ↗
«military construction $15.6B + family housing $2.0B»
US FY2025 ≈ 2.1 % (MILCON + housing); US only.

World standing · 2

normvaluestatussource and note
Ten metrics ranked among the countries of the map
metric list

Active personnel, Main battle tanks, Infantry carriers (IFV + APC), Artillery (SP + towed + MLRS), SAM launchers / systems, Combat aircraft, Helicopters (all), Major surface combatants, Submarines, Military budget

sourcedno source — assumption
§12.5: percentile = rank among the DOCUMENTED countries (inventory loaded on the map) with a non-zero value — "2nd of 25 documented countries"; the denominator grows as countries are added; never "of 172 countries".
Category groups of the similarity vector ("closest armies")
group list

MBT · LT+FSV · IFV · APC+MRAP+IMV · REC · SPA · ART · MLRS · MOR+SPM · ATG+ATGM+ATMC · BMS+GLCM+CDM · SAM · GMAD+SPAAG+AAG · MPAD+CUAS · RDR+EW+C3 · ENG+CBRN+EOD+MED · LOG+LUV · FTR · ATK+BMB · AH · TH+UH+TLT · TRA+TKR · AEW+ISR+EWA+MPA · TRN+UTL · UAV · CV+LHA · CG+DD+FF · FS+FAC+PV · SS · MCM+LST+LC+AOR

derivedno source — assumption
Each army becomes a vector of log(1 + units) over these groups, normalised to length 1; similarity = cosine of the angle between two vectors (shape of the inventory, not its size). The three closest armies are shown.

Inventory Strength Index · 12

normvaluestatussource and note
Five blocks of the Inventory Strength Index
block → categories

Land: Main Battle Tanks, Light Tanks, Fire Support Vehicles, Infantry Fighting Vehicles, Armored Personnel Carriers, MRAP Vehicles, Infantry Mobility Vehicles, Reconnaissance Vehicles, Self-Propelled Artillery, Towed Artillery, Multiple Launch Rocket Systems, Self-Propelled Mortars, Mortars, Anti-Tank Guns, Anti-Tank Guided Missile Systems, Anti-Tank Missile Carriers, Armoured Trains, Unmanned Ground Vehicles

Air: Fighter Aircraft, Attack Aircraft, Bombers, AEW&C Aircraft, Reconnaissance & SIGINT Aircraft, Electronic Warfare Aircraft, Maritime Patrol Aircraft, Aerial Refueling Tankers, Transport Aircraft, Trainer Aircraft, Utility & Liaison Aircraft, Attack Helicopters, Transport Helicopters, Utility & Special-Mission Helicopters, Tiltrotor Aircraft, Unmanned Aerial Vehicles, Aerostats & Airships

Sea: Aircraft Carriers, Submarines, Cruisers, Destroyers, Frigates, Corvettes, Fast Attack Craft, Patrol Vessels, Amphibious Assault Ships, Landing Ships, Landing Craft, Mine Warfare Vessels, Support Ships, Manned Submersibles, Unmanned Surface Vessels, Unmanned Underwater Vehicles

Air defence & missiles: Surface-to-Air Missile Systems, Gun-Missile Air Defense Systems, Anti-Aircraft Guns, Self-Propelled Anti-Aircraft Guns, Man-Portable Air Defense Systems, Counter-UAS Systems, Ballistic Missile Systems, Ground-Launched Cruise Missile Systems, Coastal Defense Missile Systems

Enablers: Radar Systems, Electronic Warfare Systems, Communications, Command & Control Systems, Engineering & Recovery Vehicles, CBRN Defense Systems, EOD & IEDD Systems, Medical Vehicles, Light Utility Vehicles, Logistics & Transport Vehicles, Military Satellites

assumptionno source — assumption
Land / Air / Sea / Air defence & missiles / Enablers (+ active personnel). Each block is normalised to the best DOCUMENTED country on the map (0–100, §12.5); the index is the mean of the blocks. Nuclear warheads are shown separately and never enter the index.
Block names
labels

land: Land, air: Air, sea: Sea, ad: Air defence & missiles, en: Enablers

assumptionno source — assumption
Weight of one unit in the Inventory Strength Index, by category
points / unit
categoryweight
Main Battle Tanks1.0
Light Tanks0.5
Fire Support Vehicles0.5
Infantry Fighting Vehicles0.5
Armored Personnel Carriers0.3
MRAP Vehicles0.15
Infantry Mobility Vehicles0.1
Reconnaissance Vehicles0.3
Self-Propelled Artillery0.8
Towed Artillery0.4
Multiple Launch Rocket Systems0.9
Self-Propelled Mortars0.3
Mortars0.1
Anti-Tank Guns0.1
Anti-Tank Guided Missile Systems0.05
Anti-Tank Missile Carriers0.4
Armoured Trains0.5
Unmanned Ground Vehicles0.05
Fighter Aircraft1.0
Attack Aircraft0.8
Bombers2.0
AEW&C Aircraft2.0
Reconnaissance & SIGINT Aircraft1.5
Electronic Warfare Aircraft1.5
Maritime Patrol Aircraft1.0
Aerial Refueling Tankers1.5
Transport Aircraft0.3
Trainer Aircraft0.1
Utility & Liaison Aircraft0.05
Attack Helicopters0.6
Transport Helicopters0.3
Utility & Special-Mission Helicopters0.2
Tiltrotor Aircraft0.5
Unmanned Aerial Vehicles0.2
Aerostats & Airships0.2
Aircraft Carriers20
Submarines4
Cruisers6
Destroyers5
Frigates3
Corvettes1.5
Fast Attack Craft0.8
Patrol Vessels0.3
Amphibious Assault Ships8
Landing Ships2
Landing Craft0.2
Mine Warfare Vessels0.8
Support Ships0.5
Manned Submersibles0.2
Unmanned Surface Vessels0.1
Unmanned Underwater Vehicles0.1
Surface-to-Air Missile Systems1.0
Gun-Missile Air Defense Systems0.3
Anti-Aircraft Guns0.05
Self-Propelled Anti-Aircraft Guns0.3
Man-Portable Air Defense Systems0.02
Counter-UAS Systems0.2
Ballistic Missile Systems5
Ground-Launched Cruise Missile Systems5
Coastal Defense Missile Systems3
Radar Systems0.5
Electronic Warfare Systems0.5
Communications, Command & Control Systems0.2
Engineering & Recovery Vehicles0.2
CBRN Defense Systems0.1
EOD & IEDD Systems0.05
Medical Vehicles0.05
Light Utility Vehicles0.01
Logistics & Transport Vehicles0.02
Military Satellites1.0
assumptionno source — assumption
Decision №7: starting weights from ANALYSIS_SPEC.md §2.5 (MBT 1.0, IFV 0.5, APC 0.3, SPA 0.8, towed 0.4, MLRS 0.9, fighter 1.0, attack 0.8, bomber 2.0, attack helicopter 0.6, transport 0.3, tanker 1.5, AEW 2.0, UAV 0.2, carrier 20, destroyer 5, frigate 3, corvette 1.5, ballistic missile system 5 …), the rest filled in the same spirit. Long-range SAM systems (lr_sam_names) weigh 3 instead of 1; nuclear-powered submarines (ssn_names) 8 instead of 4. Published here so that anyone can argue with them.
Mass categories enter the index on a square-root scale above 100 units: q ≤ 100 → q; q > 100 → 100·√(q/100)
rule

cats: ['Infantry Mobility Vehicles', 'MRAP Vehicles', 'Light Utility Vehicles', 'Logistics & Transport Vehicles', 'Medical Vehicles', 'Patrol Vessels', 'Support Ships', 'Landing Craft', 'Mortars', 'Anti-Aircraft Guns', 'Anti-Tank Guided Missile Systems', 'Man-Portable Air Defense Systems'], from: 100

assumptionno source — assumption
STAGE1_REVIEW §1 (accepted): with linear counts 162,675 US Humvees were 56 % of the US Land block (Land US 100 / China 63 / Russia 39 although Russia has more tanks and artillery), 11,644 small drones half of Russia's Air block, 381 auxiliaries more than all cruisers, destroyers and frigates together. On the root scale 1,000 vehicles count as 316, 10,000 as 1,000, 160,000 as 4,000; small tactical / loitering drones (uav_small) are damped the same way. Result: Land China 100 / US 65 / Russia 65; index US ≈ 79, China ≈ 77, Russia ≈ 61.
A documented type without a published quantity counts as this many units in the index and in the completeness indicator
units
1assumptionno source — assumption
STAGE1_REVIEW §3 (accepted): cards with "—" (Russia 668 of 1,038 in-service cards, Iran 48 %, Israel 46 %) were dropped silently — 63 Russian radar types became "Radar Systems: 1". Now each counts as 1 unit, a lower bound, in the index and coverage only (never in formation equivalents or manning, where it would be noise); the tab prints "N types without a published quantity — counted as 1".
Weight of a long-range SAM launcher/system
points / unit
3assumptionno source — assumption
Spec §2.5: long-range SAM system 3, medium 1, short 0.3.
Weight of a nuclear-powered submarine
points / unit
8assumptionno source — assumption
Spec §2.5: SSN 8, SSK 4. Nuclear boats are recognised by name (ssn_names).
Submarine names treated as nuclear-powered
name list

SSN, SSBN, SSGN, Virginia, Los Angeles, Seawolf, Ohio, Columbia, Borei, Borey, Yasen, Akula, Oscar, Delta, Sierra, Typhoon, Victor, Belgorod, Khabarovsk, Type 091, Type 092, Type 093, Type 094, Type 095, Type 096, Astute, Trafalgar, Vanguard, Dreadnought, Triomphant, Suffren, Rubis, Barracuda, Arihant, Chakra, Jin, Shang, Han

derivedsource ↗
«Nuclear core life estimated at 33 years.»
Class names of nuclear boats in service (US, Russia, China, UK, France, India). Every other submarine is conventional.
Weight of 1,000 active personnel (Enablers block)
points / 1,000
1.0assumptionno source — assumption
Active personnel enter the Enablers block: mp / 1,000 × 1.0.
Quality factor of every type in stage 1
ratio
1assumptionno source — assumption
§12.1: price is a poor quality proxy (export prices depend on the package, contract, munitions, licences), so every type counts with quality 1 — the index measures inventory only. A modifier comes only after the year of introduction and characteristics are collected in stage 2, by a separate decision.
Support categories: a zero for a real country means "not documented", not "missing"
category list

Logistics & Transport Vehicles, Engineering & Recovery Vehicles, Medical Vehicles, Communications, Command & Control Systems, Light Utility Vehicles, CBRN Defense Systems, EOD & IEDD Systems

derivedno source — assumption
ANALYSIS_SPEC.md §7a: open sources rarely list the rear. These categories with no card are shown as "not documented in open sources", enter neither numerator nor denominator of the structure score, and the Enablers block counts only documented categories. In My Army a zero is a real gap.
Combat categories counted in the data-completeness indicator
category list

Main Battle Tanks, Infantry Fighting Vehicles, Armored Personnel Carriers, Self-Propelled Artillery, Towed Artillery, Multiple Launch Rocket Systems, Surface-to-Air Missile Systems, Man-Portable Air Defense Systems, Fighter Aircraft, Attack Helicopters, Transport Helicopters, Transport Aircraft, Unmanned Aerial Vehicles, Submarines, Frigates, Corvettes, Patrol Vessels

derivedno source — assumption
A zero here is a real absence (open sources always list tanks, artillery, air defence, aircraft and ships). The tab header shows "combat categories documented X of Y · support categories Z of 7".

Stage 2: air-defence coverage, strike reach, fleet age · 15

normvaluestatussource and note
Air-defence tiers by engagement range (km) — stage 2
km

vshorad: [0, 8], shorad: [8, 30], mrad: [30, 100], long: [100, 250], xlong: [250, 99999]

derivedsource ↗
«tier table: VSHORAD "< 6 km" / SHORAD 6-15 / MRAD 15-100 / > 100»
Union of Grosswald (<6 / 6–15 / 15–100 / >100) and ESD (VSHORAD to 5–10, SHORAD 8–25) so that Tor (12–16), Pantsir (20–30), NASAMS (40–60), Buk-M3 (70), S-300PMU-1 (150), S-400 (240–380) fall in distinct tiers. Not used in stage 1.
Radar horizon vs low-flying targets: R = 4.12·(√h_radar + √h_target) km — stage 2
km

h_radar: 10, h_target: 30, k: 4.12

derivedsource ↗
«R_horizon = sqrt(2 x R_e x k_e x h_radar) + sqrt(2 x R_e x k_e x h_target)»
Standard 4/3-earth refraction; a 10 m mast against a 30 m target sees ~36 km, however long the missile range. Not used in stage 1.
Air-defence coverage: categories that cover an area (SAM and gun-missile systems) and categories counted as point defence only
category list

area: ['Surface-to-Air Missile Systems', 'Gun-Missile Air Defense Systems'], point: ['Man-Portable Air Defense Systems', 'Self-Propelled Anti-Aircraft Guns', 'Anti-Aircraft Guns', 'Counter-UAS Systems']

assumptionno source — assumption
MANPADS, AA guns and counter-UAS systems defend a point or a column, not a territory; they are listed as "point defence: N launchers / guns" and never added to the covered area.
Launchers per battery for the coverage figure: short / very short range 4, medium and longer 6 (a family value ub from sam_units wins when defined)
launchers / battery

short: 4, long: 6

assumptionno source — assumption
ANALYSIS_SPEC §4.2. Batteries = launchers ÷ battery size; a battery is the unit that covers one circle of radius rg.
Share of the geometric circle area that counts as covered (overlap, terrain, gaps)
ratio
0.6assumptionno source — assumption
ANALYSIS_SPEC §4.2 (assumption): area covered by a tier = Σ batteries × π rg² × 0.6; coverage = min(1, area covered ÷ area of the country from its outline (spherical polygon area) or of the My Army territory).
Reach rings drawn on the map: at most this many systems (the longest documented ranges), the rest listed as text
systems
5assumptionno source — assumption
ANALYSIS_SPEC §4.3. Real countries: rings are drawn from the border (a buffer of the outline by the range — "from any point of its territory it reaches this far"), never from the markers, which stand in formation, not at bases. My Army: rings from the markers the user placed.
Sampling step of the outline for the border buffer (km); for long ranges the step grows to range ÷ 6
km
25assumptionno source — assumption
ANALYSIS_SPEC §4.3: outline → points every ≤ 25 km → geodesic circles → union (drawn on a canvas so that overlaps stay one shade).
Combat radius with air-to-air refuelling = radius × this factor (second ring, only if the country has tanker aircraft)
factor
1.5assumptionno source — assumption
ANALYSIS_SPEC §4.3 (assumption). Shown as a dashed second ring "with tankers".
Combat radius from a plain range figure = range × ⅓ (used only when the source gives a range, not a radius — crk = "range"; a "combat range" line is used as is)
factor
0.333sourcedsource ↗
«the radius of action is one-third the distance an aircraft can fly in a straight line on a full load of fuel»
perf.json keeps what the source said (crk = radius / combat range / range); the map converts a plain range with this rule and labels the result "≈ ⅓ of the published range".
A helicopter figure above this many km is a range, not a combat radius (STAGE2_REVIEW §1): it is halved
km
400assumptionno source — assumption
Ka-52 470 km and Mi-28 200 km are both Wikipedia "combat range" lines, AH-64 480 km is labelled a radius by the source pass; no attack or transport helicopter has a 470 km combat radius. Above the threshold the figure is treated as a range and halved (cr_heli_k).
Combat radius of a helicopter from a plain range figure = range × ½ (jets use ⅓ — cr_range_k — because of reserves and combat fuel)
factor
0.5assumptionno source — assumption
STAGE2_REVIEW §1. Shown in the row as "≈ ½ of the published range".
Longest reach ring drawn on the map (km); systems with a longer documented range are listed as intercontinental / global reach and not drawn
km
5,000assumptionno source — assumption
A 12,000 km ring around Russia or the United States covers the whole map and says nothing; ICBMs are listed with their range instead.
A published "combat range" above this many km is a total range, not a radius, and is divided by three like a plain range
km
2,500assumptionno source — assumption
Wikipedia infoboxes use "combat range" inconsistently: 550 km for the F-16 is a hi-lo-hi radius, 14,200 km for the B-52 and 7,300 km for the Tu-160 are unrefuelled total ranges. No aircraft has a 2,500 km unrefuelled radius, so above that the figure is treated as a range (cr_range_k).
Service life by category (years) for the fleet-age block: ships and helicopters sourced, the rest assumptions
years

Destroyers: 35, Cruisers: 35, Aircraft Carriers: 50, Submarines: 33, Frigates: 30, Corvettes: 30, Amphibious Assault Ships: 40, Landing Ships: 35, Mine Warfare Vessels: 30, Fast Attack Craft: 25, Attack Helicopters: 25, Transport Helicopters: 25, Fighter Aircraft: 35, Attack Aircraft: 35, Bombers: 45, AEW&C Aircraft: 35, Surface-to-Air Missile Systems: 30, Gun-Missile Air Defense Systems: 30, Man-Portable Air Defense Systems: 20, Radar Systems: 25, Ballistic Missile Systems: 25, Ground-Launched Cruise Missile Systems: 25, Coastal Defense Missile Systems: 25, Multiple Launch Rocket Systems: 30, Anti-Tank Guided Missile Systems: 20, Anti-Tank Missile Carriers: 25

low-confidence sourcesource ↗
«service lives of at least 35 years»
Sourced: destroyers 35 (Arleigh Burke), carriers over 50 (Nimitz), submarines 33 (Virginia nuclear core), helicopters 25 (UH-60 original design life, CBO 2001) — norms_research_ground.md. Fighters, SAM, radars, missiles: assumptions (the M1 and F-16 show 40–70 years with upgrades, so "past service life" means "due for replacement or upgrade", not "unusable"). The block shows the average year of introduction per category, the share of units older than 30 years and the share past the category life by 2036 — only for types with a documented year (perf.json yr).
Age threshold (years) for the "older than" share in the fleet-age block
years
30assumptionno source — assumption
ANALYSIS_SPEC §4.4: share of units whose type entered service more than 30 years ago (weighted by units); horizon year 2036 for "past service life by".

Stage 3: consumption and days of stock (My Army) · 7

normvaluestatussource and note
Fuel per 100 km on roads by vehicle category (litres): MBT 300 published (Leopard 2; T-72 240 and M1 447 derived), the other classes scaled from it
L / 100 km

Main Battle Tanks: 300, Light Tanks: 150, Fire Support Vehicles: 150, Infantry Fighting Vehicles: 150, Armored Personnel Carriers: 100, Reconnaissance Vehicles: 80, Self-Propelled Artillery: 200, Multiple Launch Rocket Systems: 120, Self-Propelled Mortars: 100, Self-Propelled Anti-Aircraft Guns: 150, Gun-Missile Air Defense Systems: 100, Surface-to-Air Missile Systems: 100, Anti-Tank Missile Carriers: 60, MRAP Vehicles: 60, Engineering & Recovery Vehicles: 200, Infantry Mobility Vehicles: 25, Logistics & Transport Vehicles: 35, Medical Vehicles: 25, Light Utility Vehicles: 15

derivedsource ↗
«an estimated fuel consumption rate of around 300 litres per 100 km on roads and 500 litres per 100 km across the country»
norms_research_ground.md D3. Only the MBT figure is published; IFV / SPG / APC / wheeled / trucks are set by vehicle class (a 25–30 t tracked vehicle at about half a tank, an 8×8 at a third, a 4×4 at a twentieth). Cross-country consumption is 1.5–2× higher (Leopard 2: 500 L / 100 km) — the model uses road figures, so it is a lower bound.
Diesel density (kg per litre) to turn litres into tonnes
kg / L
0.84sourcedsource ↗
«density of about 0.82 to 0.85 kg/L»
Tonnes = litres × 0.84 ÷ 1,000.
Daily rates by intensity: km driven per vehicle, artillery rounds per gun, sorties per combat aircraft (low = peacetime training, medium = sustained operations, high = major combat)
per day

low: {'km': 15, 'rounds': 2, 'sorties': 0.5}, medium: {'km': 50, 'rounds': 6, 'sorties': 0.75}, high: {'km': 50, 'rounds': 30, 'sorties': 1.0}

assumptionsource ↗
«Ukrainian artillery fires 5,000 or more 155-mm shells a day»
ANALYSIS_SPEC §5 — the three ASSUMPTION values, approved as they stand by Eduard on 30.09.2026 (high = the tempo of a protracted major war, Ukraine 2022–25, not the doctrinal first-days peak): 50 km driven per vehicle per day, 30 rounds per gun per day at high intensity, 0.5 sorties per aircraft per day in peacetime. Anchors: 6 rounds per gun per day = Ukraine 2025 fleet average (5,000+ rounds over ~900 155 mm guns, derived); 1.0 sortie per aircraft per day = Desert Storm average. The low-intensity km and rounds and the medium sortie rate are interpolations of the same kind.
Categories whose units fire the artillery daily rate
category list

Self-Propelled Artillery, Towed Artillery

derivedno source — assumption
Mortars, rocket artillery and tank guns are not modelled (no per-tube norm found); the section says so.
Categories whose units fly the daily sortie rate
category list

Fighter Aircraft, Attack Aircraft, Bombers

derivedno source — assumption
Combat aircraft only; helicopters, transports and drones are not modelled.
Default days of stock (NATO planning period)
days
30sourcedsource ↗
«SHAPE Stockpile Planning Guidance (SPG), which considers the first seven days of combat, then the remaining 23»
norms_research_ground.md D2: NATO 30-day period; Canada 60 (30 basic + 30 sustainment). The user can change the figure; fuel days of supply are not a stated standard anywhere found.
Fuel burn of an armoured brigade in high-intensity operations (litres per day) — comparison line only
L / day
380,000low-confidence sourcesource ↗
«can exceed 100,000 gallons daily in armored formations during high-intensity operations»
norms_research_ground.md D2 (LOW: AI-generated encyclopedia; MWI says "tens of thousands of gallons"; FM 63-3 600,000 gal per heavy division with corps support). Shown as "≈ N armoured-brigade days of fuel", never as a figure of its own.

Live War attrition model (VS) · 15

normvaluestatussource and note
Live War attrition model v2 — daily rates, gates, caps, missiles as a stock, combat aviation and air superiority, scenario, tempo, supply, naval missiles, drones as a strike weapon
fractions per day
coefficientvalue
cap — most of a block lost in one day0.1
contact_km — outlines closer than this meet on the ground50 km
ad_k — how much the defender's SAM coverage cuts air strikes0.6
en_k — enablers wear at this share of the land rate0.5
intensity_f — multiplier low / medium / high0.03 / 1 / 1.85
stock_cut — tempo after the days of stock0.5
sea_km — fleets meet only when the outlines are closer than this500 km
def_k — land power of the defending side in a one-sided scenario2.0
supply — share of the initial park returned in 30 days: moderate / high0.05 / 0.1
nav_rate — naval missiles per ship-weight a day: sustained / campaign / sprint0.1 / 2 / 4
nav_delay — days before the fleet strikes beyond sea_km7
cmb_cats — combat aviation: the categories that strike and fight in the airFighter Aircraft, Attack Aircraft, Bombers, Attack Helicopters
days — allowed length7–90
speeds — seconds per day0.5 / 1 / 2 / 4
k.land_land0.024
k.sea_sea0.016
land_split — the fire share of the former land → land rate / the share that passed to the tactical-drone term0.8 / 0.2
uav_long_km — a one-way-attack drone with this range or more is long-range500 km
uav_rate — launches a day as a share of the 30-day stock: sustained / campaign / sprint0.0333 / 0.0667 / 0.1
uav_int_max — the most of the long-range drones the defender intercepts0.9
uav_dmg_long — weighted units removed by one long-range drone that gets through0.015
uav_target — shares of the long-range drone damage: land / air defence / enablers0.5 / 0.25 / 0.25
uav_void — the share of the tactical-drone launches without an effect (misses, jamming, weather, repeat strikes)0.89
uav_cuas — the share of the rest the defender's counter-UAS systems take0.1
uav_hit_kill — vehicles destroyed per tactical drone that reaches0.05
uav_k — a reusable strike UAV in the combat-air power, per unit of index weight0.15
sortie_rate — sorties per aircraft a day, fighters and attack aircraft: sustained / campaign / sprint0.3 / 1.2 / 2.0
sortie_rate — bombers0.2 / 0.5 / 0.8
sortie_rate — attack helicopters0.5 / 1.5 / 2.5
sortie_rate — reusable strike UAVs0.5 / 1.0 / 1.5
mission_target — the priorities of the missions: counter-air / SEAD / land / sea (× the size of the opponent's block)0.3 / 0.3 / 0.3 / 0.1
cov_sead — SEAD takes priority while the opponent's SAM coverage at altitude is above this0.5
sead_x — the SEAD weight while it does3
land_nocontact — the weight of the land mission without ground contact0.2
pk — the result of one sortie of index weight 1 in weighted units: land / SEAD / sea / counter-air0.06 / 0.06 / 0.02 / 0.03
pk_tempo — the result of a sortie by tempo: sustained / campaign / sprint0.25 / 1 / 1
oca_ground — the share of the parked fleet an offensive counter-air sortie finds on the airfields0.5
air_q — the exponent of the quality ratio in air combat2
att_base — losses per sortie at the floor0.00025
sam_x — the SAM term of the losses per sortie3
air_x — the counter-air term of the losses per sortie2
int_shots.aircraft — interceptors fired per sortie over the covered share0.1
reserve_days — the reserve of the long- and medium-range pool kept for the ballistic missiles, in days of the opponent's launches (the SAMs fire at aircraft only above it)7
corridors — Ukraine – Russia at the campaign tempo: unlimited / published ammunition28–38 / 45–55
corridors — Israel – Iran, sprint 40 days: Israel / Iran (accepted 01.11.2026 after K; Iran 76.3 ± 1.2 after M)94–96 / 75.1–77.5
corridors — United States – Iran, campaign without bases: Iran's air defence / aviation / land in %, the United States (accepted 01.11.2026 after K)−60…−35 / −40…−20 / −15…−5 / 97…100
bomber_global_km — a bomber with this published unrefuelled range or more reaches any opponent when the side has tanker aircraft9000 km
break_pt — the breaking point of a block as a share of its day-0 size: land / air / air defence / sea0.5 / 0.4 / 0.3 / 0.4
cohesion_min — the power multiplier of a block at zero (1 at the breaking point, linear between)0.2
break_loss_x — the loss multiplier of a land block below the breaking point in ground contact (abandoned and captured vehicles)1.5
ad_channels — targets a launcher engages a day, by family (engagement channels × firing cycles)Patriot 6, S-400 8, SAMP/T 6, Buk 6, Tor 12, Pantsir 16, Iron Dome 20, NASAMS 8
ad_channels — by tier when the family is not listed: long / medium / short range6 / 8 / 12
sat_k — the exponent of min(1, capacity ÷ targets) on the interception1.0
sat_uav_ch — the channels a long-range drone takes against one of a missile0.3
strike_outside — the share of the missile and long-range drone launches at targets outside the model (energy, cities, industry, command): the default0.4
strike_outside — the sourced pairs: Russia → Ukraine / Ukraine → Russia / United States → Iran / Israel → Iran / Iran → Israel0.65 / 0.7 / 0.3 / 0.4 / 0.4
corridors — March 2022 (Ukraine – Russia, «Russia attacks», campaign, unlimited stocks, 30 days — a reference row, not a calibration corridor): Russia's land / aviation, Ukraine's land in %−18…−12 / −9…−5 / −15…−8
assumptionANALYSIS_SPEC §5 / LIVE_WAR_SPEC_v2.md §B / LIVE_WAR_SPEC_E.md §E1, §N
F (LIVE_WAR_SPEC_E §N, 20.10.2026 — drones as a strike weapon; the first change of the model since E2): the UAV cards take a role from info/uav_roles.json (research agents, a source per type; the card's own ur with its source us overrides it) — owa = one-way attack (a consumable: the card's ds = the stock for a 30-day window, on hand + one month of production, with its source dss; a card without ds uses its quantity q), strike = reusable armed UAV, recon / other = losses only. (a) Long-range owa (klass long: rg ≥ uav_long_km 500 km — Geran-2 1,800, Shahed-136 2,000, Liutyi 1,000, FP-1 1,600, Harop 1,000): launches a day = uav_rate × D0 (1/30 at sustained — a month of output spread over 30 days; 1/15 at campaign; 1/10 at sprint), never more than the remaining stock; the type reaches when rg ≥ dist (the missile gate); interception = min(uav_int_max 0.9, int_max × the defender's long / medium coverage) — the Ukrainian Air Force counted 85–90 % of the Shahed / Geran launches of 2025 intercepted or lost; each drone that gets through removes uav_dmg_long 0.03 weighted units split by uav_target over land 0.5 / air defence 0.25 / enablers 0.25 (a Shahed carries a 50 kg warhead against a Tomahawk-class 450 kg — a fifth of msl_dmg; most of the real damage falls on infrastructure, outside the model). (b) Tactical owa (klass tac: FPV 10–20 km, Lancet 40, Switchblade 40, Phoenix Ghost 60, Molniya 40): only in ground contact (the land gate), launches = uav_rate × D0 of the tactical stock, interception uav_int_tac 0.5 (electronic warfare and C-UAS; + uav_cuas 0.1 when the defender has Counter-UAS Systems with q > 0), each drone that gets through removes uav_dmg_tac 0.005 weighted units of the land block (Oryx 2024–26: about 60–70 % of the visually confirmed vehicle losses are drone strikes; with about 6,700 FPV a day that is about 30 vehicles a day — the observed order); at the same time k.land_land is split (land_split): 0.4 of the former 0.030 = 0.012 stays with artillery and direct fire, 0.6 passes to the drone term (Eduard, decision 3) — a pair without tactical drones loses that share. (c) Reusable strike UAVs (TB2, MQ-9, Orion, Mohajer-6, Hermes 900 …) enter P_cmb at uav_k 0.3 per unit of index weight (a TB2 is not an F-16), with gen_f.air by the year of the variant (the gen band of the type, else uav_roles.json yr); their losses follow the air block with the SAM → air share × uav_sam_x 2. (d) recon / other as before. The drone stock falls with the launches, apart from the missiles (dL / dI / dH per side); the panel shows «drones: launched · intercepted · stock left», the feed «−N drones in stock», a card «drone stock exhausted», the end table the launches and interceptions. Stocks (uav_out/stocks.json, 20.10.2026): Russia Geran-2 6,000 (the Ukrainian Air Force counted 6,297 Shahed / Geran and decoys launched in July 2025; Ukrainian Defence Intelligence puts the piston output at about 2,800 a month, Aug 2026), Geran-5 3,000 (the jet family, one month of output), Lancet 600 (hundreds a month — 285 video-confirmed strikes in May 2024 a lower bound), Veter 6,000 (the card), Gortenzia 2,500, Upir 400, Gastello 5,000 (the maker's aim), Molniya 3,000 (output in the thousands a month, not published), FPV strike drones 167,000 (2 million planned for 2025 — the executor's counterpart of the Ukrainian aggregate, else the tactical term would stand at 1 : 11); Ukraine FPV strike drones 200,000 a month (about 3 million drones received in 2025), Phoenix Ghost 5,000, Switchblade 700, D40 300, Liutyi 300 (output not published), FP-1 3,000 (about 100 a day, Aug 2025); Iran Shahed-136 1,500 (the ~1,000 launched at Israel with ~99 % intercepted are the June 2025 figures; the 2026 launch rate fell from 720 on day 1 to 60 — the owner's 1,500 kept, conf low; Eduard, 26.10.2026: a lower estimate — for 2026 only the launch rate is published); United States Switchblade 4,400; Israel Harop 100 and Harpy 100 (inventories not published — reasoned estimates); Azerbaijan Harop 50, SkyStriker 100, Kargu 27. Revolver 860, Punisher, Night Witch, Karrar, Saegheh, Shahed 149 are reusable bombers (strike, not owa); BPLA-400T is a reconnaissance quadcopter; the guessed Israeli and Azerbaijani Harop / Harpy / SkyStriker inventories got no ds (a card without a published figure launches nothing). Calibration F.4 (20.10.2026, build 2026-10-19i; the figures before and after by pair and tempo are in refresh/Iran_2026/REPORT.md §19): the specification's start — land_split 0.4 / 0.6 (land_land 0.012), uav_dmg_tac 0.005, uav_int_tac 0.5, uav_k 0.3, uav_dmg_long 0.03 — gave Ukraine – Russia 92.7 / 98.7 % at the sustained tempo (targets 94 ± 1 / 99.5 ± 0.5) and Ukraine 52 % at the campaign tempo (target 28–38 %), Israel – Iran at the sprint 91.3 / 77.4 % (targets 93.1 / 76.2 ± 1). The campaign corridor cannot be reached with a 0.4 fire share whatever the drone coefficients: the drone stock is one month of production and does not grow with the tempo (the whole stock is spent within the window at every tempo — 1/15 or 2/15 a day change nothing over 30 days), while the fire term grows 17 ×, so the land attrition at the campaign tempo fell by half. Moved within × 0.5 … × 2 of the start: land_land 0.024 (× 2, the limit — the fire share 0.8 of the former 0.030: at the sustained tempo the tactical drones then do about a quarter of Ukraine's land attrition and about half of Russia's (through × uav_dmg_tac against the weighted land losses of the 30 days), not the 60–70 % of Oryx — a known limitation, Eduard, 26.10.2026: the fire share 0.8 / 0.2 accepted, «production follows the tempo» in the backlog; at the campaign tempo the fire carries it, as the production-limited stock cannot), uav_int_tac 0.8 (× 1.6 — with uav_cuas 0.1 nine FPV launches in ten do not kill a vehicle: electronic warfare, misses, weather, already-destroyed targets — RUSI and Ukrainian unit reports of 2024–25 put the share of FPV sorties that reach the target at 10–30 %; at 0.7 the sustained pair stood at 93.2 / 99.0 with Russia's land block at −3.2 %, outside the observed −1 … −3 %; the specification's 0.005 per drone through is kept), uav_k 0.15 (× 0.5 — Iran's Mohajer-6, Saegheh and Shahed 129 at gen 1.0 by their year would otherwise lift its combat-air power by 22 % and take Israel to 91.3 %; at 0.15 by 11 %), uav_dmg_long 0.015 (× 0.5 — a 50 kg Shahed warhead against the 450 kg of a Tomahawk-class missile: a tenth of msl_dmg, proportional to the payload). Result: Ukraine – Russia sustained 93.9 / 99.3 %, campaign 35.8 / 95.6 %, Russia – United States campaign 71.1 / 94.9 %, Israel – Iran sprint 40 days 92.2 / 76.8 %, My Army – Israel unchanged (27.4 / 99.9 %). F.1 (LIVE_WAR_SPEC_E §N.7, 26.10.2026 — Eduard after the review of F; build 2026-10-19j): a one-way-attack card with a quantity (Veter 6,000, Gortenzia 2,500, Upir 400, Phoenix Ghost 5,000, Switchblade …) was counted twice — as the stock ds and as units of the air block under fire, so Russia's top-5 losses against the United States read «Veter −2,222, Gortenzia −926» without a single tactical launch and Ukraine's «Phoenix Ghost −3,134» with the 5,000 stock spent. Now an owa card is ONLY a stock in the war, like the missiles: it is not in S0 / S of any block (warBlocks / warBlocksG / the air-defence and combat sums skip the role owa), takes no share f_g, never fades and never enters the losses by type, the top-5, the «−N UAV» feed or the units lost; it stays in the items for the cinema (the source of the drone arcs and swarms) and for the popup («drones left N of M»). The Inventory Strength Index, Balance, the cards and the Analysis module are untouched — only the war sums change: Russia's war air block 2,520 instead of the index's 2,818 (298 weighted units of owa cards), the United States' 7,875 instead of 8,007, Ukraine's 483 instead of 713 (230 weighted units: Phoenix Ghost 5,000, Switchblade 700, D40 300 …). Figures 19i → 19j (war_figures.js, mutual, no supply): Ukraine – Russia sustained 93.9 / 99.3 → 93.6 / 99.3 %, campaign 35.8 / 95.6 → 32.5 / 95.6 %, sprint 40 days 13.3 / 94.9 → 12.2 / 94.9 %; Russia – United States campaign 71.1 / 94.9 → 70.2 / 95.0 %, sustained 98.2 / 99.2 unchanged; Israel – Iran and My Army – Israel unchanged. The campaign shifts (Ukraine −3.3, Russia −0.9 points) exceed the expected 0.5: the owa cards left the air block, so the same air losses are a larger share of a smaller block (a third of Ukraine's index air block was owa cards); the sustained corridors hold (94 ± 1 / 99.5 ± 0.5) — reported, not re-tuned. G (LIVE_WAR_SPEC_E §O, 27.10.2026 — long-range aviation; build 2026-10-19k): the air gate is per type — gate_t = max(theatre, global, carrier): the theatre gate is the former gate of the side (clamp(1 − dist ÷ reach), tankers × 1.5) or 1 with the side's «Forward bases: in theatre» switch; the global gate is 1 for a Bombers type whose published unrefuelled range (perf cr, crk range — perf/range_overrides.json: B-52H 14,200, B-1B 9,400, B-2 11,000, Tu-95MS 15,000, Tu-160 12,300; Tu-22M3 6,800 and H-6K 6,000 stay by radius) is ≥ bomber_global_km 9,000 while the side has tanker aircraft with units left; the carrier gate is the naval gate (from day nav_delay + 1, never at a landlocked opponent) for the carrier part of a ship-borne type — min(n × cv.share, the free capacity of the norm cv, served in the order of cv.names), the capacity = Σ q × cap × avail_sea (the executor's decision: about a third of the carriers are deployed at any time — with the raw capacity the US wing of 636 took Iran's air defence to 17 % in 30 days, with 229 at sea to 52 %). P_cmbR = Σ weight × n × gen_f × gate_t replaces gate × P_cmb in the strike terms; air → air and SAM → air take the reaching share P_cmbR / P_cmb; k untouched, sup on the whole P_cmb. Calibration (United States – Iran, campaign, 30 days, mutual, no bases; 19j → 19k): Iran 95.3 → 76.4 % — air defence and missiles 94 → 52 % (corridor −35 … −60 ✓), aviation 80 → 61 % (−30 … −60 ✓), sea 100 → 73 %, land 99 → 98 % (the corridor −5 … −15 % is not reached: with k.air_land 0.012 against a land block of 6,367 weighted units even the whole US combat aviation at full reach gives about −5 % in 30 days — with forward bases in theatre Iran keeps 44.4 %, land 88 %; the rates were not moved), the United States 100 % (11 units: its aircraft meet Iran's SAMs through the reaching share). The other pairs: Israel – Iran sprint 40 days 92.2 / 76.8 unchanged (theatre gates 0.68 / 0.48, no bombers, no carriers), Russia – United States campaign 70.2 / 95.0 → 70.2 / 94.9 (Russia: 74 Tu-95MS / Tu-160 global with the Il-78 and 7 MiG-29K on the Kuznetsov at sea; the US: 140 bombers and 229 carrier aircraft — both theatre gates were already 0.98–0.99), Ukraine – Russia and My Army – Israel unchanged; United States – China campaign 97.6 / 91.1 → 97.5 / 90.2 (the US reaches with 55 % of P_cmb — theatre 0.49, bombers, carriers; China with 1.2 % — 30 J-15 on three carriers at sea, the H-6K by radius). G.1 (Eduard, 27.10.2026, after the review of G — into the next build): the Admiral Kuznetsov written off (cv cap 0) — Russia – United States unchanged to the decimal (70.2 / 94.9 campaign, 98.2 / 99.2 sustained, 49.6 / 93.6 sprint: the 7 MiG-29K at sea had the theatre gate 0.99 already, the US lost 7,020 → 7,019 units); the Russian interface gets the plural verb forms for США / ОАЭ / Нидерланды ({v:singular|plural} after the nearest {c}) — no arithmetic. H.1 – H.3 (LIVE_WAR_SPEC_E §P, 27.10.2026; build 2026-10-19l): the damage of the missiles and drones that get through falls on the blocks in proportion to priority × what the defender has (msl_target / uav_target stay the priorities — «priority weighted by availability»); the theatre gate is per type by its own radius (gate_t = clamp(1 − dist ÷ (radius × tanker factor)), heli_radius_km 300 for an attack helicopter without a perf radius, the median radius of the category for a combat type without data, else the former gate of the side); the air-launched cruise missiles are a stock per country and family (norm alcm, alcm_rate = the drone rule 1/30 · 1/15 · 1/10 a day, the gate of the family = the best carrier's radius × tanker factor + the missile's range). H.4 calibration (27.10.2026, once after H.3; every coefficient within × 0.5 … × 2 of 19k; the figures before and after by step and pair in refresh/Iran_2026/REPORT.md §22): (1) intensity_f.low 0.06 → 0.03 (× 0.5 — the floor of the corridor), uav_dmg_tac 0.005 → 0.01 (× 2 — the ceiling), uav_int_tac 0.8 → 0.76 (× 0.95): the new target of H.4 — at the sustained tempo the tactical drones carry 50–70 % of Ukraine's land losses and at least half of Russia's (Syrskyi, Feb 2025: 66 % of the Russian equipment disabled in January 2025 by strike UAVs; RUSI, Feb 2025: 60–70 % of the damaged and destroyed Russian systems; Hambling / Oryx footage Q4 2024: 7 of 10 T-90M losses by FPV and bomber drones) — before H.4 the model gave 22 % and 40 %. The drone term does not grow with the tempo (a month of output is spent within the window), so the share is set by the fire term against it: the sustained fire intensity halves (the observed 2022–2026 land losses are now fire 0.03 + the drones, not fire 0.06 alone — the 30-day land losses of the pair stay at the observed order: Russia 258 → 368, Ukraine 428 → 436 weighted units — tanks 121 and 53 units a month against the Oryx 2025 floor of 53 and 27 visually confirmed), each drone through removes 0.01 weighted units (× 2: with 0.76 + 0.1 C-UAS interception 14 launches in 100 reach a target — RUSI and Ukrainian unit reports of 2024–25 put the share of FPV sorties that reach the target at 10–30 %; with 200,000 Ukrainian FPV a month that is 288 weighted units of Russian land losses in the model, against the Oryx 2025 floor of 344 vehicles of all kinds a month); Ukraine – Russia sustained 93.7 / 99.3 → 94.9 / 99.0 % (corridors 94 ± 1 ✓ and 99.5 ± 0.5 — Russia at the lower edge: the three targets meet only in a narrow band at the floor of intensity_f.low, a higher Russian figure needs intensity_f.low below × 0.5 or a drone share below 50 % — reported, not forced), the drone share 59 % / 78 %; the campaign is untouched (intensity_f.medium 1) and moves only through the drone term: 32.5 / 95.6 → 31.8 / 95.2 % (28–38 / ≥ 94 ✓). (2) intensity_f.high 1.5 → 1.85 (× 1.23): the per-type theatre gates of H.2 cut the reaching share of both sides of Israel – Iran (Israel 0.68 → 0.56 of P_cmb with the F-16I card radius of 1,500 km, Iran 0.48 → 0.21) and the 40-day sprint had risen to 94.3 / 81.0 %; the sprint tempo is re-set so that the pair returns to the F corridor 93.1 / 76.2 ± 1 (93.5 / 76.7 % after H.4) — the twelve-day war of June 2025 (IAF > 1,000 sorties and > 600 refuellings in 12 days, Iran 550 ballistic missiles and 1,000 drones) was fought above the campaign tempo of the model. (3) msl_target 0.4 / 0.3 / 0.2 / 0.1 → 0.55 / 0.25 / 0.15 / 0.05 (air × 1.4, land × 0.75): with the H.1 weighting by block size a 6,367-unit land block took 61 % of every Tomahawk's damage and the 532-unit Iranian air block 10 %, and the aviation of Iran in United States – Iran (campaign, no bases) stood at −28 % against the corridor −30 … −60 %; a cruise-missile campaign opens on airfields and air defence (Desert Storm 1991, the first nights; June 2025: 15–16 Iranian aircraft destroyed on the ground at six airfields), so the air priority rises and the land priority falls — Iran's aviation 72 → 62 % (−38 ✓; the reusable strike UAVs now take the missile share of the air block like the rest of it — since F they took only the air → air and SAM parts), air defence 48 ✓, land 92 ✓ (−8), the United States 100 % ✓; Russia – United States campaign 72.4 / 95.1 unchanged (68–74 / 93–97 ✓). Not moved: k (all seven), msl_dmg, int_max, uav_dmg_long, uav_target, ad_k, en_k, sam_eff. J (LIVE_WAR_SPEC_E §Q, 31.10.2026; build 2026-10-19m — trust on the screen, no change of the model): calibrated lists the pairs with a direct historical reference and the tempo it was made at — Israel – Iran at the sprint (the twelve-day war of June 2025) and Ukraine – Russia at the sustained tempo (Oryx 2025); the war panel says «on a reference» for these two pairs at that tempo, «at the X tempo only» at the other tempos and «an extrapolation — no direct historical reference» for every other pair. Every figure of the panel opens a «why this figure» window with the terms of the day (name, value, the formula with its numbers, the norm and its status) — the terms sum to the loss of the block (the cap cuts the sum when reached); the CSV by day carries the same terms. I (LIVE_WAR_SPEC_E §R, 31.10.2026; build 2026-10-19n — consumables and replacement, Eduard's part-I brief): int_shots = interceptor missiles spent per interception — 2 per ballistic missile (a two-missile salvo is the Patriot / Arrow practice), 1.2 per cruise missile, 0.3 per long-range drone (most drones fall to mobile gun groups, electronic warfare and interceptor drones — the June 2025 and 2026 campaigns spent the interceptors on the ballistic missiles); the stock of a side (norm sam_load, or the card's published is) is drawn in two pools — the long- and medium-range types alone engage ballistic missiles, the short-range types take the cruise missiles and drones first; when a pool does not cover the day the interception falls to int_floor 0.15 for missiles (guns, electronic warfare, aviation) and uav_floor 0.5 for drones in proportion, the SAM units without interceptors stop firing at aircraft (P_sam → 0) and no longer cut the air strikes (g_ad = 1). rounds_per_tube = artillery rounds a tube fires a day by tempo — 3 / 20 / 50 (sustained: Russia 2025 about 10,000–15,000 a day on about 4,000 guns, Estonian FIS Feb 2026 / IISS; campaign: Desert Storm 15–20 a tube a day averaged with battalion peaks of 47–72, Dupuy's 0.25–0.5 unit of fire — the brief's 30 sat at the top of the band, the I.4 calibration took 20; sprint: one Soviet unit of fire of 60 rounds a day — refresh/LiveWar_I/ammo_out/ammo.json); the tubes that fire = the park × availability × manning, as in P_land; nothing is fired without ground contact; the ground-fire term × min(1, shells ÷ need), at zero × fire_floor 0.2 (direct fire and mortars); where the stock is not published (United States, Israel, Iran, China) the fire is not limited and the panel says so. reserve_delay 7 / reserve_rate 0.003 / 0.01 / 0.015 of the stored stock a day — Russia about 100–150 tanks a month from the storage bases out of about 850 restorable (CAST / IISS / the 2026 satellite counts): 0.003 × 850 × 30 ≈ 8 a month at the sustained tempo is the floor, 0.01 ≈ 25, 0.015 ≈ 38 — the brief's values, kept (the observed 100–150 a month included the refurbishment of hulls the counts call unrestorable; an executor note, not moved before the calibration). K (LIVE_WAR_SPEC_E §S, 01.11.2026; build 2026-10-19o — aviation through sorties, Eduard's part-K brief: «professional models count sorties, not a weighted power»): sortie_rate = sorties per aircraft a day by class and tempo (A) — fighters / attack aircraft 0.3 · 1.2 · 2.0 (Desert Storm: about 1.0–1.2 per aircraft a day over 43 days — GWAPS; the Israeli Air Force in June 2025 about 1.5–2; the Russian Aerospace Forces over Ukraine 2022–25 about 100–300 sorties a day on about 300 active aircraft), bombers 0.2 · 0.5 · 0.8, attack helicopters 0.5 · 1.5 · 2.5, reusable strike UAVs 0.5 · 1.0 · 1.5; the sorties of a type = units × avail_air × manning × the gate of the type (G / H.2 — theatre radius, global bombers, carrier part, forward bases) × sortie_rate; a fighter that cannot reach flies defensive counter-air at home — (all − reach) × the air share. mission_target 0.3 / 0.3 / 0.3 / 0.1 (A) = the priorities of counter-air, SEAD, land and sea strikes, weighted by the size of the opponent's block (the H.1 rule: priority × what the defender has); sead_x 3 (A, executor) multiplies the SEAD weight while the opponent's long / medium SAM coverage at altitude is above cov_sead 0.5 — the air defence is suppressed first (1991, June 2025). pk = the expected result of one sortie of index weight 1 (a fighter) in weighted units of the opponent (A): land 0.06 (GWAPS: about 1,400 tanks and 1,800 armoured vehicles — about 2,300 weighted units — from about 20,000 sorties against the ground forces; the brief's 0.06 against 0.11 raw, the desert of 1991 the upper bound), SEAD 0.04, sea 0.02, counter-air 0.03 × the share of the opponent's combat fleet in the air (its sorties ÷ its aircraft); a sortie of a type counts × its index weight (bombers 2.0, attack aircraft 0.8, helicopters 0.6, strike UAVs 0.2) × gen_f, the land strikes × g_ad as before. int_shots.aircraft 0.1 (A, executor) = interceptors the air defence fires per sortie over the covered share of the territory (Ukraine 2023–25 fired of the order of 10–30 surface-to-air missiles a day at aircraft against 150–250 Russian sorties, most of them launching glide bombs from outside the coverage — 0.1 × about 200 sorties over the covered share gives about 20 a day) — fixed-wing from the long / medium pool first, helicopters from the short-range pool first. K.2: att_base 0.0005 (A) = the losses per sortie at the floor (the coalition of 1991: 38 combat losses in about 65,000 combat sorties; Israel 2025: none in about 1,500), sam_x 6 and air_x 2 (A): att = att_base ÷ gen_f × (1 + sam_x × the opponent's surviving SAM share × its coverage at altitude × (1 − own air superiority) × the share of the engagements its interceptor stock covers) × (1 + air_x × the share of its counter-air among the aircraft in the air) — the Russian Aerospace Forces 2022–25 about 0.001 per sortie against the living air defence of Ukraine; the counter-air sorties that reach take the SAM term only (the sweeps meet the opponent's counter-air through pk.air), the sorties at home the base rate. Retired: k.air_land / air_air / air_ad / air_sea (sorties × pk replace them), k.sam_air and sam_eff (att replaces them), uav_sam_x (the strike UAVs lose through their own sorties). K.0 (a): the Ammunition switch of the pair — published (the stocks of I.1 / I.2 run out) or unlimited (the model of H / J); corridors.ua_ru_campaign = the Ukraine – Russia campaign corridor at unlimited (28–38, the H corridor — the regression check of the core) and at published (45–55: the published flows of shells feed the campaign tempo for 3 (Ukraine) / 9 (Russia) days, Eduard's decision of 01.11.2026). K.3 calibration (01.11.2026, once, after the two steps of the part; the knobs sortie_rate, pk, att_base, sam_x, air_x within × 0.5 … × 2 of the brief's start; the Ammunition switch at unlimited for the corridors of H and I, at published for the report; the figures by step and pair in refresh/Iran_2026/REPORT.md §25): pk.ad 0.04 → 0.06 (× 1.5 — the SEAD of a sprint must take half of Iran's launchers and SAM strength in 40 days, the June 2025 claims; at 0.04 Iran kept 57 % of its air defence block), att_base 0.0005 → 0.00025 (× 0.5 — the 1991 rate of 0.0006 holds the SAM and gun losses too; with the SAM term on top the full rate gave Russia 8 and Ukraine 7 fixed-wing aircraft a month against the Oryx 2–5 and 1–3), sam_x 6 → 3 (× 0.5 — Ukraine's sorties over the Russian coverage would otherwise lose at 0.0075 a sortie, 7 a month); not moved: sortie_rate (Russia flies 227 fixed-wing sorties a day at the sustained tempo — the 100–300 of the brief), pk.land / sea / air, air_x. Added by the executor (status A, each with its motive): pk_tempo 0.25 at the sustained tempo (the result of a sortie in the glide-bomb war of 2024–25 — positions, not vehicles in the open: Oryx attributes a few percent of the vehicle losses to aircraft while the Russian Aerospace Forces fly 100–300 sorties a day; without it the Russian aviation took 10 % of Ukraine's air defence block a month and the H corridor 94 ± 1 broke at 91.5), land_nocontact 0.2 (without ground contact the land mission weighs a fifth — a strategic air war strikes the missile force, the air defence and the fleet before the army in its barracks: June 2025, 1991 before the ground offensive; without it half of Israel's sorties went at Iran's tanks and its air defence kept 80 %), oca_ground 0.5 (an offensive counter-air sortie finds the parked fleet on the airfields — 15–16 Iranian aircraft at six airfields in June 2025), air_q 2 (the quality ratio (gen_s ÷ gen_d)² clamped to 0.1 … 2 — a generation-3 fleet against a generation-5 one scores a fifth: 1982, 1991; without it Iran's F-4 and F-5 sweeps shot down an Israeli aircraft a day), the defensive counter-air at home × the side's air superiority (Iran, June 2025: the fighters stayed on the ground), int_shots.aircraft 0.1, the small strike UAVs (the index's mass rule) outside the sorties. After K.3: Ukraine – Russia sustained 94.5 / 99.4 % at unlimited (94.3 / 99.5 published; corridors 94 ± 1 / 99.5 ± 0.5), the drone share 57 / 78 %, Russia 227 fixed-wing sorties a day and 3.3 aircraft a month, Ukraine 36 and 2.9; campaign 30.8 / 96.0 % at unlimited (28–38 / ≥ 94) and 48.5 / 98.0 % published (the new corridor 45–55); Russia – United States campaign 71.4 / 94.9 % (68–74 / 93–97); United States – Iran campaign: Iran's air defence −46 % (−35 … −60), land −8 % (−5 … −15), the United States 100 %, its aviation −25 % against −30 … −60 (the former k.air_air term struck the 532-unit air block with the whole reaching power of the United States; the sorties find the aircraft on the airfields at oca_ground); Israel – Iran sprint 40 days 95.1 / 77.3 % — Iran in 76.2 ± 1 with its launchers and SAM strength −60 %, Israel 1.0 above the upper edge 94.1 (its aviation loses 14 aircraft in 40 days, 93 %, where the former k.sam_air term took 90, 84 %); the Desert Storm reference (United States – Iran with forward bases, 43 days at the campaign tempo): 0.68 sorties per inventory aircraft a day (about one per deployed aircraft), 0.0003 losses a sortie (≤ 0.001), Iran's army −63 % (1991: 32–47 % from the air). Not reached: Israel without a loss in 12 days — at the floor of att_base the model loses 5 aircraft (2 on sorties, 3 to Iran's counter-air); zero needs att_base below the band and breaks the 1991 reference. Accepted by the owner on 01.11.2026 (part K closed — the coefficients and the structure of the war do not change without a brief of their own): the corridors re-based and written in corridors — Israel – Iran sprint 40 d Israel 94–96 / Iran 76.2 ± 1 (the old 93.1 ± 1 stood on 90 Israeli aircraft shot down by the SAM → air term, an artefact; the June 2025 fact is 0), United States – Iran campaign without bases Iran's aviation −20 … −40 (June 2025: 15–16 aircraft on the ground); the other corridors unchanged. N (LIVE_WAR_SPEC_E §V, 02.11.2026, build 2026-10-19s — the professional's questions closed by the executor): N.1 the breaking point — break_pt (A: Dupuy / TNDM, the March–April 2022 withdrawals) land 0.5, air 0.4, air defence 0.3, sea 0.4 of the block's day-0 size; below it the block's power × cohesion_f = cohesion_min + (1 − cohesion_min) × (remaining ÷ break_pt) — 1 at the threshold, cohesion_min 0.2 at zero (the remnants fight on); a land block below the threshold in ground contact loses × break_loss_x 1.5 (abandoned and captured vehicles); the sorties of a broken air force, the SAM fire of a broken air defence and the fleet strikes of a broken navy fall the same way. N.2 the saturation of the air defence — ad_channels per launcher (A: engagement channels × firing cycles a day; Patriot 6, S-400 8, SAMP/T 6, Buk 6, Tor 12, Pantsir 16, Iron Dome 20, NASAMS 8, else by tier long 6 / medium 8 / short 12), the capacity a day = Σ launchers × channels × availability, the targets a day = missiles + long-range drones × sat_uav_ch 0.3 + the opponent's sorties over the coverage; the interception = the full rate × min(1, capacity ÷ targets)^sat_k 1.0, the excess over the capacity passes at int_floor (Ukraine's record nights of 2025: 700 + Shaheds and 20–40 missiles — ≈ 85 % / 50–70 %; the twelve-day war: 100–200 ballistic missiles a salvo — 86–90 %; the Red Sea 2024: ≈ 100 % at 2 + SM-2 a target). N.3 (a) strike_outside — the share of the missile and long-range drone launches at targets outside the model (energy, cities, industry, command), taken before the damage, the interception counted on every launch: default 0.4 (assumption), Russia → Ukraine 0.65, Ukraine → Russia 0.7, United States → Iran 0.3, Israel ↔ Iran 0.4 (A); msl_target back to the neutral 0.4 / 0.3 / 0.2 / 0.1 and recalibrated. N.3 (b) the tactical-drone chain — launches × (1 − uav_void 0.88, + uav_cuas with counter-UAS) = the drones that reach, × uav_hit_kill 0.1 = the vehicles destroyed (RUSI 2024–25: 10–30 % reach; most FPV hits immobilise, ≈ 1 destroyed vehicle per 80–100 launches — Oryx against the 2025 volumes), × the average weighted size of a vehicle of the block = the damage; the same share of the drones in the land losses (the corridor drones_a). N.4 the March 2022 corridor (march_2022) and the Karabakh 2020 arithmetic (the method page); the calibration once (build 2026-10-19s), within × 0.5 … × 2 of the brief's values: uav_hit_kill 0.1 → 0.05, uav_void 0.88 → 0.89 and msl_target 0.4 / 0.3 / 0.2 / 0.1 → 0.6 / 0.25 / 0.1 / 0.05; the vehicle weight of the chain is the average over the vehicles alone (Ukraine 0.27, Russia 0.47 index units — with the 8,000 ATGM systems counted as vehicles Ukraine's fell to 0.19 and the chain could not hold both sides in their corridors); untouched after the trials: cohesion_min, break_loss_x, ad_channels, sat_k, strike_outside, pk, att_base, intensity_f.low (pk.ad × 1.5–2 or pk.land × 1.5 move the sustained pair by 0.1–0.3 but break the campaign and the Israel – Iran corridors). After it: Ukraine – Russia sustained 94.9 / 99.1 (unlimited 94.9 / 99.0; the drone shares 58 / 91 %), campaign 52.2 / 97.6 (unlimited 30.7 / 95.6), Russia – United States 71.7 / 95.1, Israel – Iran 96.0 / 77.4, United States – Iran 100 / 80.9 (Iran's air defence −44, aviation −23, land −5.5) — every accepted corridor met. The March 2022 reference is NOT met and is kept as a reference row: at the campaign tempo the model gives Russia's land −25 %, its aviation −0.6 % and Ukraine's land −85 % against Oryx's −14 / −7 / −10 — the fact sits at a tempo of about × 5 the sustained one (the model there: −7 / −0.6 / −22), the attacker-to-defender loss ratio of March 2022 (3–4 : 1 — ambushes, anti-tank missiles, a logistic collapse) is beyond def_k, and the aviation losses to low-altitude air defence are outside the SAM term (× (1 − air superiority); MANPADS and SHORAD are not a channel of the model) — a known limit, listed on the method page. K.5 (a) (LIVE_WAR_SPEC_E §T, build 2026-10-19p): reserve_days 7 (A) — the reserve of pool A (long- and medium-range SAMs) for the ballistic missiles = int_shots.ballistic × the opponent's average ballistic launches a day (its launchers × msl_rate at the tempo, capped by its stock ÷ the window) × reserve_days; the long- and medium-range SAMs fire at aircraft only from what is above the reserve, below it the sorties over the coverage meet pool B (short range) and the int_floor alone — Ukraine 2024–25 keeps the Patriots for the Iskanders and Kinzhals (the Patriot engagements of aircraft are a handful of long-range shots at the Su-34 / A-50 in 2024, not a daily expenditure). E1 (LIVE_WAR_SPEC_E §E1, 19.10.2026): intensity_f.low = 0.06 is the «sustained» tempo — the observed 2022–2026 rate (Oryx, visually confirmed losses, October 2026: Russia about 4,000 tanks in about 1,700 days ≈ 2.4 a day ≈ 0.08 % of a park of about 3,000 a day; Ukraine of the same order) — campaign (1) is then ≈ 17 × and sprint (1.5) ≈ 25 × the observed rate; def_k 2.0 (status D: the 3 : 1 rule of thumb for an attacker — FM 3-0 / Dupuy, «Numbers, Predictions and War»; the defending side of a one-sided scenario strikes with its land power × def_k in land → land, the attacker without a multiplier); supply moderate 0.05 / high 0.10 = share of the initial weighted land / air / air-defence park returned in 30 days (A: deliveries to Ukraine 2022–24 were of the order of 5–10 % of the armoured park a month), no missiles; nav_rate 0.1 / 2 / 4 strike missiles per ship-weight a day at sustained / campaign / sprint (A; sustained 0.1 — Eduard, 19.10.2026, after part E1: about one Kalibr a day is the observed 2022–2026 rate — Ukrainian Air Force counts put the Kalibr launches of 2022–2025 at roughly 1,000–1,500 in four years; Russia's eleven strike-capable ships and boats then launch about 1.1 a day in the model; the specification's 0.5 emptied the Russian naval stock in a month; a destroyer empties a third of its cells in about ten days of a campaign), nav_delay 7 days before the fleet strikes when the outlines lie beyond sea_km (A). v2 (LIVE_WAR_SPEC_v2 §B, Eduard 14.10.2026: a faster tempo for the videos): every v1 rate × 2 as the starting point, cap 10 % of a block a day, intensity low 0.5 / medium 1 / high 1.5 (low re-set to 0.06 in E1); calibrated within × 0.5 … × 2 of the §B values (§B4, build 2026-10-14f): land_land 0.030 (× 1.5 — two equal neighbouring armies lose about 40–45 % in 30 days at medium; a 3 : 1 opponent is worn to about a tenth, the stronger side loses about a tenth), air_ad 0.030 (× 2 — Iran 2026: launchers and SAM strength −55 % in 40 days at the sprint tempo; 0.024 in part B, raised to the limit of the corridor in B+ because the strikes come from the combat aviation alone and are scaled by air superiority — −43 % then, Israel's air defence 53 %; E2, 19.10.2026: the generation factor (gen_f) cuts Iran's strike to a third and lifts Israel's air superiority to 0.78 — Iran −51 %, Israel's air defence 82 % with the same 0.030), sam_air 0.008 and sam_eff 0.25 (× 0.5 each — no Israeli aircraft was lost to Iranian SAMs in 2026), air_sea 0.006 (the specification value; part B had halved it to 0.003 while the fleets of Israel and Iran still met in the model — the B+ sea gate does that work: Iran's fleet −27 % in 40 days against the reported 155–161 vessels hit), msl_rate high 0.25 (× 0.5 — Iran averaged about 0.15–0.25 launches per launcher-day over the 40 days, not the day-1 rate of about 1), msl_dmg 0.15 (× 0.5 — 650 launches, about 65 got through, small military damage); air → air defence & missiles (SEAD) 0.015 — the share of the defender's SAM strength (launchers of ballistic and cruise missiles wear down at the same daily share but do not enter the denominator) lost per unit of the attacker's air power within reach; SAM → air multiplied by supp (the surviving share of the defender's SAM strength) and by sam_eff (0.5: SAMs engage a part of the sorties). Missiles are a stock, not a rate: stock = ms of the card or launchers × msl_per_launcher (8); launches a day = min(stock, launchers × msl_rate — 0.1 / 0.25 / 0.5 per launcher at low / medium / high; Iran 2026: about 1 per launcher on day 1, about 0.2 later); interception = int_max (0.9) × the defender's long / medium SAM coverage at altitude (Israel 2026: about 90 % of 650 ballistic missiles intercepted); every missile that gets through removes msl_dmg (0.3) weighted index units, split by msl_target over air 0.4 (airfields), air defence 0.3, land 0.2, enablers 0.1 (H.1: the priorities are weighted by what the defender has; H.4: 0.55 / 0.25 / 0.15 / 0.05). The v1 terms msl_land / msl_air / msl_ad are gone. B+ (Eduard, 14.10.2026, after the review of part B): the air terms use the combat aviation only — P_cmb over cmb_cats (fighters, attack aircraft, bombers, attack helicopters); drones, transports, trainers, patrol, AEW and tanker aircraft stay in the air block for the losses but do not strike (tankers still extend the reach × 1.5); air superiority sup = P_cmb(s) ÷ (P_cmb(s) + P_cmb(d)) scales the air → land / air defence / sea strikes of side s, air → air stays symmetric; fleets meet only when the outlines lie within sea_km (500 km) — navies of distant countries do not meet in the model, beyond it ships are reached by aviation alone. Gates: ground forces meet only when the outlines lie within contact_km (50 km) or the user sets ground contact = yes; aviation reaches in proportion to the longest documented combat radius (× 1.5 with tankers); a missile type reaches when its documented range covers the distance; fleets meet within sea_km; the defender's long / medium-range SAM coverage cuts air strikes by ad_k × coverage. Enablers wear down at en_k × the land rate (plus their share of missile damage). After the days of stock the tempo is multiplied by stock_cut. Calibration (§B4) on Israel – Iran 2026 — see method.html#war. E3 (LIVE_WAR_SPEC_E §E3, 19.10.2026): speeds 0.5 / 1 / 2 / 4 s a day — 4 s is the Record preset of the cinema mode; the day is then a sequence of phases (the plate, the flights, the strikes, the counters) and the picture is decorative: nothing in the arithmetic depends on the speed.
Live War: weight of a strike-capable ship in the daily launch rate of naval missiles (× nav_rate)
ratio per ship

cats: {'Cruisers': 1.0, 'Destroyers': 0.8, 'Frigates': 0.5, 'Corvettes': 0.5}, ssgn: 3.0, ssn: 0.3, ssk: 0.3, ssgn_names: ['Ohio class SSGN', 'Oscar', 'Yasen']

assumptionLIVE_WAR_SPEC_E.md §E1.4
A ship enters only with a nav_cells entry above zero (its class carries land-attack cruise missiles); cruisers 1.0, destroyers 0.8, frigates and corvettes with a universal launcher 0.5, SSGN 3.0 (Ohio SSGN, Oscar II, Yasen), other nuclear and conventional submarines with cruise missiles 0.3; everything else (anti-ship-only or without cells) 0 — the fleet still fights at sea (sea → sea) but does not strike the coast. Submarines are told apart by name (ssgn_names, ssn_names, the rest conventional).
Live War: strike-missile cells per ship by class [cells, share of the cells loaded with land-attack missiles] — the naval missile stock of a side
cells per ship

Ticonderoga class: [122, 0.4], Arleigh Burke class: [96, 0.3], Zumwalt class: [80, 0.3], Ohio class SSGN: [154, 1.0], Virginia class: [12, 1.0], Los Angeles class: [12, 1.0], Seawolf class: [8, 1.0], Yasen class: [32, 1.0], Oscar II class: [72, 0.5], Improved Kilo class: [4, 1.0], Akula class: [4, 1.0], Kirov class: [40, 0.5], Admiral Gorshkov class: [16, 1.0], Admiral Grigorovich class: [8, 1.0], Gepard class: [8, 1.0], Buyan-M class: [8, 1.0], Karakurt class: [8, 1.0], Gremyashchiy class: [8, 1.0], Type 055 (Renhai class): [112, 0.3], Type 052D (Luyang III class): [64, 0.3], Type 052C (Luyang II class): [48, 0.2], Astute class: [10, 1.0], Aquitaine class: [16, 1.0], Suffren class: [8, 1.0]

derivedsource ↗
«2 × 61-cell Mk 41 vertical launching systems»
Sources (October 2026): Ticonderoga 122 Mk 41 cells (Wikipedia «Ticonderoga-class cruiser»), 40 % assumed loaded with Tomahawk; Arleigh Burke 90–96 cells («Arleigh Burke-class destroyer»), 30 % Tomahawk; Zumwalt 80 Mk 57 cells; Ohio SSGN 154 Tomahawk («Ohio-class submarine»); Virginia 12 VLS tubes (Blocks I–IV; «Virginia-class submarine»), Los Angeles 688i 12 VLS, Seawolf torpedo-tube Tomahawk counted as 8; Yasen 8 UKSK × 4 = 32 Kalibr / Oniks («Yasen-class submarine»); Oscar II 72 after the 949AM refit, half counted («Oscar-class submarine»); Improved Kilo (636.3) and Akula — Kalibr-PL from the torpedo tubes, 4 each; Kirov (Admiral Nakhimov refit, 80 UKSK; Pyotr Velikiy 20 Granit) averaged at 40 × 0.5; Admiral Gorshkov 16 UKSK, Admiral Grigorovich 8, Gepard (Dagestan) 8, Buyan-M 8, Karakurt 8, Gremyashchiy 8 («UKSK»); Type 055 112 cells, Type 052D 64, Type 052C 48 (CJ-10 land attack assumed in 20–30 % of the cells); Astute — Tomahawk from the tubes, 10; Aquitaine FREMM 16 Sylver A70 cells for MdCN, Suffren 8 MdCN. Classes with anti-ship or air-defence missiles only (Slava, Sovremenny, Udaloy, Type 45, Horizon, Type 054A, Sa'ar, FREMM of Egypt / Morocco, Steregushchiy, Nanuchka …) have no entry — 0 strike cells.
Live War: landlocked countries — the fleet of the opponent cannot strike their coast
ISO list

AF, AD, AM, AT, AZ, BY, BT, BO, BW, BF, BI, CF, TD, CZ, SZ, ET, HU, KZ, XK, KG, LA, LS, LI, LU, MW, ML, MD, MN, NP, NE, MK, PY, RW, SM, RS, SK, SS, CH, TJ, TM, UG, UZ, VA, ZM, ZW

sourcedsource ↗
«a landlocked country is a country that does not have territory connected to an ocean or whose coastlines lie on endorheic basins»
The 44 landlocked states of the Wikipedia list plus Kosovo; Azerbaijan, Kazakhstan and Turkmenistan count as landlocked (Caspian Sea). A My Army on such a country's territory is landlocked too; a drawn territory is treated as coastal.
Live War: intercontinental and submarine-launched ballistic missiles — outside the conventional model
name list

Yars, RS-24, Topol, RT-2PM, Voevoda, R-36, SS-18, SS-19, UR-100, Sarmat, Minuteman, LGM-30, Sentinel, Trident, Bulava, R-29, Sineva, Layner, DF-5, DF-31, DF-41, JL-2, JL-3, Agni-IV, Agni-V, M51, Jericho III, Hwasong-15, Hwasong-17, Hwasong-18, Hwasong-19, Pukguksong

derivedsource ↗
«ICBMs are differentiated by having much greater range and speed than other ballistic missiles»
A card of the ballistic / cruise missile categories whose name contains one of these (or a card marked nuc: 1 in the data) is a strategic nuclear launcher: it neither launches in the missile exchange nor stands in the air-defence & missiles block of Live War (shown as «not in the model: strategic nuclear»); the Inventory Strength Index and Balance keep it as before. Russia (RS-24 Yars, RT-2PM2 Topol-M, R-36M2 Voevoda, UR-100N UTTKh) and China (DF-5, DF-31, DF-41) carry nuc: 1 on the map. The names are matched inside the missile categories only (the Sentinel radar and the Sentinel-class cutters are not missiles).
Live War G: carrier aviation — the ship-borne types (names → the pool they use: cv = aircraft carriers, both = carriers and amphibious assault ships), the carrier share of a mixed card (share, with the variant that sets its pool and place in the order), and the air-wing capacity per ship (cap: by class, else by category)
types / shares / aircraft per ship
ship-borne typepool
Super Hornetcv
F/A-18 Hornetcv
CF-18cv
F-35Ccv
F-35Bboth
Growlercv
AV-8Bboth
Rafale Mcv
J-15cv
MiG-29Kcv
Su-33cv
mixed cardcarrier sharecounted as
United States · F-35 Lightning II0.3F-35B
France · Dassault Rafale0.2Rafale M
ship (by name, else by category)aircraft
Aircraft Carriers48
Amphibious Assault Ships12
Nimitz48
Gerald R. Ford48
Kuznetsov0
Liaoning24
Shandong24
Fujian36
Charles de Gaulle24
Queen Elizabeth24
Prince of Wales24
Cavour12
Trieste12
Juan Carlos12
Izumo12
Kaga12
Wasp12
America12
Mistral0
Type 0750
assumptionsource ↗
«A carrier air wing … typically consists of … fighter / attack squadrons»
G (LIVE_WAR_SPEC_E §O, 27.10.2026 — long-range aviation): a combat-aviation type whose name contains one of cv.names (or a card listed in cv.share with the share of the carrier variant: the US «F-35 Lightning II» card is 0.3 F-35B + F-35C, France's «Dassault Rafale» 0.2 Rafale M) can fly from ships. The carrier part of the type = min(n × share, the free capacity of the side) — the types are served in the order of cv.names, the capacity is Σ q × cap over the carriers of the side (cap by name — Nimitz / Gerald R. Ford 48, Queen Elizabeth / Prince of Wales 24, Charles de Gaulle 24, Liaoning / Shandong 24, Fujian 36, Admiral Kuznetsov 20, Cavour / Trieste / Juan Carlos I / Izumo / Kaga 12; else by category: Aircraft Carriers 48, Amphibious Assault Ships 12 — the amphibious ships serve the STOVL types only (F-35B, AV-8B: pool both); the helicopter carriers Mistral and Type 075 carry no fixed-wing aircraft) and falls with the carriers (the sea block). Sources (October 2026): Wikipedia «Carrier air wing» (a US air wing of 74–78 aircraft with four strike-fighter squadrons of 10–12 F/A-18E/F or F-35C — «over forty strike fighters»; 48 = four squadrons of 12, the upper figure), «Queen Elizabeth-class aircraft carrier» (12 F-35B on a routine deployment, 24 in surge, 36 in combat — 24 taken, the brief's figure), «Charles de Gaulle» (30–40 aircraft, 30 Rafale M standard — 24 taken, the brief's figure, a peacetime air group), «Chinese aircraft carrier Liaoning» / «Shandong» (24 J-15 each), «Fujian» (at least 40 fixed-wing aircraft incl. KJ-600 — 36 fighters taken), «Admiral Kuznetsov» (14 Su-33 + 14 MiG-29K + 2 MiG-29KUBR by the infobox, 6–8 Su-33 and 4 MiG-29K on the 2016 deployment; 20 in build 2026-10-19k, 0 since G.1 — the ship has been out of service since March 2017), «America-class» / «Wasp-class amphibious assault ship» (6–12 F-35B / AV-8B normally, 20 in the «Lightning carrier» loadout — 12 taken), «Cavour», «Trieste», «Juan Carlos I», «Izumo-class» (8–12 F-35B / AV-8B — 12 taken). Accepted by Eduard (27.10.2026, after the review of G): the capacity at sea = Σ q × cap × avail_sea (0.36) — about a third of the carriers are deployed at any time (two to three of the eleven US carriers stood in CENTCOM in 2025, the rest in maintenance, training or transit); with the raw capacity (636 US aircraft on the carriers) Iran's air defence fell by 83 % in 30 days, with 229 at sea by 48 % — inside the reviewer's corridor. G.1 (a): Admiral Kuznetsov written off — cap 0 (out of service since March 2017, the overhaul suspended in 2025; the ship still stands in the sea block of the index). The carrier part of a type strikes through the naval gate: the fleet must be able to reach the opponent's coast (a landlocked opponent is out of reach) and does so from the day after nav_delay when the outlines lie beyond sea_km, as the naval missiles do; the rest of the type keeps the theatre gate of the side. The inventory, the Inventory Strength Index and Balance never read this norm.
Live War H.3: air-launched cruise missiles — per country the families in service, their carrier types (exact card names), range, 30-day stock and damage factor
types per country
countryfamilycarrier aircraftrange, km30-day stockdamage factorconfidencesource
AzerbaijanSOM ŞAHİN (SOM-B1)Sukhoi Su-2525000.51low↗
ChinaCJ-20 / KD-20Xian H-61,50001.11low↗
ChinaKD-63Xian H-624001.11low↗
ChinaKD-88Xian JH-7, Chengdu J-10, Shenyang J-16, Shenyang J-1120000.5low↗
ChinaYJ-12 (air-launched)Xian H-650000.5low↗
ChinaYJ-83KXian JH-7, Shenyang J-16, Xian H-623000.5low↗
EgyptSCALP-EGDassault Rafale2501001.0low↗
FranceSCALP-EGDassault Rafale, Dassault Mirage 20005503001.0low↗
GermanyTaurus KEPD 350Panavia Tornado IDS5001501.07med↗
IranAsefSukhoi Su-241,00001.0low↗
IranYa-AliF-4 Phantom II, Sukhoi Su-2470001.0low↗
IranQader / Noor (air-launched)F-4 Phantom II20000.5low↗
IsraelDelilahF-16 Fighting Falcon25000.5low↗
IsraelRampageF-16 Fighting Falcon, F-15 Eagle, McDonnell Douglas F-15E Strike Eagle25000.5low↗
IsraelPopeye / Have NapF-15 Eagle, McDonnell Douglas F-15E Strike Eagle, F-16 Fighting Falcon7800.76low↗
IsraelRocks / Blue SparrowF-16 Fighting Falcon, F-35 Lightning II, F-15 Eagle1,00001.0low↗
NetherlandsAGM-158B JASSM-ERF-35 Lightning II92501.0low↗
RussiaKh-101 / Kh-555Tupolev Tu-95, Tupolev Tu-1603,5001851.0high↗
RussiaKh-22 / Kh-32Tupolev Tu-22M1,0002501.5high↗
RussiaKh-59 / Kh-69Sukhoi Su-34, Sukhoi Su-35, Sukhoi Su-30, Sukhoi Su-57, Sukhoi Su-24400240.67med↗
RussiaKh-47M2 KinzhalMikoyan MiG-31500501.07high↗
RussiaKh-35USukhoi Su-34, Sukhoi Su-35, Sukhoi Su-3026000.5low↗
TurkeySOM (SOM-B1/B1T/B2)—2504950.51low↗
TurkeyÇakır—15000.5low↗
UkraineStorm Shadow / SCALP-EGSukhoi Su-24, Mirage 2000-5F250301.0low↗
United Arab EmiratesBlack Shaheen (SCALP export)Dassault Mirage 20002906001.0low↗
United KingdomStorm ShadowEurofighter Typhoon5504001.0low↗
United StatesAGM-158 JASSM / JASSM-ERB-1 Lancer, B-52 Stratofortress, B-2 Spirit, McDonnell Douglas F-15E Strike Eagle, F-16 Fighting Falcon, F-15EX Eagle II, F/A-18 Super Hornet9252,9501.0med↗
United StatesAGM-158C LRASMB-1 Lancer, F/A-18 Super Hornet, B-2 Spirit3704501.0low↗
United StatesAGM-84H/K SLAM-ERF/A-18 Super Hornet, F/A-18 Hornet27000.8low↗
assumptionsource ↗
«an air-launched cruise missile (ALCM) is a cruise missile that is launched from a military aircraft»
H.3 (LIVE_WAR_SPEC_E §P, 27.10.2026): there are no cards and no category for these missiles — the norm holds, per country and missile family, the carrier types as they stand on the map, the published range rg (km), the stock for a 30-day window (missiles on hand + one month of output or deliveries — the same rule as the one-way-attack drones; 0 where nothing is published: Israel's Delilah / Rampage / Popeye / Rocks, Iran's Asef / Ya-Ali, China's CJ-20 / KD-63 / KD-88 / YJ-12 / YJ-83K launch nothing until a figure is published), the damage factor dmg_f = warhead ÷ 450 kg in 0.5 … 1.5 (msl_dmg × dmg_f per missile that gets through) and the confidence (high — an official inventory or production figure of 2024–26; med — an analyst's estimate with a method; low — a reasoned estimate, order totals or delivery counts). Research agents, October 2026 (refresh/LiveWar_H/ALCM_TASK.md, a source URL and a note with the dates per entry in info/alcm.json): Russia Kh-101 / Kh-555 185 (Ukrainian Defence Intelligence, Aug 2026: about 100 on hand + 87 produced in July 2026, over 80 a month in Oct 2026; rg 3,500), Kh-22 / Kh-32 250 (HUR, July 2026; Kh-32 production suspended since April 2026; warhead 960 kg → dmg_f 1.5), Kh-59 / Kh-69 24 (HUR: Kh-69 ≤ 20 + 4 a month), Kinzhal 50 (HUR Aug 2026, production suspended; aeroballistic — the model intercepts it like a cruise missile, a known simplification; rg 500 = the missile alone, the carrier's radius is added by the model), Kh-35U 0 (no published stock); United States JASSM / JASSM-ER 2,950 (CSIS, Apr 2026: about 4,000 before the Iran war, about 1,100 expended to the April ceasefire, about 50 a month produced; rg 925 — the JASSM-ER; carriers B-1, B-52, B-2, F-15E, F-16, F-15EX, F/A-18E/F — the F-35 and the legacy Hornet are not yet operational with it), LRASM 450 (anti-ship; FY24 budget exhibit: 125 delivered + 320 on contract, 10–20 a month), SLAM-ER 0 (no published stock), AGM-86B nuclear — outside the model; United Kingdom Storm Shadow 400 (Typhoon; 900 ordered in 1997, about 100 expended 2003–18, about 600 operational in Nov 2024, undisclosed batches to Ukraine since — low), France SCALP-EG 300 (Rafale, Mirage 2000; 500 ordered, «400 or fewer» before 100–150 to Ukraine; ASMP-A nuclear — outside), Germany Taurus 150 (Tornado IDS; 600 delivered 2004–10, about 150 serviceable per the Bundestag defence committee, Aug 2023), Ukraine Storm Shadow / SCALP 30 (Su-24, Mirage 2000-5F; deliveries undisclosed — a low-confidence placeholder), Egypt SCALP-EG 100 (Rafale; «100+ delivered» — low), United Arab Emirates Black Shaheen 600 (Mirage 2000; the 1997 order — an upper bound, low), Netherlands JASSM-ER 0 (128 approved in 2024, none delivered), Turkey SOM 495 and Çakır 0 (no Turkish combat-aircraft cards on the map yet — nothing launches), Azerbaijan SOM 0. Model: the stock of a side = Σ over its families whose carriers have at least one aircraft on its cards; launches a day = alcm_rate × the 30-day stock (the drone rule 1/30 · 1/15 · 1/10 at sustained / campaign / sprint — the executor's reading of «msl_rate × stock»: 0.25 × 2,950 JASSM a day would spend the US stock in four days, msl_rate is a rate per launcher and the ALCM have none), never more than what is left, × the gate; the gate of a family = the best of its carriers — clamp(1 − dist ÷ (the carrier's radius × the tanker factor + rg)), or the carrier's global gate (a bomber with tankers) or carrier gate (the ship-borne part, from day nav_delay + 1); interception = int_max × the defender's long / medium coverage, as for the other cruise missiles; the damage falls on the blocks by H.1 (msl_target × what the defender has). The stock falls apart from the ground and naval missiles (aL / aI / aH per side); the panel line shows the whole missile stock «incl. N air-launched», the end table a row «of which air-launched», the feed on day 1 «N air-launched cruise missiles on M bombers and fighters (model)». The inventory, the index and Balance never read this norm.
Live War H.2: combat radius of an attack helicopter type without a documented figure
km
300assumptionsource ↗
«combat radius … 460 km»
H.2 (LIVE_WAR_SPEC_E §P, 27.10.2026): the theatre gate is per type — clamp(1 − dist ÷ (radius × tanker factor)); an attack helicopter whose perf.json entry has no radius takes this figure. Typical published combat radii: Ka-52 about 460 km (ferry range 1,100), AH-64D/E about 250–480 km depending on the load (480 km with external tanks), Mi-28N about 200–235 km, AH-1Z about 230 km — the anReach rows give 200–240 km for the documented types of the catalog (the cr of the helicopters is read as a radius up to cr_heli_max 400, else range × cr_heli_k). 300 km sits between the documented figures and the makers' maxima; helicopters never take the tanker factor.
Live War I.0: exposure of a category — its loss rate against the average of its block (a type loses f_g × exposure × n_g; n_g keeps the weighted loss of the block at f_g × S_g)
ratio

Land: Main Battle Tanks 1.0 · Light Tanks 1.0 · Fire Support Vehicles 1.0 · Infantry Fighting Vehicles 1.3 · Armored Personnel Carriers 0.5 · MRAP Vehicles 0.1 · Infantry Mobility Vehicles 0.2 · Reconnaissance Vehicles 0.5 · Self-Propelled Artillery 0.4 · Towed Artillery 0.25 · Multiple Launch Rocket Systems 0.25 · Self-Propelled Mortars 0.3 · Mortars 0.15 · Anti-Tank Guns 0.3 · Anti-Tank Guided Missile Systems 0.3 · Anti-Tank Missile Carriers 0.2 · Armoured Trains 0.5 · Unmanned Ground Vehicles 1.0

Air: Fighter Aircraft 1.0 · Attack Aircraft 1.0 · Bombers 0.3 · AEW&C Aircraft 0.2 · Reconnaissance & SIGINT Aircraft 0.3 · Electronic Warfare Aircraft 0.3 · Maritime Patrol Aircraft 0.3 · Aerial Refueling Tankers 0.1 · Transport Aircraft 0.3 · Trainer Aircraft 0.2 · Utility & Liaison Aircraft 0.3 · Attack Helicopters 1.2 · Transport Helicopters 0.6 · Utility & Special-Mission Helicopters 0.5 · Tiltrotor Aircraft 0.5 · Unmanned Aerial Vehicles 1.5 · Aerostats & Airships 0.5

Sea: Aircraft Carriers 0.3 · Submarines 0.3 · Cruisers 0.5 · Destroyers 0.5 · Frigates 0.6 · Corvettes 0.8 · Fast Attack Craft 1.0 · Patrol Vessels 1.0 · Amphibious Assault Ships 0.4 · Landing Ships 0.6 · Landing Craft 1.0 · Mine Warfare Vessels 0.6 · Support Ships 0.6 · Manned Submersibles 0.5 · Unmanned Surface Vessels 1.5 · Unmanned Underwater Vehicles 1.0

Air defence & missiles: Surface-to-Air Missile Systems 1.0 · Gun-Missile Air Defense Systems 1.0 · Anti-Aircraft Guns 0.4 · Self-Propelled Anti-Aircraft Guns 0.6 · Man-Portable Air Defense Systems 0.2 · Counter-UAS Systems 0.6 · Ballistic Missile Systems 1.0 · Ground-Launched Cruise Missile Systems 1.0 · Coastal Defense Missile Systems 0.6

Enablers: Radar Systems 0.8 · Electronic Warfare Systems 0.8 · Communications, Command & Control Systems 0.5 · Engineering & Recovery Vehicles 0.5 · CBRN Defense Systems 0.3 · EOD & IEDD Systems 0.3 · Medical Vehicles 0.5 · Light Utility Vehicles 0.4 · Logistics & Transport Vehicles 0.3 · Military Satellites 0.05

default 1.0

assumptionsource ↗
«visually confirmed … destroyed, damaged, abandoned and captured»
I.0 (LIVE_WAR_SPEC_E §R, 31.10.2026; Eduard's part-I brief): the block still loses its share f_g a day, but inside the block a type loses f_g × exposure_k × n_g — exposure_k = the loss rate of its category relative to the block average, n_g = Σ m·q ÷ Σ m·q·exposure over the types of the block (m = the marginal index weight of a unit, half the average weight for a mass category on the root scale), so that the weighted loss of the block is exactly f_g × Σ m·q and the block figures of the H calibration do not move; only the losses by type, the top-5 and the fact → model table move. Starting values from the brief (tanks and IFVs at the front 1.0, APC 0.8, MRAP / IMV 0.6, SP artillery 0.5, towed 0.25, MLRS 0.4, mortars 0.15, ATGM 0.3, recon 0.8; aviation: fighters 1.0, attack helicopters 1.2, transports 0.3, AEW 0.2, tankers 0.1, reconnaissance UAVs 1.5; sea: boats 1.0, large surface 0.6, submarines 0.3; air defence: SAM 1.0, AA guns 0.4, MANPADS 0.2; enablers: trucks 0.3, the rest 0.5), then calibrated on the Oryx 2025 additions against the parks of the cards (refresh/LiveWar_I/oryx_out/oryx_cats.json, read 31.10.2026): Russia 2025 — tanks 640 of 3,660 (17 % of the park a year), IFV 1,099 of 2,827 (39 %), APC + BRDM / MT-LB class 687 of 8,170 (8 %), MRAP 6 of 718 (1 %), IMV 90 of 2,531 (4 %), towed + SP artillery 256 of 2,685 (10 %), MLRS 97 of 1,195 (8 %); Ukraine 2025 — tanks 356 of 643 (55 %), IFV 391 of 894 (44 %), APC + AFV class 638 of 2,387 (27 %), IMV 756 of 5,556 (14 %), MRAP about 450 of 4,789 (9 %), artillery about 350 of 3,905 (9 %), MLRS about 14 of 608 (2 %). Relative to the tanks of the same side: IFV 2.2 / 0.8 → 1.3; APC 0.5 / 0.5 → 0.5; MRAP 0.05 / 0.17 → 0.1; IMV 0.2 / 0.25 → 0.2; artillery 0.54 / 0.16 → SP 0.4, towed 0.25; MLRS 0.46 / 0.04 → 0.25; the self-propelled anti-tank carriers (47 lost of about 1,000 in the whole war) 0.2. The other blocks keep the brief's values (Oryx: 175 helicopters against 184 aircraft on a park a third the size → attack helicopters 1.2; 790 UAVs → 1.5; the fleet, the air defence and the enablers as in the brief). What the exposure cannot do: with the block share fixed by the H corridors, the sum of the category losses is fixed too — at the sustained tempo the land block of Ukraine loses about 4.8 × and Russia's about 2.9 × the Oryx-2025 weighted loss, whatever the split (the exposure only equalises the ratio across tanks / AFV / artillery); the brief's target of × 0.5 … × 2 of Oryx per category is not reachable by the split alone — see LIVE_WAR_SPEC_E §R.1 and the fact → model table of the method page.
Live War I.1: ready surface-to-air missiles per launcher by family, and the reloads in the 30-day window by tempo — the interceptor stock of a SAM card without a published figure (is)
missiles per launcher
familyper launchercards
9Dey29Dey
AD-08 Majid4AD-08 Majid
Arrow6Arrow
Aspide4Aspide
Avenger8AN/TWQ-1 Avenger
Barak MX8Barak MX
Bavar-3734Bavar-373
Buk49K37 Buk, 9K37M Buk-M1-2, 9K37M Buk-M2, 9K317M Buk-M3, SA-11/17
CS/SA-10CS/SA-1
Crotale8Thales Crotale NG
David's Sling12David's Sling
Dong Neng-31Dong Neng-3
HQ-122HQ-12
HQ-166HQ-16
HQ-178HQ-17
HQ-196HQ-19
HQ-224HQ-22
HQ-2J1HQ-2J
HQ-64HQ-6
HQ-74HQ-7
HQ-94HQ-9
Hawk3MIM-23 Hawk
Herz-94Herz-9
IRIS-T SLM8IRIS-T SLM
Iron Dome20Iron Dome, C-Dome
Kub32K12 Kub
M-SHORAD4M-SHORAD
Mersad3Mersad
NASAMS6NASAMS
Osa69K33 Osa
PGZ-954PGZ-95
Pantsir12Pantsir-S1, Pantsir-SA
Patriot12MIM-104 Patriot
Raad / 3rd Khordad3Raad / 3rd Khordad
Raad-1/2 & Khordad-33Raad-1/2 & Khordad-3
Rapier4Rapier
S-125 Pechora4S-125 Pechora
S-2001S-200
S-3004S-300, S-300PMU2
S-300V4S-300V
S-35012S-350
S-4004S-400
S-75 Dvina1S-75 Dvina
SAMP/T8Eurosam SAMP/T Mamba
Sayyad 34Sayyad 3
Sayyad-11Sayyad-1
Sayyad-2 & Khordad 154Sayyad-2 & Khordad 15
Shahin (SAM)3Shahin (SAM)
Shalamcheh3Shalamcheh
Stormer HVM8Stormer HVM
Strela-1049K35 Strela-10
THAAD8THAAD
Tabas3Tabas
Talaash4Talaash
Talash / 15th Khordad4Talash / 15th Khordad
Tor-M189K330 Tor, 9K331 Tor-M1
Tor-M2169K331 Tor-M2DT
Tunguska82K22 Tunguska, 2S6 Tunguska-M
Ya Zahra-34Ya Zahra-3
Yitian8Type 92 Yitian

reloads in the window: sustained / campaign / sprint 3 / 2 / 1.5; default per launcher 4

assumptionsource ↗
«each launcher … four PAC-2 or sixteen PAC-3 missiles»
I.1 (LIVE_WAR_SPEC_E §R, 31.10.2026): the stock of interceptors of a SAM card for the window = the card's published is (with its source iss — research agents, refresh/LiveWar_I/ISR_TASK.md: Israel Iron Dome 2,000 and Arrow 80, Ukraine Patriot 50 / S-300 10 / SAMP/T 40, United States Patriot 1,300 / THAAD 200 / Stinger pool 3,500 / Iron Dome 150, Iran Tor 232, China S-300 1,600 — all low or medium confidence, the notes with the dates on the cards), else launchers × ready missiles per launcher of the family × (1 + reloads in the window): 9Dey 2, AD-08 Majid 4, Arrow 6, Aspide 4, Avenger 8, Barak MX 8, Bavar-373 4, Buk 4, CS/SA-1 0, Crotale 8, David's Sling 12, Dong Neng-3 1, HQ-12 2, HQ-16 6, HQ-17 8, HQ-19 6, HQ-22 4, HQ-2J 1, HQ-6 4, HQ-7 4, HQ-9 4, Hawk 3, Herz-9 4, IRIS-T SLM 8, Iron Dome 20, Kub 3, M-SHORAD 4, Mersad 3, NASAMS 6, Osa 6, PGZ-95 4, Pantsir 12, Patriot 12, Raad / 3rd Khordad 3, Raad-1/2 & Khordad-3 3, Rapier 4, S-125 Pechora 4, S-200 1, S-300 4, S-300V 4, S-350 12, S-400 4, S-75 Dvina 1, SAMP/T 8, Sayyad 3 4, Sayyad-1 1, Sayyad-2 & Khordad 15 4, Shahin (SAM) 3, Shalamcheh 3, Stormer HVM 8, Strela-10 4, THAAD 8, Tabas 3, Talaash 4, Talash / 15th Khordad 4, Tor-M1 8, Tor-M2 16, Tunguska 8, Ya Zahra-3 4, Yitian 8 (Wikipedia / CSIS Missile Threat / Army Recognition pages of the systems, October 2026 — refresh/LiveWar_I/isr_out/_load.json, a source URL per family; Patriot 12 = the M903 launcher with PAC-3 MSE, 16 with PAC-3 CRI, 4 with PAC-2 — the MSE share of a battery is not published); families without an entry take def 4. Reloads in the window 3 / 2 / 1.5 at sustained / campaign / sprint — an assumption: no battery reload stock is published; a Patriot launcher is reloaded in about an hour by crane truck, an S-400 TEL in about 50 minutes, India's six-launcher S-400 battery came with 128 missiles (about 5 loads), the US Iron Dome buy was 480 Tamir for 12 launchers (2 loads), Hawk 18 + 36, Osa 24 + 18, Kub 12 + 12 at the battery; over 30 days of a sustained war the depots and the industry keep up (3 loads), in a sprint a battery fights with what stands near it (1.5). The model says «estimated by norm» on the panel for every side whose stock is not published in full. The panel draws the stock in two pools: long- and medium-range types (the only ones that engage ballistic missiles) and short-range types (cruise missiles and drones first) — the tier of a type is its engagement range in perf.json (ad_tiers); a type without a documented range counts as short-range.
Live War I.2: artillery rounds of a country for a 30-day window (on hand + a month of production and imports) — null where nothing is published (the fire is not limited)
rounds
countryrounds for 30 daysconfidence
Russia475,000med
Ukraine138,000med
United States—not published — the fire is not limited
Israel—not published — the fire is not limited
Iran—not published — the fire is not limited
China—not published — the fire is not limited

rounds a tube a day: sustained / campaign / sprint 3 / 20 / 50

assumptionsource ↗
«Russian daily consumption stabilised at 10,000-15,000 rounds a day»
I.2 (LIVE_WAR_SPEC_E §R, 31.10.2026): research agent, refresh/LiveWar_I/AMMO_TASK.md (a source list and a note with the dates per country in info/ammo.json): Russia 475,000 (med: Production: Estonian Foreign Intelligence Service annual report (11 Feb 2026) puts Russia's 2025 output at about 7 million rounds of all types, of which 3.4 million howitzer rounds (122/152/203 mm) and 0.5 million MLRS r); Ukraine 138,000 (med: Imports: Czech Ministry of Defence (Reuters, 26 May 2026) said about 500,000 large-calibre rounds were supplied under the Czech initiative since the start of 2026 (about 100,000 a month) and about 1 million are contracte); United States not published (med: Stockpile is not published: the DoW Inspector General report DOWIG-2026-095 (9 Jul 2026, CUI-redacted) gives no on-hand inventory, only that the inventory of 155-mm rounds fell by over 3.6 million over the last four year); Israel not published (low: Stock is not published and no monthly output is reported. What is published: WSJ (Dec 2023) counted 57,000 155-mm shells among US shipments to Israel since 7 Oct 2023; the Pentagon said in Oct 2023 it would redirect 'ten); Iran not published (low: Stock is not published and no production figure is released. Proxy of output: the Wall Street Journal (24 Apr 2023, via Ukrainska Pravda) reported that Iranian cargo ships carried over 300,000 artillery shells and 1 mill); China not published (low: No published stock and no sourced estimate of Chinese artillery-shell output was found: the conflict.id 155-mm production tracker (Jul 2026) lists no Chinese plant; SCMP/Yahoo (24 Jun 2024) only notes Norinco marketing N). The model: need a day = tubes (self-propelled + towed guns + rocket launchers, one launcher = one tube) × rounds_per_tube at the tempo; the ground-fire term × min(1, stock ÷ need); at zero × fire_floor; a country without a published stock fires without limit and the panel says «not limited — the stock is not published» (honest, no estimate); My Army is never limited. The daily rounds per tube 3 / 20 / 50 are in the norm war (rounds_per_tube) with their sources in info/ammo.json (the agent's 30 for the campaign was lowered to 20 in the I.4 calibration — the Desert Storm averages). What the limit does at the campaign tempo: Russia's published flow of 475,000 a month covers the need of about 40,000 a day for 12 days and Ukraine's 138,000 covers about 47,000 a day for 3 days — a campaign-tempo offensive on the 2025 flows runs out of shells within two weeks, which is what the intelligence assessments of the stockpiles say; the H corridor of Ukraine – Russia at the campaign tempo (28–38) was calibrated without a shells limit and no longer holds (about 51) — an open decision for the owner, see LIVE_WAR_SPEC_E §R.
Live War I.3: equipment in storage by category where no per-type figure is published (the per-type figures sit on the cards as rs / rss) — returns to service from day reserve_delay + 1 at reserve_rate a day
units
countrycategoryin storage
IsraelMain Battle Tanks400
assumptionsource ↗
«in store»
I.3 (LIVE_WAR_SPEC_E §R, 31.10.2026): research agent, refresh/LiveWar_I/PROD_STORAGE_TASK.md (info/prod_storage.json, the per-card figures written to the cards by refresh/LiveWar_I/mun_cards.py): Russia 26 cards, about 8,350 units judged restorable — tanks 2,088 visible / about 851 restorable (Jompy, June 2026; 2,478 in October 2025; 7,342 before the war; Covert Cabal early 2026: T-62 784, T-72 Ural / A 452, T-64 449, T-72B 188, T-80 141, T-55 112, T-90 0) spread as T-55 100, T-62M 450, T-72B3 150, T-72B 50, T-80BVM 50, T-80U / BV 30, T-64BV 50; BMP-1 650 and BMP-2 170 (826 operational of about 1,700, Jompy October 2026); MT-LB 150, BTR-70 800, BTR-60 100, BTR-80 40; self-propelled artillery from the IISS in-store lines 2S1 800, 2S3 400, 2S5 250, 2S7 40, 2S19 40; towed D-30 2,000, D-20 600, 2A65 200, 2A36 450, M-46 500 (IISS 2024 and the Shchuchye count 4,839 → 2,753 by June 2025 — about half of what is left may be unusable); Grad 40, Uragan 230, Smerch 14; United States 11 cards, about 6,600 — M1 Abrams 3,000 (IISS about 3,700 in store; 3,232 visible at Sierra, Anniston and Camp Shelby), M2 Bradley 2,000, M113 700, M109A6 100, M119 200, AMARG March 2025: F-16 171, F-15 202, F/A-18 Hornet 75, A-10C 121, B-52H 11, B-1B 10, AH-1Z 26; Israel M113 2,000 and a category total of 400 main battle tanks (Merkava Mk 3 reactivated from storage, count unpublished — this norm); Ukraine, Iran, China — nothing published (Ukraine reactivated its stored T-72 / T-64 in 2014–22; the Western pipeline is the supply switch, not storage). Model: from day reserve_delay + 1 every stored type returns reserve_rate × its stored stock a day (not above the stock), into the quantity and the block, never into the losses; a vanished type comes back. The confidence of every figure is in the card's note (low for most of the Russian towed artillery and the US aircraft).
Live War I.3: new production a month by country and category, to the named types (else to the types of the category in proportion to their quantity) — units a day = per_month ÷ 30
units a month
countrycategorya monthtypes
RussiaMain Battle Tanks12T-90M
RussiaInfantry Fighting Vehicles40BMP-3
RussiaArmored Personnel Carriers50BTR-82A
RussiaSelf-Propelled Artillery252S19M2 Msta-S, 2S43 Malva, 2S35 Koalitsiya-SV
RussiaMultiple Launch Rocket Systems5Tornado-G, Tornado-S, TOS-1A Solntsepyok
RussiaFighter Aircraft1Sukhoi Su-35
RussiaFighter Aircraft1Sukhoi Su-57
RussiaAttack Aircraft1Sukhoi Su-34
RussiaAttack Helicopters2Kamov Ka-52, Mil Mi-28
UkraineSelf-Propelled Artillery402S22 Bohdana
United StatesArmored Personnel Carriers8M1283 AMPV (General Purpose)
United StatesSelf-Propelled Artillery2M109A7
United StatesMultiple Launch Rocket Systems4M142 HIMARS
United StatesFighter Aircraft8F-35 Lightning II
United StatesFighter Aircraft1F-15EX Eagle II
United StatesFighter Aircraft1F/A-18 Super Hornet
United StatesAttack Helicopters1AH-64 Apache
IsraelMain Battle Tanks3Merkava Mark IV
IsraelArmored Personnel Carriers4Namer
IsraelArmored Personnel Carriers2Eitan
IranMain Battle Tanks2Karrar
ChinaFighter Aircraft10Chengdu J-20
ChinaFighter Aircraft8Shenyang J-16
ChinaFighter Aircraft1Shenyang J-35 / J-35A
ChinaMain Battle Tanks5ZTZ-99A
ChinaSelf-Propelled Artillery12PCL-181
ChinaAttack Helicopters1Changhe Z-10
assumptionsource ↗
«Uralvagonzavod … new T-90M»
I.3 (LIVE_WAR_SPEC_E §R, 31.10.2026): research agent, refresh/LiveWar_I/PROD_STORAGE_TASK.md (info/prod_storage.json, a source URL and a note per line): Russia: Main Battle Tanks 12 (T-90M), Infantry Fighting Vehicles 40 (BMP-3), Armored Personnel Carriers 50 (BTR-82A), Self-Propelled Artillery 25 (2S19M2 Msta-S, 2S43 Malva, 2S35 Koalitsiya-SV), Multiple Launch Rocket Systems 5 (Tornado-G, Tornado-S, TOS-1A Solntsepyok), Fighter Aircraft 1 (Sukhoi Su-35), Fighter Aircraft 1 (Sukhoi Su-57), Attack Aircraft 1 (Sukhoi Su-34), Attack Helicopters 2 (Kamov Ka-52, Mil Mi-28); Ukraine: Self-Propelled Artillery 40 (2S22 Bohdana); United States: Armored Personnel Carriers 8 (M1283 AMPV (General Purpose)), Self-Propelled Artillery 2 (M109A7), Multiple Launch Rocket Systems 4 (M142 HIMARS), Fighter Aircraft 8 (F-35 Lightning II), Fighter Aircraft 1 (F-15EX Eagle II), Fighter Aircraft 1 (F/A-18 Super Hornet), Attack Helicopters 1 (AH-64 Apache); Israel: Main Battle Tanks 3 (Merkava Mark IV), Armored Personnel Carriers 4 (Namer), Armored Personnel Carriers 2 (Eitan); Iran: Main Battle Tanks 2 (Karrar); China: Fighter Aircraft 10 (Chengdu J-20), Fighter Aircraft 8 (Shenyang J-16), Fighter Aircraft 1 (Shenyang J-35 / J-35A), Main Battle Tanks 5 (ZTZ-99A), Self-Propelled Artillery 12 (PCL-181), Attack Helicopters 1 (Changhe Z-10). NEW production only — refurbishment from storage is storage: Russia T-90M 12 a month (new hulls; the 250–300 a year of IISS 2025 includes refurbished T-72 / T-80 — the agent's split, low confidence; the sources span 3–25 a month), BMP-3 40, BTR-82A 50, self-propelled artillery 25 (HUR: 365 new systems in 2025), MLRS 5, Su-35 / Su-57 / Su-34 one each (RUSI: 11 Su-34 in 2025), Ka-52 / Mi-28 2; Ukraine Bohdana 40 (Zelensky, October 2025; the towed Bohdana-B included — 30–40); United States Abrams and Bradley 0 (remanufacture), AMPV 8, M109A7 2, HIMARS 4, F-35 8 (191 delivered in 2025, about 60 % to the US), F-15EX 1, Super Hornet 1, Apache 1 new-build; Israel Merkava 3, Namer 4, Eitan 2 (low); Iran Karrar 2 (official 50–60 a year including T-72 overhauls); China J-20 10, J-16 8, J-35A 1, ZTZ-99A 5, PCL-181 12, Z-10 1. The external supply switch (E1) stays separate. Several lines of one category with named types are kept apart so that a small type (Su-57, F-15EX) gets its own figure instead of a quantity-proportional share of a pool.
Live War: ballistic-missile submarines (SLBM carriers) — outside the conventional model
name list

Ohio class SSBN, Borei class, Delta IV class, Type 094 (Jin class), Vanguard class, Triomphant class

derivedsource ↗
«ballistic missile submarines … are primarily used as a nuclear deterrent»
A card of the Submarines category whose name is exactly one of these is a strategic nuclear launcher like the ICBMs of icbm_names: nuc: 1 in the data, out of the Live War sea block (on deterrent patrol it takes no part in the conventional exchange; it carries no land-attack cruise missiles in nav_cells either). The United States (Ohio class SSBN), Russia (Borei, Delta IV), China (Type 094), the United Kingdom (Vanguard) and France (Triomphant) carry nuc: 1 on the map; the special-purpose Delta IV boat and the Ohio class SSGN (Tomahawk) are not in the list. The Inventory Strength Index and Balance keep the boats as before.
Live War: generation multipliers of the combat power — air (combat aviation), sam (area air defence), mbt (main battle tanks); none = no data
multiplier
groupvalue
air3: 0.35, 4: 0.7, 4.5: 0.95, 5: 1.0
sam3: 0.4, 4: 0.7, 4.5: 0.9, 5: 1.0
mbt1: 0.4, 2: 0.6, 3: 0.85, 3.5: 1.0
none1.0
assumptionLIVE_WAR_SPEC_E.md §E2.2
«gen_f (A): air {3: 0.5, 4: 0.8, 4.5: 0.9, 5: 1.0}, sam by bands {≤ 1975: 0.4, 1976–99: 0.7, 2000–14: 0.9, ≥ 2015: 1.0}, mbt {1: 0.4, 2: 0.6, 3: 0.85, 3.5: 1.0}; without data — 1.0»
E2 (LIVE_WAR_SPEC_E §E2, 19.10.2026): the generation of a type — perf.json gen (perf_gen_merge.py: 219 of 263 combat types with a value, agents with sources) or the country card's own gn (Israel and Iran, with a source URL gs) — multiplies the Live War power only: P_cmb (fighters, attack aircraft, bombers, attack helicopters — the group air), P_sam (the area air defence of cov_cats — sam) and the main-battle-tank part of P_land (mbt; the other land types stay at 1.0). The scale is one number for every category: a stated fighter generation 3 / 4 / 4.5 / 5, or for bombers, helicopters and air-defence systems the band of the year the variant entered service (≤ 1975 → 3, 1976–99 → 4, 2000–14 → 4.5, ≥ 2015 → 5), and 1 / 2 / 3 / 3.5 for tanks. A type without data counts at 1.0 and is listed in the panel («N types without generation data») and on the method page. The Inventory Strength Index, Balance and the remaining % (inventory) are untouched (ANALYSIS_SPEC §12.1: quality = 1 for the index). Calibration (19.10.2026, Israel – Iran at the sprint tempo, 40 days): the specification's air {3: 0.5, 4: 0.8} gave Israel 90 % / aviation 83 % / air defence 72 %, sup(IL) 0.71 and Iran's SAMs −45 % — air 3 → 0.35, 4 → 0.7 and 4.5 → 0.95 (a 1960s F-4 / F-5 at 35 % of an F-35, a 1980s F-14 / MiG-29 at 70 %, an F-16I Sufa at 95 %) with the AH-1J-derived Toufan / Panha at 3 give sup(IL) 0.78, Israel 93 % / aviation 88 % / air defence 82 % and Iran's launchers and SAMs −51 %; the SAM and MBT tables are the specification's, k.air_ad stays 0.030 (the limit of its corridor). E2.3 (Eduard, 19.10.2026 — the rule of the generation): the generation is that of the base airframe or chassis; one step up only for a deep modernisation with a source (F-16I 4.5, T-90M 3.5, Leopard 2A6 3.5, T-72B3 / PT-91 3, Mi-35M 4); a copy or licence-built old machine (Saeqeh, Kowsar, Toufan, Panha 2091, HQ-2J) takes the original's generation, not the year of the copy; bombers and air-defence systems take the year of the variant in service (Tu-95MS 1981 → 4, Tu-22M3 1983 → 4, H-6K 2009 → 4.5, Patriot PAC-3 2001 → 4.5), not the first flight. The reviewed values are in info/perf/gen_overrides.json and are applied last by perf_gen_merge.py.

The notes to the norms are given in English together with the sources — a technical appendix; the labels, values and statuses of the table are translated.

What it does not measure

Training, doctrine, command, morale, readiness of individual units, combat experience, allies, geography, industry, stockpiles of ammunition and spares, the age and condition of every vehicle. The inventories themselves are open-source estimates: sources disagree, fleets change, and quantities marked + are lower bounds. Read every number as an order of magnitude and compare like with like.

Planned

Stage 3 (My Army only): fuel and ammunition consumption by published norms and days of stock; ranges and years for the remaining categories (tanks, artillery, patrol boats) as the research passes continue.

Open the interactive map