AI for Data Entry in Freight Forwarding: The Job File Has to Reconcile
A shipping instruction arrives as six lines of email prose, with a spreadsheet somebody built for their own purposes and a scanned form photographed on a desk. Within two days it must exist as a house bill, an allocation under a master bill, a customs declaration with its own line structure, an advance filing message, a job file with charge codes and accruals, and records typed into portals that connect to nothing you own.
Forwarders call this data entry, which undersells it. What actually happens is translation between four parties who each hold a different idea of what a shipment is: orders and dates, bookings and sailings, declaration lines and values, jobs and charge codes. So the test of an agent is not how many characters it lifted from a PDF. It is whether the job file reconciles: weights agreeing across booking, bill and declaration, parties resolving to real master records, accruals matching the invoices to come, a named person able to sign the filing.
From instruction to house bill
The house bill is the first structured artefact of the file and where most keying happens: parties, ports, vessel and voyage, container and seal numbers, marks and numbers, package counts and weights. Some come from the booking, some from the quotation that set the terms, some from the customer's standing profile, so an agent reading the instruction alone fills half the form and invents the rest. Have it read all four sources with a written precedence order saying which wins per field, and raise an exception where two disagree. Marks and numbers are carried verbatim, because a tidied version no longer matches the cartons. And the goods description on a bill is not the description that will support a tariff classification.
Consolidations, and why one document generates many records
Under a consolidation one master bill sits above several house bills and the arithmetic has to hold upward: house piece counts, weights and volumes sum to the master. Amend a house after the master is filed and the master is wrong. So build the set as a parent with children rather than a folder of unrelated documents, and have the agent recompute master totals whenever a house changes.
Invoice lines are not declaration lines
A three hundred line commercial invoice does not become a three hundred line declaration. Lines aggregate, usually by tariff code, origin, preference claim and currency, and that aggregation is a judgement rather than a copy: deciding two products share a heading is itself a classification act, and aggregating across two origins destroys a preference claim. Value is built up rather than transcribed, with freight and insurance apportioned by value or by weight depending on the rule in force. So the agent's output is the mapping with its working shown: which invoice lines rolled into which declaration line, on what basis. That mapping is the artefact a person reviews.
Classification is a decision with a name attached
Models propose tariff codes well, especially from your own accepted classifications for identical goods from the same shipper. Precedent is the strongest signal available and also how an old error replicates for years, so present it with the code: which job, how old, who accepted it. The proposal is useful; the acceptance is the decision, and it belongs to a named licensed person who carries the liability. No code should reach a filing without an acceptance event recorded against an individual, and a line too thinly described to classify comes back as a question.
Incoterms and the cost of a wrongly keyed term
Three letters decide who pays freight, who insures, where risk passes and which costs belong inside the customs value. Key FOB where the deal was EXW and nothing fails validation. You simply bill the wrong party, build the customs value on the wrong basis, and have an argument three weeks later. The risk is real because the term arrives in three forms: prose in an email, a field on the commercial invoice, and the customer's standing terms in your own system. Extract all three and, where they disagree, stop.
Parties belong to master data, not to text fields
The same consignee arrives as three different strings across three instructions. Created as a new party record rather than matched to the existing one, it breaks rate agreements, credit limits, screening history and any reporting you do by customer. So an agent's first act on a party is to search, never to create, matching name, address, registration number and tax identifier with fuzzy comparison rather than exact. Creation is the last resort, and near matches go to a person with both candidates side by side. A new address for an existing consignee is a new site on that record, not a new party.
The figures that have to reconcile
Container numbers carry a check digit, so a mistype is detectable and should never pass unchecked. Seal numbers do not. Gross weight, net weight, volume and package count appear on the booking, the packing list, the house bill and the declaration, and every restatement is a chance to diverge, so the useful work is holding all sources at once and reporting disagreement rather than picking a winner.
Chargeable weight is different again, because it is calculated rather than copied. It depends on the volumetric divisor for the mode, the rounding rule, and whether it runs per piece or per consignment. An agent that copies a chargeable weight off an instruction has imported the customer's arithmetic and will misbill consistently.
Advance filing and the deadline that does not move
Advance cargo declarations before loading and before arrival are where entry stops being an efficiency question. A message filed late or rejected has a hard operational consequence: cargo not loaded, a penalty, a container nobody may move. These deadlines are computed rather than fixed, because they run from a vessel or flight event that itself keeps moving, which makes the clock a system responsibility. An agent should recalculate the deadline for every open shipment from current schedule data, know which mandatory fields are still absent, and escalate while a person can still get the answer.
The portals with no interface
This is where staff actually lose the day. Government filing systems, carrier portals and customer portals each have their own login, session timeout, field ordering and upload quirk, and none will take a file from you, so somebody types what is already in your system and then types it again somewhere else.
An agent can drive those screens, reading the interface rather than replaying recorded coordinates, and that removes real hours. It is also the least reliable channel you have, so your own system stays authoritative and the portal is only a target. After submission the agent reads the record back and compares it field by field, rather than treating a successful click as a successful filing, and every reference number returned is captured against the job.
Job files, charge codes and duplicate jobs
Meanwhile the commercial side is being keyed too: a job opened, charge codes chosen for revenue and cost, accruals posted so margin is visible before invoices arrive. Charge code selection drives revenue recognition, margin reporting, tax treatment and whether a cost is a pass through disbursement or your own expense, so an agent should propose codes from the lane, service, carrier and that customer's history. Accruals are estimates and should be treated as such: post the expected cost when the booking confirms, then reconcile it against the actual invoice.
Then the duplicate job problem. One shipment reaches you as a quotation, a booking request, an instruction and a carrier confirmation, and those four touchpoints produce two or three jobs, with costs on one and revenue on another. Deduplication needs a composite key: carrier booking number, container numbers, master bill number, or shipper plus consignee plus vessel and voyage. The agent searches before opening a job and proposes a merge on a probable match.
Rejection loops and what the system should learn
A declaration is rejected with a reason code. Somebody decodes it, works out which field was wrong, re-keys, resubmits, and is sometimes rejected again for a reason the first message never mentioned. That loop is the most informative thing your operation produces, and it usually dies inside an email.
Capture rejection reasons structurally, against the job and the field each concerns. An agent then maps the reason to the field and proposes the correction, looks for the same latent error on other open jobs, because a format problem with one customer's instructions usually affects all their shipments, and turns the accumulated catalogue into a pre submission check specific to your declarations and your customers' habits.
Where AI fails here
Source quality sets the ceiling. A handwritten instruction photographed at an angle, a stamp printed across a container number, a packing list table breaking across a page: extraction degrades, and the right behaviour is to ask for a better copy rather than produce a confident digit.
Ambiguous authority is a business problem, not a model problem. When the instruction gives one consignee address, the invoice another and the profile a third, and nobody has ruled which wins, the agent cannot rule either. Writing that precedence down is where the project time goes.
Some decisions stay with named people permanently: the classification, the declaration signature, the valuation methodology, acceptance of a dangerous goods declaration, clearance of a screening hit. An agent handing those people a checked, reconciling file is valuable. An agent trusted to make the call is a liability.
The deliverable is a reconciling job file
Pick one flow: one customer or one lane with real volume and instructions in a recognisable shape. Measure how long the keying takes now, because nobody reconstructs that baseline afterwards.
Then set the acceptance test on reconciliation rather than extraction. Do the house totals sum to the master. Do all parties resolve to existing records. Does the invoice to declaration mapping hold against the aggregation rules. Would your broker sign the draft as it stands. Field level extraction accuracy is a diagnostic; a file that balances is the product.
If your team keys the same shipment four times into four systems, describe the flow to Adopt AI Partners at hello@adoptaipartners.com and we will say plainly which parts an agent should carry and which stay with your people.