Replay a real year of operations under the rule that is in force, and get a verdict with a proof, not a forecast. Every ship in the official EU-MRV registry of 2025 — the first year FuelEU Maritime penalties exist — is re-fueled on paper under the regulation's own published arithmetic, in exact rationals over stated boxes: compliant by a margin, non-compliant with an exact penalty floor in EUR, or NEEDS DATA where the public record's own opacity leaves the verdict open. Nothing here is an estimate; where an estimate would be needed, the instrument refuses instead.
FuelEU Maritime (Regulation (EU) 2023/1805) caps the well-to-wake GHG intensity of the energy a ship uses: the reference value is 91,16 gCO2eq/MJ and the limit steps down -2% from 2025, -6% from 2030, -14,5% from 2035, -31%, -62%, -80% (Art. 4(2)). The compliance balance is (GHGIE_target − GHGIE_actual) × energy (Annex IV A) and the penalty is |CB| / (GHGIE_actual × 41 000) × EUR 2 400 (Annex IV B) — a closed-form function of numbers a company must already report. The first penalty cycle of this rule closed in June 2026: it is in force, not coming.
Every constant used here is transcribed from the pinned Official Journal bytes — corpus/sources/fueleu_reg-2023-1805_oj-l234_2023-09-22.pdf, sha256 492df4f7… — and the GWP factors from the pinned RED II Annex V C(4) (CO2 1 · CH4 25 · N2O 298). The instrument's battery re-derives the limits, a hand-computed penalty and a hand-computed flip threshold from those constants at every build, and a forged intensity one part in 10⁹ over the limit must flip the verdict — no tolerance window exists for an optimizer to land in.
The activity record is the EU-MRV public emission report for period 2025 — 17,045 ships' verifier-checked annual totals: fuel consumed, CO2eq emitted, and the voyage split (intra-EU / inbound / outbound / in-port) that determines FuelEU scope. Version 45, generated 28 August 2026, fetched from the THETIS-MRV public API and pinned: 1b139b29222dd58c…. The build re-hashes the bytes and refuses on drift; the extraction is stdlib Python, keeps every figure as the exact decimal string the registry printed, and is rerunnable in one command.
Nothing about a ship is modeled here: no speed curves, no engine assumptions, no AIS. The energy is the ship's own reported fuel; the scope share is the ship's own reported voyage split. What the registry does not say — which fuel, exactly — enters as a box, and the box is the honest price of the record's opacity.
A verdict tells an owner they fail. This tells them the price of passing: the exact fraction of scope energy that must come from a zero-well-to-wake fuel before the 2030 limit is cleared. It is computed per ship from that ship's own reported numbers, in exact rationals, and it is the number the regulation is designed to force into the open.
The fossil-oil hypothesis. A decided ship is assumed to burn some mix of the regulation's three pinned oil rows (HFO, LFO, MGO): LCV in [0,0405, 0,0427] MJ/g, well-to-tank in [13,2, 14,4] gCO2eq/MJ. Its tank-to-wake intensity is not assumed at all — it is the ship's own reported CO2eq divided by its own reported fuel. A plausibility screen (prune-only, like every screen in this machine) admits the hypothesis only when that ratio sits in [3,10, 3,35] g/g, where the pinned oil rows themselves live; LNG burners, methanol, heavy bio blends and inconsistent reports fall outside and are counted, never decided. 2,385 ships sit there today.
The box is constrained by the ship's own numbers, then decided whole. The reported CO2eq/fuel ratio pins the feasible oil mixes to a one-parameter family, and the intensity extremes of that family sit at two-fuel vertex blends — computed exactly, so each box is tight: it contains every mix consistent with the observation and nothing else. COMPLIANT means every point of the box clears the limit; NON-COMPLIANT means every point exceeds it; a straddling box is NEEDS DATA, never guessed (0 today — the tightened boxes decide everything the screen admits). The undecided mass lives in the 2,385 ships OUTSIDE the oil screen — LNG, methanol, bio blends: precisely the candidates for actual compliance, and precisely the rows the public record cannot yet decide. The per-fuel breakdown FuelEU already makes companies compute would decide every one; NEEDS DATA is this page measuring that opacity. Penalty sums use directed rounding (floors on the floor, ceilings on the ceiling), so the stated exposure range is a theorem under the stated hypotheses, not an estimate.
What this is not. FuelEU compliance is assessed per company with banking, borrowing and pooling; these figures are the raw per-ship Annex IV arithmetic before those flexibilities, under the stated boxes — a mathematically certified counterfactual, not a compliance determination, not a verification statement in the class-society sense, and not legal advice. Scope shares inherit the stated uniform-fuel-mix-across-voyages hypothesis; ice-class and OPS derogations are not applied. Every one of these boundaries is a place the same instrument can sharpen as more of the record becomes public.
Ranked by the FLOOR of the 2030 penalty box — the amount the Annex IV arithmetic yields even at the most favorable end of every stated box. Names and IMO numbers are the registry's own; these are public verified reports, restated under a published formula.
| IMO | ship | type | FuelEU scope share | intensity box gCO2eq/MJ | 2025 | re-sailed 2030 | 2030 penalty box [EUR] | zero-WtW blend to flip 2030 |
|---|---|---|---|---|---|---|---|---|
| 9351476 | CRUISE ROMA | Ro-pax ship | 99.9% | [91.73, 91.73] | NON-COMPLIANT | NON-COMPLIANT | [5,965,247, 5,968,050] | [6.58%, 6.58%] |
| 9837420 | MSC WORLD EUROPA | Passenger ship (Cruise Passenger ship) | 100.0% | [91.43, 91.47] | NON-COMPLIANT | NON-COMPLIANT | [5,908,686, 5,992,305] | [6.27%, 6.32%] |
| 9319466 | FINNMAID | Ro-pax ship | 100.0% | [91.72, 91.72] | NON-COMPLIANT | NON-COMPLIANT | [4,932,759, 4,937,741] | [6.57%, 6.57%] |
| 9319442 | FINNSTAR | Ro-pax ship | 100.0% | [91.72, 91.72] | NON-COMPLIANT | NON-COMPLIANT | [4,712,065, 4,716,262] | [6.57%, 6.58%] |
| 9349863 | COLOR MAGIC | Ro-pax ship | 100.0% | [91.61, 91.63] | NON-COMPLIANT | NON-COMPLIANT | [4,670,631, 4,697,206] | [6.46%, 6.48%] |
| 9336268 | FINNLADY | Ro-pax ship | 100.0% | [91.71, 91.71] | NON-COMPLIANT | NON-COMPLIANT | [4,658,412, 4,664,942] | [6.56%, 6.57%] |
| 9278234 | COLOR FANTASY | Ro-pax ship | 100.0% | [91.63, 91.64] | NON-COMPLIANT | NON-COMPLIANT | [4,586,558, 4,609,434] | [6.48%, 6.50%] |
| 9948592 | GNV POLARIS | Ro-pax ship | 99.5% | [91.71, 91.71] | NON-COMPLIANT | NON-COMPLIANT | [4,519,505, 4,525,380] | [6.56%, 6.57%] |
| 9565041 | BLUE STAR PATMOS | Ro-pax ship | 99.9% | [91.73, 91.73] | NON-COMPLIANT | NON-COMPLIANT | [4,443,812, 4,445,378] | [6.59%, 6.59%] |
| 9359791 | MSC FANTASIA | Passenger ship (Cruise Passenger ship) | 80.8% | [91.44, 91.48] | NON-COMPLIANT | NON-COMPLIANT | [4,089,115, 4,143,717] | [6.29%, 6.33%] |
| 9351490 | CRUISE EUROPA | Ro-pax ship | 100.0% | [91.68, 91.69] | NON-COMPLIANT | NON-COMPLIANT | [3,844,345, 3,854,800] | [6.53%, 6.54%] |
| 9359806 | MSC SPLENDIDA | Passenger ship (Cruise Passenger ship) | 93.8% | [91.56, 91.59] | NON-COMPLIANT | NON-COMPLIANT | [3,825,830, 3,856,226] | [6.41%, 6.44%] |
| 9424883 | AZURA | Passenger ship (Cruise Passenger ship) | 97.1% | [91.62, 91.63] | NON-COMPLIANT | NON-COMPLIANT | [3,712,017, 3,732,438] | [6.47%, 6.49%] |
| 9378682 | SUPERSPEED 2 | Ro-pax ship | 99.9% | [91.73, 91.73] | NON-COMPLIANT | NON-COMPLIANT | [3,606,045, 3,607,739] | [6.58%, 6.58%] |
| 9320087 | MSC MUSICA | Passenger ship (Cruise Passenger ship) | 94.8% | [91.62, 91.63] | NON-COMPLIANT | NON-COMPLIANT | [3,596,133, 3,616,103] | [6.47%, 6.48%] |
| 9803613 | MSC GRANDIOSA | Passenger ship (Cruise Passenger ship) | 95.5% | [91.67, 91.68] | NON-COMPLIANT | NON-COMPLIANT | [3,551,304, 3,561,528] | [6.53%, 6.54%] |
| 9351505 | CRUISE SARDEGNA | Ro-pax ship | 99.9% | [91.65, 91.66] | NON-COMPLIANT | NON-COMPLIANT | [3,544,079, 3,557,914] | [6.50%, 6.52%] |
| 9216028 | SUPERFAST III | Ro-pax ship | 100.0% | [91.19, 91.23] | NON-COMPLIANT | NON-COMPLIANT | [3,534,602, 3,582,991] | [6.03%, 6.07%] |
| 9207584 | BLUE STAR 2 | Ro-pax ship | 99.9% | [91.53, 91.56] | NON-COMPLIANT | NON-COMPLIANT | [3,392,927, 3,424,662] | [6.38%, 6.41%] |
| 9216030 | SUPERFAST IV | Ro-pax ship | 100.0% | [91.63, 91.65] | NON-COMPLIANT | NON-COMPLIANT | [3,363,901, 3,379,651] | [6.49%, 6.50%] |
The full fleet: 12,620 ships decided in both years · 0 NEEDS DATA (box straddles a limit) · 2,385 outside the fossil-oil screen · 42 with unusable voyage splits · 1,998 with no reported EU-scope activity. Every count is recomputed from the pinned registry at this build.
For every non-compliant ship the instrument computes the exact energy fraction that must come from a zero-well-to-wake fuel for the same operations to comply in 2030 — an interval, because the fuel-type opacity propagates. That number is what a charterer, a lender under the Poseidon Principles, or a fuel supplier actually negotiates about; today it is bought as consultancy estimate. Here it is a computation anyone can rerun, and the same arithmetic generalizes to any candidate fuel intensity — replace zero with the fuel's pinned WtW value and the blend fraction is one exact division away.
This page is first light for the observatory, not its final shape: the roadmap is per-fuel candidate boxes (methanol, ammonia, wind-assist), company-level aggregation with pooling arithmetic, AIS-replay voyage scoping, and committed FORECASTS of next year's margins graded by the Forecast Gym's machinery. The instrument, the pinned rule, and the registry join are the load-bearing parts, and they are live above.