Compliance
The EPR packaging data file, explained: columns, codes and common errors
How the UK EPR packaging data file works: all 15 columns, what every code means, a worked example, and the mistakes that get files rejected.
The EPR packaging data file is the CSV spreadsheet you upload to the government's Report packaging data service to report your packaging. It has 15 columns, and each row is one total weight of packaging for one combination of activity, type, class and material. Get the codes right and it uploads first time. Get one wrong and the file is rejected.
Everything here is based on GOV.UK's file specification for 2025 and 2026 data. If you've already got a file and want to know whether it'll be accepted, run it through our free EPR data file checker. It checks every row in your browser, so the file is never uploaded.
Last checked against GOV.UK on 23 October 2026. The format has changed between years, so always use the current file specification and template.
Start with the official template
GOV.UK publishes a packaging data file generator, an Excel workbook with the validation built in. You enter your data on one tab, and it produces the CSV on another for you to save and upload. There are also example files for large producers, small producers and compliance schemes.
If you're building the file by hand, use the generator, because it catches most errors before you get as far as uploading.
How the file works
Each row answers one question: how many kilograms of this kind of packaging did we handle in this period?
"This kind" means a particular combination of four codes, the packaging activity, packaging type, packaging class and material. If you supplied plastic primary packaging under your own brand to households, that's one row. The paper and card version of the same thing is another row. The same packaging imported rather than supplied under your brand is another.
The file holds your packaging totals for each of those groups, so individual products never appear in it. The product-level work happens beforehand, when you add up the weights.
The 15 columns
| Column | Header | What goes in it |
|---|---|---|
| A | organisation_id | Your 6-digit organisation ID, no spaces |
| B | subsidiary_id | A subsidiary's 6-digit ID, only if a holding company is reporting for it. Otherwise blank |
| C | organisation_size | L for large producers, S for small |
| D | submission_period | The period code, such as 2026-H2 (large) or 2026-P0 (small) |
| E | packaging_activity | What you did with the packaging (codes below) |
| F | packaging_type | Where it ends up, such as household or non-household (codes below) |
| G | packaging_class | Primary, secondary, shipment and so on (codes below) |
| H | packaging_material | The material code |
| I | packaging_material_subtype | Rigid or Flexible for plastic household or public bin packaging. The material name for "other". Otherwise blank |
| J | from_country | Only for self-managed waste: EN, NI, SC or WS |
| K | to_country | Only for self-managed waste transferred between nations |
| L | packaging_material_weight | The weight in whole kilograms |
| M | packaging_material_units | The number of units, for drink containers only |
| N | transitional_packaging_units | Leave blank for 2025 and 2026 data. Don't enter a zero |
| O | ram_rag_rating | The recyclability rating, for large producers where it's required |
What the codes mean
Packaging activity (column E)
| Code | Meaning |
|---|---|
SO |
Supplied under your own brand |
PF |
Packed or filled for someone else, unbranded, or for a brand owner that isn't a large producer |
IM |
Imported goods in packaging that you discard or supply in the UK |
SE |
Empty packaging you make or import and supply to others |
HL |
Reusable packaging hired or loaned out for the first time |
OM |
Packaging supplied into the UK through an online marketplace you own |
Report each activity separately, and each tonne of packaging under only one activity.
Packaging type (column F)
| Code | Meaning |
|---|---|
HH |
Household packaging, which includes most primary and shipment packaging |
NH |
Non-household packaging: all secondary and tertiary, plus primary or shipment you can show doesn't reach households |
PB |
Household packaging that commonly ends up in public bins |
RU |
Reusable packaging, the first time it's supplied |
HDC |
Household single-use drink containers |
NDC |
Non-household single-use drink containers (large producers only) |
CW |
Self-managed consumer waste |
OW |
Self-managed organisation waste, collected from your own sites |
CLR |
Closed loop packaging waste (from 2026 data) |
SP |
Small producers only: all packaging except drink containers, combined |
Packaging class (column G)
| Code | Meaning |
|---|---|
P1 |
Primary: holds a single sales unit |
P2 |
Secondary: groups sales units for the shelf or the buyer |
P3 |
Shipment: used to send goods to a consumer |
P4 |
Tertiary: used to move goods to a business |
P5 |
Non-primary reusable packaging (only with RU) |
P6 |
Online marketplace total (only with OM) |
O1 |
Self-managed consumer waste (only with CW) |
O2 |
Organisation waste by country (only with OW) |
B1 |
Public bin packaging (only with PB) |
Material (column H)
AL aluminium, FC fibre-based composite, GL glass, PC paper or card, PL plastic, ST steel, WD wood, OT other.
Recyclability rating (column O)
R, A or G for red, amber or green, with medical versions R-M, A-M and G-M. Large producers need a rating for household packaging, packaging that commonly ends up in public bins, and household glass drink containers. Leave it blank where it isn't required.
A worked example
For a made-up large producer reporting the second half of 2026, a few rows might look like this:
organisation_id,subsidiary_id,organisation_size,submission_period,packaging_activity,packaging_type,packaging_class,packaging_material,packaging_material_subtype,from_country,to_country,packaging_material_weight,packaging_material_units,transitional_packaging_units,ram_rag_rating
123456,,L,2026-H2,SO,HH,P1,PL,Rigid,,,18250,,,A
123456,,L,2026-H2,SO,HH,P1,PL,Flexible,,,4120,,,R
123456,,L,2026-H2,SO,HH,P1,PC,,,,9400,,,G
123456,,L,2026-H2,SO,NH,P4,WD,,,,31200,,,
123456,,L,2026-H2,IM,HH,P3,PC,,,,6780,,,G
Reading the first row: under its own brand (SO), this business supplied 18,250kg of rigid plastic (PL, Rigid) primary packaging (P1) that ends up in households (HH), rated amber (A). The wooden pallets in row four are non-household tertiary packaging, so they don't need a recyclability rating.
Small producers: a simpler file
Small producers use the same 15 headers but fill in far fewer of them:
organisation_sizeisS, and the period is the year, such as2026-P0.- Packaging type is
SPfor all packaging combined, orHDCfor household drink containers. - No nation, self-managed waste or recyclability data.
The mistakes that get files rejected
Most rejected files come down to one of a handful of small slips, and our data file checker catches all of them:
- Blank rows. Data starts on the row straight after the headers, with no gaps.
- Words instead of codes.
PL, not "Plastic". - Lowercase subtypes. It must be
RigidorFlexiblewith a capital letter. - Formatted weights. Whole kilograms, digits only:
18250, not "18,250" or "18250kg". - A zero in the transitional column. Leave it blank.
- Codes used in the wrong combination. For example,
P6only goes withOM, andOMcan't be used for public bin, reusable or drink container packaging. - Double counting transfers. Self-managed waste transferred between nations goes on separate rows as part of the total, not added on top of it.
- Saving in the wrong format. Upload a CSV, not the Excel file.
Getting the totals right
Once you know the totals, filling in the file takes minutes. Working out the totals is what takes the time. Each row adds up every product you supplied, multiplying units sold by the weight of each packaging component and grouping the results by material, class and type. To do that you have to match sales data from your ERP with packaging specs that often live in spreadsheets and supplier PDFs.
That matching up is where the hours go each period, and where errors creep in. It's also the part that automates best. We built this for a UK packaging manufacturer: the data gathers itself through the period and the file is produced ready to check, saving them around six weeks a year. See EPR reporting automation, or read how manufacturers stop EPR reporting eating their weeks.
Common questions
What format is the EPR packaging data file?
A CSV file with 15 columns, uploaded to the Report packaging data service. GOV.UK's Excel file generator produces it for you.
What units are weights in?
Kilograms, as whole numbers, with no commas or units.
Do I need a row for every product?
No. Each row is a total for one combination of activity, type, class and material. You add up your products first, then report the totals.
Who needs to give a recyclability rating?
Large producers, for household packaging, packaging that commonly ends up in public bins, and household glass drink containers.
When is the file due?
Large producers report every six months, by 1 October and 1 April. Small producers report once a year, by 1 April. See all the EPR deadlines for 2026 and 2027.
Where's the official specification?
On GOV.UK: the file specification for 2025 and 2026 data, which also links to the file generator and example files.