Frontierby eninvs

Language: EN / RU

How we rebuilt our Russian oil and gas models: real Urals, the refining leg and what we have not proved

We go through what was broken in our Russian oil and gas models, what we fixed and what remains unproved. In short: the oil model now explains twice as much, and Gazprom has stopped being a coin toss. But the out-of-sample test showed the limit of applicability: the model works on EBITDA and does not work on net income, so it does not close the chain down to the dividend. We write about that too.

The trigger was simple. LUKOIL reported strongly for the first half, the stock has gained about 13% since the end of August, and it was not in our recommendations. We set out to find out why. We pulled out a chain of problems that turned out to be far longer than one name.

Our database had no Urals series at all, so we had been modeling oil on Brent

The first finding devalued everything built on top of it. The database has series 15. It is called "Brent oil", and it really is Brent. The model labeled it as Urals. Next to it sit series 77 "Urals oil" and 178 "Russian oil", which look like genuine quotes but on inspection turned out to be the same Brent minus a fixed USD 12.64 and USD 24.50 on every date. Series 260 has been frozen at 65.49 since time immemorial. So we had no live price of Russian oil at all, and the discount was a constant.

The real discount is not a constant. According to official Ministry of Economic Development data (monitoring under Article 3.1 of the Law "On the Customs Tariff", Argus quotes), over 2024-2026 it ranged from USD 7.24 in April 2026 to USD 25.17 in July, with a jump from roughly 10 to 19-25 in November 2025. That is a spread of USD 18 where the model held 12.64.

The official monthly average price is now pulled by a separate loader, the daily Urals is built as Brent minus the month's discount, and this is updated daily.

The official Urals discount to Brent by month versus the constant USD 12.64 that was hard-coded into our series. The model did not see the jump in November 2025 at all.
The official Urals discount to Brent by month versus the constant USD 12.64 that was hard-coded into our series. The model did not see the jump in November 2025 at all.

The real oil price did not rise at all over the half-year, yet LUKOIL's EBITDA doubled

Here is the number that made all of this worth doing. LUKOIL's EBITDA for the first half of 2026 against the same half of 2025 (continuing operations, one perimeter): RUB 421.9 bn against RUB 815.3 bn. The increase is RUB 393.5 bn. Decomposition by leg. The oil leg at the real Urals in rubles gave minus RUB 5.9 bn, that is, zero. The export crack-margin leg gave plus RUB 435.4 bn.

The old Brent-based model saw a ruble price increase of RUB 528 per barrel where Urals gave nothing. It was catching not the oil price but its own discount constant. Multiplied by 0.25 and by production, this illusion explained 11% of the move in EBITDA.

Decomposition of LUKOIL's half-year EBITDA increase. The oil leg at the real Urals gave zero; the entire increase came from the export crack margin, which the model did not have.
Decomposition of LUKOIL's half-year EBITDA increase. The oil leg at the real Urals gave zero; the entire increase came from the export crack margin, which the model did not have.

Refining explains the move, and the model had no such leg at all

At LUKOIL, refining is comparable to production, and in the model it played no part. We added a second leg: refining multiplied by the change in the export crack margin in rubles.

The key point is that we estimated the coefficients rather than setting them. The old model had X_net = 0.25, derived from the reasoning "Russian oil at the margin is taxed at roughly 75%". It sounds convincing, and on testing it explains one ninth of the move. The new coefficients, 0.21 for oil and 0.72 for the crack, come from a regression on a panel of six companies.

The international crack works, not Russian domestic quotes, and that is a consequence of the damper

We tested both legs honestly. Russian domestic quotes (diesel, SPIMEX fuel oil, the ECIP index) do not pass into the model. They break the coefficients, and the sign starts to dance. Export parity works.

The reason is substantive, not technical. The damper ties refinery economics to export parity even on domestic sales, so it is the damper that is the driver, while domestic prices turn out to be a consequence. We kept the domestic series in the engine, as they will be needed for work on the damper cut-off, but they do not enter the potential calculation.

The model explains EBITDA across names and explains net income not at all

This is the most important section, and it is not flattering.

The leave-one-name-out test works like this. We train on five companies and predict the sixth, which is exactly what a screener needs.

The coefficients are stable across folds: oil 0.17-0.24, crack 0.63-0.83. For LUKOIL, which the model had not seen in training, the miss was minus 36% against minus 92% for the old one.

We train on five companies and predict the sixth. The new specification explains twice as much and errs less, and the coefficients are stable across folds.
We train on five companies and predict the sixth. The new specification explains twice as much and errs less, and the coefficients are stable across folds.

Now for what matters more than praise. We ran the same specifications on two targets at once and with two methods of testing.

On EBITDA across names the model works. Across periods and on net income it does not work in any variant.
On EBITDA across names the model works. Across periods and on net income it does not work in any variant.

Across periods, that is, when you drop a whole period and try to predict it, R2 is near zero for every specification without exception. On the long sample from 2019 the figures look better (0.52 for the old model, 0.46 for the new), but they cannot be trusted: before May 2024 "Urals" there is our own reconstruction with a constant discount, that is, almost the same Brent, and the test compares the model with itself. The real long history of Urals still has to be assembled, and that is a task, not a verdict.

The result on net income, however, is a verdict. R2 is negative in all four specifications, under both methods of testing, and the direction is guessed about as well as by tossing a coin.

The reason is clear and cannot be cured by tuning coefficients. The net income of Russian oil companies is made by exchange-rate revaluations, impairments, one-off items and financial expenses, and a price model has nothing to do with them. Between EBITDA and profit there is a layer that the model does not have.

The practical conclusion. The model is fit for ranking names by operating sensitivity to prices, and not fit for forecasting profit or dividends. The dividend chain is calculated by a separate model, and we have not yet measured its predictive power.

At Gazprom the link with TTF changed sign, and 28.5% of group EBITDA is actually oil

The Gazprom map had TTF with a weight of 0.50 and LNG with 0.10. That is the revenue structure from before 2022.

We calculated the correlation of quarterly EBITDA levels with prices.

The link with the European hub did not just weaken, it flipped. It also turned out that 28.5% of group EBITDA is Gazprom Neft (RUB 1,056 bn out of RUB 3,702 bn on our own LTM figures, at an ownership stake of 95.68%), that is, oil and refining, which the gas map did not contain in any form.

The new branch is assembled from three parts. Gazprom Neft's oil model multiplied by the ownership stake, plus domestic gas, plus a small export leg. Out-of-sample test on six quarters with a base of 2024 and later: before, R2 = minus 2.26, error 20.9% of EBITDA, direction right in 50% of cases, literally a coin. After, R2 = plus 0.37, error 8.8%, direction 83%.

Gazprom's potential, as a result, fell from plus 400% (it was hitting the cap) to plus 27%.

Gazprom's quarterly EBITDA against two gas prices. Since mid-2023 it has followed the domestic index, while the link with the European hub has changed sign.
Gazprom's quarterly EBITDA against two gas prices. Since mid-2023 it has followed the domestic index, while the link with the European hub has changed sign.

The target multiple equaled the current one, so the model had no re-rating at all

A separate defect that affected the whole Russian universe, not just oil. The target multiple in the model was equal to the company's current EV/EBITDA. This means the model asserted that fair price equals today's price plus the change in EBITDA. There is never a re-rating, and the cheapest stock in the group gets the smallest multiplier on earnings growth.

We switched to the three-year median, the very one that our own multiple-history builder had long ago declared the exit multiple. It works in both directions, and that matters. Tatneft rose from plus 21% to plus 75%, Surgutneftegas from 50 to 102%, NLMK from 10 to 47%, but Rosneft fell from 67 to 44%, Gazprom Neft from 62 to 41%, Severstal from plus 22 to zero.

The reversion to the median has to be damped if the multiple fell because earnings grew

A trap that is easy to fall into and worth remembering. EV/EBITDA falls for two completely different reasons.

If the stock got cheaper, reversion to the median is legitimate, and that is the upside. If EBITDA grew, the multiple fell mechanically, through the denominator, and demanding a return to the old median means paying the old multiple for the new, larger earnings. That is, counting earnings growth twice: once in the EBITDA forecast and a second time in the multiple.

Without protection this was caught at Yuzhuralzoloto (earnings up 2.28 times), Seligdar (1.97), Gazprom (1.54), Cherkizovo (1.49), RUSAL, En+ and partly Polyus. The rule is simple. If LTM EBITDA is g times above its three-year average, the re-rating coefficient is divided by g.

A hard discount for money that does not reach the minority shareholder

A separate axis that did not exist before. The governance multiplier answers the question "how is this company managed". We added a second one. Will the modeled upside reach the shareholder at all.

We measure the fact over five years. Dividends paid relative to the sum of positive profit, multiplied by the regularity of payments. The floor is hard, at 0.35.

Both components are mandatory, because each one on its own lies. Level without regularity praises a one-off payment. Gazprom paid out 19.7% of profit over five years, but paid in one year out of five. Regularity without level praises pennies. Surgutneftegas common pays every year, but pays out 6.8% of profit against RUB 2.57 trn earned.

The control test, for which the construction was made more complex, is this. Inarctica paid in each of the five years and paid out 34% of profit, multiplier 1.00, no penalty. It does not pay only in the latest period, and the model tells that apart from those that never pay.

Each dot is a company: how much profit was paid out over five years and in how many years there were payments. Green: no penalty; red: on the hard floor of 0.35.
Each dot is a company: how much profit was paid out over five years and in how many years there were payments. Green: no penalty; red: on the hard floor of 0.35.

Surgutneftegas preferred: the model was alive, but the showcase displayed a different one and had not updated for a week

A separate story, and it is not about the model but about how showcases diverge.

The Surgutneftegas preferred model in Frontier turned out to be fully alive. The price is taken from MOEX (a ten-minute VWAP on the futures), the OFZ curve and RUONIA are taken as of the date, and the inputs are updated by an overnight snapshot. Potential plus 8.8%.

The portal, however, showed plus 71.9%, and it was an entry from September 9, while the rest of the table had data up to the 15th. The cause was found quickly. The portal calculation turned out to be an orphan: it has not a single reference in the crons or in the code, and it was run by hand. On top of that it was wrong on three independent grounds, and all three inflated the potential. A tax of 16% against an actual effective rate of 32.6% and 35.5% in the reports; a fixed fair yield of 12.4% (the worst method in our own back-test); and the cash pile anchored in yuan when it is proven to be in dollars.

We made a single source of truth. Frontier publishes the result, the portal picks it up, and the portal's own calculation remains as a fallback in case of silence. The showcase now shows plus 8.8% and a target price that did not exist before.

Six bugs found along the way

They are not about the models, but each one cost real money or reputation.

What we have not proved and what remains open

The list is honest, because it will be read by those who use the models.

See also: market overview · valuation map · stock screeners