Author Archives: Jacek Błocki

War impact on natural gas market in US and EU

Natural gas market price in European Union and USA is different for a reason. EU has limited deposits and imports substantial amounts of natural gas, while US has vast resources and was the largest liquefied natural gas (LNG) exporter in 2023. Gas trading ecosystem is complicated there are many bilateral agreements with undisclosed price terms. However both US and EU have gas trading hubs with both spot and futures market prices publicly quoted, they often serve as benchmark to other contracts. In this article we compare Henry Hub (US) and TTF (EU, Netherlands) natural gas prices and how Ukraine war impacted them.

Gas price change over time

Data used for comparison come from Yahoo via Python API. I can share Jupyter notebook used to make figures, just let me know. Henry Hub quotes gas in USD/MMBTU (million British thermal units) while TTF uses EUR/MWh (1 MWh = 3.4121 MMBTU). Besides HH and TTF prices figure below shows North Stream gas price and retail price in Poland set by regulator.

North Stream was a direct connection between Russian and German systems. Gas price was set by bilateral contract, details are unknown. I’ve heard a rumour the price was set to 82 EUR/1000m3, which seemed too low to be true. What is true is 84.9m3 of natural gas represents 1MWh. North Stream gas (alleged) gas price converted to EUR/MWh was marked on figure below. As we can see Henry Hub price in peacetime is compatible. Each fairy tale has grains of truth.

Retail “frozen price” was set by market regulator in Poland to shield customers from wild raise of market gas price. Gas distribution company (state owned PGNiG) was compensated for retail losses. However protection system was not set for commercial customers, who experienced 10x or so price hike. I remember discussion with sport club owner who was forced to switch off tennis courts heating and cancel classes for children because of gas cost. As we can see frozen price is slightly above average TTF gas price in 2023. Of course 2022 was another story.

Frozen gas price is in force till mid 2024, once it expires gas price cap set by regulator will be in place. The cap is 50% higher than frozen price and more than double current TTF price.

Historically TTF gas price was above Henry Hub. Gap closing in 2020 took place during COVID-19 outbreak and widespread lock-downs resulting in demand drop. Briefly TTF gas price was even below Henry Hub, but 2020 is a very special case. In 2021 price gap widened, maybe gas prices were predicting Ukraine war? War outbreak in 2022 resulted in wild gas price rise in EU. It is not surprising since more than 50% of gas was imported form Russia and this source was abruptly cut. At some point TTF gas was 14 times more expensive then Henry Hub. Situation started to normalize in 2023, difference between markets was still high but at least wild price swings in EU somehow subdued.

Average price comparison

Figure below shows average gas price for Henry Hub and TTF calculated on annual basis. US prices returned to prewar level, while EU stay elevated.

Figure below shows average TTF/HH price ratio. We can say gas in EU before war traded at double US price, first year of war made it 6 times more expensive, now it trades 4 times US price.

War losses

EU countries use over 300 billion (300e9) m3 of natural gas per year, this equals 3.5 billion MWh (3.5e9). Using average gas prices we can estimate monetary impact of price hikes. Assuming prewar price at 20 EUR/MWh we have 110 EUR/MWh extra in 2022 and 20 EUR/MWh in 2023. It gives 385 + 70.0 = 455 billion EUR. High energy cost and volatility pushes manufacturing to leave EU. This affect not only GDP but also defense capabilities, Ukrainian shows it’s hard to fight modern war without industry base.

Why natural gas is expensive in Europe (2022-11-15)

This comment was written back in Nov 2022 and found in draft bin. Current US natural gas price below 1.8$ per MMBTU make 3$ markup in price formula detailed below even more eye-popping. Since then natural gas price dropped but US-EU price gab stays wide.

Linked article somehow explains why natural gas is so expensive in Europe. US supplier sells LNG at price defined by formula: HH_price*1.15+3$, where HH stands for Henry Hub price. Gas is sold on long term (10-15 years) contracts, the buyer is free to resell it at its discretion. HH price is quite volatile, today it stands 7.80 per MMBTU, so we have (7.8*1.15+3)/7.8=1.53, 53% markup but it needs to cover some processing costs like turning gas into liquid. LNG is sailed to Europe where it sells at TTF hub in MWh, 1 MMBtuIT ≈ 0.29 MWh so 3.4 MMBTU gives 1 MWh. So 1MWh of natural gas is sold at 12*3.4=41 USD while in Europe at TTF hub it is quoted 120 EUR – triple the purchase price. No wonder European Commission mulls price cap, but why countries are reluctant to support it? Thea are afraid of another market turbulence. US gas used to be more expensive than Russian, some importers were incurring losses. Situation changed once Russia invaded Ukraine and significant amount of Russian gas disappeared form the market resulting in panic buying at any price. Perfect opportunity for suppliers to recover past loses and make nice profits. But those greedy companies are connected with capital bonds to utilities forced by governments to sell gas at fixed price below purchase cost, my bill states 42EUR per MWh, which by strange coincidence is close to price paid at US ports… Unfortunately gas is in high demand, aggressive price cap can divert US made LNG elsewhere and result in sharp price spike or supply crisis.

You need to add a widget, row, or prebuilt layout before you’ll see anything here. 🙂

Covidmeter 2020-12-14

Covid-19 2nd wave finally hit San Marino, a long serving estimate of cumulative deaths ceiling. First death of 2nd wave in San Marino occurred 2020-11-19 there were 9 fatalities since, last one reported 13th Dec. For reference 1st wave death toll at San Marino was 42, Douglas Adams fans should recognize importance of this number. ECDC data set issued 14th Dec is the final daily update, from now on they switch to weekly reporting. I liked this source of data despite of its flaws, since it integrated many country sources. I have no idea why they have decided to change established reporting schedule. Updated Covidmeter chart below.

  1. North Macedonia made 4th place and death count is growing quite rapidly. The country has area similar to Belgium and around 2 millions inhabitants.
  2. Poland dashed past Russia and is chasing Sweden, let’s hope it will fail in this particular race.
  3. Russia has adopted Sweden like approach before 2nd wave, there is no lock down, however government advertises high hygiene standards and social distancing. So far this policy is paying off.
  4. Sweden approach works, there are casualties but countries with chaotic lock down policies take higher toll. Of course no lock down makes a nice target for political opposition – you gamble with people lives. However past experience shows the gamble was worth taking. Swedish government is free to use this argument for its defense.

Figure below compares Covid-19 1st wave in Belgium (200 days ago, dotted line) with current figures. As we can see no country made past 1st wave Belgium peak and 2 wave peak seems to have passed.

Netherlands (red line) compared to Belgium (green) had much lower death rate than nearby Belgium. They had lighter lock down policy, as BBC claims face masks were mandated only on 1st of Dec 2020, official policy here. I am not sure if face masks are mandatory outdoors, I was amused masks are not required “while swimming in a swimming pool”. This regulation indicates swimming pools are still open. Dutch experience shows face mask does no magic, however there is a pressure to enforce one so other governments don’t look stupid. In general there is a lack of analysis of what really works and why “compensated” with abundance of pressure to implement restrictions for the sake of public good.

Covid-19 status in Europe and ranking confusions

I it is very tempting to state country X leads in Covid-19 deaths or detected cases since it makes a flashy headline. However for the sake of understanding the situation, one should realize over which period was the ranking calculated and how significant is the difference between leader and others.

Chart below shows estimated number of Covid-19 ill in selected European countries. I believe true ranking should be build over entire pandemic duration (March 2020 till now, 23.11) using maximum value in this period. This ranking is shown on cart legend after country name. Countries are sorted top down according to latest reading to make country line location easier. Poland is 2nd in group on the day of reading, but only 12 in overall ranking. Poland 10 thousands ill per million is less than 50% of Belgium maximum (22 thousands per million). Belgium passed the peak and is trending down. Poland may have reached the peak, but we need to wait a couple of days to confirm downtrend. Tomorrow we may see Poland with highest number of ill in the group, yet its figure will be lower than today, just Switzerland figure was dropping faster.

Chart below shows daily deaths 7 days moving average for same country group as above. Averaging eliminates some data noise, countries like Belgium tend to provide preliminary data, they are revised (up) later. Averaging eliminates wild swings between last reading and previous ones. If tomorrow news flashes Poland has most deaths don’t let it deceive you. Currently Czechia, Poland, Belgium, Italy, Switzerland and France have very similar Covid-19 death count.


  1. Don’t focus on single number, look at time evolution and compare with other data.
  2. If somebody tries to convince you situation ins bad in particular country have a look at numbers and compare it with others.
  3. Sweden has neither compulsory mask nor lock down, yet it is doing quite well in above statistics. Some people don’t like Swedish approach and the are quite vocal. If you see another lament on desperate situation in Sweden recall the data and try to guess why the author tries to convince you Sweden is in serious trouble.

Covidmeter 2020-11-15

Belgium finally passed San Marino mark in cumulative deaths per million inhabitants. Belgium deaths are higher than other countries. Please keep in mind around 1.2% or 12000 per million people in any developed country with expected life span of 85 years pass away on annual basis. Covid-19 outbreak lasts around 8 months. During that period 9000 (8/12 * 12000) people per million died in Belgium, 1250 had Covid-19 diagnosed. In other words 14% of death count had Covid-19.

Daily deaths 7 day moving average is now trending down in Belgium and Netherlands. It will probably go down in Czechia as well. On chart below dotted line represents Belgium daily deaths from 1st Covid wave moved forward on time axis by 200 days, we plot it for reference. Solid lines are current data.

Covid-19 cumulative cases and cases mortality evolution

Cumulative Covid-19 cases are growing over time as long as epidemic is active, so does cumulative death count. Cases mortality defined as cumulative deaths to cumulative cases quotient varies over time. In this post we show how it evolved.

Chart below shows top 10 countries by cumulative Covid-19 cases per million inhabitants. It also shows Diamond Princess (cruise ship hit by Covid-19 at the beginning of pandemic) cumulative cases for reference.

Cumulative cases ranking

Top 10 countries by cumulative cases per million inhabitants are displayed on chart below, data are the same as above, but removed reference line changes y-axis range. We see leaders in ranking come form Persian Gulf area, they are closely followed by European countries. US (8) has the most cases in absolute numbers. Please note China – the source of problem is not there. They have either managed to eliminate Covid-19 or understood real risk relate to it and quenched media hype around it. I think the latter is true.

Mortality evolution

Chart below shows how Covid-19 mortality changed over time. Country list is top 10 by cumulative cases discussed above. Country rank in cases mortality is displayed next to its name. We see leaders of cumulative cases ranking Bahrain, Qatar have very low mortality. This may be due to climate, genetic difference, or just better overall quality of health service including widespread testing from epidemic onset. Please note for Belgium, Spain and US mortality rate dropped with growing number of cumulative cases. The easiest explanation is growth of testing capacity resulting in better detection.

Table below shows country details, Countries are sorted by cases mortality value at latest data point (end of curve). Please note difference between Spain with current (cumulative) cases mortality at 2.8% and Qatar 0.17% is over 10 fold. For comparison Diamond Princess cases mortality was around 1%.

CountryCases Mortality %Cumulative CasesCumulative Deaths
3United States of America2.3010554801242430


  1. Cases mortality goes down with number of cases detected. This shows high mortality readings are related to poor testing.
  2. Seasonal flue mortality according US CDC is around 0.15%. This is compatible with Covid-19 mortality in Qatar, while US figure is much higher 2.3%. Covid-19 toll may be inflated if all deceased with active Covid and other diseases are attributed to the former. Such an approach is initially prudent, but leads to impact overestimation.
  3. Taking into account impact of Covid on economy and society quality and quantity of data available is far from satisfactory. Those who have relevant data (China?) handle situation much better with more confidence.

Belgium Covid-19 active cases drop

Belgium Covod-19 active cases start to drop. Recent data for this country may be subject to correction, but downtrend is clearly visible. Similar effect may be in Czechia. Please refer to previous posts for explanation how active cases are calculated. Number in brackets after country name is all time rank in active Covid-19 cases count. Countries on chart are sorted top down according to most recent reading.

Please note Poland is now below 50% of Belgium peak value. I’ don’t expect Poland figure to much higher, we likely to see peak forming around current levels.

How many active Covid-19 cases are there?

Multiple sources quote number of Covid-19 daily cases, but information on actual count of patients active at any given moment is rare. ECDC data set I use does not show number of recovered patients, so it is not possible to subtract cumulative recoveries form cumulative cases to calculate number of ill people at any given moment. However we still can estimate number of Covid-19 infected using number of cases.

Estimation method

Whoever contracts Covid1-19 will either recover or die after some time. Let us make the following simple assumption regarding actual illness duration:

  1. Covid-19 patient is ill 14 days from infection date inclusive
  2. Then 7 day recovery period starts and number of infected patients drops linearly

Above rule will give us a set ow weights (see figure below) to be applied to daily cases in order to calculate current number of Covid-19 patients (cases).

Estimation results

Figure below shows estimated number of active Covid-19 cases for selected countries. Only countries above 1 million population were taken into account. Next to country name, in brackets, country all time rank in number of active Covid-19 cases is shown. In order to compare countries with different populations number of Covid-19 ill people (cases) per million is plotted.

  1. Belgium holds all time top in Covid-19 active cases. Czechia is number 2, its curve (in this scale) is similar to Belgium one, we don;t show it to avoid chart overcrowding.
  2. Israel and Qatar had high readings but they have dropped significantly. Israeli drop may be due to lock down imposed on country. I have no details on Qatar lock down policy.
  3. Sweden 2nd wave is much lower than Belgium and other countries, please note Sweden 1st wave was extended over time and the country had distinct lock down policy.
  4. Belgium number of active cases may have peaked, but since Belgium data are delayed (it takes 3 days before all cases are counted) we need to wait a bit in order to confirm this conclusion.
  5. What is happening now in Europe is very similar to Qatar experience, they have survived it so we will too. Unless health services are better organized there…

Strange data form Spain

ECDC data set for Spain shows some strange patterns, on 2 days daily death count is negative. One figure recorded 25th May is huge -1918, the other form 12th Aug is just -2 but still it should not be negative. I understand there may be situations where data need correction, but in data set presenting time series it should be done by correcting data at date when it was previously overstated. Otherwise entire data collection process becomes doubtful. Figure below shows daily deaths data for Spain with potentially wrong entries marked by orange dots.

Table below lists data points which need to be corrected:

indexDateRepGeoIdCasesDeathsCountries and territories
  1. Items 1,2 – Deaths from 2 days were probably recorded under one date
  2. Item 3 unusually high figure comparing to nearby points
  3. Item 4 negative deaths count (-1918)
  4. Items 5, 6 unusually high figure comparing to nearby points
  5. Item 7 negative death count (-2)
  6. Item 8 surge in death counts, can be attributed to 2nd wave impact, but for me it look as data glitch since it stands out nearby points


Items 3 to 7 from above table combined (688-1918+283+1179-2) total 230. Recording this figure on 26th May and zeroing existing entries can be a quick fix to the data, but the case requires a deeper investigation how Spanish data are reported. It is especially important if we take into account deaths surge reported Nov 4th. It looks like a data collection glitch, but it may as well represent valid data resulting from 2nd wave, so it definitely need investigation.

Added 2020-11-13:

It seems Spain has own understanding of time series. November spike comes from re-stating definition of Covid-19 deaths. Why do they post +1300 deaths occurred prior to 11th May together with current data (297 deaths on 2020-11-04) in November is hard to comprehend. Such an approach clearly distorts 2nd wave statistics.

Covidmeter 2020-11-08

Covidmeter shows number of cumulative Covid-19 deaths per 1 million people. Figure below displays top 5 countries in this ranking along with USA, Russia and Poland which were hand picked. Country rank in cumulative deaths is shown after its name. Diamond Princess and San Marino were added as reference and future impact prediction, please go to previous posts for rationale.

  1. No Covid-19 fatality was registered in San Marino since May.
  2. Belgium leads ranking again.
  3. Predictions regarding total population impact – 0.2% or 2000 fatalities per million made after Diamond Princess experience hold true. In fact no country so far exceeded San Marino figure.
  4. Covid-19 2nd wave in Belgium takes death toll while in Sweden deaths count is very modest.
  5. China (not shown on picture) unlike other counties it does not experience 2nd wave. They have either eliminated the virus (unlikely) or called off epidemic and focus on treating individual cases as they arise (probable).