Gasoline Dashboard and Scenario Lab › Methodology

What counts as evidence here: what the Lab measures, how each source is used, and which official decisions changed what the published numbers mean.

1. What the Lab measures

The Lab measures AI-95+ gasoline: production against the 2024 norm, station availability, and the balance after the state's own priority claims. Not "refining", not "crude runs", not "gasoline". Those three are reported far more often and mean progressively less for the question asked here.

The Lab therefore tracks the component and publishes its assumptions where no figure exists, rather than inferring the component from an average share that no longer applies.

What counts as a hit. Each plant carries a counter of the Ukrainian strikes it has taken since 1 August 2025, the start of the strong refinery campaign of the second half of 2025, up to the anchor, and the replay adds every strike logged after it. All known strikes count, including strikes with no reported damage, because a plant that has been hit is hit again and the wear hazard in the forecast rises with the count. Two entries for one plant on one night, a crude unit and an isomerisation unit hit together, count once. The count is the Lab’s own and is never seeded from an outside table; each plant states how much of it is itemised in the strike log and how much is a hand count from the earlier registry.

Which plants are in the Lab. A plant is in the registry if it produces any gasoline or diesel, for the domestic market or for export, and has a nameplate capacity of at least 1 Mt a year, or a 2024 throughput of at least that where no nameplate is published. There is no cap on the number of plants, and smaller plants stay in the Others aggregate. The threshold is a size rule, not a product rule: Afipsky, Ilsky, Yaysky and Mari stay in the registry although nothing confirms that they make AI-92 or AI-95, and the registry says which grades each plant can move. Where the Lab has had to split or add a plant without a published nameplate, the figures are marked provisional.

Maintenance is not damage. An outage with no strike is maintenance. The Lab does not model future maintenance outages and does not treat past ones as damage: a plant that was stopped for planned work, or after an incident that was not a strike, carries no hit and no damage date, and the reason is recorded beside its anchor.

2. The rule on sources

No source available on this subject can be made to overstate Russian damage. Every one of them is biased toward less damage and faster repair, or is a balance whose every manipulable input pushes the same way. So each source is used only on the side its bias allows.

3. How each source is used

SourceDirection of biasUsed as
Russian state media, officials, company statements on repairs and supplyless damage, faster repairceiling on restoration; never a repair time
Reuters, industry-source reporting on outageslags, needs two confirmations, conservativefloor on damage; dates of strikes and restarts where confirmed; evidence tier B in the strike log
Outside crude-runs estimates (EA Analytics, Novi, IEA)balance methods, shared spine, all manipulations push upceiling on crude runs; used one-sidedly in the crude gate (section 6), never for the high-octane chain
Satellite thermal and radar imagerysees hot or cold, not rate; blind to secondary units and partial operationconfirms a plant is down; cannot confirm what it makes
SPIMEX exchange trades and pricespolicy instruments (section 4)not a supply series
SPIMEX executed deliveries and the non-execution rateagainst interestthe Lab's own variable, AI-95 by plant, with the lie already subtracted
Pump-side observation (station availability, queues, rationing orders, regional bans)against interestthe panel's primary observable; the gate-1 anchor
Strike log (OSINT, governors, Reuters)mixed, tieredstrike rate and damaging share; unit attribution stated as OSINT-grade where it is

4. Decrees that changed what the numbers mean

The pattern is constant: leave the headline rule in place, change the small print on compliance, and mislead anyone who reads only the headline. The fuel-market cases the Lab has to account for:

Exchange sales. The share of gasoline that must be sold on the exchange was 10% from 2013, raised to 13% in September 2023 and 15% in October 2023, cut to 10% in July 2026, the first cut ever. Resolution No. 1003 of 10 August 2026 then "clarified" compliance: up to 8 points can be met by confirmed off-exchange deliveries to farms, Russian Railways, builders or anyone collecting the fuel themselves. Only 2% must still be sold freely on the exchange. The headline still reads 10%.

Exchange execution. From May to August 2026 the oil companies failed to execute 59% of exchange gasoline contracts; about 20% ended in default or cancellation (Kommersant, 3 September 2026). The Russian Fuel Union had written to the deputy prime minister that buyers could not collect what they had bought. The exchange's own version, 8 September: 48% executed, 20% postponed by agreement, 17% "in delivery". A trade on SPIMEX this summer was a promise, not a tonne. This is why the Lab uses executed deliveries and the non-execution rate, and does not use traded volume: a 59% non-execution rate is a statement against interest, published inside Russia, and a direct measure of the gap between what the companies say they have and what they can physically ship. It is the Lab's variable, AI-95 by plant, with the lie already subtracted.

Prices. The exchange price is held near a state reference price by the damper subsidy, paid to the large companies only while the price stays inside the allowed gap; the gap for gasoline was widened from 10 to 20%, and the wholesale-price test was suspended until 1 May 2026. Independent chains, with no refinery and no damper, are held by the antimonopoly service: warnings, dominance cases, turnover fines. Since June 2026 there is no single market price: the exchange shows one AI-95 price, official statistics another, and independent stations pay a third. The only price with information in it is the street price, and there is no respectable public series for it, which is why the Lab dropped its street-premium check.

Fuel class. Class 3 permitted in July 2026, class 2 at the pump from 1 September 2026, billed as stabilising supply. The Lab treats it as what it is: the formula giving way, and a quiet tax paid later in engine repairs.

Publication. Refinery-level production and crude runs were withdrawn from public release in 2025; prices still appear weekly and by grade, so the record looks intact. Production now leaks from the closed CDU TEK bulletins or is reverse-engineered from the extraction tax, whose coefficients the state sets. The Lab reads a blackout as a message: a series stops when hiding it costs less than showing it, which puts the true value below anything the last printed point would support. On 28 September 2026 a presidential decree went further: the volumes of oil processed and of products made by individual refineries may no longer be published, in the media or online, unless the company itself discloses them (Reuters, 28 September). For the Lab this cuts two ways. The agency reports of throughput that supply its observations will become rarer, so modelled repairs will carry more weight and observations less. And silence after a strike counts for nothing either way: it is not a restart, and it is not proof that a plant is still down.

Each of these is a dated admission that the line has moved, not proof that the state is in control. What matters is not how many support measures are announced but how often the rule has had to be rewritten.

5. Buffers

A stockpile, a reshuffle inside the system or an official delay keeps the published number from showing damage for a while; it does not undo it. In earlier crunches stocks at refineries, depots and stations were drawn down to hide how much capacity had been hit. In the third wave there is much less of that slack: commercial gasoline stocks fell from 1.7 to 1.5 Mt between late June and late July 2026, and the strike-to-queue lag compressed from two weeks to three days in August. A calm pump is a statement about how much buffer is left, not about the system. The Lab therefore assumes no storage buffer: the card that let a reader assume one was removed in 1.24.0.

6. The 2026 setting and the gates

2026 is not 2024. In 2024 and most of 2025 the plants hit were near the border and mid-sized, the spare-part kits were on the shelf, the payloads smaller and the crews less practised. The third wave from May 2026 hit the largest plants repeatedly, the kits for high-octane units are gone, and plants take longer to come back. So 2024-25 repair experience enters the Lab only as a historical upper bound on repair speed; a mean of published successful repairs in 2024-25 is not an estimate of present capacity.

The Lab tests itself twice, with tolerances stated in advance:

The claim that a high share of damage falls on the high-octane chain is an inference from product-side evidence, the AI-95 shortage running ahead of AI-92 and the plants that reported waiting for imported equipment, not an observation from strike reports; the mechanism chart carries its own falsifier.

7. Two roads to the same number, and a warning about the second

The Lab counts capacity: plant by plant, unit by unit, from the registry and the strike record. Everyone else counts a balance: crude production minus exports, with the remainder called refining. The two are independent, so where they meet the number is worth something, and where they part company one of them is wrong in a way that can be named. On 12 September 2026 the Lab has 160.4 Mt a year of crude capacity available at the 33 plants it tracks, which is 3.22 million barrels a day, and that is a ceiling on runs rather than runs; with the sixty-odd mini-refineries outside the registry the countrywide ceiling is near 3.6 to 3.7.

Against that, the balance. The IEA reported Russian August production at 8.36 mb/d and exports at 6.44 mb/d, and a widely shared reading subtracted one from the other to conclude that only about 1.9 mb/d is being refined. The subtraction does not hold: the 6.44 figure is exports of oil and refined products, as the agency's own split makes plain (crude down 330 kb/d in the month, products down 80 kb/d; revenues 11.28 bn dollars for oil against 2.59 bn for products). Product exports are an output of refining, not a competing use of crude, so subtracting them counts the same barrels twice. There is a physical check as well: 6.44 mb/d of crude out of 8.36 mb/d of production would be 77% of output leaving as crude, against a historical 48%, and it would have to pass through berths that are themselves under attack, with Primorsk closed, Novorossiysk at about a third and Ust-Luga stopped on 1 September.

Done correctly, with product exports near 1.2 to 1.4 mb/d and crude exports therefore near 5.0 to 5.2, the balance gives runs of about 3.0 to 3.1 mb/d. That is within a few per cent of the Lab's independent capacity ceiling, which is the most useful cross-check the Lab has had: two methods sharing no data agreeing on the same answer. It also places the figure of 3.6 to 3.8 mb/d, carried by Bloomberg and EA Analytics from tanker-based balances, above what the plants can physically run, which is exactly the direction the rule in section 2 predicts for a balance built on flows that can be hidden. The lesson runs both ways. A number that is too low can be reached by an arithmetic slip as easily as a number that is too high, and an analyst who wants the shortage to be worse will find the slip agreeable. The corrected figure is the stronger claim precisely because it survives being checked.

8. What counts as evidence that a refinery is back

A strike is loud and a restart is quiet, so the Lab has always modelled restarts rather than recorded them. That rule now has an exception: restarts are modelled until they are observed. An observation is a quantified operating level from an agency or industry source, such as Reuters’ report on 15 September that NORSI and Volgograd were running at about a quarter of nameplate, or a hard statement that a unit is still down, such as Syzran’s AVT-5 still under repair two months after it was hit. From its date an observation replaces the modelled state of that unit, and repair continues from there. A quarter of crude throughput is recorded as exactly that: the octane chain keeps its modelled state, because nothing reported says the reformer came back with the crude unit, and a plant running at a quarter of its crude may make far less than a quarter of its AI-95.

Two kinds of signal count in one direction only. Exchange activity is not evidence of production: from May to September only 41% of gasoline contracts struck on the St Petersburg exchange were fulfilled, and a fifth ended in default or cancellation (Kommersant, 3 September 2026), so a refinery basis still being offered says nothing about what the refinery is making. A refinery’s products being withdrawn from the exchange remains a useful signal that it has stopped. Thermal imagery works the same way: a unit that stays cold across several passes, against its own operating baseline, is evidence of an outage; a unit that turns hot again is evidence of activity, which can be start-up, circulation or testing, and not of throughput.

The record now also allows a second check of the model, beside the two gates. The Lab assumes that a hit crude train comes back in one of two ways: quickly, when nothing fabricated is needed, or after a parts-bound repair with a median of about nine weeks. The first observed durations fall exactly into that split: Saratov was back three to four weeks after the 31 May strike, Ryazan two to three weeks after the July strike and about nine weeks after the May one, while Syzran’s AVT-5 was still down more than nine weeks after 12 July, with its reformer damaged beside it. No constant needed changing. This is the test the drift measurement was built for, and it is the first time the record has been long enough to run it.

One figure is worth naming because readers will meet it. Kpler put Russian refinery runs at about 4.3 million barrels a day in August and 4.6 in September. That is well above the ceiling the Lab computes from plant capacity, and most of the gap is the upward bias of any method built on tanker movements and satellite heat, the one section 2 describes; such estimates also lag the strikes by weeks. Part of the gap is the Lab’s own doing: until the observations above were recorded, it held NORSI and Volgograd at zero, and it may still be too harsh on Perm, where a published runs figure is not accepted until a second, independent sign supports it.

The observations the gates test against are now kept as dated series, one per source and never blended: the gate uses the latest point of the primary series and, once that point is more than two weeks older than the state it tests, says the observation is aging rather than silently comparing against an old number. Secondary series, such as gdebenzin’s crowdsourced reports, are shown beside the gate as cross-checks with their own definition, because a gate that changes source mid-series tests the source, not the model. Two adjustments are declared rather than hidden. From 1 September observed AI-92 availability is reduced by 10%, within a range of 5 to 15, with the band widened by 5 points, because the K2 permission and drivers leaving AI-95 raise AI-92 availability without any refining. And observations from 15 to 25 September are kept out of the gate anchor as a possible pre-election release of stocks, which gives the Lab a prediction to register: if the improvement around the 20 September vote was a drawdown, availability falls again in the first half of October.

9. What this page is not

It is not a claim that Russian data are useless. Against-interest statements from inside Russia are the strongest evidence this Lab has. It is a claim that respectability is not accuracy, and that in a war of attrition the state spends real effort on exactly the figures outsiders use.

10. Regions: how they are built

The regions follow Russia's eight federal districts, the standard statistical grouping, with two changes made for the model: Moscow and Moscow Oblast are separated from the rest of the Central district, and the Southern and North Caucasus districts are merged. Product moves only between adjacent regions, along product pipelines and rail; the adjacency is Moscow to Central, Northwest and Volga; Central to Moscow, Northwest, Volga and South; Northwest to Moscow and Central; South to Central and Volga; Volga to Moscow, Central, South and Urals; Urals to Volga and Siberia; Siberia to Urals and the Far East; the Far East to Siberia only.

Demand shares are provisional and are marked as such in the registry. Occupied Ukrainian territories are not Russian regions: observations from them can enter the model only as mechanism description or precedent, never as a region, a threshold or a card.

RegionBasisFederal subjectsRefineries in the registry
Moscow and Moscow region
MSK · demand share 15% (provisional)
Central Federal District: the federal city of Moscow and Moscow Oblast, split out because the capital is the one node the model lets draw from anywhere and because its supply is politically shielded.Moscow (federal city), Moscow OblastMoscow (Kapotnya)
Central, excluding Moscow
CEN · demand share 14% (provisional)
Central Federal District without Moscow and Moscow Oblast.Belgorod, Bryansk, Vladimir, Voronezh, Ivanovo, Kaluga, Kostroma, Kursk, Lipetsk, Oryol, Ryazan, Smolensk, Tambov, Tver, Tula, YaroslavlRyazan, Yaroslavl (YANOS)
Northwest (St Petersburg)
NW · demand share 9% (provisional)
Northwestern Federal District, unchanged.Arkhangelsk, Vologda, Kaliningrad, Republic of Karelia, Komi Republic, Leningrad Oblast, Murmansk, Nenets Autonomous Okrug, Novgorod, Pskov, St Petersburg (federal city)Kirishi (KINEF), Ukhta
South and North Caucasus
SOU · demand share 14% (provisional)
Southern and North Caucasus Federal Districts merged. Occupied Ukrainian territories that Russia lists inside its Southern Federal District (Crimea, Sevastopol, and the occupied parts of Donetsk, Luhansk, Zaporizhzhia and Kherson oblasts) are not Russian regions and are not counted here, in the demand shares, or in any threshold of the model.Adygea, Astrakhan, Volgograd, Kalmykia, Krasnodar Krai, Rostov, Dagestan, Ingushetia, Kabardino-Balkaria, Karachay-Cherkessia, North Ossetia-Alania, Chechnya, Stavropol KraiVolgograd, Tuapse (no gasoline), Novoshakhtinsk (no gasoline), Ilsky (no gasoline), Afipsky (no gasoline), Astrakhan GPZ
Volga
VOL · demand share 18% (provisional)
Volga Federal District, unchanged.Bashkortostan, Kirov, Mari El, Mordovia, Nizhny Novgorod, Orenburg, Penza, Perm Krai, Samara, Saratov, Tatarstan, Udmurtia, Ulyanovsk, ChuvashiaKstovo (NORSI), Nizhnekamsk (TANECO), Perm, Salavat, Ufaneftekhim, Syzran, Novokuibyshevsk, TAIF-NK, Ufa (Ufimsky), Kuibyshev (Samara), Saratov, Novoil, Orsk, Mari (no gasoline)
Urals
URA · demand share 10% (provisional)
Ural Federal District, unchanged.Kurgan, Sverdlovsk, Tyumen, Khanty-Mansi Autonomous Okrug, Chelyabinsk, Yamalo-Nenets Autonomous OkrugTyumen (ex-Antipinsky), Surgut ZSK
Siberia
SIB · demand share 13% (provisional)
Siberian Federal District, unchanged.Altai Republic, Altai Krai, Irkutsk, Kemerovo, Krasnoyarsk Krai, Novosibirsk, Omsk, Tomsk, Tuva, KhakassiaOmsk, Angarsk, Achinsk, Yaysky (no gasoline)
Far East
FE · demand share 7% (provisional)
Far Eastern Federal District, unchanged.Amur, Buryatia, Jewish Autonomous Oblast, Zabaykalsky Krai, Kamchatka Krai, Magadan, Primorsky Krai, Sakha (Yakutia), Sakhalin, Khabarovsk Krai, Chukotka Autonomous OkrugKomsomolsk, Khabarovsk