Explore AIMS360's apparel business software
FREE DEMO
AIMS360 EDI 947 warehouse inventory adjustment advice integration icon

The EDI 947 is how a warehouse reports cycle count corrections, damages and status changes with reason codes. AIMS360 posts them by warehouse from a file on the adjust inventory template, so your balance and your 3PL's stop drifting apart.

EDI 947

EDI 947: when the warehouse count and yours disagree

The 947 warehouse inventory adjustment advice is how a warehouse tells you it changed a stock balance without a shipment or a receipt behind it: a cycle count found two fewer, a carton was damaged in the rack, a return was graded and moved to seconds. It is the smallest message in the warehouse set and the one most brands never set up, which is why their ERP and their 3PL drift apart between physical counts. AIMS360 takes it from any 3PL as a file on the adjust inventory by warehouse template, so the warehouse never needs to be an EDI trading partner to keep the two counts in step.

EDI 947 at a glance
Warehouse Inventory Adjustment Advice
Warehouse to you
Inbound, on a cadence
W15 + W19
Adjustment, item, reason
Not a snapshot
Deltas, with a reason code
Daily to monthly
Cadence you agree with the 3PL
The short answer

What is the EDI 947 warehouse inventory adjustment advice?

The EDI 947 is the transaction set a warehouse or 3PL sends to a brand to report a change in on hand inventory that did not come from a shipment or a receipt. Each line carries the item, the quantity added or removed, and a reason code: cycle count correction, damage, expired, found, quality hold, transfer between statuses. The brand posts it as an inventory adjustment in its own system so the two balances match again.

Every other warehouse document explains a movement you already know about. The 944 confirms a receipt you announced on a 943; the 945 confirms a shipment you ordered on a 940. The 947 is the only one that reports something you did not initiate, which is exactly why it matters. Without it, the warehouse's damage write-offs and count corrections never reach your ERP, and you keep selling stock that stopped existing weeks ago.

The tell is a physical count at year end that comes in hundreds of units off a system that was "integrated" all year. Those units left the building one cycle count at a time. A 947 on a sensible cadence is the difference between a small reconciliation every week and a large one every December.

Anatomy

What an EDI 947 file contains

A simplified adjustment advice: a cycle count correction and a damage write-off on the same day.

ST*947*0001 / W15*20260912*ADJ20260912-01 / N1*WH*Bergen Logistics NJ / N1*DE*Your Brand*92*BRAND1 / LX*1 / W19*CC*2*EA**UP*012345678905 / G69*Cropped tee, black, M / LX*2 / W19*DA*1*EA**UP*012345678912 / G69*Cropped tee, black, L / SE*10*0001
ST Opens the transaction set and names it as a 947.
W15 Warehouse adjustment identification. The date of the adjustment and the warehouse's adjustment number, which is what you quote back if you question it.
N1 Party loops. WH is the warehouse making the adjustment, DE is the depositor, meaning you.
LX / W19 One LX per adjusted line. W19 carries the reason code, the adjustment quantity, whether it is an increase or a decrease, the unit of measure and the item identifier, usually the UPC.
G69 Item description for whoever reviews the adjustment.
N9 References. Lot number, the cycle count reference, or a claim number for damage.
SE Closes the transaction set with a segment count.

In the example the warehouse's cycle count found two fewer of the medium than the system said, and one large was found damaged in the rack. The reason codes are the point of the message. A file that says "minus three" tells you the balance; a file that says "minus two, count, minus one, damage" tells you what to do about it. On the AIMS360 template the reason travels as a column, and damages can be routed to a ghost location rather than written off.

Two ways to stay in step

947 adjustments vs an 846 inventory snapshot

A 947 reports the changes; an 846 reports the balance. The 947 says what moved and why, one adjustment at a time. The 846 says here is everything we hold as of now. Most brands running a 3PL want both: the 947 to post real adjustments with reasons through the week, and a periodic 846 style position from the warehouse to reconcile against, so anything the 947 missed shows up as a difference rather than a surprise.

947 adjustment advice 846 inventory advice
What it carries Deltas: plus or minus a quantity, with a reason code A full position: on hand by item, at a point in time
When it is sent When something changes, or on a daily to monthly cadence On a schedule, often daily
What you do with it Post each line as an inventory adjustment in the ERP Compare to the ERP balance and investigate the differences
Where it falls short Only as good as the warehouse's reason discipline Tells you the two disagree, not why
The 846 is also the document you send retailers and marketplaces to say what you can sell them. Same transaction set, opposite direction, different job. The 846 page covers that side.
In AIMS360

What AIMS360 does with the 947

Posts as an inventory adjustment by warehouse

The warehouse's adjustment file is imported on the AIMS360 adjust inventory by warehouse template, so each line lands as an adjustment against the right location and the right style, color and size, with the reason carried on the record.

On the cadence you agree

The AIMS360 standard 3PL integration recommends the adjustment import be run daily, weekly or monthly depending on the warehouse's own count cycle. A warehouse that cycle counts every week should send every week.

Damages go to a ghost location

Rather than writing damaged units off, AIMS360 can move them to a non sellable location so they stay visible for claims and disposition. That is the same mechanism described on the Bergen Logistics page.

Every channel sees the corrected number

Because AIMS360 holds one master stock record, an adjustment posted from the 947 changes availability for wholesale, EDI retailers, marketplaces and Shopify on the next publish. Under Multi Warehouse the adjustment applies to the location it came from.

Not every connection carries a 947. On API connected warehouses such as Bergen, the AIMS360 integration does not consume inventory queries from the API, so adjustments come in through the same template from data pulled off the warehouse's portal, and a scheduled position to position reconciliation is arranged with the warehouse directly. Each partner page states whether the 947 is part of the connection.

The part that changes the shortlist

Does the warehouse need EDI to send a 947?

No. The warehouse produces its adjustments on the AIMS360 adjust inventory by warehouse template and drops the file on an FTP, OneDrive or Dropbox. There is no EDI trading partner setup, no VAN, no 997 and no per document charge, and AIMS360 charges no per document or per kilocharacter fees of its own. Most 3PLs that decline to "do EDI" can produce a spreadsheet of their adjustments in an afternoon, which is all this asks of them. The full explanation is on the EDI 940 page.

The honest part

What the 947 does not do

It is not a receipt and not a shipment. Goods arriving post through the 944; goods leaving post through the 945. A warehouse that uses adjustments to paper over missing receipts is hiding the real problem.

It is only as good as the warehouse's reason codes. "Adjustment, minus 40" with no reason is a number you cannot act on. Agree the reason list with the warehouse before go live: count, damage, found, expired, quality hold, status change.

Many 3PLs do not send one unless asked. Adjustments are routine inside a warehouse and easy to forget to report. Put the cadence and the template in the service agreement, not in an email.

It does not replace a periodic reconciliation. Even with a clean 947 flow, a scheduled comparison of the warehouse's on hand to the AIMS360 balance is what catches the adjustment nobody sent.

EDI 947 FAQ

Common questions

It reports inventory changes at a warehouse that did not come from a shipment or a receipt: cycle count corrections, damages, found units, expiry, quality holds and status changes, each with a reason code. The brand posts the lines as inventory adjustments so its balance matches the warehouse's. In AIMS360 that happens through the adjust inventory by warehouse template. It complements the 944 and 945, which cover receipts and shipments.

The 947 carries deltas with reasons. The 846 carries a full on hand position at a point in time. You post a 947; you reconcile against an 846. Brands running a 3PL usually want the 947 through the week and a periodic position from the warehouse to compare against. The 846 is also the document brands send outbound to retailers and marketplaces to say what is available to sell.

No. The warehouse fills the AIMS360 adjust inventory by warehouse template and drops it on an FTP, OneDrive or Dropbox. No EDI trading partner setup, no VAN, no 997, no per document fee. That is the same model every warehouse document uses in AIMS360, explained on the EDI 940 page.

On the warehouse's own count cycle. The AIMS360 standard 3PL integration recommends daily, weekly or monthly, and the right answer is whichever matches how often the warehouse cycle counts and grades damages. Weekly is a sensible default for an apparel 3PL; daily for high volume DTC where a stale balance oversells fast. Agree it in the service agreement and pair it with a periodic reconciliation, as described on the 3PL integrations hub.

AIMS360 can move them to a ghost location: a warehouse position that exists in the record but is not available to sell. The units stop being promised to anyone and stay visible for claims, seconds sales or disposal, so damages remain a number you can act on rather than shrinkage you find at the next count. The mechanism is described on the Bergen Logistics page and works under Multi Warehouse.

Usually because adjustments made inside the warehouse never reach the ERP. Receipts and shipments are integrated, but the cycle count that removed two units and the carton crushed by a forklift were recorded only in the warehouse system. A 947 on a regular cadence, with reason codes, closes that gap. The remaining drift is what a periodic comparison against the warehouse's position catches, and the 846 page covers the snapshot side.

Yes, on the next inventory publish. AIMS360 holds one master stock record and calculates availability per location, so an adjustment posted from the 947 changes what Shopify, marketplaces, wholesale and EDI retailers see. Retailer facing availability goes out on the 846; the 947 is what keeps the number behind it true.

Related documents

The rest of the warehouse cycle

Last reviewed 5 September 2026 by the AIMS360 integrations team. Segment detail reflects the ANSI ASC X12 947 transaction set and is simplified for reading. AIMS360 mechanics are taken from the AIMS360 support documentation for the standard 3PL integration. Whether a given warehouse sends adjustments through the connection is stated on each partner page.

Ready when you are

Stop finding out in December

Bring your last physical count variance. We will show how a weekly adjustment file from your 3PL would have caught it, and how the corrected number reaches every channel.