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.

EPR reporting automation for packaging manufacturers

By YBO · · 7 min read

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_size is S, and the period is the year, such as 2026-P0.
  • Packaging type is SP for all packaging combined, or HDC for 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 Rigid or Flexible with 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, P6 only goes with OM, and OM can'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.

Keep reading