Checking Quality
Document Checks
Configure and manage the automated rules that compare a shipment's documents and the data read from them.
21 min readLast updated
Goal
Configure automated rules that validate extracted shipment data, so problems show up before your team reviews a shipment, not after a customer finds them.
Document checks answer one question: does this paperwork add up? They compare a shipment’s documents with each other, and the data read from them against itself and against the totals the documents declare. They never assess the produce — for that, see Quality Inspection Reports.
Before you start
- Admin or Owner role to change a check’s level. Members can see check results but not change which checks run or whether they block an export.
- At least one processed shipment, if you want to see checks in action — checks run against extracted data, so there must be some.
How Checks Work
Each check receives the extracted pallet data and returns one of three results:
| Result | Meaning |
|---|---|
| ✅ Pass | Data meets all criteria |
| ⚠️ Warning | Potential issue, review recommended |
| ❌ Fail | Data does not meet requirements |
Checks run in parallel and complete within seconds.
Automatic AI Cross-Check
Some checks reconcile the extracted data against the totals the document itself declares. For example, they check whether the sum of per-pallet box counts matches the declared total box count, and do the same for weights. A mismatch usually means a few figures were misread during extraction, which is most common with scanned packing lists where the original scan is faint or the table is dense.
Whether these checks can run depends on the documents. A packing list that declares its own totals can be verified against itself on every import. One that declares none is imported on trust, because there is no second figure to disagree with the first. If you can influence what your suppliers send, ask them to print total pallets, total boxes and total net weight. That change does more for extraction reliability than the file format, and it costs them nothing.
When a reconciliation check fails, Trackberry doesn’t just flag it. It automatically re-reads the original document with a secondary AI and tries to correct the data before you ever see a failure:
- It re-reads the packing list and, where it can match pallets, patches just the figures that were misread.
- If the pallet identifiers themselves were garbled, it rebuilds the packing list from the fresh AI read. It does this only if that read reconciles cleanly and you haven’t made manual corrections to the packing list.
While this verification is running, the shipment shows a “Verifying documents…” status in place of preliminary check results, and the document displays a short progress label (e.g. “Discrepancies found — re-checking with secondary AI…”). Once the second pass finishes, the final check results appear. This stops failures that are about to be fixed from briefly showing on screen.
Configuring Checks
Every check has one of three levels:
| Level | What it does |
|---|---|
| Off | The check doesn’t run on new shipments or uploads. |
| Warn | The check runs and its result shows on the shipment. It never stops an export. |
| Block | As Warn, and a failure stops ERP exports until it’s fixed or an admin acknowledges it. See Ready for ERP. |
Checks start at Warn for every organization, except GGN Present and Box Brand Present, which start Off. Admins and owners pick the level:
- Open Organization Settings, go to Documents & checks and click Document Checks
- Click Off, Warn or Block next to the check
- The change saves straight away
Each check is listed with its description, grouped under Documents, Data completeness and Data integrity headings and sorted by title within each group. To find one quickly, type in the Search by name or description box. There is nothing else to set. The tolerances described below are fixed, not per organization.
Turning a check off keeps the results it already produced. New shipments and new document uploads skip it. A shipment’s checks panel also links here through Configure checks.
Keep Block for the checks whose failure would put a wrong figure in your ERP, such as Box Counts Match or the weight totals. A check that only says a document is missing is usually better at Warn: the export can go, and someone still sees the gap.
Which checks apply
Checks that make no sense for the goods you import are hidden and never run. The What you import setting under General in Organization Settings decides which ones you get: Fresh produce or General goods. Each check below says when it applies to one kind only. Checks that read produce, box weights or pallet numbers are for fresh produce. The one that compares invoiced and packed pieces by part number is for general goods.
The Checks
Documents on file
These check that the paperwork exists, not what it says.
Packing List Uploaded
Fails when the shipment has no packing list. While a packing list is still being read, the check is skipped. The checks under Packing list figures only run once this one passes or warns.
Transport Document Uploaded
Fails when there is no bill of lading, air waybill or other transport document, and no transport reference typed in either. If someone typed a B/L or AWB number on the shipment, the check is skipped. It warns when the document is uploaded but could not be read. The checks under Transport document only run once this one passes or warns.
Commercial Invoice Uploaded
Warns when there is no commercial invoice. A forwarder’s invoice for transport does not count.
Phytosanitary Certificate Uploaded
Warns when the shipment carries produce and has no phytosanitary certificate. Fresh produce only. Skipped when no produce was detected, or when the shipment travels within the EU.
Original Documents Sent by Courier
Warns when the original documents are late, going by the courier waybill attached to the shipment. By default they should be sent at least 10 days before the ETA and received at least 3 days before it. Set your own numbers under Original documents by courier, on the Documents & checks page of the organization settings. The check stays quiet until the sending deadline, passes once the envelope is picked up in time or delivered in time, and warns when a deadline is missed or no waybill was uploaded. Only ocean shipments with an ETA are checked. It only ever warns, so it never keeps a shipment in draft. If you release cargo by telex or sea waybill and do not courier originals, turn it off under Configuring Checks.
Proof of origin
Warns when there is no proof of origin on a route where one usually lowers the import duty: a certificate of origin, or an origin declaration with a stamp or signature printed on a filed invoice. That means a shipment into the EU or the UK from a country with a trade agreement, such as Peru, Colombia, Ecuador, Mexico, South Africa, Kenya, Morocco, Egypt, Israel or Turkey. A declaration that names another country, or a country the check can’t confirm as the shipment’s origin, is a warning too. Skipped on other routes, and when the origin or destination is unknown.
The last four checks only warn, so a missing invoice or certificate never keeps a shipment in draft.
Packing list figures
Box Counts Match
Reconciles the box counts extracted from the pallet rows against what the document declares about itself. Two independent signals are used where both are available: the declared total box count from the document header, and the count implied by the declared net weight divided by the box weight. The net-weight signal is reported first, because a header total can itself be misread. Box counts are whole numbers, so this check requires an exact match. When the document declares neither figure, the check warns that the count is unverified.
Weight Totals Match
Reconciles the sum of the per-line net weights against the declared net weight on the document. Allows the larger of 0.5% or 0.01 kg. That covers the small rounding differences real exporter documents often have between a header total and the rows above it, without hiding a real misread. When the lines add up to a weight but the document declares none, the check warns that the figure is unverified.
Produce Detected
Fails when no packing line has a recognized produce, and warns when only some lines do. Fresh produce only.
GGN Present
Warns when no packing line has a GGN (GLOBALG.A.P. Number) or when only some do, and is then shown as Missing GGN. A GGN made only of spaces counts as missing. It never fails, passes when every line has one, and is skipped when there are no packing lines. Fresh produce only.
This check starts switched off for every organization. Turn it on under Documents & checks → Document Checks in Organization Settings.
There are two ways to fix it:
- Apply to shipment: type one 13-digit GGN into the field in the check row and apply it. Spaces and dashes are ignored. It fills every line that has no GGN, including lines from packing lists uploaded later. Lines that already have a GGN keep theirs.
- Edit GGN per line: opens the packing details, where the GGN column is shown while the check is open, so you can edit the lines one by one.
Box Brand Present
Warns when a packing line states no box brand, and is then shown as Missing box brand. The brand decides who answers for the packaging under EU packaging rules: a retailer’s box falls under the retailer’s scheme, while a grower’s own or generic box is the importer’s to declare. A line with no brand can’t be allocated, so someone has to chase the supplier.
Any value counts as a brand, including GENERIC or SIN MARCA, because an
unbranded box is an answer. A brand that ended up in the pack format counts as
missing. Several brands in one shipment are normal, so they are not flagged. The
check never fails, passes when every line has a brand, and is skipped when there
are no packing lines. Fresh produce only.
This check starts switched off, because most packing lists print no brand and a warning is loud. Turn it on under Documents & checks → Document Checks in Organization Settings. It applies from the next import or re-run.
There are three ways to fix it:
- Edit brand per line: opens the packing details with the brand column shown, so you can set the lines one by one. A brand typed here stays even if the supplier later sends a corrected packing list.
- Set field… in the packing table’s selection bar: select the lines and set Box brand on all of them. See Pallet Pre-allocation.
- Ask the supplier: reports the missing brands on the packing list and sends the supplier a link to upload a corrected one. If a request is already open, View request to supplier takes you to it.
Container Number Present
Warns when some packing lists name a container and others don’t. Skipped for air shipments, and when no packing list names one.
Pallet Count Matches
Compares the pallets in the packing list table with the load diagram drawn below it, and with the number of pallets the transport document declares, when it gives one. Fails when a pallet in the load diagram has no row in the table, or when the transport document’s count differs from the packing lists.
No Duplicate Pallet Numbers
Fails when the same pallet number appears on two current packing lists in the shipment. Warns when one packing list repeats a pallet number in separate blocks of rows, which can be a misread or a pallet listed twice on purpose. Fresh produce only.
Gross and Net Weights Consistent
Compares each pallet’s gross weight with its net weight, on pallets where every line states both. Fails when the gross weight is lower than the net weight. Warns when the gross weight is more than twice the net weight. Fresh produce only.
Weight Unit Recognised
Trackberry stores every weight in kilograms. When a packing list prints its weights in pounds, they are converted to kilograms as the list is read, and this check passes with a note saying so. It warns when a list prints its weights in a unit that is not converted automatically, such as a bare “ton”, “cwt” or quintal, which mean different weights in different countries. The figures are then kept as printed, and the weight checks treat them as kilograms. Skipped when every packing list prints kilograms or names no unit.
This check is about what a document prints. The unit you read weights in on screen is a separate choice, Weight unit under Shipments in Organization Settings, where an organization can pick pounds. It changes only what you see, and stored figures stay in kilograms.
Packing Figures Plausible
Asks whether the figures on a packing list could be true at all, rather than whether they agree with each other. It warns when the box weight on a line (net weight divided by box count) falls outside the range that produce is normally packed in. That usually means the boxes are master cartons, the weight is gross, or a column was misread. On ocean shipments it also warns when the average net weight per pallet is implausibly low, or when a single pallet is heavier than one pallet can hold. It never fails, so it never keeps a shipment in draft. Skipped only when there is nothing to compare: no line states a box count and weight for a produce with a known range and, on ocean shipments, no pallet has a net weight. Fresh produce only.
Transport document
Container Number in Transport Document
Fails when no container number could be read from the transport document. Skipped for air shipments and for LCL shipments, where the container is shared with other consignees.
Bill of Lading Number is Unique
Fails when the same B/L or AWB number is already on another of your shipments, which usually means a duplicate. For LCL shipments it compares the house B/L instead, because the transport reference is a container shared with other shipments.
Transport Reference Consistency
Detects conflicting AWB or B/L numbers across different sources: the email subject line and the number read from each page of the transport document. It warns when two different values are found, which is usually a misread on one page. It fails when three or more are found.
When there is a conflict, the check recommends a value. It prefers the email subject, because it is plain text copied from the carrier’s system. Next comes the value most pages agree on, then the later pages, which are often printed more clearly. To fix it, edit the transport reference on the shipment or upload a clearer transport document.
Note: AWB numbers taken from email subjects are protected from being overwritten. If the email contained a valid AWB, that value stands even when a transport document page gives a different number. The check flags the conflict for your review rather than silently replacing it.
Across documents
Container Numbers Match
Fails when the packing lists and the transport document list different containers. Skipped for air shipments, or when either side names no container.
Container Numbers Valid
Fails when a container number is not a valid ISO 6346 number: four letters and seven digits, a category letter of U, J or Z, and a correct check digit. A failure usually means a misread digit. Skipped for air and road shipments.
Weight Agrees With Shipping Documents
Compares the gross weight on the packing lists with the one declared on the booking, the pre-alert and the transport document. It warns when one is about 2.2 times the other, which is the ratio between pounds and kilograms and usually means one document’s weight was read in the wrong unit. A smaller difference passes, because a booking is an estimate made before the cargo is packed. Skipped when no document declares a weight.
US Drayage Weight
Warns when a full container bound for the United States carries more cargo than a standard chassis usually takes on the road: about 19,960 kg in a dry container, 18,600 kg in a reefer, or 17,240 kg in a 20-foot container of either kind. The load will likely need an overweight permit or a tri-axle chassis. Limits vary by state and corridor, so this only ever warns. The length comes from the transport document. When it does not state one, the longer container’s limit applies. Skipped for other destinations, air and road shipments, and LCL.
Invoice Total Matches
Compares the sum of extracted invoice line item prices against the declared total on the invoice document. Fails when they differ by more than 1%, which catches a misread price or a missed line. Skipped when there is no invoice data or no declared total.
Invoice Matches Packing List
Cross-references the packing list against the commercial invoice for the same shipment. Both describe the same physical goods, so they should agree. Compares:
- Produce: a failure when the packing list and invoice name completely different produce (e.g. one says Avocado, the other Asparagus), and a warning when they only partly overlap.
- Box count: a failure when the packing list’s total boxes and the invoice’s total quantity disagree by more than 2%.
Fresh produce only.
When it flags something, the check is renamed for what disagreed, such as Invoice / packing list box count mismatch or Invoice / packing list produce mismatch. Open Show details to see which document has more boxes and by how much.
This check never changes your data. It only flags a discrepancy for your team to review, because it can’t tell which document is correct. See the Invoice Pricing guide for more on invoice data.
Invoice Part Quantities Match Packing List
For general goods. Compares, part number by part number, the pieces the invoice bills with the pieces the packing list packed. Quantities are pieces, so they must match exactly. It fails when a part has a different quantity, when a part appears on only one of the two documents, or when the two count a part in different units. A failing row is renamed Invoice / packing list part quantity mismatch, and the details list the parts concerned. Open Review parts to see each part’s packed quantity beside the invoiced one.
It is skipped when there is nothing reliable to compare: no part numbers or quantities on one side, both read from the same file, an invoice that spans several open shipments (it can list more than any one packing list holds), or most rows that cannot be matched between the two documents.
Before a Tradabase export: this check, or the box count, weight, pallet count or invoice total check, may have failed or warned. Then the shipment’s Export button turns amber, and the export asks Export with unresolved data checks? first. See Exporting Data & ERP Integration.
Warehouse Receipt Matches Packing List
Compares the warehouse’s own record of what it took in with the packing list, pallet by pallet, so a missing pallet is known on the day the container is unloaded rather than at invoicing. Pallets are matched on the supplier’s pallet number, which has to be identical on both sides, then compared by calibre, class and boxes. Fresh produce only.
- Fails when a pallet is on the packing list but missing at the warehouse, when the warehouse took in a pallet the packing list never named, or when a pallet has a different number of boxes.
- Warns when the boxes are all there but sorted into different calibres or classes, or when the warehouse moved boxes onto pallets of its own and the container’s boxes per calibre still add up.
- Passes when every pallet matches. Pallets received without a box count are matched on presence alone, and the message says how many.
It is skipped when there is nothing honest to compare: no packing list, no warehouse receipt, a receipt without a pallet breakdown (air cargo custody slips), or a receipt whose pallet numbers share nothing with the packing list.
Compare pallets on the row opens the comparison page, with the packing list and the receipt side by side. See Comparing a Warehouse Receipt with the Packing List.
Documents Assigned to a Container
Only for organizations that keep one shipment per container. There, a bill of lading with several containers is several shipments, and each container’s phytosanitary certificate, certificate of origin and invoice belongs on its own. Trackberry files them by the container numbers the document prints.
The check fails when one of those documents doesn’t name exactly one container of this shipment: it prints none, prints several, or prints a number the shipment doesn’t hold. The explanation lists the documents. To fix it, open the document’s ⋯ menu and choose Move to and the container it belongs to. Once someone has moved a document by hand, the check accepts it.
A copy of a document that covers the whole bill of lading, such as a shared invoice or the B/L, is never flagged. The check is skipped on a shipment that stands alone.
Document checks validate that your own extracted data is internally consistent. For an independent, third-party assessment of the produce itself (condition score, defects, photos), see the Quality Inspection Reports guide.
Automatic Data Completion
When the packing list is missing a value that the invoice states (box weight, variety, or pack format), Trackberry fills it in automatically from the matching invoice line. The packing list is always treated as the source of truth. This only fills in blanks: it never overwrites a value already on the packing list or one your team entered manually. Filled-in values are marked as such and can always be edited afterwards.
When Checks Run Again
There is no button to re-run checks. They run again by themselves whenever a document on the shipment is processed. That includes a new upload, a replacement, a corrected file from a correction request, a Re-extract data, or a change of document type. Results update on the page as they arrive.
What a Failing Check Does
A failing check keeps a draft shipment in draft. A draft validates by itself once every check has passed, warned or been skipped, so one failure is enough to hold it. While it waits, it stays off the Dashboard, its public link does not open and tracking alerts are paused. There is no button to validate past a failure. Correct the data, or have an admin mark the check resolved (see Resolving Issues). This is why the document checks above only warn. For the background, see Box count mismatches now hold the shipment in draft.
A warning does not hold anything back. It means a figure could not be verified, not that it is wrong. When a shipment validates with a warning still open, every member is told in the notification center (“Validated with warning on …”). Members who have alerts turned on for push or email also get it there.
The Check Issues Tab
The shipments list has a Check issues tab, with a count, listing every shipment with a failing or warning check that nobody has resolved. It appears when there is at least one. A warning notifies nobody until the shipment validates, so this tab is where to look for them.
Check Results in the Shipment View

Check results appear prominently on the shipment page:
- A summary bar shows the overall status (all pass / warnings / failures)
- Checks that need attention come first: failures, then warnings, then any check still running
- Failed and warning checks include an explanation of what was flagged
- Everything that passed or was skipped folds into one row, such as 17 passed · 1 skipped, with the checks grouped by category. It opens by itself when nothing else is listed
- Click on a check result to see which specific pallets triggered it
Resolving Issues
Not every flagged issue is fixed in Trackberry. Sometimes you call the shipper, confirm the figure was right all along, and the check has nothing left to tell you. Admins and owners can clear those:
- Mark resolved: on any failing or warning check, resolve that check on its own.
- Mark all resolved — a link above the check list, shown only when there are open issues. It clears every failing and warning check on the shipment in one action, after a confirmation prompt.
Either way the check is recorded as manually resolved by you, with your email and the time — nothing is silently erased. Clearing the last issue lets the shipment validate itself automatically if it was being held back.
On a check set to Block, Mark resolved is replaced by Acknowledge…, which asks Why is this OK to send? before you click Acknowledge. The check then shows who acknowledged it, when, and the reason you gave, so the person who reads the ERP figures later can see why they went through. An acknowledged check doesn’t count as a failure in the list, the check summary, the API or the Excel download. If the check runs again and is skipped, the acknowledgement is cleared.
Ready for ERP
If your organization exports shipments to an ERP, each shipment page has a Ready for ERP panel. It answers one question: can this shipment’s figures go into the ERP as they are?
The badge at the top reads Needs review, Ready, Exported or Changed since export. Below it:
- Blocking the ERP export: failed or pending checks set to Block that nobody has acknowledged. Documents still being processed also block, but only when at least one check is set to Block. Fix each item or acknowledge it with a reason.
- Worth a look: open issues that don’t stop the export, including a warning on a check set to Block. A warning means the documents couldn’t confirm something, not that something is wrong.
- Acknowledged: blockers an admin accepted, with the reason.
While anything is blocking, the Export button on the shipment is greyed out, and hovering it lists what is holding it back under Can’t export yet:. A bulk export containing a blocked shipment is refused and names each shipment with its reasons. See Exporting Data.
Automatic or explicit sign-off
The ERP sign-off card on the Documents & checks page of Organization Settings decides when a shipment with no blockers counts as ready:
- Automatic: a shipment is ready as soon as nothing blocks it. Nobody has to click anything.
- Explicit confirm: an admin confirms each shipment with Confirm for ERP before it can be exported, and can take it back with Withdraw confirmation. Until then the export is blocked with Not confirmed for the ERP yet.
After the export
Confirming or exporting a shipment records the figures that go to the ERP: the transport reference, containers, pallets, boxes, net and gross weight, and for each invoice line the product, variety, quantity, unit price, currency and article code. If any of them change afterwards, an explicit confirmation lapses and an exported shipment shows Changed since export, with a Changed since the last export table of each field’s old and new value. Re-sending needs the current figures confirmed again on explicit sign-off. A blocking check that fails after export also marks it Changed since export and clears any confirmation.
The shipments list has a tab for each state: Needs ERP review, Ready for
ERP, Exported to ERP and Changed since export. See
Shipments List. To have your ERP
integration notified instead, use the shipment.confirmed and
shipment.confirmation_revoked webhooks.
The Health Column
On the shipments list, check results share the Health column with monitoring alerts, so one dot answers both “does the paperwork add up?” and “is this shipment still moving?”
Hover the dot for a popover that lists monitoring alerts first, then each document check with its status and message. The dot shows the worse of the two, and a dashed ring around it means monitoring has something to say.
See Shipment Monitoring for the other half of that column.