Advance Shipping Notice: Prepare an ASN From Pick Lists With AI

Coding Liquids tutorial cover featuring Sagnik Bhattacharya for Advance Shipping Notice: Prepare an ASN From Pick Lists With AI.
Coding Liquids tutorial cover featuring Sagnik Bhattacharya for Advance Shipping Notice: Prepare an ASN From Pick Lists With AI.

An advance shipping notice (ASN) tells a customer what is coming before the truck arrives: purchase order number, ship date, carrier, and for each pallet and carton its label number, the SKUs inside and the quantities. AI can draft one from your pick list and carton data, but the customer's guide sets the format, so check every line.

The useful way to think about an ASN is as a chain of matches: purchase order to pick list, pick list to cartons, cartons to pallets, pallets to the label stuck on each. AI is good at spotting where the chain breaks and at turning your spreadsheet into the layout a customer asks for. It is not allowed to guess a missing figure, because the receiver will scan your labels against your notice and every difference costs you money.

Follow me on Instagram@sagnikteaches

What a notice contains, level by level

Customers differ, but nearly every ASN is organised as a nest. Read your customer's supplier guide to find the exact segment names; the fields below are the common ones.

Connect on LinkedInSagnik Bhattacharya
  1. The shipment. Sender and receiving location, ship date, expected delivery date, carrier and tracking or waybill number, number of pallets and cartons, total weight.
  2. The order. Purchase order number (and often the release or line numbers), customer department or store, your delivery note number.
  3. The pallet. A unique pallet label number, most often a Serial Shipping Container Code (SSCC), which is an 18-digit number built from an extension digit, your GS1 Company Prefix, a serial reference and a check digit.
  4. The carton. A carton ID or its own SSCC, depending on the retailer, and the contents.
  5. The item. Customer's item number, your SKU, barcode (GTIN), quantity shipped, unit of measure, and where required, a batch or best-before date.

In the standard electronic formats this is EDI 856 (ASC X12) or DESADV (EDIFACT). Many retailers also take a portal form or a spreadsheet. Ask which your customer requires before you pay for EDI software; a supplier with a handful of orders a week often finds the portal is enough. If you only need to understand the document family around it, AI tools for shipping documents compares what exists.

Subscribe on YouTube@sagnikteaches

The inputs you must hold before drafting

To draft an ASN you need three sources that agree with each other.

  • The purchase order as the customer sent it: PO number, line numbers, item numbers, quantities ordered, ship-to, requested date.
  • The pick list as actually picked, with quantities picked, not quantities requested. Short picks and substitutions must be in it.
  • The carton and pallet data: which items went into which carton, units per carton, carton weights if required, which cartons are on which pallet, and the label number printed on each pallet.

If your packers record cartons on paper, type them in the same day. An ASN built from memory after the truck has left is where fines come from. A loading plan for pallets and trucks tells you which pallets you will have; the carton sheet tells you what is on them.

The Complete Excel Course with AI Integration thumbnail

The Complete Excel Course with AI Integration

From formulas and pivot tables to Power Query, DAX, VBA and AI with Copilot, ChatGPT and Claude — hands-on from the first lesson.

By Sagnik Bhattacharya and Virginia Thorn, Primetime Emmy Award winner

Buy now

Worked example: one PO, 46 cartons, two pallets

This is an illustration with invented figures. Say a small supplier ships a retailer's PO 55102 with three lines. The customer's guide asks for pallet-level SSCCs and cartons listed under each pallet. The ordered, picked and packed quantities are:

PO lineItemOrderedPickedUnits per cartonCartons
1ITEM-A (stainless bottle, 500 ml)2402401220
2ITEM-B (bottle brush)1801681214
3ITEM-C (bottle cap spare)9696812

The dispatcher exports the pick list and carton sheet as CSV files and writes the pallets: pallet 1 holds the 20 cartons of ITEM-A, and pallet 2 holds the 14 cartons of ITEM-B and 12 of ITEM-C on one mixed pallet. The pallet labels carry SSCCs 301234560000000019 and 301234560000000026 (invented for the example, with valid check digits). Now the first prompt, which does the matching and says nothing about format yet.

I will paste (1) the purchase order lines, (2) the pick list as picked, and (3) the carton and pallet sheet. Do not draft the ASN yet.

Check and report:
1. For each PO line: ordered, picked, difference. Mark short, over or exact.
2. Any item on the pick list or carton sheet that is not on the PO.
3. For each item: units in cartons (cartons times units per carton, plus any part carton) against units picked. Report any difference.
4. Carton count per pallet, total cartons, and whether the totals match the dispatch note total of 46.
5. Any pallet SSCC that is not 18 digits, is repeated, or appears on more than one pallet.
Show the arithmetic. If a value is missing, list it as missing. Do not guess.

A realistic reply (illustrative):

CheckResult
Line 1, ITEM-AOrdered 240, picked 240, exact; 20 cartons x 12 = 240, matches
Line 2, ITEM-BOrdered 180, picked 168, SHORT by 12; 14 cartons x 12 = 168, matches the pick
Line 3, ITEM-COrdered 96, picked 96, exact; 12 cartons x 8 = 96, matches
Items not on PONone
Carton totals20 + 14 + 12 = 46, matches the dispatch note
SSCCTwo values, both 18 digits, no repeats. Check digits not verified here

The finding to act on is the short on line 2. The ASN must say 168, not 180. A common fault is to build the notice from the PO (copying 180) and let the receiver find the gap on the dock. Your customer will almost always prefer a short that is declared on the ASN. Whether it needs a short-ship reason code, a partial-shipment flag or a backorder note depends on their guide, so look it up and then write it in.

Do the arithmetic the AI should not do

The assistant said "check digits not verified", which is the correct answer. Language models are poor at digit-by-digit arithmetic, so validate SSCCs in a spreadsheet, or with a small script, not in chat. The GS1 check digit rule for an 18-digit SSCC: take the first 17 digits, working from the right multiply alternate digits by 3 and 1 (the rightmost of the 17 by 3), add them, and the check digit is what you add to reach the nearest equal or higher multiple of ten (a sum that is already a multiple of ten gives 0). For 30123456000000001 the weighted sum is 51, so the check digit is 9, and the full SSCC is 301234560000000019. Build a column that does this for each label number and flags any mismatch; the printed pallet label should also scan to the same number you typed.

Other checks for a spreadsheet, not for the chat window: that the carton count equals the sum of the carton lines, that no SSCC repeats, that total weight equals the sum of carton weights, and that the number of pallets equals the number of distinct SSCCs. These are formulas such as COUNTIF, SUM and SUMPRODUCT. If you want a deeper treatment of pallet labels, checking SSCC label data against the ASN goes through it.

Turn the checked data into the customer's layout

Only now do you ask for the draft, and you give the assistant the customer's own words about the format. Paste the relevant pages of their supplier guide, or the field list from the portal, as text. Never ask it to produce a "standard" ASN and then hope the retailer accepts it.

Below is the customer's ASN field specification (pasted from their supplier guide) and my checked data. Produce the ASN as a table or CSV with exactly their field names and order, one row per carton under each pallet.
Rules: use only data from my sheets; where the specification wants a field I have not given you (for example carrier SCAC code, ship-from identifier, batch number), write MISSING and list it at the end. Do not invent values. For short shipments, use the reason code from the specification, quoting the line of the guide you used.

[paste field specification]
[paste checked pallet and carton data]

A good reply produces the rows and a short list of missing items: for instance, "MISSING: carrier code, ship-from location ID, delivery appointment number". Those are the three fields small suppliers most often have to chase. The dispatcher fills them in from the carrier booking and the customer's vendor setup, then submits through the portal or the EDI service.

The mismatches that cause fines, and how each shows up

A buyer scanning an incoming pallet against your ASN finds errors in a handful of familiar places. Build a checklist from these, and run it on every notice before it goes.

  • Quantity differences. ASN says 180, pallet holds 168. Cause: notice built from the PO, not the pick. Test: ordered against picked against carton units, as in the first prompt.
  • A substitute item. The packer swapped a similar SKU because stock ran out and the carton sheet shows the original. Test: every carton item appears on the pick list and the PO.
  • Label and notice disagree. A pallet re-wrapped and relabelled, or labels printed twice, so the number on the pallet is not the number on the notice. Test: scan every pallet label before it leaves and compare to the sheet.
  • Mixed pallets without a breakdown. One pallet, three items, one line on the notice. Test: each carton listed under its pallet.
  • Wrong unit of measure. The notice says 12 each and the carton holds 12 packs of 6. Test: units per carton against the item master.
  • Missing or wrong batch or date. Required for food and some other goods. Test: every carton line has it when the guide demands.
  • Late notice. The truck arrives and the notice has not. Test: send time against the deadline in the guide, on the dispatch checklist.

Customers also set their own penalties, which vary and are in the supplier guide. Do not assume a figure from a web page; read the section on chargebacks and write the amounts beside each check so the team knows what an error costs.

A short ship, handled properly

Back to ITEM-B. Twelve units were not picked because stock was short. The supplier has three options, and the AI can help draft the wording, but the choice is the dispatcher's.

  1. Ship now and declare the short on the ASN, with the customer's short-ship code.
  2. Hold the whole order until the missing 12 arrive and ship complete. Check whether the delivery window allows it.
  3. Ship now and send a second notice, on its own ASN, when the 12 follow. Many receivers require the second shipment to quote the same PO and a new shipment number.

A draft message to the customer's buyer, with placeholders (illustrative):

Subject: PO 55102 short shipment, line 2

Hi [first name],

PO 55102 ships on [date] with line 2 (ITEM-B) at 168 of 180 units. The remaining 12 are due from our supplier on [date] and will ship on a separate ASN against the same PO. The notice reflects 168. Let me know if you would prefer us to hold the order.

[your name]

Do not send that until the stock date has been confirmed; "due on [date]" is a promise.

Building the sheet so the next ASN takes ten minutes

The first ASN will take a couple of hours. Make the second quick by turning what you did into a reusable workbook.

  • Tab 1, PO: pasted in each time (PO number, line, item, quantity, ship-to).
  • Tab 2, Pick: exported from the warehouse system or typed from the pick sheet, with picked quantity.
  • Tab 3, Cartons: one row per carton with item, quantity, pallet SSCC, weight.
  • Tab 4, Checks: formulas for ordered against picked, units against cartons, carton totals, SSCC length, duplicates and check digit.
  • Tab 5, ASN: the customer's layout, filled by lookup from the other tabs.

Ask the AI to write the formulas for tabs 4 and 5 once, test them on the example above, and keep a copy named for the customer. A different customer means a new tab 5 and a new read of their guide; tabs 1 to 4 carry over. If your pick lists come from a purchasing flow you already automate, automating purchase orders and supplier emails sits on the same data.

When a customer's guide is vague, ask before you ship

Supplier guides vary in quality. Some are 80 pages with examples; some are three pages with a sample file. Where the guide is silent, send a short list of questions to the customer's supplier-onboarding contact, and keep the answers in a file next to the template.

  • Is the SSCC required at pallet level, carton level, or both?
  • Which unit of measure do you want for each line: each, case, or inner?
  • How do you want a mixed pallet shown?
  • What is the deadline for the ASN against the pickup or the appointment?
  • Which reason codes do you want for a short or over shipment?
  • Do you want a test file before the first live notice?

The last question is the cheapest insurance. Most customers have a way to validate a test ASN before the first real one. Run the example through it, fix what comes back, and keep the passing file as the template. Where the retailer's format and your warehouse data disagree, the retailer's format wins, so adapt your carton data capture, not their specification.

A food supplier: when batch and date go on the notice

A different business shows how one extra requirement changes the work. Say a small food producer ships chilled sauces to a retailer's depot. The customer's guide asks for a batch code and a best-before date on every carton line, and the depot rejects pallets whose remaining shelf life is below an agreed minimum. The carton sheet therefore needs two more columns, and the first prompt needs two more checks: every carton line has a batch and a date, and no date falls inside the minimum remaining life on the delivery day. Suppose the minimum is 21 days and the delivery is on 14 October: any carton with a best-before date earlier than 4 November fails. The AI lists the three cartons from an older batch that fail. The dispatcher pulls them and swaps in newer stock before the pallet is wrapped, which is a far cheaper moment than a rejection at the depot.

The same producer must remember that the batch on the notice is the batch on the carton label. Ask the packer to scan or photograph one carton from each batch when the pallet is built, and compare the three batch codes on the sheet with the photographs. It takes two minutes a pallet.

What a rejected notice looks like, and the fix

Portals and EDI services return validation messages when a notice fails, and these are written for software, not people. Paste the message into the assistant with your row and ask for a plain explanation, then fix the data. An illustrative case:

Portal message: "Segment HL level T: SSCC 30123456000000002 failed check digit validation. Line 2 rejected."
My pallet sheet row: pallet 2, SSCC 30123456000000002, cartons 26.
Explain what the message means and what I should check. Do not change my data.

A sensible reply points out that the number has 17 digits, so the check digit is missing, and that the correct final digit for that stem is 6. The dispatcher compares it with the printed label, finds the label printer dropped the last digit of the human-readable line, and reprints. The lesson goes on the checklist: validate length and check digit before submitting, and scan the printed label.

Keep a log of customer rules, not just templates

As you add customers, the differences between them pile up, and memory is the weakest place to keep them. Keep one page per customer with the facts below, filled in from their guide and from each correction they send you:

ItemCustomer A (example)
Submission methodPortal upload, spreadsheet template version 4
DeadlineBefore the truck leaves the dock
Label levelPallet SSCC; carton ID printed by supplier
Mixed palletsAllowed, each carton listed
Short ship ruleReason code on the line, second ASN for the balance
Test fileRequired before first live shipment
Contact for rejectionsSupplier onboarding desk, address in the guide

The AI can keep this up to date: paste each correction email and ask it to propose a one-line change to the customer page, which you approve. Over a year this page becomes the most useful document in the dispatch office.

How to check it worked

After the first three live notices, look at the receiving reports the customer sends, or ask for them. Count how many pallets scanned in without an exception, how many lines differed, and how many chargebacks arrived. A good first target is no exceptions on the first three shipments; if any appear, trace each one to a check in the list above and add the missing check to the workbook. At that point you are in a position to test whether your routine will keep up with a busier period, and the peak season checklist is the place to look, with dock scheduling rules for the receiving side of the same conversation.

Expect two to three hours for the first notice including reading the guide, an hour for the second, and about ten minutes once the workbook is tested. Use a business plan for the assistant and remove customer contact names and prices from anything you paste. If you would rather go through your own pick lists and a customer's guide with someone, an AI implementation consultation is the setting for that.

Questions suppliers ask about advance shipping notices

Is an ASN the same as a packing list?

No. A packing list travels with the goods on paper and describes what is in the box. An ASN is sent electronically before the truck arrives so the receiver can plan and scan. It carries the same facts plus identifiers, such as pallet and carton labels, that let the receiving system match each scan to a line.

What are EDI 856 and DESADV?

They are the standard electronic message formats for an ASN. EDI 856 is the ASC X12 version and DESADV (dispatch advice) is the EDIFACT version. Many retailers also accept a portal form or a spreadsheet upload, so ask which method your customer requires before you spend money on EDI.

Can AI send the ASN to the retailer for me?

It should not. Use AI to prepare and check a draft file, then submit through the customer's portal or your EDI service yourself. The retailer's format, field order and code lists are strict, and a rejected or wrong ASN can trigger fines, so a person should approve every submission.

When must the ASN be sent?

The deadline is set by the customer, often before the truck leaves or within a set time of dispatch. It is in the supplier guide. Treat that document as the rule and put the deadline on your dispatch checklist; the general idea only needs to be that the notice arrives before the goods.

Further reads

Sources: general descriptions of the ASN, EDI 856 and DESADV messages and of the GS1 Serial Shipping Container Code (SSCC); GS1's check digit method; the X12 hierarchical level codes; your customer's own supplier or vendor guide is the authority for format and deadlines. The worked example is illustrative.

Want your ASN routine set up and checked?

On a 1:1 call we can look at your pick lists and carton data, map where the mismatches come from, and set up a checking sheet so your dispatch team can prepare each ASN without guessing.

Book a 1:1 call with me