ECMWF open data is packed to travel: the number of bits used to store each value is set per parameter, so files are smaller without losing the information people use. From 20 October 2026, every field is set by the precision it actually needs, rather than inherited from the production and archive settings. The same per-parameter packing applies to all open data — 0.25° and 0.1°, IFS and AIFS.
What "bits per value" means
Every value, at every grid point, is stored in a fixed number of bits. More bits means finer steps between the values that can be represented — and larger files. Fewer bits means coarser steps and smaller files. The question is never "more or fewer" in the abstract; it is how fine each field actually needs to be.
| Bits per value | Distinct levels | Effect |
|---|---|---|
| 8 | 256 | Coarsest steps, smallest files |
| 12 | 4,096 | Fine steps |
| 16 | 65,536 | Finest steps, largest files |
Why it is set per parameter
For a field you read directly — 2 m temperature, 10 m wind — a few bits are plenty: the rounding is far below the accuracy of the forecast itself (about 0.25 K for temperature, 0.3 hPa for mean sea-level pressure). But the same rounding behaves very differently once you compute with the field. Taking gradients — winds from pressure, dynamics from geopotential — amplifies small-scale rounding, and the smoother the field, the more it is amplified.
| Field | Typical use | How much 8-bit rounding is amplified |
|---|---|---|
| 2 m temperature | Read directly | about 10× |
| Mean sea-level pressure | Pressure gradients | about 20× |
| 500 hPa geopotential | Smooth, dynamical | about 130× |
The field's own values barely move at low precision; the derivatives do. So fields read directly can use fewer bits, while smooth dynamical fields keep more. One blanket setting cannot serve both.
How each field is set
Every field is set to the fewest bits its use allows, and no fewer. Of 73 parameters:
- 60 are reduced to a lower bit count — the removed bits sit below the field's useful precision, so the values people read, and compute with, are unchanged to well within their own accuracy.
- 8 are kept at their current precision — gradient-sensitive fields (pressure, geopotential), categorical fields (precipitation type) and a few measured exceptions.
- 5 static fields (land-sea mask, orography, bathymetry) are left unchanged for now — they are sent once per cycle, so the volume is negligible.
Precision-sensitive and dynamical fields keep the bits they need; nothing drops below the level where the field carries meaning.
Per-parameter settings
The full list. Bits per value is the setting from 20 October 2026; Previously shows the earlier value where it changed.
| Parameter | Name | Levels | Bits per value | Previously |
|---|---|---|---|---|
| Kept at current precision (8) | ||||
gh | Geopotential height | 14 pressure levels | 12 | unchanged |
z | Geopotential | 14 pressure levels | 12 | unchanged |
msl | Mean sea-level pressure | surface | 12 | unchanged |
sp | Surface pressure | surface | 12 | unchanged |
ptype | Precipitation type | surface | 16 | unchanged |
ewss | Eastward turbulent surface stress | surface | 12 | unchanged |
nsss | Northward turbulent surface stress | surface | 12 | unchanged |
asn | Snow albedo | surface | 8 | unchanged |
| Temperature, humidity & cloud (11) | ||||
t | Temperature | 14 pressure levels | 9 | was 12 |
q | Specific humidity | 14 pressure levels | 9 | was 12 |
r | Relative humidity | 14 pressure levels | 7 | was 8 |
2t | 2 m temperature | surface | 9 | was 12 |
2d | 2 m dewpoint temperature | surface | 9 | was 12 |
skt | Skin temperature | surface | 9 | was 12 |
sot | Soil temperature | 4 soil layers | 9 | was 12 |
vsw | Volumetric soil water | 4 soil layers | 9 | was 12 |
tcw | Total column water | total column | 9 | was 12 |
tcwv | Total column water vapour | total column | 9 | was 12 |
tcc | Total cloud cover | total column | 7 | was 8 |
| Wind (6) | ||||
u | U wind component | 14 pressure levels | 11 | was 12 |
v | V wind component | 14 pressure levels | 11 | was 12 |
10u | 10 m U wind | surface | 11 | was 12 |
10v | 10 m V wind | surface | 11 | was 12 |
100u | 100 m U wind | surface | 11 | was 16 |
100v | 100 m V wind | surface | 11 | was 16 |
| Dynamical fields (3) | ||||
w | Vertical velocity | 14 pressure levels | 12 | was 16 |
vo | Relative vorticity | 14 pressure levels | 12 | was 16 |
d | Divergence | 14 pressure levels | 12 | was 16 |
| Ocean, ice & snow (7) | ||||
zos | Sea surface height | ocean surface | 10 | was 16 |
sithick | Sea ice thickness | sea ice | 10 | was 16 |
sve | Eastward sea-water velocity | ocean surface | 11 | was 16 |
svn | Northward sea-water velocity | ocean surface | 11 | was 16 |
rsn | Snow density | surface | 9 | was 16 |
sd | Snow depth (water equivalent) | surface | 9 | was 16 |
mucape | Most-unstable CAPE | surface | 10 | was 16 |
| Waves (12) | ||||
swh | Significant wave height | wave (sea points) | 10 | was 16 |
h1012 | Sig. wave height, 10–12 s | wave (sea points) | 10 | was 16 |
h1214 | Sig. wave height, 12–14 s | wave (sea points) | 10 | was 16 |
h1417 | Sig. wave height, 14–17 s | wave (sea points) | 10 | was 16 |
h1721 | Sig. wave height, 17–21 s | wave (sea points) | 10 | was 16 |
h2125 | Sig. wave height, 21–25 s | wave (sea points) | 10 | was 16 |
h2530 | Sig. wave height, 25–30 s | wave (sea points) | 10 | was 16 |
mwp | Mean wave period | wave (sea points) | 10 | was 16 |
pp1d | Peak wave period | wave (sea points) | 10 | was 16 |
mp2 | Mean zero-crossing wave period | wave (sea points) | 10 | was 16 |
cdww | Coefficient of drag with waves | wave (sea points) | 10 | was 16 |
mwd | Mean wave direction | wave (sea points) | 10 | was 16 |
| Accumulations & extremes (16) | ||||
tp | Total precipitation | surface | 12 | was 16 |
tprate | Total precipitation rate | surface | 12 | was 16 |
sf | Snowfall (water equivalent) | surface | 11 | was 16 |
ssr | Surface net shortwave radiation | surface | 10 | was 16 |
ssrd | Surface downward shortwave radiation | surface | 10 | was 16 |
str | Surface net longwave radiation | surface | 10 | was 16 |
strd | Surface downward longwave radiation | surface | 10 | was 16 |
ttr | Top net longwave radiation | top of atmosphere | 10 | was 16 |
mn2t3 | Minimum 2 m temperature (3 h) | surface | 9 | was 12 |
mn2t6 | Minimum 2 m temperature (6 h) | surface | 9 | was 12 |
mx2t3 | Maximum 2 m temperature (3 h) | surface | 9 | was 12 |
mx2t6 | Maximum 2 m temperature (6 h) | surface | 9 | was 12 |
10fg | Maximum 10 m wind gust | surface | 10 | was 16 |
10fg3 | Maximum 10 m wind gust (3 h) | surface | 10 | was 16 |
10fg6 | Maximum 10 m wind gust (6 h) | surface | 10 | was 16 |
ro | Runoff | surface | 11 | was 12 |
| Static fields (unchanged for now) (5) | ||||
lsm | Land-sea mask | surface | 8 | unchanged |
z_sfc | Geopotential (orography) | surface | 16 | unchanged |
sdor | St. dev. of sub-grid orography | surface | 16 | unchanged |
slor | Slope of sub-grid orography | surface | 16 | unchanged |
wmb | Model bathymetry | wave | 16 | unchanged |
| AIFS-only fields (5) | ||||
cp | Convective precipitation | surface | 12 | was 16 |
rowe | Runoff water equivalent | surface | 11 | was 12 |
lcc | Low cloud cover | surface | 7 | was 8 |
mcc | Medium cloud cover | surface | 7 | was 8 |
hcc | High cloud cover | surface | 7 | was 8 |
What it means for file sizes
Setting bits by evidence makes files noticeably smaller — modest for upper-air-heavy streams, large for wave data (roughly a quarter to two-thirds smaller, depending on the stream). Most of the saving comes from stepping the 16-bit fields down to where they need to be; the fields reduced to 7–9 bits add the rest. A blanket low setting would save more, but would damage the multi-level dynamical fields that carry most of the volume and most need the precision.
Is anything lost?
Nothing that is used. The bits removed sit below the level at which each field carries meaningful information, so the values people read, and the fields they compute with, are unchanged to well within their own accuracy. The data stays in GRIB2 with CCSDS compression; only the precision is tuned, per parameter, as every major provider does. The rounding is uniform and bounded at each grid point, with no bias or artefacts.
