FlowParse
Guide August 2026 19 min read

How to Reconcile Customs Duties to Invoices

Reconciling a month of customs duty against invoiced value the first time means holding a stack of entry summaries next to a stack of commercial invoices and hoping the totals still line up. Seven steps to check every entry against the invoice that supported it, and the cadence that keeps it from drifting.

FlowParse
flowparse.io
flowparse.iono sound needed
0:00 / 0:00

A day the first month, an hour after

Ask anyone who's reconciled a complicated month of customs duty why it took so long, and the honest answer is rarely "we didn't know how." It's usually "the first month took a full day, and we never found a faster way to repeat it."

That first reconciliation really is slow, and there's no fully avoiding it — the scope has to be defined for the first time, the broker's entry format has to be understood, and the routine itself doesn't exist yet. All of that is a fixed cost, paid once.

This guide explains how to pay that cost deliberately, so reconciliation doesn't need to be rebuilt from scratch every month, and so closing the period becomes an hour-long habit rather than a dreaded project that keeps getting pushed back — until an audit makes it suddenly urgent.

The seven steps below are deliberately generic — they apply whether you're importing from a handful of suppliers or dozens, and whether your team is one person or several.

Why duty reconciliation drifts without a routine

A reconciliation done only at quarter-end ends up covering the same months as one done monthly — the figures are identical either way. What a quarterly-only cadence loses is time: a mismatched entry discovered three months later has already had three months to become a harder problem to trace back to its cause.

A monthly cadence gains exactly there — a discrepancy is caught within days, not months, while there's still enough context to remember what actually happened and fix it before the shipment is a distant memory.

CadenceAnswersRisk
Quarter-end onlyIs the quarter's duty complete?Discrepancies discovered too late to fix easily
MonthlyDid this month's entries match cleanly?Minimal — plenty of room to act
Per shipmentDid this one entry match?Often more frequent than volume justifies
FlowParse
flowparse.io

Three decisions before the first entry

Skip these, and every later reconciliation inherits whatever was decided by accident the first month. Fix them first, and the rest becomes mechanical.

The scope

Every supplier and every entity involved, written down once — including the ones that are easy to forget, like small, occasional shipments.

The matching tolerance

Reconciling by value, description and shipment reference together, with a defined rounding tolerance — decided once, applied the same way every month.

The reconciliation frequency

Decide upfront how often the check happens, so the question doesn't get re-litigated every closing.

FlowParse
flowparse.io

The seven steps

1

Set a period and a scope

Decide how far back the reconciliation needs to go and how often it repeats going forward — then hold both fixed, so each period stays comparable to the last.

2

Gather the commercial invoices for the period

Every invoice for the shipments that cleared customs in that window, from every supplier.

3

Gather the matching entry summaries

The broker's filed entry for each of those same shipments.

4

Read each document line by line

Value, HS code, country of origin and Incoterm — not just a header total from either document.

5

Match each entry to its invoice

Value, description and shipment reference checked together, with a defined tolerance for legitimate rounding.

6

Flag the discrepancies

An entry with no matching invoice, or an invoice with no filed entry — both deserve investigation before the period is considered closed.

7

Log and close the period

A dated, signed-off reconciliation for the period, with every discrepancy resolved or explicitly marked as still open.

FlowParse
flowparse.io

Handling discrepancies with method

Not everything flagged is a real problem, and treating every discrepancy as a crisis exhausts a team fast. Most turn out to have a mundane explanation — a rounding difference, a freight amount timing mismatch between when the invoice and the entry were prepared.

What separates a rigorous reconciliation from a sloppy one isn't the number of discrepancies found — it's the consistency with which each is actually investigated and documented, rather than some examined carefully and others waved through because the reviewer was pressed for time.

FlowParse
flowparse.io

A month, worked through

An importer with a dozen active suppliers, one month, 31 shipments cleared.

ResultShipments
Matched, no discrepancy27
Minor discrepancy, resolved as rounding3
Genuine mismatch, corrected1

31 shipments, four discrepancies, and most resolved within the hour. The correction involved a shipment where freight had been added into the dutiable value on the entry but the invoice itself was FOB — caught only because the Incoterm was tracked separately for that specific shipment rather than assumed from the supplier's usual pattern.

FlowParse
flowparse.io

Common mistakes

Reconciling only the total, not each entry

Masks exactly the kind of discrepancy that matters most — one shipment misdeclared inside a total that otherwise looks correct.

Assuming a supplier's Incoterm never changes

A single shipment on a different term can silently misstate the dutiable value if it isn't checked per shipment.

Sampling instead of reconciling every entry

A clean sample doesn't prove the rest of the volume is equally clean.

Batching reconciliation until quarter-end

By then, nobody remembers the specific circumstances of a shipment from months ago.

Not documenting resolved discrepancies

Loses the institutional memory that would let the next person recognize the same explainable pattern quickly instead of re-investigating from scratch.

FlowParse
flowparse.io

Best practices

Always reconcile against the commercial invoice, never against another entry or a rough estimate.

Track the Incoterm per shipment, not per supplier — it can change even with a regular trading partner.

Reconcile shortly after each shipment clears, then roll up monthly, rather than batching until the quarter closes.

Document every discrepancy resolved, even the obvious ones — the log is what makes the next review faster.

Turning it into a routine, not a task

The version of this process that actually survives a busy month is the one that doesn't depend on someone's memory. Reading every invoice and entry automatically, matching them, and flagging only what genuinely needs a second look turns a multi-day manual comparison into a quick review of what actually got flagged.

That's exactly the shift this guide's method points toward — not eliminating decisions, which stay with a person, but eliminating the mechanical comparison work that made this regularity impractical month after month.

FlowParse
flowparse.io

The monthly check

Before considering a month closed, a quick final pass against a fixed list is worth doing — not because the seven steps above are insufficient, but because a last overview sometimes surfaces something that doesn't appear in any single step's detail.

Does every entry for the month have a matching invoice, with no discrepancy outstanding?

Is every flagged discrepancy resolved, or explicitly marked as still open?

Is this month's total consistent with last month's, or is any meaningful difference explained?

Are all shipments for the period included, not just the ones that arrived first?

Is the reconciliation understandable without questions for whoever receives it next?

Five questions, none costly to answer if the seven steps above were followed carefully. The value of this list isn't in the depth of any one question — it's that it gets asked the exact same way every time, a routine that keeps a step from quietly being skipped under pressure because the month was unusually busy.

FlowParse
flowparse.io

What you actually need

None of this requires specialized software to start. A spreadsheet works fine for the reconciliation sheet and the discrepancy log. What's genuinely slow by hand is reading each document consistently enough, month after month, to keep that sheet current — and that's exactly the part worth automating first, because it determines whether the routine survives a busy month.

A document reader that extracts value, HS code and origin the same way every time, whether the document is a clean digital PDF or a scanned entry summary, removes exactly that bottleneck — leaving the matching and the decisions where a person's time is actually well spent.

FlowParse
flowparse.io

Reconciling across currencies

An entry is declared in the importing country's currency, but the invoice supporting it is often issued in the supplier's home currency — which means a reconciliation frequently isn't comparing two numbers directly, but a converted number against a declared one. Getting the conversion rate wrong makes an otherwise-clean match look like a discrepancy.

The rate that matters is the one used at the time of entry, which is usually a published rate tied to the entry date rather than the invoice date or today's rate — and the two dates can be weeks apart for a shipment that sat in transit. Reconciling with the wrong date's rate is one of the more common sources of a discrepancy that looks real but isn't.

Keeping the exchange rate used, and the date it applies to, alongside each reconciled line — not just the converted total — makes this checkable later without redoing the conversion from scratch, and it's usually the first thing worth checking when a currency-invoiced entry shows a discrepancy that doesn't match any of the other common patterns.

A supplier that switches invoicing currency mid-year — sometimes at the importer's request, sometimes on its own — is worth flagging the same way a new supplier would be, since a shift in currency changes what conversion rate applies going forward and is an easy detail to miss if the reconciliation routine assumes a supplier's currency stays fixed. A quick note in the discrepancy log the first time it happens is usually enough to stop it from being rediscovered the hard way on a later shipment, weeks after the switch already quietly took effect on more than one invoice.

Working with your customs broker on this

Reconciliation isn't an audit of your broker — it's a check on the paperwork flow between your company and theirs, and most discrepancies trace back to documentation gaps on the importer's side, not broker error.

Sharing a genuine, specific discrepancy with a broker — not a vague "can you double-check everything" — tends to get a faster, more useful response than a general request, and it often surfaces a process fix on both sides, like standardizing how a particular supplier's freight charges get labeled before they reach the broker.

FlowParse
flowparse.io

The very first time, step by step

The very first time you follow this method is the slowest, because there's no sheet or habit to build on yet. Start narrower than feels ambitious — pick the last closed month, not a full year of history at once, and reconcile it first.

Gather that month's invoices and the matching entry summaries — that's the whole first step. Read each one, match them, and note the typical pattern — usual Incoterm, usual currency, typical clearance timing. Done for a single month, this usually takes half a day and already produces a usable reconciliation to build the routine on.

Once that first month is done, expand — the next month, then a continuous monthly rhythm. By the time three or four months are reconciled, the reading and matching routine is already familiar, so extending it to the rest becomes quick rather than a new project.

FlowParse
flowparse.io

The reconciliation sheet, column by column

A reconciliation sheet doesn't need to be complicated, but a few specific columns make the difference between a sheet that's actually useful six months later and a simple list of numbers nobody can interpret.

ColumnWhy it matters
Shipment and entry referenceLinks the row to the exact source document
Invoice value and entry valueThe two figures the reconciliation actually compares
Incoterm appliedExplains why freight was or wasn't included
Reviewer and review dateEstablishes accountability and a timeline
Resolution and evidenceHow a discrepancy was verified, and what confirmed the outcome

Five columns, none optional in practice — a sheet that skips the resolution and evidence columns is never more than a list of doubts, not a record that actually protects the company or the person who flagged the discrepancy.

Three approaches compared

ApproachTypical time per monthWhere it fails
Fully manual1 to 2 daysTranscription errors, mismatched entries quietly missed
Spreadsheet template, manual entryHalf a dayStill depends on reading each document correctly
Automatic reader plus templateUnder an hourRequires setting up scope and format once

The honest comparison isn't a perfect method against a flawed one — each still depends on a person to make the final call. What changes is how much of the mechanical comparison work has to happen before that person even gets the chance to decide.

The rhythm that repeats every year

A year of imports, seen through this routine, has its own texture. Certain months bring a predictable wave of extra volume — often around a peak sales season or a supplier's own production schedule — and those months deserve more attention on freshly built reconciliations, not less, precisely because that's when a mismatched entry most easily slips through unnoticed.

End-of-year, in particular, tends to concentrate rush shipments and exceptional freight arrangements that look legitimately unusual against a normal monthly rhythm. Recognizing that pattern in advance, rather than being surprised every year, avoids both missing a real discrepancy buried in the volume and flagging perfectly normal peak-season activity as suspicious.

Teams that follow this process for several years running end up recognizing their own organization's rhythm without being told — which months run heavy, which suppliers' shipments cluster predictably, which discrepancy types recur. That familiarity is itself a form of control, built simply through repeated attention, period after period.

FlowParse
flowparse.io

Building a clear escalation path

A discrepancy with nowhere specific to go tends to stay unresolved, or gets closed quickly by the first person who sees it because they don't know who else should look. A written escalation path fixes this — not a complicated org chart, just a clear answer to "who gets told, and what happens next" for each type of discrepancy.

A reasonable structure for most importers has two tiers. A first reviewer handles routine discrepancies that resolve quickly and obviously — a known rounding difference, an already-flagged freight timing issue. Anything that doesn't resolve in a few minutes moves to a second tier with more authority — a finance lead or customs broker relationship owner able to decide the less clear-cut cases and coordinate directly with the broker if needed.

TierHandlesAuthority
First reviewerRoutine, quickly explainable discrepanciesCan resolve and document, doesn't close ambiguous cases
Finance lead or broker relationship ownerUnresolved and ambiguous casesCan decide and coordinate directly with the broker

The exact names attached to each tier matter less than the fact the whole team already knows them before a real discrepancy shows up. Deciding who's responsible for what in the middle of a genuine duty overpayment question, under pressure, is exactly the wrong moment to discover the org chart for the first time.

FlowParse
flowparse.io

What good documentation looks like

Not every importer needs elaborate documentation for this process, but a few pages, written once and kept current, make a real difference the first time someone new joins the reconciliation rotation or a customs auditor asks how the company verifies its duty payments.

Good documentation for this process usually covers four things: how the reconciliation is built and from what source documents, what exactly triggers a discrepancy flag, how a discrepancy gets verified and by whom, and where the discrepancy log lives and who has access. None of it needs to be long — most companies can cover all four in two or three pages.

The point of writing it down isn't bureaucratic formality. It's that the next person who joins the rotation, or the auditor asking the question, gets a consistent, complete answer no matter who they ask — instead of three slightly different informal explanations depending on which team member happens to be available, none of which quite matches what actually happens in practice.

FlowParse
flowparse.io

Measuring whether the routine works

A reconciliation routine that never catches anything real for months isn't necessarily a failure — it might simply mean the broker relationship and upstream documentation are already reliable. What's genuinely worth tracking isn't just the count of confirmed discrepancies — it's whether the routine itself is followed consistently.

A few simple indicators tell this story well: what percentage of entries actually have a matched invoice, what percentage of flagged discrepancies get a documented resolution within a reasonable window, and whether every monthly reconciliation actually happened, with no exception quietly granted for an unusually busy month.

That last point — no exceptions to the monthly reconciliation — deserves treating as close to non-negotiable. It's exactly the exceptions of the "this month was too busy to check everything" kind that create the gap an undetected duty discrepancy needs to settle into.

FlowParse
flowparse.io

Handing the routine to someone new

A duty reconciliation routine that lives entirely in one person's head is a routine that breaks the day that person is out sick during month-end, changes roles or leaves the company. Since the whole point of the routine is consistency, month after month, it needs to survive a handoff without a gap in coverage.

What makes a handoff go smoothly isn't a long training document — it's the same reconciliation sheet and the same seven steps described above, walked through once on a real month's worth of entries with the new person actually doing the matching rather than watching it done. The discrepancy log from a prior month, with the resolution notes still attached, teaches the judgment calls faster than any written policy could.

It also helps to be explicit about the one thing that's easy to skip when someone is new and eager to clear the queue: guessing at a resolution rather than confirming it with the supplier or broker. That habit is worth calling out directly during the handoff, since it's the single most common way a new reviewer's first month goes wrong.

FlowParse
flowparse.io

Frequently asked questions

Reconcile your first month

Start with the last closed month. Read the invoices and entry summaries, and see the pattern before you need it.

Related reading