Timeline, scope and impact

When exactly will ECMWF switch to full GRIB2, and how firm is the date?

We don't have the exact date yet.
The switch will happen with the implementation of IFS Cycle 50r2.
As of September 2026 the plan is:

Will GRIB1 production stop, or will both formats be produced in parallel?

Once IFS Cycle 50r2 becomes operational, the whole model output, through dissemination and MARS retrieval - will be GRIB2 only. GRIB1 production stops at that point. There is no permanent dual-format service.

The parallel period comes before the switch: while IFS Cycle 50r1 remains operational (mixed GRIB1/GRIB2), the IFS Cycle 50r2 e-suite will run alongside it producing full GRIB2, so users can test both simultaneously.

How long is the test/overlap window, and can it be extended?

We are planning for at least six months of parallel running between the start of the IFS Cycle 50r2 test period (e-suite) and the full implementation. There is no plan to extend this period.

Will the existing MARS archive be re-encoded into GRIB2?

No. Whatever was archived in GRIB1 stays in GRIB1 permanently. If you retrieve forecast output for dates before the migration you will still get the historical GRIB1/GRIB2 mix.

Because of this, our own tools (ecCodes, Earthkit and the rest) will continue to support GRIB1 processing in the future.

Will I have to change my MARS and dissemination requests and scripts, and how do I find out which ones?

Three ways to find out what breaks:

For dissemination, we will automate the requirement changes in PREd, users will not need to rewrite their dissemination requirements themselves.

ecCodes and conversion

Which ecCodes version do I need to be able to handle MTG2 data?

In principle any version from 2.42.0 onwards can interpret the GRIB metadata both before and after the migration. 2.42.0 is the minimum needed for the static sample dataset.

But the updates are still being released, the current recommendation is simply to use the latest release.

We still need to write GRIB1 for legacy products. Will new ecCodes versions still do that?

Yes. We don't intend to change anything in ecCodes regarding reading and writing GRIB1, we also need that capability for the legacy GRIB1 in MARS.

Encoding your own data to GRIB1, using the GRIB1 samples/templates, and linking your programs against the new ecCodes libraries all continue to work as before.
The difficulty is only when you try to take ECMWF's new GRIB2 data and write it back out as GRIB1 (see next question).

Can I just convert the new GRIB2 back to GRIB1 and keep my existing software?

In theory, yes, but - this is not supported and is strongly discouraged.
The GRIB2 → GRIB1 mapping is not guaranteed to be unique and a loss of information is possible. For several parameters it will simply not be possible.

Can I prepare now by converting today's GRIB1 to GRIB2 myself with grib_set -s edition=2?

Yes, provided you use a recent ecCodes, but it doesn't guarantee you the correctly encoded MTG2 equivalent GRIB2 data and is not reccomended either. For many parameters the paramId or shortName changes as well, and grib_set cannot change that for you. Consult the parameter mapping pages.

Test data

Where do I get GRIB2 test data?

As of September 2026, the static snapshot of one representative day's data encoded in full GRIB2 format is available through:

Currently IFS Medium-range control (ex-HRES) and ensemble including type=ssd and levtype=ml are provided. IFS Medium-range postprocessed parameters, IFS sub-seasonal and IFS Atmospheric Composition (CAMS) sample data will follow later.

Parameters, encoding and access

The parameter database shows my parameter in GRIB2, but dissemination sends GRIB1. Which keyword forces GRIB2?

There is no such keyword or a switch in MARS language or dissemination.

The Parameter Database describes what ecCodes can encode and decode, not how the archived data is actually stored. Dissemination can only send what exists in the archive, in the form it was stored, there is no on-the-fly re-encoding. Today the operational IFS produces parameters in the mix of GRIB1 and GRIB2 and AIFS already produces them in GRIB2 format.

What happens to gusts, min/max temperature and other statistically processed parameters?

These are the most disruptive changes, because GRIB2 expresses the processing period through metadata rather than through a distinct parameter name. The period-suffixed parameters give way to a single parameter plus a time span:

$ grib_ls -w endStep=24 -m -P shortName,paramId  …_10fg6_….grib2
shortName   paramId   step   timespan
max_i10fg   237318      24      6h

So 10fg / 10fg3 / 10fg6 (paramIds 49 / 228028 / 123) become max_i10fg (paramId 237318) with timespan= 3h, 1h or 6h. The same pattern applies to mx2t / mx2t3 / mx2t6 and mn2t / mn2t3 / mn2t6.  

Note you need a recent ecCodes to see this decoding — older versions report the field as plain 10fg.


Some parameters have no GRIB2 equivalent in the database. Will they be discontinued?

They are coming.

Parameters such as maxswhi, 10fgi, 10wsi, capesi, capei, sfi, 2ti, mx2ti, mn2ti, tpi are missing.
They all belong to the Extreme Forecast Index / Shift of Tails family and are planned for a future ecCodes release. We don't have a date yet.

The general principle: absence from the GRIB2 side of the parameter database means the encoding has not been defined yet, not that the product is being withdrawn.

Do units and values change?

Yes, for some parameters, and this is a separate change from the edition switch itself. We are moving from ECMWF-specific units to the WMO-recommended ones. Two most notable examples are precipitation parameters (including total precipitation, convective precipitation, large-scale precipitation, snowfall, runoff etc)

FlavourshortNameparamIdUnits
ECMWF unitstp228m of water equivalent
WMO unitstp228228kg m⁻²
 
FlavourshortNameparamIdUnits
ECMWF unitstcc164

(0 - 1)

WMO unitstcc228164%

The static sample dataset provides both flavours side by side (files with and without a _wmo_units suffix) precisely so users can test. 

You can find the full mapping on the following page: Migration to GRIB2 - changes to encoding of parameters

  • No labels