Why a receipt spreadsheet bounces: the rows Defra sends back

A receipt of waste upload fails in one of two ways. Either the file is not the file Defra expects, in which case nothing goes through, or individual rows carry a value the service will not accept, and those rows come back while the rest are taken. Almost every bounce a skip yard or transfer station sees is the second kind, and almost all of it sits in the same short list of fields: physical form, the disposal or recovery code, hazardous property codes, POPs detail, postcodes, dates and times, the receiver's own permit details, and weights in the wrong unit.
The reason that matters is the clock, not the typing. Reporting a load you have received is due by the end of the second working day after the day it came in. If you upload on the afternoon of day two and six rows bounce, you have no room left to chase a weighbridge ticket, work out which load it belongs to, and resubmit. So the useful place to catch these faults is at the gate or at the end of the shift, not in the upload screen.
What follows is the list in the order it tends to bite, with the thing to look at before you upload.
The template itself has been edited
Defra publishes the template and expects it back in the shape it went out. Adding a helper column, renaming a tab, reordering columns, or pasting your own sheet into the file will fail validation before any of your data is read. This happens most often when someone builds a working copy with an extra column for the vehicle or the customer name, then uploads the working copy.
Spot it: download a fresh copy of the template for each submission and fill that. Keep your own working sheet separate and paste values in, never structure. Defra has been revising the file during the beta, so a copy saved in the spring is not necessarily the copy that will pass today.
Physical form is not one of the permitted words
Physical form is a fixed list, not free text. Gas, liquid, solid, powder, sludge and mixed are the values; anything else bounces. "Loose", "rubble", "bulk" and "skip" all look obviously right on a ticket and are all wrong in the file.
Spot it: read down the physical form column and check every cell is one of those six words, lower case, with no trailing space. A find-and-replace on your own shorthand is quicker than fixing rows one at a time afterwards.
A waste item with no disposal or recovery code
Each waste item needs at least one disposal or recovery code against it, with a weight. This is the fault that catches yards that have always written a transfer note and never had to say what happened next. The load arrived, it got tipped, it got picked over, and nobody wrote down that the picked fraction went to recovery.
Spot it: for every EWC line on the day, ask what you did with it and write the D or R code at the same time you write the weight. If one load splits across two routes, it needs two lines whose weights add up to the load.
Hazardous ticked with no hazardous property codes
If a row is flagged hazardous, the hazardous property codes have to be there. The common version of this is an asterisked EWC code entered without its star, so the row is quietly treated as ordinary waste, or a row marked hazardous because the operator knew it was, with the HP codes left blank because the ticket did not carry them.
Spot it: check the asterisks. Asbestos and several construction and demolition entries are absolute hazardous entries and must carry the star. If the star is there, the HP codes must be too, and hazardous loads travel on a consignment note as well, which is a separate obligation from the receipt report.
POPs flagged without the substance and the concentration
Flagging persistent organic pollutants as present commits you to naming the substance and giving a concentration. Half a POPs entry bounces. Upholstered domestic seating is where most yards meet this.
Spot it: if anyone has ticked POPs, the two boxes beside it cannot be empty. If you do not have a concentration, you are not ready to upload that row.
Postcodes without the space, or not UK postcodes
Postcodes must be UK postcodes with a space in the right place. Pasted from a customer's email, they arrive as one unbroken string, and that fails. Non-UK addresses and old nine-character site references also fail.
Spot it: scan the postcode columns for cells with no space. This is the single most mechanical fault on the list and the easiest to fix in bulk.
Dates and times in the wrong shape, or on the wrong day
Date and time received wants a day-month-year format with a time, in London time. A spreadsheet that has helpfully reformatted a column to US order will bounce every row in it. So will a blank time on a load that came in at seven in the morning.
Spot it: format the column as text or as dd/mm/yyyy hh:mm before you type into it, and check the first and last row of every batch. Watch the night shift: a load tipped at half eleven at night belongs to that day, not the next one.
The receiver's own details are missing or do not match the permit
Every row needs the receiving site identified: site name, the environmental permit or authorisation number, address and contact. A typo in the permit number poisons the whole submission, and because it is the same wrong value on every row, it looks like a file fault rather than a field fault.
Spot it: hold the permit certificate next to the screen once, check the number character by character, and then stop retyping it. This is one value that should be stored once and copied in, never typed per load.
Weights in the wrong unit
The weighbridge ticket says tonnes, the box may want something else, and 3.2 typed where 3,240 belongs is a load that under-reports by a factor of a thousand without looking wrong. A comma typed off the ticket can also be read as text rather than a number.
Spot it: sort the weight column and look at the smallest and largest values. Anything under a tonne on a skip load, or anything in the hundreds of thousands, is a unit error, not a real load.
A short pass before you upload
- Fresh template, no added columns, no renamed tabs
- Physical form is one of the six permitted words on every row
- Every waste item has a D or R code and a weight
- Every asterisked EWC code carries HP codes
- POPs rows carry substance and concentration
- Postcodes have their space
- Dates are dd/mm/yyyy with a time, in London time
- Permit number matches the certificate
- No weight that is obviously in the wrong unit
Catching this before the file exists
The reason these faults survive to upload day is that nothing checks them when the load is in front of you. The weighbridge operator knows the physical form and the recovery route in the moment; two days later, in the office, somebody is guessing from a ticket.
Skiplog is built to move that check forward. When it launches, the receipt of waste fields sit on the transfer note itself, so date and time received, physical form, the disposal or recovery code and the rest are captured at the gate rather than reconstructed. The same validator that checks the export runs on the note form when you save, so a field that would fail Defra's upload is named while the driver is still on the pad. The receiver's site name, permit number, address and contact live on the site screen and go onto every row, so the permit number is entered once.
On the receipts screen, the export is built to go out in Defra's own template column order, to include only the rows that pass, and to say how many did not, with each failing row linked to the screen that fixes it. After a download you can confirm the loads as reported, record the waste tracking reference Defra gives back, and if Defra rejects a load, mark it rejected with the date of the notice so the fresh deadline is visible. A correction to a note that already carries a reference is flagged as something to report again rather than quietly rewritten. A dashboard card lists the loads not yet reported, grouped by whether they are overdue, due today or due tomorrow.
None of that guarantees a clean upload, and we would not claim it does. Your data accuracy is yours, and Defra can change the format. What it does is move the moment of discovery from the upload screen on day two to the weighbridge on day zero, which is the only move that buys back the clock.
Does a single bad row fail the whole receipt of waste upload?
A fault in the structure of the file, such as an added column or a renamed tab, fails the whole submission. A bad value in one row generally comes back as that row while the rest are accepted, so you resubmit the corrected loads rather than the whole batch.
How long do I have to fix a bounced row?
The report for a load is due by the end of the second working day after the day you received it, and a bounce does not pause that. If you upload late on day two, a rejected row can put you past the deadline, which is why the checks are worth doing before the file leaves the yard.
Can I use my own spreadsheet instead of Defra's template?
No. Defra's guidance is that you cannot use your own spreadsheet or change the format of theirs. Keep any working sheet of your own separate and paste values into a fresh copy of the template for each submission.
Why does a hazardous load bounce when I have entered the EWC code?
Usually because the asterisk is missing from an absolute hazardous entry, or because the row is flagged hazardous with no hazardous property codes against it. Both are needed, and hazardous movements also require a consignment note separately from the receipt report.