Part 1 — The Business of Fashion Wholesale

I Retail Partner Compliance and Chargebacks

Every large retailer publishes a rulebook telling you exactly how to label, pack, route and document the goods you sell them, plus a price list of what it will deduct from your invoice when you get it wrong. This chapter is the one that saves you real money: it explains the rulebook, the deductions, the arithmetic that quietly turns a profitable account into a loss-maker, and the dispute process you have days rather than months to use. Then it turns all of that into tables, fields, constraints and screens your ERP has to have.

In this chapter12 sections · about 74 min
  1. What you need to know first
  2. I.1 The vendor manual: the rulebook you did not write
  3. I.2 Routing: the retailer drives the truck
  4. I.3 Labels, tickets and packing: making merchandise floor-ready
  5. I.4 The four documents you are actually signing
  6. I.5 On-time in-full and fill rate
  7. I.6 The chargeback taxonomy
  8. I.7 The economics: how a good account quietly goes bad
  9. I.8 Disputing and recovering
  10. I.9 Prevention as a system
  11. I.10 Returns and RTV
  12. What this means for your ERP

What you need to know first

Wholesale means you sell to a business that resells to the public. You are the vendor (also called the supplier, or just "the brand"). Your customer is the retailer.

A retailer is more than one building. It has a head office where buyers sit, a handful of distribution centers (giant warehouses, usually called DCs, where trucks unload and goods get sorted), and hundreds or thousands of stores.

Goods usually flow brand → DC → store. Sometimes they go brand → store directly, and sometimes brand → a consolidator, which is a third-party warehouse the retailer hires to collect small shipments from many vendors and combine them into full truckloads.

The unit of physical handling is the carton: one cardboard box. A shipment is a set of cartons moving together on one truck. A purchase order (PO) is the retailer's written order: these styles, these sizes, these quantities, this price, delivered to this place between these dates.

An invoice is your bill for a shipment against that PO. A bill of lading (BOL) is the shipping document you hand the driver. It is the contract of carriage between you and the carrier, and it doubles as the carrier's receipt for what it picked up. A SKU (stock keeping unit) is one sellable thing at its finest grain: this style, in this color, in this size. It is the level at which almost everything in this chapter is counted.

How the retailer pays: setoff and deductions

This part surprises newcomers. When the retailer pays you, it does not necessarily pay the invoice amount. It pays the invoice minus whatever it has decided you owe it. That subtraction is called a deduction, a chargeback, an expense offset, a claim, or a short-pay, depending on which retailer's vocabulary you are reading.

The legal mechanism is setoff: instead of sending you a bill and waiting for you to pay it, the retailer simply keeps the money. Dollar General's published vendor guide states it plainly: it "reserves the right to deduct from any amount due to Vendor for Products ordered any amount Vendor owes Dollar General with respect to any claims of any nature whatsoever." You find out when the money does not arrive.

The document that explains the shortfall is the remittance advice: a list of invoices paid, with deduction lines, each carrying a code and an amount. Reading remittances is a real job.

The codes are not standardized across retailers. Nordstrom, for example, uses NL for a missing GS1-128 carton label, NN for receipt quantities that do not match the electronic shipment notice, SX for a missing polybag and NM for merchandise not on the agreed hanger, and those letters mean nothing at any other retailer.

Deductions split into two families, and keeping them apart is the single most useful mental habit in this chapter.

Commercial deductions are money you agreed to give up when you opened the account. Markdown allowances, co-op advertising, new store allowances, defective allowances, cash discounts. They are negotiated, usually expressed as a percentage of what you ship, and they are not mistakes. They belong in your price, your margin plan and your accruals: the money you set aside in your accounts, in advance, for a bill you already know is coming.

Compliance chargebacks are penalties for breaking an operational rule: the truck was late, the label would not scan, the electronic paperwork disagreed with the box. These are not negotiated. They come from a published schedule of charges, they are applied automatically by software, and they are mostly preventable. This chapter spends most of its time here, because this is where a beginner loses money for no reason at all.

Four more terms: EDI, 3PL, GS1 and GTIN

These four terms recur throughout the chapter:

  • EDI (Electronic Data Interchange) is the decades-old standard format retailers use to exchange business documents with vendors (POs, shipment notices, invoices) as structured files rather than PDFs or emails. Chapter 4 covers how to implement it. Here we only care about what each document promises.
  • A 3PL (third-party logistics provider) is a warehouse company you pay to store, pick, pack and ship your goods. Using one does not transfer the compliance risk, because the retailer's contract is with you.
  • GS1 is the not-for-profit standards body that defines the barcodes retail runs on, the same organization behind the barcode on a shampoo bottle.
  • And a GTIN (Global Trade Item Number) is the number that barcode encodes: the 12-digit UPC you see on a US product is a GTIN, and every color-size combination you sell needs its own.

A retail account has a headline number (gross wholesale shipped) and a real number (cash that arrives and stays). The gap between them can be large enough to decide whether the account is worth having. It varies by retailer, by category and by how well you run, so there is no benchmark worth quoting at you here. Nobody at the retailer will ever tell you what your gap is. Your ERP has to.

Core principle

The retailer pays itself first, from your money, without asking. Every rule in the vendor manual is enforced by arithmetic applied to your remittance, not by a conversation. Design your systems for a counterparty that debits silently and explains later.

I.1 The vendor manual: the rulebook you did not write

A vendor manual (also published as a supplier compliance manual, vendor standards manual, partner guide or vendor guidelines) is the retailer's complete operating specification for doing business with it. A routing guide is the transportation chapter of that manual, and at some retailers it is a separate document with its own revision cycle. In casual conversation people use the two words interchangeably. In practice, assume you must read both.

These documents are long and operational. Nordstrom's publicly archived supplier compliance manual runs to 187 pages. Dollar General's domestic vendor guide runs to 103 pages including its legal terms.

Foot Locker does not publish one document at all: its Vendor Standards Manual is a set of separately maintained numbered sections, each with its own footer date, covering:

  • the introduction and ship-to network;
  • purchase orders;
  • ticketing and labeling;
  • packing and packaging;
  • traffic routing and appointment scheduling;
  • the vendor compliance chargeback program;
  • and the contact list.

Section 1, the Introduction, lists the operating divisions, service center numbers and street addresses you must ship to, before you have read a single rule.

Who publishes them varies, and it matters because it tells you who to argue with:

  • Transportation and routing come from a corporate logistics or traffic department.
  • Labeling, ticketing and packing come from a vendor compliance, supply chain standards or "floor ready" team.
  • EDI specifications come from an EDI or B2B integration group.
  • Allowances, deductions and disputes come from accounts payable.

Nobody owns all four. A single bad shipment can generate charges from three of those departments, each with its own contact address and its own dispute route.

How often they change, and how you find out

Continuously, and badly. Each section changes on its own clock. The Foot Locker US and Canada Section 1 in circulation is stamped August 2023, while other sections in the same manual carry different dates. There is rarely one "version" of a manual, only a pile of sections each stamped differently. Dollar General's guide behaves the same way, with per-section update stamps printed in the table of contents of a single PDF: Vendor Compliance updated 30 September 2019, Retailer Contacts 19 December 2019, the Routing Guide 10 February 2020, Returns and Unsaleables 21 February 2018.

Manuals do at least try to tell you what moved. Foot Locker's Introduction opens with a "Highlights of the changes" list naming the affected sections. In the August 2023 revision those highlights were a new address for one service center, a new email contact for routing inquiries, and new email contacts for domestic transportation and for ticketing and labeling questions. Buried in the same short list was a brand new violation code for late deliveries.

A new chargeback code can arrive in a bullet point. The same page states flatly that "this revised manual replaces all current manuals."

Dollar General uses the same convention on purchase orders themselves: when it modifies a PO it emails you a PDF with the changed lines marked by an asterisk, and you must reply with "REC" in the subject line to acknowledge it, every time it is modified. Nordstrom's manual carries an update legend and tells suppliers to review the website periodically.

Distribution is by vendor portal, not email:

  • Walmart uses Retail Link;
  • Target uses Partners Online;
  • Amazon uses Vendor Central;
  • Dollar General uses its dgpartners site;
  • and Nordstrom's manual directs suppliers to nordstromsupplier.com.

Portal names and addresses change, so treat any list including this one as a starting point rather than a fact. You are expected to log in and check. Some portals email a notice. Many do not.

Worse, the login itself can lapse: Dollar General's guide warns that a vendor is forced to reset a password in its DG Compass system after 90 days of inactivity and that the account "will be purged" after 105 days, and says explicitly that keeping the account alive (and therefore being able to confirm purchase orders at all) is the vendor's responsibility, not theirs.

Why "we did not know" is never accepted

Because the manual is part of the contract, by reference, in its future versions. Dollar General's vendor terms say it: "Vendor acknowledges that Dollar General has adopted Vendor Guidelines, which, as amended from time to time, are available through the dgpartners website... Vendor hereby covenants, represents and warrants that it will perform the terms of this Quotation and any applicable purchase order in accordance with all Vendor Guidelines." You did not sign the current version. You signed a promise to obey whichever version exists on the day you ship.

Then there is the clock. The same document contains a deemed-acceptance clause: receipt of a payment that reflects a setoff "is an acknowledgment by Vendor of the validity of the setoffs or credits taken unless Vendor contests the setoffs or credits in writing or through EDI... within the earlier to occur of (i) thirty (30) days of Vendor's receipt of such payment or (ii) thirty (30) days of Vendor's receipt of notice of Dollar General's intent to take such setoffs or credits." Cash you did not chase inside a month becomes cash you agreed to give away.

Incorporation by reference is the trap

Your vendor agreement almost certainly binds you to the manual "as amended from time to time." That converts a document you have never read into an enforceable contract term. Two consequences: (1) store a dated snapshot of every manual and routing guide version you have ever operated under, because a dispute about a shipment in March is decided by March's rules, not today's; (2) put a calendar owner on every account whose only job is to check the portal on a fixed cadence and diff the new version against the old.

I.2 Routing: the retailer drives the truck

Beginners assume the seller picks the carrier. In wholesale retail, usually the buyer does, and the reason is money. A retailer moving millions of cartons a year negotiates freight rates you cannot touch, so it takes control of the freight and charges the cost back to you in some agreed proportion.

The mechanism is freight terms. Collect means the retailer arranges and pays the carrier, and the carrier bills the retailer. Prepaid means you arrange and pay the carrier.

There are hybrids: "prepaid and add" means you pay and bill it on, and retailers police it hard. Dollar General lists "freight terms were collect, but order was shipped prepaid with charges added to the invoice" as a transportation violation with a $100 minimum charge. Nordstrom requires shipments to move collect or bill-receiver and states that it does not reimburse prepaid shipments sent on carriers it has not authorized.

Nordstrom's published freight allowance codes show the negotiated split as a single digit on the PO:

  • 0 means the supplier pays no freight;
  • 1 means the supplier pays 100%;
  • 2 means 50%;
  • 3 means the supplier pays 60% of air freight cost on air shipments only;
  • and 4 means 30% on the same basis.

The routing request and the load tender

On a collect shipment you cannot just call a truck. You must ask permission and be told which truck. That conversation has a standard shape.

  YOU                            RETAILER / ITS TMS            CARRIER

  goods ready
      |
      |-- ROUTING REQUEST ------------>|
      |   (EDI 753, or a form in the   |
      |    vendor portal)              |
      |   PO numbers                   |
      |   ready date                   |
      |   # cartons                    |
      |   total weight                 |
      |   total cube (cubic feet)      |
      |   ship-from address            |
      |                                |
      |                          picks carrier,
      |                          mode, pickup date
      |                                |
      |<-- ROUTING INSTRUCTIONS -------|
      |   (EDI 754)                    |
      |   carrier + SCAC code          |
      |   pickup date / window         |
      |   load ID                      |
      |   which POs on which load      |
      |                                |
      |                                |-- LOAD TENDER ------>|
      |                                |   (EDI 204)          |
      |                                |<-- accept/decline ---|
      |                                |
      |<--------------- carrier arrives in window -----------|
      |
   load, hand over Bill of Lading (BOL) with the load ID on it
      |
      |-- ASN (EDI 856) -------------->|  before the truck arrives
      |
      |<-- delivery appointment at DC, then receiving

Read that as a permission chain. You declare what you have and when it is ready. The retailer's TMS — transportation management system, the software a big shipper uses to plan and buy freight — decides who moves it. The carrier is separately hired by the retailer and told to come get it.

Three pieces of jargon appear in that diagram and each is simple:

  • Cube is the volume of your shipment in cubic feet: carton length × width × height, summed.
  • A SCAC is a Standard Carrier Alpha Code, the two-to-four-letter code that identifies a specific trucking company, so "assigned carrier" is unambiguous.
  • And the load ID issued in step two has to reappear on the paper you hand the driver in step five.

The numbered documents (753 for the routing request, 754 for the instructions back, 204 for the load tender the retailer sends its carrier) are standard EDI transaction sets, and chapter 4 covers how to send and receive them.

Break any link in the chain — request too late, wrong cube, missing load ID on the bill of lading, wrong carrier — and you have a routing violation, which is one of the most expensive categories there is because the charge is frequently the whole freight bill. Nordstrom's published expense offset for a routing guide or purchase order violation is 100% of the shipment cost plus a $25 handling fee.

Lead time, and declaring weight and cube accurately

Two details bite beginners. First, lead time: routing requests and order confirmations have deadlines measured in business days before the ship date, and they are enforced. Dollar General requires collect vendors to confirm a PO through DG Compass "no later than 5 business days prior to the ship date given on the PO," compresses that to 2 business days from the order date when the retailer itself placed the order late, and separately requires a 5-calendar-day window between the confirm date and the delivery date. Failing any of those is a chargeback in its own right.

Second, accuracy of the declared weight and cube: retailers plan trailer space from your numbers, and the guides put the cost of a bad number on you. Dollar General adds a 5% administrative fee on top of every transportation chargeback. Your ERP must be able to compute cube from carton dimensions, not guess it. Set your own internal tolerance for declared-versus-actual, and read each partner's guide for theirs.

Dates on a purchase order, and why there are several of them

A wholesale PO does not have one delivery date. It has a set of them, and the vocabulary differs by retailer. This table gives the terms you will actually meet.

TermAlso calledWhat it actually means
Start ship / earliest ship dateBegin ship, Do Not Ship BeforeFirst day the carrier may collect. Ship before it and the retailer can refuse the truck or charge you.
Cancel dateLast ship date, Do Not Ship After, "past cancel"Last day the goods may leave. Nordstrom's glossary defines it as "the last day to ship." After it, the retailer may cancel the order outright and owe you nothing.
Ready dateAvailable date, call-in dateOn collect orders, the day you tell the retailer the goods are actually available for pickup. Dollar General requires the ready date you submit to be on or before the PO's ship date, and charges back a ready date that lands after it.
Pickup windowCollect pickup windowOn collect orders, the span in which the retailer's assigned carrier will come. Target measures on-time for collect shipments as 100% of a PO's goods picked up inside this window.
MABDMust Arrive By Date, required delivery date, in-yard dateThe date the goods must be checked in at the DC. It says nothing about when you ship. You work backwards from it through transit time and appointment availability.
Delivery appointmentReceiving window, dock appointmentA specific date and often a specific hour slot at a specific dock door. Missing it is its own violation, separate from missing MABD.

The single most common beginner error is treating MABD as a ship date. MABD sets the day the goods must arrive.

If your 3PL is in New Jersey and the DC is in Texas with a four-day transit, and the DC only offers appointments on Tuesdays and Thursdays, a Monday MABD means the goods must leave the previous Tuesday, which means picking must finish the Monday before that. Your ERP should compute and display a latest pick-complete date, because that is the date your warehouse can actually act on.

Early is a violation too

Beginners assume shipping early is a favor. Retailers treat it as a violation. An early delivery lands in a DC that has no space allocated, no labor scheduled and no open receipt for it, so it gets refused, stored at your cost, or received and charged back. Retailer delivery scorecards (the on-time in-full or "OTIF" programs explained in I.5) score arrivals outside the window as failures whether they are early or late. Target's on-time metric is explicit that it fines goods "received outside the window," in either direction. Nordstrom's manual lists shipping "outside the shipping window — prior to the Earliest Ship Date or after the Latest Ship Date" as grounds for refusing the shipment entirely. Ship inside the window. The window is the product.

Appointments, detention and TONU

Finally, the appointment. Once the load is on the road, someone — usually the carrier, sometimes you — books a dock appointment at the DC. The named failure modes each carry their own charge, and they are itemized. Dollar General's published schedule prices:

  • a carrier arriving with no appointment at $375;
  • a carrier an hour or more late for one at $350;
  • a reschedule without 24 hours' notice at $200;
  • and an appointment booked for a date past the PO's arrival date at $375.

Two more charges belong in this group. Detention is what you owe when you keep the driver waiting past a free period, which Dollar General sets at two hours, after which a charge with a $100 minimum applies. Truck ordered not used, or TONU, applies when a driver arrives for a load that is not there and the carrier charges for the wasted trip.

I.3 Labels, tickets and packing: making merchandise floor-ready

Floor-ready merchandise is the industry's name for goods that can go from the receiving dock to the sales floor with almost no work in between. The standard grew out of a VICS committee established in October 1993. VICS is the Voluntary Interindustry Commerce Standards association, an industry body whose retail supply-chain work GS1 US later absorbed.

The current GS1 US guideline defines floor-ready merchandise as "merchandise that is ready for sale when received at a retail selling location," adding that "activities such as pricing, hanger application, and packing should occur at the most logical stage in the supply chain" and that "the responsibility for these activities is negotiated between the retailer and the supplier."

That last clause is why floor-ready rules feel arbitrary. The industry agreed on the shape of the standard and left each retailer to fill it in differently.

The GS1-128 shipping label and what the barcode really says

Every carton going to a large retailer carries a shipping label with a barcode in the GS1-128 symbology (older manuals, including Nordstrom's, call it UCC-128 or UCC/EAN-128, same thing). The number inside is an SSCC, or Serial Shipping Container Code. Understanding what it does and does not carry is the best five minutes you will spend in this chapter.

  (00) 3 0614141 123456789 1
   |   |    |        |     |
   |   |    |        |     +-- check digit (mod-10)
   |   |    |        +-------- serial reference: yours to assign
   |   |    +----------------- GS1 Company Prefix: licensed to you
   |   +---------------------- extension digit: adds capacity
   +--------------------------- Application Identifier "00" =
                               "the next 18 digits are an SSCC"

  18 digits after the AI. Extension digit + Company Prefix +
  Serial Reference always total 17; the check digit makes 18.
  GS1 rule: an SSCC must not be reallocated within one year
  of the shipment date, and some sectors require longer.

Read the diagram from the bottom up:

  • The Application Identifier 00 is a two-digit prefix that tells any scanner in the world "the next 18 digits are a logistics unit ID," which is why a GS1-128 barcode is self-describing.
  • The extension digit is a single digit you choose, and it exists only to give you more numbers to hand out.
  • The company prefix is licensed to your business by GS1, so an SSCC is globally unique without any central coordination.
  • The serial reference is yours to assign, one per carton.
  • The check digit is calculated from the other seventeen so a scanner can spot a misread.

Those first three parts always add up to seventeen digits between them, however GS1 has split your prefix, and the check digit makes eighteen.

One rule in that block is a database constraint rather than a style note. The GS1 General Specifications (Release 26.0, ratified 20 January 2026) put it precisely, in section 4.3: "an individual SSCC number must not be reallocated within one year of the shipment date from the SSCC assignor to a trading partner. However, prevailing regulatory or industry organization specific requirements may extend this period." Treat that as hard. It is the reason the number generator belongs in Postgres as a sequence rather than in application memory.

The SSCC is a license plate, not a contents list

Beginners get one thing wrong here, and it is expensive. The SSCC does not encode the contents of the carton. It works like a license plate. It says "this box is box number X in the universe." What is inside box X is stated only in the electronic shipment notice you transmit separately.

When the DC scans the label, its system looks up X in your notice and books whatever your notice claimed. If your notice claimed twelve mediums and the box holds twelve smalls, the retailer's inventory is now wrong and the error is invisible until a store opens the box. That is why label errors and shipment-notice errors are charged at similar severity: they are the same failure viewed from two ends.

The label itself is specified down to fractions of an inch. Nordstrom's manual requires a 4" × 6" label formatted into named information zones with 6-point zone titles, barcodes printed in vertical bar configuration, the bottom edge of the SSCC barcode at least 1.25" from the bottom of the carton and the outermost bar no closer than 1.25" to the vertical edge, with a minimum print quality grade of 1.5 (C) and a recommended grade of 2.5 (C), measured at a 0.01" (0.254 mm) aperture and an inspection wavelength of 670 nm (±10 nm).

If that sounds absurd, remember the receiving dock is a conveyor with fixed scanners: a label 20 mm too low is a label the machine cannot read, and a carton the machine cannot read is a carton a human must handle.

Beyond the barcode, the human-readable content is prescribed too. Nordstrom's required set is representative:

  • ship-to address including the DC number;
  • vendor name and address;
  • ship-to postal code;
  • carrier name with the PRO number (the carrier's own tracking number for the shipment) and bill-of-lading number;
  • purchase order number;
  • department number;
  • "carton X of Y";
  • the mark-for store number (the store the carton is ultimately destined for, even though the truck is going to a DC);
  • a store barcode;
  • and the SSCC in both barcode and human-readable form.

Price tickets and pre-ticketing

A price ticket is the little tag on the garment carrying the barcode, the retail price, size and color. Pre-ticketing means you attach it at your factory or warehouse, so the retailer never touches it. Almost every large apparel retailer requires it.

The retail price gets its own reserved real estate. The GS1 US floor-ready guideline defines Zone 6 as "space reserved for retail item pricing" (either physical space on a ticket or reserved space on a box or package), with a minimum dimension of 1" high by 1.25" wide, containing the human-readable consumer price only, in one of two formats ("$9,999.99" or "13 for $99.99"), applied either by direct print into the zone or by an adhesive price sticker placed within it.

The guideline recommends a 10-point bold font and a white sticker with black print that cannot be peeled off once set. The price to print comes to you on the PO itself, or on a PO change document, or on your acknowledgment.

Practically, this means:

  • you cannot print tickets until the retailer tells you the retail price;
  • the retail price can change mid-order via a PO change document;
  • and printing yesterday's price is a chargeback (Nordstrom code NC, retail missing or incorrect on ticket).

Retailers commonly nominate approved ticket suppliers and run an approval loop before you may ticket anything. Nordstrom's process is typical:

  1. pick one of its preferred third-party ticket suppliers;
  2. choose the ticket type for the selling area and merchandise;
  3. complete a Floor Ready Merchandise contact sheet;
  4. and send a printed sample ticket to Nordstrom's Floor Ready office for approval. An analyst corrects it, and only then are you set up to ship.

Increasingly the ticket also carries an RFID tag, a tiny radio chip that lets a store count inventory by waving a reader down an aisle. Several large US retailers now require item-level RFID on apparel and have been extending the requirement into other categories, so check your partner's current manual rather than assuming apparel-only.

Hangers, polybags and the physical rules

Apparel arrives either GOH (garment on hanger, hanging in the truck on a rail) or flat pack, folded in cartons. The retailer decides, per department, and the hanger is specified by type.

The industry baseline is the GS1 US Hanger Application Guideline, the successor to the VICS hanger work, which the floor-ready guideline names as the reference for correct hanger application. Retailers then narrow it, usually to a specific hanger style, size and color per department, and often to a named hanger supplier you must order from.

Nordstrom's deduction codes show how finely this is policed, with three distinct ways to be wrong about hangers: NM (merchandise not on a VICS hanger), NH (not on the correct VICS hanger) and SV (ordered to ship flat but received hanging).

Polybags (the clear plastic bags garments ship in) are equally prescribed and equally charged: SX polybag missing where required, SS polybag not sealed, SN polybag sealed incorrectly.

The GS1 guideline sets out the trade-off honestly: packaging must protect the product and survive conveyors while minimizing material a store associate has to strip off and bin. It names the measures to specify with your factory: Mullen bursting strength (how much pressure a carton wall takes before it ruptures), edge crush test (how much stacking weight the carton edge takes), and polybag film thickness and puncture resistance.

Cartons themselves have limits, because they must ride a conveyor. GS1's recommended envelope is a minimum of 9" × 9" × 3" at 3–5 lbs and a maximum of 36" × 27" × 30" at 50 lbs, and the guideline says explicitly to check your trading partner's specific requirements. They do differ: Nordstrom's glossary defines a carton as "not to exceed 36" by 24" by 24" or 50 lbs", which is tighter than the GS1 maximum on two of three dimensions. Anything outside your partner's envelope is a "non-conveyable" and gets manual handling, at your expense.

Pack by store versus pack by DC

This is the decision that shapes your warehouse operation, and it is set per PO by the retailer.

Pack by DC (bulk pack) means you pack by style and size: a carton of 24 black mediums. The DC opens it, splits it, and redistributes to stores. Simple for you, work for them.

Pack by store means each carton is destined for one named store and contains exactly what that store ordered, perhaps 2 smalls, 3 mediums, 2 larges of one style. The DC can cross-dock it: scan the label and move the sealed carton straight to an outbound store trailer without opening it. Cheap for them, expensive for you, and it multiplies your carton count.

A 400-unit order packed 24 to a carton is 17 cartons if you pack by DC. Split across 60 stores it is at least 60 cartons, each needing its own label, its own line in the shipment notice and its own chance to be wrong.

When a store's allocation is too small to justify a carton, manuals define a master pack: one outer carton per DC containing separate inner cartons, each marked with its store number, each carrying its own shipping label. Nordstrom's rules are typical:

  • write "Master Pack" on the outside of the lead carton;
  • include the DC ship-to address and the purchase order number;
  • keep inner cartons separate per store;
  • and label each inner carton.

Packing slips follow the same logic: attached to and removable from the outside of one carton per store, clearly marked "Packing Slip Enclosed", and on a master pack consolidated one per PO per store on the lead carton.

Related and often confused: a prepack or solid pack is a fixed size assortment sold as a unit, say a 2-3-3-2 ratio of S-M-L-XL, which the retailer orders by the pack rather than by the unit. Get the ratio wrong inside the box and you have an "incorrect assortment" charge. Dollar General's published schedule prices that at $250 per occurrence, the same as an incorrect inner pack or an incorrect case pack.

I.4 The four documents you are actually signing

Chapter 4 covers how to transmit EDI. This section covers what each document commits you to, which is a different subject and, commercially, a more important one. Treat each of these as a legal statement you are signing, because that is how the retailer's systems treat them.

DocumentDirectionWhat it commitsBusiness risk if wrong
850 Purchase OrderRetailer → youTheir offer: styles, quantities, unit cost, retail price to print, ship-to DC, mark-for stores, start ship / cancel / MABD, pack method, freight terms, allowance codes.Low if you read it. Catastrophic if you don't, because every downstream rule is derived from fields on this document, including the retail price on your tickets. Nordstrom charges $150 per incident if it cannot send you an electronic PO at all.
855 PO AcknowledgmentYou → retailerYour answer, line by line: accepted, accepted with change, or rejected. On many programs this is where you declare what you will actually ship.High and under-appreciated. Confirming a quantity you cannot ship converts "we told you early" into a fill-rate failure, and several programs (Amazon's PO accuracy chargebacks among them) price the gap between what you confirmed and what arrived. Read the current rate card in the portal before you confirm optimistically.
856 Advance Ship Notice (ASN)You → retailerA hierarchical statement of physical fact: this shipment contains these cartons; carton SSCC 306141411234567891 contains 6 units of GTIN X and 6 of GTIN Y, against PO 1234, marked for store 0412.The highest-risk document you send. See below.
810 InvoiceYou → retailerYour demand for payment, which must reconcile to the PO's prices and the DC's receipt quantities.Mismatch triggers price and quantity claims and payment holds. Paper invoices where EDI is required are themselves chargeable: Nordstrom's schedule sets $25.00 per invoice not received electronically and $5.00 per incorrect EDI invoice. Invoicing late can void the charge entirely: Dollar General's terms waive any charge not invoiced within 90 days of delivery.
997 Functional AcknowledgmentBoth ways"I received your file and it parsed." It confirms receipt only, never agreement.Missing 997s are monitored. Dollar General requires them "within 24 hours of the transmission of the originating Purchase Order," says it monitors for missing ones, and warns that failure to send them in a timely fashion "may result in penalties."

Why the ASN is the most dangerous document you send

Everything else you transmit is a statement about intentions, prices or paperwork. The ASN is a statement about the physical world, and the retailer will act on it automatically, without checking, at industrial speed.

When a compliant shipment arrives, the DC does not count it. It scans each carton's SSCC, matches it to your ASN, and books the ASN's contents as received. That is the entire point: the SSCC exists, in GS1's own words, to provide "a link between the physical logistic unit and information pertaining to the logistic unit that is communicated between trading partners using Electronic Data Interchange (EDI)."

Your ASN becomes the retailer's inventory record and, frequently, the basis on which your invoice is approved for payment. Retailers gate on it: Target requires an error-free ASN before the in-yard date and time for 100% of purchase orders with delivery appointments.

So an ASN error travels much further than a paperwork error. It is a false statement that propagates straight into a very large company's inventory system. There are four distinct ways to fail.

  FAILURE           WHAT HAPPENED                  TYPICAL CHARGE BASIS
  --------------------------------------------------------------------
  Missing ASN       Goods arrived, no notice.      Flat, per shipment or
                    DC must hand-count.           per incident. Nordstrom
                                                  publishes $150.

  Late ASN          Notice arrived after the      Flat, per shipment
                    truck. Same effect as         or per PO.
                    missing.

  Unscannable /     Label physically bad, or      Per carton. Published
  mismatched SSCC   SSCC not present in the       rates run from $0.75
                    ASN, or duplicated.          (Target) to $5.00
                                                  (Nordstrom) per carton.

  Quantity /        ASN says 12, box holds 10.    Flat per incident, PLUS
  content mismatch  Retailer's stock is now       a shortage claim for
                    wrong. Store finds out.       the missing goods, PLUS
                                                  rework/handling fees.

Read that table as two halves. The first three rows are administrative: a fixed price for making the receiving dock do work it had automated away. Note how the per-carton charges dwarf the per-shipment ones once volume is involved: 400 cartons at Nordstrom's $5.00 is $2,000 for one bad label template. The fourth row is the one that compounds, and it deserves its own paragraph.

What a quantity mismatch really costs

A quantity mismatch does not just cost the compliance fee. The retailer books what you claimed, pays for what you claimed, then discovers the shortfall — sometimes weeks later at a store — and raises a separate shortage claim for the goods, and possibly a concealed shortage or concealed damage charge on top, which exists precisely because it was found after receipt.

Dollar General's schedule charges $375 for a short quantity and $150 for concealed damages found after receipt, adds rework at $0.133 per unit and re-handling at $0.30 per case where applicable, and states that "the cost of goods will be deducted if applicable" on all violations. Three charges and the merchandise, for one wrong number in a file.

Treat the ASN as a sworn statement

An ASN must be generated from what was physically scanned into the carton, at the moment the carton was closed, never from the order, never from the pick list, never re-keyed. If your packing station cannot produce a verified carton manifest, then what you are sending is a guess with a barcode on it. The transmission window is set per retailer and you must read it: the general shape is "after the goods physically leave your building, and before they arrive at the DC." Related paperwork clocks are just as tight, and they are often stated as hours rather than days, so put each one in the system rather than in someone's head.

I.5 On-time in-full and fill rate

Fill rate is the simplest supplier metric: of what was ordered, how much did you actually deliver? Ordered 1,000 units, delivered 940, fill rate 94%.

OTIF, or on-time in-full, is stricter, because it is a conjunction. A shipment counts only if it arrived within the required window and complete. Late but complete fails. Early but complete fails. On time but 3% short fails. There is no partial credit, and the two conditions are usually scored separately as well as together, so one shipment can generate two failures.

Three things to pin down per retailer

Pin these three down for any given retailer before you can predict your score.

The unit of measurement. Is a failure counted per PO, per PO line, per case, or per unit? A 400-line PO where one line is short is 99.75% by line and 0% by PO. Programs differ: Target measures fill rate "at the item level" against original PO item quantities, while Walmart's fine is applied to non-compliant cases. Published summaries of the same program also disagree with each other. Ask, in writing, and record the answer per account.

The thresholds. These move, and they differ by freight term. Walmart's published supplier goals, as of July 2026, are 90% on-time for prepaid, 98% "collect ready," and 95% in-full. Target requires 95% of original PO item quantities delivered, 100% of a collect PO's goods picked up inside the pickup window, and 100% of POs with delivery appointments carrying an error-free ASN. Treat any single number you read, including these, as provisional and verify it on the portal, because these targets are revised.

The penalty base. The big programs charge a percentage of cost of goods sold (COGS): what the merchandise cost you to make, not what you sold it for. Walmart charges 3% of COGS on non-compliant cases. Target applies 3% of cost of goods to items not received in full and to goods received outside the window. Amazon runs an equivalent set of PO accuracy chargebacks for vendors, priced as a percentage of cost, and revises the rates. Read the current schedule in Vendor Central rather than a third-party summary.

What varies, and what changes your exposure by an order of magnitude, is whether the percentage applies to the cost of the failed units or cases only or to something broader. Get that in writing before you model anything.

  OTIF PENALTY - WORKED EXAMPLE, ILLUSTRATIVE FIGURES
  ===================================================
  Assumption: the fine applies to the cost of goods on
  the FAILED portion only. Verify this per retailer.

  penalty = failed_COGS x penalty_rate

  One month, one account:
    cost of goods shipped in month     $620,000
    OTIF score                            93.5%
    failure rate                           6.5%
    cost of goods on failed units       $40,300
    penalty rate                             3%
    OTIF fine for the month              $1,209
    annualised                          $14,508

  Sensitivity on the same $620k/month account:
    OTIF 98.0%  ->  annual fine   $4,464
    OTIF 96.0%  ->  annual fine   $8,928
    OTIF 93.5%  ->  annual fine  $14,508
    OTIF 90.0%  ->  annual fine  $22,320

Working the OTIF penalty arithmetic

Work through the top block once and the rest follows. You shipped $620,000 at cost in the month. You scored 93.5% OTIF, so 6.5% of that cost failed: $620,000 × 0.065 = $40,300. The fine is 3% of the failed cost: $40,300 × 0.03 = $1,209 for the month, or $14,508 across twelve months at the same rate. The sensitivity block repeats that same sum at four different scores, so you can see what one percentage point of OTIF is worth to you.

Two lessons from that block. First, the arithmetic is worth doing yourself rather than accepting scare numbers: on these assumptions, a 3% fine on the failed portion of a $7.4 million-at-cost annual account is real money but is not, by itself, ruinous. Change the assumption to "3% of everything shipped" and the same account pays $223,200, which is exactly why the base matters more than the rate.

Second, the OTIF fine is usually the smallest cost of failing OTIF. The bigger costs are the flat-fee compliance chargebacks that cluster around a chaotic shipment, the lost sales from empty shelves, and the allocation decision the buyer makes next season. Scorecards feed replenishment algorithms and open-to-buy, which is the budget a buyer has left to spend in a given category and period. A supplier who cannot hit a window gets ordered less.

Keep the buckets separate in your books

Do not lump OTIF fines, flat compliance fees and commercial allowances into one "chargebacks" line. They have different owners, different fixes and different dispute paths. A rising OTIF fine says fix the supply chain. A rising label-fee line says fix the printer or the pack station. A rising markdown allowance says fix the product. One combined number tells you nothing and gets argued about forever.

I.6 The chargeback taxonomy

Here is the map. Read the amounts as examples of structure. Where a figure is a real published number from a real manual, it is attributed, and your own account will price differently.

Amounts vary widely by retailer, by category, by your negotiated terms and by year, and several of the manuals quoted here are archived rather than current. The purpose of the table is to tell you what kinds of charge exist and what basis each is calculated on, so nothing on a remittance is ever a surprise.

ChargebackWhat triggers itBasis of calculationPublished examples
Timing and routing
Late delivery / MABD missArrived after the required date% of cost of goods on failed cases or units, or flat per shipmentWalmart 3% of COGS on non-compliant cases; Target 3% of COGS on goods received outside the window
Early deliveryArrived before the window openedScored as an OTIF failure, or refusal plus redelivery and storageTarget's on-time fine applies to goods "received outside the window" in either direction; Nordstrom may refuse the shipment outright
Missed / late / no appointmentCarrier no-show, an hour or more late, or arrives unbookedFlat per occurrenceDollar General: missed appointment $375; 1 hour or more late $350; no appointment $375
Reschedule without noticeAppointment moved inside the notice period (24h at Dollar General)Flat per occurrenceDollar General $200
Appointment past the PO arrival dateBooking a slot after the date the PO requiredFlat per occurrenceDollar General $375
Wrong carrier / routing violationShipped with a carrier not named in the routing instructionsThe freight bill, often plus a handling fee, sometimes plus loss-and-damage liabilityNordstrom: 100% of shipment cost + $25 handling fee
Prepaid-and-add on a collect orderYou paid the freight and added it to the invoiceFreight backed out of the invoice, plus a flat chargeDollar General $100 minimum; Nordstrom does not reimburse prepaid freight on carriers it has not authorized
Order not confirmed / confirmed latePO not confirmed in the portal by the deadlineFlat per occurrenceDollar General $350 for a PO closed without confirmation in Compass; $350 for a ready date later than the PO ship date
Detention / TONUDriver held past free time, or arrives for a load that isn't readyCarrier's accessorial rates — the extra charges a carrier bills on top of the freight rate — passed through to youDollar General: detention past 2 hours, $100 minimum
Administrative upliftAdded on top of transportation violations% of the chargebackDollar General adds 5% to all transportation chargebacks
Electronic documents
Missing or late ASNNo 856, or 856 after arrivalFlat per incident or per shipmentNordstrom $150.00 per incident
ASN quantity / content mismatchReceipt quantities don't match the 856Flat per incident, plus shortage claim, plus reworkNordstrom $150.00 per incident; Dollar General $375 short quantity plus $0.133/unit rework
ASN accuracy / barcode scan (per carton)Carton-level ASN errors or unscannable cartonsPer cartonTarget moved to $0.75 per carton for ASN availability, ASN accuracy and barcode scanning from the first week of May 2025
Paper documents where EDI is mandatedSending paper, or unable to receive EDIFlat per document or per incidentNordstrom $25.00 per paper invoice; $150.00 per incident for inability to receive an 850
Incorrect EDI invoice810 fails validation or disagrees with POFlat per incidentNordstrom $5.00
Item data / UPC not set upGTIN missing from the retailer's catalog at receiptFlat, sometimes severeNordstrom $150.00 per incident; Dollar General $1,000 where merchandise has no UPC or a UPC other than the one on the quote sheet
Labels, tickets and physical prep
Missing / unscannable GS1-128 labelNo label, wrong placement, bad print grade, duplicate SSCCPer cartonNordstrom $5.00 per carton; Target $0.75 per carton
Carton marking errorsWrong DC, missing store mark-for, wrong carton content descriptionFlat per occurrenceDollar General $250 for incorrect DC or incorrect carton information
Missing / incorrect price ticketNot pre-ticketed, or wrong retail printedPer occurrence, or per unit reticketed plus adminDollar General $250 for incorrect price and $250 for no price where required; Nordstrom codes it NC
Hanger violationsNo hanger, non-approved hanger, flat items shipped hangingPer unit or per cartonRates are account-specific; Nordstrom codes them NM, NH, SV
Polybag violationsMissing, unsealed, or incorrectly sealedPer unitRates are account-specific; Nordstrom codes them SX, SS, SN
Carton content discrepancyWrong assortment, wrong inner pack, wrong case packFlat per occurrenceDollar General $250 each
Pallet / load qualityBroken or wrong pallets, load shifted, bad stackFlat per pallet, escalating past a thresholdDollar General $50 per pallet, plus $10 per pallet over 5; damages $10 per pallet
Non-conveyable cartonOutside the partner's min/max dimensions or weightRework at a per-unit or per-case rateDollar General $0.133 per unit reworked, $0.30 per case re-handled
Missing paperworkNo packing list, no BOL, no PO referenceFlat per occurrenceDollar General $150 each; incorrect BOL $100
Quality and returns
Quality / defect claimInspection failure at DC or store; customer returnsCost of goods plus handlingCost of goods is deducted "if applicable" on top of the flat charge (Dollar General)
Return to vendor (RTV)Authorized return of defective or unsold goodsCost credit plus freight plus handling feeHandling fees are account-specific. Nordstrom's refusal schedule bills return freight, inbound freight, a $25.00 handling fee and any redelivery or storage charges.
Unordered / invalid PO merchandiseGoods sent against a closed or nonexistent POFlat fee, plus return at your costDollar General $150 for a closed PO or SKU; $150 for product arriving with no PO
Minimum chargeApplies to every performance deductionFloor under all of the aboveDollar General charges a minimum of $25 on all vendor performance deductions
Commercial allowances (negotiated, not penalties)
Markdown allowance / markdown moneyRetailer discounted unsold goods and bills you a share% of cost of goods shipped, or a settled lump sum per seasonEntirely negotiated and variable. No published range is meaningful. Use your own history.
Co-op advertisingContribution to the retailer's marketing% of purchases, per the vendor income agreementNegotiated per account; varies widely by channel
New store allowanceContribution to stocking new doors% of purchases, or a flat amount per new doorDollar General runs a New Store Allowance for every new, relocated and remodeled store, deducted monthly, with the rate set on annual review rather than published
Defective / damage allowanceFlat rate in lieu of processing individual returns% of the retailer's spend with you, deducted on a cycleDollar General publishes department rates from 0.30% to 1.51%, deducted monthly. Its apparel departments sit between 0.50% and 1.30%
Cash / settlement discountEarly-payment or standing terms discount% of invoicePer your terms. Apparel has long used structures like "8/10 EOM" (8% off if paid by the 10th of the following month), but many accounts now pay net. Read your own terms.
Post-audit claimRetailer's auditors re-examine historic transactionsWhatever they find: pricing, allowances, duplicate paymentsDollar General states post-audit deductions "may occur up to 24 months or later after the original transaction"

What the pattern of charges tells you

Three structural observations about that table. First, notice how many charges are per carton or per unit. A single systemic error — a mis-set label template, a hanger substitution your factory made without telling you — multiplies by your carton count instantly. A 412-carton shipment with a bad label template at Nordstrom's $5.00 a carton is $2,060 before anything else goes wrong.

Second, notice the floors and the uplifts: a $25 minimum and a 5% administrative fee mean there is no such thing as a trivially small violation.

Third, the commercial allowances at the bottom are usually much larger than the compliance penalties above them. Compliance chargebacks are the ones you can eliminate. Allowances are the ones you must price for. Confusing the two is how brands end up "fixing" a markdown problem by buying a new label printer.

A note on 2025–2026 cost volatility

One change worth flagging because it lands squarely in the "pricing and cost claims" row. US import rules moved sharply in 2025 and have not settled. The de minimis exemption, the rule that let shipments valued at $800 or less enter the United States duty-free, was suspended for all countries by Executive Order 14324, signed 30 July 2025 and effective at 12:01 a.m. Eastern on 29 August 2025.

That suspension has since been made open-ended: US Customs and Border Protection published interim final rules on 24 June 2026 implementing an indefinite suspension, one for goods arriving by post and one for every other mode.

Tariff rates on apparel have been repeatedly revised over the same period. The specific rates are outside this chapter's scope and change too fast to print. Check current US Customs and Border Protection guidance, and your customs broker, before you quote anything. Everything in this section is stated as of July 2026.

The compliance consequence is what matters here. Volatile landed costs force mid-season recosting, which means the unit cost on an open PO can change after the PO was issued. That is a direct route into price and cost claims: your invoice says one cost, the retailer's PO record says another, and the difference is deducted.

The knock-on effect lands on the dispute side, where more cost-change exceptions arrive at accounts payable teams that are already busy, so resolution slows. A deduction that takes 45 days to resolve is an annoyance. One that takes 180 days is a cash-flow problem. Your ERP's job here is unglamorous and specific: keep every version of every PO you received, never overwrite a cost, and reconcile invoice cost to the PO version in force on the invoice date.

I.7 The economics: how a good account quietly goes bad

You will see figures quoted for what deductions cost suppliers as a percentage of revenue. Treat all of them with suspicion, because the definition changes underneath the number: some counts include negotiated allowances, some count only compliance penalties, some include returns, and almost none say which.

There is no published benchmark specific enough to manage against, and managing against someone else's is worse than useless: it tells you that you are "normal" while your own account bleeds.

Build the waterfall for your own account instead. The two that follow are illustrations: the percentages are assumptions chosen to show how the arithmetic behaves, not benchmarks to copy.

  ACCOUNT A - ILLUSTRATION, full-price department store
  =====================================================
  Gross wholesale invoiced                       1,200,000
  ----------------------------------------------------------
  Cash / settlement discount        2.00%           24,000
  Markdown allowance                8.00%           96,000
  Co-op advertising                 3.00%           36,000
  New store allowance               0.50%            6,000
  RTV & defective allowance         2.00%           24,000
  Compliance chargebacks            3.10%           37,200
  Shortage & pricing claims         0.80%            9,600
  ----------------------------------------------------------
  TOTAL DEDUCTIONS                 19.40%          232,800
  NET CASH RECEIVED                80.60%          967,200

  Cost of goods sold (55% of wholesale)            660,000
  Gross margin ON PAPER            45.00%          540,000
  Contribution AFTER deductions    25.60%          307,200

  Sales commission  7.0% of gross                   84,000
  Factoring fee     0.8% of gross                    9,600
  ----------------------------------------------------------
  OPERATING CONTRIBUTION           17.80%          213,600

  If compliance chargebacks drift 3.1% -> 6.0%:
  extra cost 34,800, operating contribution 178,800 (14.9%)

Walk through that. You invoiced $1.2m and $967k arrived. You lost 19.4% of the headline before a single cost of your own. Cost of goods sold is what you paid to make the product. Gross margin is what is left after you subtract it. The margin you quoted the board was 45%. The margin you actually earned before selling costs was 25.6%.

Two more costs finish the job: sales commission, paid to the showroom or rep who wrote the order, and the factoring fee. Factoring means selling your unpaid invoices (your receivables) to a finance company at a discount so you get cash now instead of in 60 days. Together they take contribution to 17.8%. The account is healthy.

Now watch the last two lines: letting compliance chargebacks drift by 2.9 percentage points — one bad quarter of label and ASN errors — costs $34,800, which is 16% of the entire operating contribution. That is the whole thesis of this chapter in one number.

Account B: the same arithmetic on a thin margin

Account A survives because its margin is thick. Here is one that does not.

  ACCOUNT B - ILLUSTRATION, high-volume chain, thin margin
  ========================================================
  Gross wholesale invoiced                         800,000
  ----------------------------------------------------------
  Cash / settlement discount        2.00%           16,000
  Markdown allowance               12.00%           96,000
  Co-op advertising                 2.00%           16,000
  New store allowance               1.50%           12,000
  RTV & defective allowance         4.00%           32,000
  Compliance chargebacks            7.00%           56,000
  Shortage & pricing claims         1.50%           12,000
  ----------------------------------------------------------
  TOTAL DEDUCTIONS                 30.00%          240,000
  NET CASH RECEIVED                70.00%          560,000

  Cost of goods sold (62% of wholesale)            496,000
  Gross margin ON PAPER            38.00%          304,000
  Contribution AFTER deductions     8.00%           64,000

  Sales commission  7.0% of gross                   56,000
  Factoring fee     0.8% of gross                    6,400
  ----------------------------------------------------------
  OPERATING CONTRIBUTION            0.20%            1,600

  One bad season, chargebacks 7% -> 10%:
  extra cost 24,000, operating contribution -22,400 (-2.8%)

Account B looked fine at order intake: $800,000 of orders at a 38% paper margin. It generated $1,600. Every hour anyone spent on it was free labor.

And the swing from "barely positive" to "loses $22,400" is a three-point move in compliance chargebacks, roughly one quarter of missed windows and mislabeled cartons. This is what people mean when they say deductions turn a profitable account unprofitable.

The account never announced it. The P&L — the profit and loss statement, the report that shows revenue minus costs for a period — just got worse, and nobody could say which customer did it.

The reason nobody could say is almost always a data problem, which is your problem to solve: the chargebacks land in accounts payable as unallocated "customer deductions" while the sales sit in a different report by season, and no system joins them. Fixing that join is the single highest-return thing your ERP can do for the commercial side of the business.

Compute account profitability net of deductions, or don't compute it

Gross wholesale by customer is a vanity metric. If your ERP cannot show contribution per retail account after every deduction type (allocated back to the season, the PO and, where possible, the shipment that caused it), then your sales team is being paid to grow accounts that lose money. Make "net contribution by account" the default view and "gross shipped" the one you have to click for.

I.8 Disputing and recovering

Some deductions are wrong. Retailers process millions of them with automated rules and imperfect data. Goods refused for a late appointment the carrier actually made, ASN failures caused by the retailer's own EDI outage, duplicate claims for one incident, and shortage claims for cartons that were signed for on the proof of delivery are all routine.

Recovering them is real money, but only if you move inside the clock.

The workflow

  1. INTAKE       Remittance arrives. Parse every deduction line:
                  code, amount, invoice, PO, date, backup ref.
                  Post each as its own record, not a lump sum.

  2. CLASSIFY     Commercial allowance (expected, accrue it)
                  Valid compliance charge (accept, feed root cause)
                  Suspect (dispute)
                  Unidentifiable (chase backup documentation)

  3. DEADLINE     Stamp every record with the dispute-by date for
                  that retailer AND that charge type. They differ.

  4. ASSEMBLE     Pull the evidence pack. Automatic, from records
                  you already keep, or you will not do it at scale.

  5. SUBMIT       Through the retailer's required channel only:
                  vendor portal, dispute platform, or named
                  mailbox with one charge per submission.

  6. TRACK        Open -> under review -> approved -> repaid, or
                  denied with reason. Denials feed root cause too.

  7. RECONCILE    Repayments arrive on a later remittance, often
                  as a positive line with a different reference.
                  Match them back or you will dispute twice.

Step 2 is where most brands fail, because "unidentifiable" is the largest bucket at the start and it is boring work to shrink. Step 3 is where most money is lost.

Step 5 is a hard requirement rather than formatting advice, because retailers specify the channel exactly: Dollar General requires one chargeback per email with all supporting backup, the chargeback number in the subject line, and original emails rather than PDF or TIF copies as evidence, and it gives you 3 business days to answer any request for extra documentation before your dispute goes to the back of the queue.

Step 7 is where trust is lost. Submitting a dispute for a charge already repaid is the fastest way to get your submissions deprioritized, and Dollar General states outright that duplicate submissions slow the whole queue down.

The evidence you must be able to produce

Charge typeEvidence that winsWhere it must come from
Late delivery / MABDSigned proof of delivery with date and time; carrier tracking history; the routing instructions showing the assigned carrier and pickup dateCarrier, plus your stored 754 or portal response
Early deliveryRouting instructions showing the retailer's own assigned pickup dateStored routing response
Missing / late ASNTransmission log with timestamp, plus the retailer's 997 functional acknowledgmentYour EDI layer (keep raw payloads, not summaries)
ASN quantity mismatchCarton-level scan manifest from the pack station; carton weights; pack-out photographsYour WMS (warehouse management system) or pack app
Label / barcodeBarcode verifier grade report; a retained sample label; the label template version in force that dayPrint station, retained per shipment
Shortage / concealed shortageSigned bill of lading with carton count; sealed-trailer seal number; carton weight records; dock photosShipping paperwork plus your WMS
Wrong carrierThe routing instruction naming that carrier, or written approval from the retailer's traffic deskStored portal or EDI response, plus email
Quality / defectThird-party inspection report; retained production samples; the retailer's own inspection report and photosQC records, requested from the retailer
Pricing / cost claimThe PO as received, showing the cost; any PO change document; your acknowledgmentArchived inbound EDI
Duplicate deductionThe two remittance lines side by side with the same underlying referenceYour own deduction register

Every row of that table says the same thing: you need immutable, timestamped, retrievable records of what you did and what you were told, keyed by shipment and carton. Build that into the ERP, because a filing habit will not survive the volume.

Deadlines, which are the whole game

There is no industry-standard dispute window. There are several, they run simultaneously, and they differ by charge type within the same retailer. These are all published examples.

  DEEMED ACCEPTANCE (Dollar General, contract term)
    30 days from receipt of the short payment, or from notice
    of intent to deduct - whichever is earlier. After that the
    setoff is contractually acknowledged as valid.

  VENDOR PERFORMANCE DISPUTES (Dollar General)
    It "will not research or repay Vendor performance
    deductions older than 6 months." One chargeback per email,
    original emails only, chargeback number in the subject.
    Turnaround "typically 60 days."

  NON-COMPLIANCE FEES (Nordstrom accounts payable)
    60 days from the document date. Shorter than everything
    else, and these are exactly the charges worth disputing.
    Reason given: how long the backup data stays available.

  INVOICES AND CLAIMS (Nordstrom, same policy)
    12 months from the invoice date for open invoices;
    12 months from the check date for claims and chargebacks.

  YOUR OWN INVOICING CLOCK (Dollar General, contract term)
    Invoice within 14 days of delivery. Charges not invoiced
    within 90 days of delivery are waived by you. A misaddressed
    invoice not re-sent correctly within 120 days is waived too.

  OTIF FINES (Walmart, per SPS Commerce guidance)
    Fines generally issued five weeks after quarter end, via
    HighRadius. Suggested practice for In-Full fines is to
    dispute 60-150 days after invoicing, to allow time for
    PO reconciliation. A won dispute reverses the money but
    may not reverse the scorecard hit.

  ACCOUNTS PAYABLE INQUIRIES (Dollar General)
    Inquiries more than two years old, measured from the
    check date, "will not be addressed."

  POST AUDIT (Dollar General)
    THEY may raise claims "up to 24 months or later after the
    original transaction." YOU must dispute within 24 months
    of the deduction date, one chargeback per email;
    turnaround "60 days or more."

Notice the asymmetry. The retailer reserves two years and more to come after historic transactions, and gives you as little as 30, 60 or 180 days on the charges it raises today. That asymmetry is normal and is not negotiable for a small brand. The only defense is a system that stamps a deadline on every deduction the day it is recorded and escalates before it expires.

Note the retention implication too: Dollar General's guide "encourage[s] vendors to keep full and detailed accounts for a period of not less than two years." Treat two years as the floor, keep more, and think hard before deleting anything.

Third-party recovery firms

An industry exists to do this for you. Deduction recovery, chargeback recovery and post-audit defense firms work almost universally on contingency: they take a percentage of what they recover and nothing if they recover nothing.

The firms in this market — SPS Commerce, Smyyth and others — advertise the contingency model but do not publish rates, and I could not substantiate any industry-wide figure, so do not plan against one. Get a written rate card before you sign, and expect it to be tiered: cheaper for clean, recent, well-documented claims and more expensive for aged ones.

Be skeptical of headline recovery-rate claims too. What is realistic depends almost entirely on evidence quality and age. The block below models the decision. The win rates and the fee are assumptions you should replace with real quotes and with your own history.

  DISPUTE ECONOMICS - MODEL, all figures assumed
  ==============================================
  Deductions flagged as suspect      140 items
  Average value                      $265
  Disputed pool                      $37,100

  ASSUMED contingency fee: 25% of amounts recovered

  Win rate 35%   recovered $12,985   net of fee  $ 9,739
  Win rate 50%   recovered $18,550   net of fee  $13,913
  Win rate 65%   recovered $24,115   net of fee  $18,086

  Doing it in-house instead:
    ~45 minutes per item x 140        105 hours
    at $45/hour fully loaded          $4,725 of labour

The sums are simple. 140 items at an average $265 is a $37,100 pool. At a 50% win rate you recover half of it, $18,550, and the firm keeps 25% of that, leaving you $13,913. Doing it yourself, 140 items at 45 minutes each is 105 hours, and 105 hours at a fully loaded $45 costs $4,725. "Fully loaded" means salary plus tax, benefits and overheads, not the hourly wage.

Read that as a shape rather than as numbers. The real comparison is a fee you pay only on success against 105 hours of a person you are already paying, who has other work.

For a brand with clean, automatically retrievable evidence, in-house tends to win on economics and builds the root-cause feedback loop that stops the charges recurring. For a brand drowning in aged, undocumented deductions, a contingency firm converts an unrecoverable pile into some cash and, usually, a useful diagnostic report. Many brands do both: in-house on current-quarter compliance charges, contingency firm on the aged pile and on post-audit defense.

One caution that practitioners repeat, and that the deadline table above supports: preventing a deduction is worth several times recovering one. Recovery costs labor, costs the time-value of the cash, and, for scorecard-linked charges, may not repair the score even when the money comes back.

I.9 Prevention as a system

Compliance usually fails for structural reasons. Carelessness is rarely the cause. The same failure points recur:

  • inventory data out of sync between the brand's system and the 3PL's;
  • carriers without the specific retailer's routing expertise;
  • ASNs assembled by hand;
  • shipping from a single location far from the destination DC;
  • and nobody monitoring deductions, so errors repeat for months.

The pre-ship gate

Put a hard gate between "packed" and "shipped." Nothing leaves until every line passes. This is exactly the pattern of the engineering QC gates elsewhere in this book: deterministic checks, run automatically, that block rather than warn.

  PRE-SHIP COMPLIANCE GATE - block on any failure
  ===============================================
  ORDER
  [ ] PO is open, not cancelled, not past cancel date
  [ ] Every GTIN on this shipment is confirmed live in the
      retailer's item catalogue
  [ ] Retail price used on tickets matches the CURRENT PO
      (re-check after any PO change document)
  [ ] Unit cost on the invoice matches the PO version in
      force on the invoice date
  [ ] Pack method matches the PO: by store / by DC / prepack
  [ ] Quantities match the acknowledgement we sent

  TIMING
  [ ] Ship date is on or after start ship
  [ ] Ship date is on or before cancel date
  [ ] Planned arrival is inside the MABD window
  [ ] PO confirmed in the partner's portal by its deadline
  [ ] Routing request submitted; instructions RECEIVED
  [ ] Assigned carrier == carrier actually booked
  [ ] Load ID present on the bill of lading
  [ ] Delivery appointment booked and confirmed

  PHYSICAL
  [ ] Every carton scanned closed; manifest generated from
      scans, not from the order
  [ ] Every carton within THIS partner's min/max dimensions
      and weight
  [ ] Declared weight and cube within our own tolerance of
      the routing request (set it from the partner's guide)
  [ ] Label print grade verified on a sample from each roll
  [ ] Correct hanger type per PO department
  [ ] Polybag present and sealed per spec
  [ ] Price ticket on every unit, correct retail, scannable
  [ ] Packing slip per PO per store, on the outside of one
      carton per store

  DOCUMENTS
  [ ] Every SSCC unique; none reused inside one year of its
      last shipment date
  [ ] ASN built from the scan manifest
  [ ] ASN scheduled to transmit after departure and before
      arrival
  [ ] BOL emailed to the partner if its manual requires it
  [ ] BOL number, carton count, PO numbers all agree with
      the ASN
  [ ] Invoice will reference the same PO and BOL

Every line on that gate maps to a specific charge in the taxonomy table. That is the point: the checklist is the price list, inverted.

"Every carton scanned closed" is the $150 ASN-mismatch line and the $375 short-quantity line. "Label print grade verified" is the $5.00-per-carton line. "Assigned carrier == carrier actually booked" is the whole-freight-bill line. When you add a new retailer, you build its gate by reading its schedule of charges backwards.

Who owns compliance

In a small brand the honest answer is usually "nobody, until it becomes a crisis." That is a mistake, because compliance sits across four functions: sales owns the PO terms, planning owns the availability, the warehouse owns the physical prep, and finance sees the damage.

A workable pattern for a small brand is one named person, part-time, with three explicit duties:

  1. own the manual for every account, including checking the portal on a schedule and circulating a diff;
  2. own the pre-ship gate and have authority to hold a shipment;
  3. own the deduction register, the dispute queue and the monthly root-cause review.

That person needs to be able to stop a truck. If they cannot, the role is decorative.

Reading a scorecard

Retailers publish supplier scorecards on the same portals as the manuals: Walmart in Retail Link, Target in Partners Online, Amazon in Vendor Central. Poor scores lead to reduced order allocation and, at some retailers, formal vendor probation. Reading one properly means asking four questions of every metric.

QuestionWhy it mattersWhat to do
What is the denominator?POs, PO lines, cases and units give different scores from the same shipments: Target measures fill rate at item level, Walmart fines at case levelRecompute the metric yourself from your own data and reconcile to theirs. Investigate any gap over a point
What period, and what lag?Walmart's OTIF fines are generally issued about five weeks after quarter end, so a fresh score is never the whole billNever react to a fresh score as if it were complete. Hold a reserve for charges not yet posted
Is this metric fined, or only scored?Some metrics cost money. Others only cost allocation. Both matter, differentlyRank fixes by (fine exposure + allocation risk), not by how red the cell is
Does a won dispute repair it?Approved disputes may reverse the cash but leave the scorecard hit in placeTreat scorecard damage as permanent. Prevention is the only lever
Run a monthly root-cause review, and keep it boring

Take last month's deductions, group by code and by root cause rather than by amount, and pick the top three causes by frequency. Rank on frequency rather than value, because a recurring $50 charge is a broken process and a one-off $2,000 charge is usually bad luck. Assign each cause an owner and a gate change. You will not find a published benchmark for how much this moves the number, and you do not need one. Measure your own compliance chargebacks as a percentage of gross shipped, per partner, per month, and judge the review by whether that line falls.

I.10 Returns and RTV

RTV, or return to vendor, is the retailer sending goods back to you for credit. It comes in three kinds, and they behave differently.

Authorized returns. The retailer requests, and you issue, a return authorization (RA): a number that permits a specific quantity of specific goods to come back, to a specific address, by a specific date. Nothing should be accepted without one.

Retailers police the return route from their side too, and the costs land on you: when Nordstrom refuses a non-compliant shipment, the supplier is liable for return freight, inbound freight, a $25.00 handling fee and any redelivery or storage charges, and only a Nordstrom buyer may recall refused goods. Storage keeps accruing at a third-party agent until you send written disposition instructions and pay the charges.

Defective allowances and end-of-season returns

Defective and damage claims. Goods that failed: bad seams, color off, a zip that broke in the fitting room. Retailers handle these two ways. Either they physically return them and deduct the cost plus handling, or they negotiate a flat defective allowance: a percentage taken from the retailer's spend with you on a rolling basis, agreed at onboarding, in exchange for nobody processing individual returns.

Dollar General publishes exactly this model, with rates set per department "based on internal and external benchmarks on actual damage rates by product category" and deducted monthly against accounts payable. The published rates run from 0.30% to 1.51% across its whole assortment, with apparel departments between 0.50% and 1.30%, and it reserves the right to charge your actual rate instead if yours runs higher.

The flat allowance is usually better for a small brand, because it converts an unpredictable operational cost into a known line in your margin plan, but only if the percentage is honestly derived from your actual defect rate.

End-of-season return-to-vendor pressure. This is the one that hurts. Goods did not sell. The retailer wants the shelf back and does not want to own the markdown. What follows is a negotiation with three possible landing points:

  • take the goods back at cost (worst for you, and you get seasonal product back too late to sell);
  • pay markdown money so the retailer clears it at a discount (usually the least-bad outcome, and it keeps the goods off your books);
  • or refuse, and accept the relationship damage.

All the bargaining power sits on their side of the table, and you should plan the season knowing it. Not every retailer offers the first option at all: Dollar General states it has no vendor accommodations program returning product from retail through the DC to the vendor, and tells vendors to work with the buyer on clearing end-of-season residue instead.

Watching your RTV rate

The metric to watch is your RTV rate: returned value as a percentage of shipped value. I could not substantiate any published "healthy" threshold, and any number you are quoted will be category-specific, so do not chase someone else's benchmark.

Measure your own, per account, per season, and investigate the trend and the outliers. A rising RTV rate points upstream: product quality, size curve accuracy (whether the mix of sizes you shipped matches what shoppers actually buy), or simply having sold a retailer more than its doors could absorb.

Two operational warnings. First, returned goods are not automatically saleable: they come back mixed, unticketed or wrongly ticketed, sometimes worn. They need a receiving inspection and a disposition decision — restock, repair, discount channel, donate, destroy — and those decisions have cost. Retailers put a clock on their side of it too. Dollar General gives vendors 10 days to instruct it on how to handle merchandise before it decides for them and bills any extra expense, and warns that donating or destroying may itself generate a charge.

Second, an RTV credit and a physical return are separate events that often arrive weeks apart, in either order. If your system books the credit only when the goods arrive, your receivables will disagree with the retailer's for the whole gap.

What this means for your ERP

Everything above is a data problem wearing a logistics costume. Here is what has to exist in the software.

Tables and fields

The compliance domain needs its own schema area. These are the core entities, expressed against the reference schema in chapter 11.

-- The account and the rules in force for it
create table retail_partner (
  id                uuid primary key,
  tenant_id         uuid not null,
  name              text not null,
  vendor_number     text not null,          -- their id for you
  portal_url        text,
  freight_terms     text not null           -- 'collect' | 'prepaid'
                    check (freight_terms in ('collect','prepaid')),
  freight_allowance_pct numeric(5,2),
  dispute_window_days_compliance int,       -- e.g. 60 (Nordstrom)
  dispute_window_days_claims     int,       -- e.g. 365
  deemed_acceptance_days         int,       -- e.g. 30 (Dollar Gen.)
  -- 24 months is a published floor; keep a buffer past it
  evidence_retention_months      int not null default 30,
  unique (tenant_id, vendor_number)
);

-- Every version of every manual you have operated under
create table partner_manual_version (
  id                uuid primary key,
  retail_partner_id uuid not null references retail_partner(id),
  document_type     text not null,   -- 'vendor_manual'|'routing_guide'
                                     -- |'edi_spec'|'charge_schedule'
  section_label     text,            -- manuals ship as sections
  version_label     text not null,
  effective_from    date not null,
  effective_to      date,            -- null = current
  next_review_due   date,
  source_url        text,
  file_sha256       text not null,   -- immutable snapshot
  change_summary    text,
  unique (retail_partner_id, document_type,
          coalesce(section_label,''), effective_from)
);

-- Machine-readable rules derived from a manual version
create table compliance_rule (
  id                uuid primary key,
  manual_version_id uuid not null
                    references partner_manual_version(id),
  code              text not null,   -- your internal rule code
  category          text not null,   -- 'timing'|'routing'|'label'
                                     -- |'edi'|'pack'|'ticket'|'doc'
  description       text not null,
  gate_blocking     boolean not null default true,
  charge_basis      text,            -- 'flat'|'per_carton'|'per_unit'
                                     -- |'pct_cogs'|'pct_freight'
  charge_amount     numeric(12,4),
  charge_pct        numeric(6,3)
);

Three ideas to take from that block: versioning, sectioning and derivation.

  • partner_manual_version exists because a dispute about a March shipment is judged by March's rules. Storing only the current PDF means losing every argument about the past.
  • section_label is there because real manuals are not one document: Foot Locker's runs to at least fourteen separately dated sections, and Dollar General's single PDF carries different update stamps on different chapters, so if you model one version per retailer you will silently overwrite all but one of them.
  • compliance_rule exists because a manual is prose and a gate needs predicates. Someone has to translate, and the translation must point back at the version it came from so you can re-derive it when the manual changes.
-- Routing: the permission chain, stored
create table routing_request (
  id                uuid primary key,
  shipment_id       uuid not null references shipment(id),
  submitted_at      timestamptz not null,
  ready_date        date not null,
  carton_count      int not null,
  declared_weight_lb numeric(10,2) not null,
  declared_cube_ft   numeric(10,3) not null,
  status            text not null,   -- 'submitted'|'routed'|'rejected'
  responded_at      timestamptz,
  assigned_carrier_scac text,        -- 2-4 char SCAC (carrier code)
  assigned_pickup_from  date,
  assigned_pickup_to    date,
  load_id           text,
  raw_response      jsonb not null default '{}'::jsonb
);

-- Cartons are first-class. Chargebacks are priced per carton.
create table carton (
  id                uuid primary key,
  shipment_id       uuid not null references shipment(id),
  sscc              char(18) not null,
  mark_for_store    text,
  carton_seq        int not null,      -- the X in "carton X of Y"
  gross_weight_lb   numeric(8,2) not null,
  length_in         numeric(6,2) not null,
  width_in          numeric(6,2) not null,
  height_in         numeric(6,2) not null,
  label_printed_at  timestamptz,
  label_grade       numeric(3,1),      -- verifier grade; 1.5 = "C"
  closed_at         timestamptz,       -- scan-verified close
  shipped_on        date,              -- starts the 1-year SSCC clock
  constraint sscc_digits check (sscc ~ '^[0-9]{18}$'),
  unique (sscc)                        -- globally, forever
);

create table carton_line (
  carton_id         uuid not null references carton(id),
  gtin              char(14) not null,
  purchase_order_id uuid not null references purchase_order(id),
  quantity          int not null check (quantity > 0),
  scanned           boolean not null default false,
  primary key (carton_id, gtin, purchase_order_id)
);

-- Proof that you sent what you say you sent, when you say
create table asn_transmission (
  id                uuid primary key,
  shipment_id       uuid not null references shipment(id),
  transmitted_at    timestamptz not null,
  interchange_ctrl  text not null,
  payload_sha256    text not null,
  payload_uri       text not null,     -- raw EDI, retained
  ack_997_at        timestamptz,
  ack_997_status    text,              -- 'accepted'|'rejected'|null
  carton_count      int not null,
  total_units       int not null
);

Three constraints in that block do disproportionate work:

  • unique (sscc) enforced globally, never scoped to a shipment, is what keeps you out of duplicate-SSCC chargebacks. Combined with a Postgres sequence for the serial reference and the stored shipped_on date, it also gives you a provable answer to the question the GS1 rule actually asks: was this number reused inside a year of its shipment date?
  • carton_line.scanned makes the ASN derivable from physical reality. Your ASN builder should refuse to run while any line is unscanned.
  • And retaining the raw EDI payload plus its hash, rather than a parsed summary, is the difference between winning and losing a late-ASN dispute, because the argument is always about the exact bytes and the exact timestamp.
-- The money. One row per deduction line, never a lump sum.
create table deduction (
  id                uuid primary key,
  tenant_id         uuid not null,
  retail_partner_id uuid not null references retail_partner(id),
  remittance_id     uuid references remittance(id),
  partner_claim_ref text not null,       -- their chargeback number
  partner_code      text,                -- their code, e.g. 'NL'
  deduction_type_id uuid not null
                    references deduction_type(id),
  amount            numeric(12,2) not null check (amount > 0),
  currency          char(3) not null default 'USD',
  document_date     date not null,       -- their date, drives clocks
  check_date        date,                -- some clocks run from this
  received_at       timestamptz not null,
  -- causal attribution: nullable because it is often unknown
  invoice_id        uuid references invoice(id),
  purchase_order_id uuid references purchase_order(id),
  shipment_id       uuid references shipment(id),
  carton_id         uuid references carton(id),
  season_code       text,
  -- lifecycle
  status            text not null,       -- 'unidentified'|'accepted'
                                         -- |'disputing'|'recovered'
                                         -- |'denied'|'written_off'
  dispute_by        date not null,       -- computed at insert
  root_cause_id     uuid references root_cause(id),
  unique (retail_partner_id, partner_claim_ref)
);

create table deduction_type (
  id                uuid primary key,
  family            text not null,       -- 'compliance'|'commercial'
                                         -- |'quality'|'shortage'
                                         -- |'post_audit'
  name              text not null,
  disputable        boolean not null default true,
  accrual_account   text,                -- general ledger mapping
  default_window_days int not null,
  window_starts_from  text not null      -- 'document_date'
                      default 'document_date'  -- |'check_date'
);

create table dispute (
  id                uuid primary key,
  deduction_id      uuid not null references deduction(id),
  submitted_at      timestamptz,
  channel           text not null,       -- 'portal'|'email'|'edi'
  submitted_amount  numeric(12,2) not null,
  outcome           text,                -- 'approved'|'partial'
                                         -- |'denied'|'expired'
  recovered_amount  numeric(12,2),
  recovered_on      date,
  denial_reason     text,
  handled_by        text                 -- 'in_house'|'agency'
);

create table dispute_evidence (
  dispute_id        uuid not null references dispute(id),
  kind              text not null,       -- 'pod'|'bol'|'asn_payload'
                                         -- |'997'|'label_grade'
                                         -- |'scan_manifest'|'photo'
                                         -- |'routing_response'
  uri               text not null,
  sha256            text not null,
  captured_at       timestamptz not null,
  primary key (dispute_id, kind, sha256)
);

The deduction table is the heart of the chapter. Note five design decisions:

  • One row per deduction line. Never aggregate at intake, because aggregation destroys the attribution you need later.
  • Nullable causal keys. You will not know which shipment caused a charge at intake, and a schema that demands it will push people into guessing or into spreadsheets.
  • Both document_date and check_date, because published windows are measured from different anchors: Nordstrom's non-compliance clock runs from the document date, its claims clock from the check date, and Dollar General's accounts payable clock runs from the check date.
  • dispute_by computed and stored at insert from the partner's window for that deduction type and the right anchor, so a deadline exists even if nobody has looked at the row.
  • And unique (retail_partner_id, partner_claim_ref), the idempotency key (the field combination that makes re-running an import harmless), which stops the same chargeback being booked twice when a remittance file is re-imported.

That is the same discipline chapter 3 applies to webhooks.

Rules the software must enforce

  • Block, don't warn, at the pre-ship gate. A shipment cannot transition to shipped while any blocking compliance_rule for that partner is unsatisfied. Overrides require a named user and a stored reason, and every override is reviewed monthly against the deductions it caused.
  • SSCC uniqueness belongs in a database constraint. Serial references come from a Postgres sequence per company prefix, and the sequence is never reset. The one-year no-reuse rule falls out of monotonic allocation, and shipped_on lets you prove it.
  • The ASN is generated, never entered. Build it from carton_line rows where scanned = true. Refuse to generate if any carton on the shipment is unclosed or any line is unscanned.
  • Ticket retail price is validated against the live PO at print time, and any inbound PO change document invalidates already-printed tickets for that PO and raises a task.
  • PO cost is versioned, never overwritten. Invoices reconcile to the PO version in force on the invoice date. In a period of moving landed costs this is the difference between a clean invoice and a pricing claim.
  • Dates cascade backwards. Store MABD on the PO, derive latest ship date from partner transit lanes, derive latest pick-complete date from warehouse lead time, and surface the earliest of those as the operational deadline on every screen a warehouse person sees.
  • Declared cube and weight come from carton dimensions, computed, never typed. The routing request is re-validated against actuals before dispatch, with a hard stop above the tolerance you configured for that partner.
  • Evidence retention is enforced by the system. Nothing referenced by a dispute_evidence row, and nothing within evidence_retention_months of a shipment, may be garbage-collected.
  • Deduction intake is idempotent on (retail_partner_id, partner_claim_ref), and repayments are matched back to the originating deduction so the same money is never chased twice.

Screens and workflows people will actually use

  • Partner rulebook page. Current version of each manual section, effective dates, next review date, the derived rule list, and a diff view against the previous version. This is the screen that makes "we didn't know" impossible.
  • Shipment compliance gate. The checklist from I.9 rendered live for one shipment, each item green or red with the failing record linked. The warehouse works from this screen rather than a printout.
  • Pack station. Scan to carton, close carton, print label, verify grade. Offline-tolerant, because warehouses have bad Wi-Fi (chapter 6).
  • Routing desk. Shipments awaiting routing, requests submitted, instructions received, load IDs, appointments booked, with the MABD clock counting down on each.
  • Deduction inbox. Every deduction line, filterable by status, sorted by days-to-deadline ascending. Bulk-classify. One click to assemble an evidence pack.
  • Dispute tracker. Open disputes, aging, outcomes, recovery rate by charge type and by partner.
  • Root-cause board. Deductions grouped by cause and frequency, with an owner and a gate change per cause.

Reports people will demand

  • Net contribution by retail account. Gross wholesale, each deduction family, net cash, cost of goods, contribution, per season. The waterfall in I.7, generated. This is the report that changes decisions.
  • Deduction rate trend. Compliance chargebacks as a percentage of gross shipped, by partner, by month, with commercial allowances shown separately.
  • Chargebacks by root cause and frequency. The operational counterpart, ranked by count rather than dollars.
  • Deadline exposure. Total dollars of disputable deductions expiring in the next 7, 14 and 30 days. Should be on the finance dashboard.
  • Dispute recovery rate. By charge type, by partner, by handler, so you can tell where disputing pays.
  • OTIF reconciliation. Your computed on-time in-full score next to the partner's published score, with the variance explained. Never accept their number without recomputing yours.
  • Allowance accrual versus actual. What you accrued for markdown, co-op and defectives against what was actually taken, so the margin plan learns.

Where this connects to the engineering chapters

  • Chapter 1 (append-only inventory ledger): RTV receipts, shortage claims and refused shipments are all inventory events, and the ledger is what lets you prove what physically moved when the retailer says otherwise. An ASN is, in effect, an assertion about ledger entries you have already written.
  • Chapter 2 (Postgres): sequences for SSCC serial references, unique constraints for SSCC and claim references, generated columns for cube, and jsonb for the raw routing and remittance payloads you must retain but should not schematize prematurely.
  • Chapter 3 (concurrency and idempotency): remittance import must be safely re-runnable, and carton close and SSCC allocation must be race-free when three pack stations run at once.
  • Chapter 4 (integrations): the 850/855/856/810/997 mechanics, plus 753/754 routing and 204 load tender. This chapter tells you what those documents mean. Chapter 4 tells you how to send them.
  • Chapter 5 (multi-tenancy and row-level security): deduction data is commercially sensitive, so partner rules and charges must be tenant-scoped at the row level.
  • Chapter 6 (offline sync): the pack station is the highest-value offline surface in the whole ERP, because a carton closed without a scan is a chargeback waiting to be booked.
  • Chapter 7 (spreadsheet imports): remittance advices and deduction backup arrive as CSV, XLSX and PDF far more often than as EDI 820. Your importer needs to map partner codes to deduction_type and survive layout changes.
  • Chapter 8 (available-to-sell caching and reporting): fill rate is a function of what was available to sell when the PO was confirmed. A bad availability number is an upstream cause of in-full failures and of over-confirmed 855s.
  • Chapter 9 (testing and ops): the pre-ship gate is a test suite pointed at physical goods, and it deserves the same treatment: deterministic, fast, blocking, with a recorded pass/fail per shipment.
  • Chapter 11 (reference schema) and chapter 12 (roadmap): the tables above slot into the reference schema. On the roadmap, the deduction register and the pre-ship gate belong in the first release that touches a wholesale account, not in a later phase.
The one-line version

If your ERP does exactly two things for retail compliance, make them these: a blocking pre-ship gate driven by a versioned, per-partner rule set, and a deduction register where every line has a cause, a deadline and an evidence pack. The first stops the money leaving. The second gets some of it back. Everything else in this section is refinement.

A chargeback, traced backwards A chargeback, traced backwards. A small physical error at the top left becomes missing cash at the top right, and you typically discover it only when a payment arrives short. Winning the dispute requires evidence generated days earlier at a moment nobody thought was important. That is why the shipping label, the advance ship notice and the proof of delivery are financial records in an apparel ERP, and why they must be captured and retained automatically. HOW A LABEL MISTAKE BECOMES A DEDUCTION You ship carton labelled Their DC scans SSCC mismatch Exception logged against your vendor no. Deduction taken from your invoice Short pay cash missing You usually learn about it here — weeks later, as an unexplained gap in a payment. To dispute it you must produce evidence you already threw away ASN transmission record · proof of delivery · carton manifest · label image · timestamps So the ERP must retain all of it, keyed to the shipment, from the start Retention is not archiving — it is the ability to get your money back.
A chargeback, traced backwards. A small physical error at the top left becomes missing cash at the top right, and you typically discover it only when a payment arrives short. Winning the dispute requires evidence generated days earlier at a moment nobody thought was important. That is why the shipping label, the advance ship notice and the proof of delivery are financial records in an apparel ERP, and why they must be captured and retained automatically.

Field notes & further reading

  • GS1 US, Guideline for Floor-Ready Merchandise (Release 3.0, 18 March 2019). The standards body's own definition of floor-ready and receipt-ready shipments, tracing back to the VICS committee founded in October 1993: retail price marking and the Zone 6 minimum of 1" × 1.25", packing materials by category, conveyable carton minimum and maximum dimensions and weights (9"×9"×3" at 3–5 lbs up to 36"×27"×30" at 50 lbs), and the SSCC-plus-856 receiving model. It also names the GS1 US Hanger Application Guideline as the reference for correct hanger application. The closest thing to a neutral rulebook behind every retailer's version.
  • GS1 General Specifications (Release 26.0, ratified 20 January 2026). The source of truth for the SSCC: 18 digits, Application Identifier 00, extension digit plus company prefix plus serial reference plus check digit, and the rule that "an individual SSCC number must not be reallocated within one year of the shipment date." Section 4.3 is the part to read before you write your carton numbering code. This link serves the current PDF, so the release number will move on. Check it against the version you cite.
  • Dollar General Domestic Vendor Guide (103pp, public PDF). A complete real vendor manual with the parts everyone talks about and nobody shows you: the full Schedule of Chargebacks with dollar amounts per violation and a $25 minimum, the damages/unsaleables allowance rates by department, the dispute rules (one chargeback per email, nothing older than 6 months on vendor performance), the post-audit policy (deductions up to 24 months or later, inquiries dead after two years from the check date), and the legal terms including the "as amended from time to time" and 30-day deemed-acceptance clauses. Dated February 2020, so treat the amounts as illustrative of structure rather than current pricing.
  • Nordstrom Supplier Compliance Manual (archived, 187pp). An older document, old enough to route freight via carriers that no longer exist, but the single best public example of a department-store manual's anatomy: the expense offset schedule with per-carton and per-incident amounts, GS1-128 label zones and placement tolerances down to the 1.25" edge clearance and the 1.5 (C) print grade, freight allowance codes 0 to 4, refusal liabilities, master-pack and packing-slip rules, and a glossary worth reading on its own.
  • SPS Commerce, Nordstrom's accounts payable codes. The live deduction taxonomy in plain language (missing GS1-128 label, receipt quantities not matching the ASN, wrong VICS hanger, unsealed polybag, flat items shipped hanging, retail missing or incorrect on ticket) plus the dispute clocks that matter most: 12 months for invoices and claims, 60 days for non-compliance fees.
  • SPS Commerce, the Walmart OTIF dispute process. The current published shape of the largest OTIF program: 90% prepaid on-time, 98% collect ready, 95% in-full, a 3% of cost-of-goods fine on non-compliant cases, fines issued roughly five weeks after quarter end via HighRadius, and practical guidance on when in the 60–150 day window to dispute.
  • SupplyPike, Understanding Target's compliance program. The same picture for a second mass retailer, and a good illustration of how fast these change: 95% fill rate measured at item level and 3% of cost of goods on shortfalls, on-time measured against pickup and in-yard windows, an error-free ASN required before the in-yard time, and ASN penalties moved from a percentage to a flat $0.75 per carton (plus new ASN-accuracy and barcode-scan charges) from the first week of May 2025.
  • FTC, Threading Your Way Through the Labeling Requirements Under the Textile and Wool Acts. The legal floor beneath every retailer's ticketing rules: fiber content, country of origin and the identity of the manufacturer or dealer, which you may give either as a company name or as an RN number (a Registered Identification Number, a short code the FTC issues to a US business so it can be identified on a label without printing its full name). Care labeling is a separate FTC rule, 16 CFR Part 423. Retailer manuals assume you already comply with all of this and charge you when you don't.
  • Executive Order 14324, Suspending Duty-Free De Minimis Treatment for All Countries. The primary text behind the change described in I.6, effective 12:01 a.m. Eastern on 29 August 2025. Read it alongside the two CBP interim final rules of 24 June 2026 making the suspension indefinite. The Federal Register is where you check whether a trade rule you were told about is still in force.
Exercise

1. Build the rulebook and the gate for one real account. Pick the largest wholesale account you have or expect to have. Download every current document it publishes — vendor manual, routing guide, EDI specification, schedule of charges — and record for each one its section name, version label, effective date and next-review date. Then produce two artifacts. First, a one-page date model for that account: what the PO calls its start ship, cancel and arrival dates; whether it also has a ready date or a pickup window; the transit time from your warehouse to each of its DCs; and the resulting latest pick-complete date for a typical order. Second, take the checklist in I.9 and rewrite every line in that account's own vocabulary, deleting anything it does not require and adding anything it requires that the generic list misses. Next to each line, write the specific charge from its schedule that the line prevents. If you cannot find the charge, you have found either a rule that costs nothing (deprioritize it) or a document you have not read yet.

2. Build your own deduction waterfall, then find the missing join. Take twelve months of one account's history. From your accounting system pull gross wholesale invoiced. From remittance advices pull every deduction line, every one, including the ones filed as "customer allowance" or "misc." Classify each into the families in I.6: commercial allowance, compliance chargeback, shortage or pricing claim, quality or RTV. Now build the waterfall from I.7 with your real numbers, add your real cost of goods, commission and any factoring fee, and compute operating contribution as a percentage of gross. Then answer three questions in writing: what percentage of your deduction dollars could you attribute to a specific shipment or PO, what percentage could you not, and what is the total value of deductions whose dispute window has already closed?

When you finish you should have: a versioned rulebook folder with dated snapshots and a per-account pre-ship checklist tied to real charge codes; a one-page gross-to-net waterfall for a real account showing what that customer actually pays you; and a specific dollar figure for money you have already lost to expired dispute windows. That last number is the business case for everything in the ERP section. Take it to whoever signs off your build.