SLSRPT is the closest a supplier gets to seeing the till. Orders tell you what a retailer bought; sales data tells you what shoppers took home, store by store and week by week. That is the signal behind forecasting, vendor-managed replenishment and any honest review of whether a promotion worked.
This guide follows the GS1 EANCOM 2002 SLSRPT layout (directory D.01B, subset version EAN007). Every example is live: it is parsed in your browser by the same engine as our EDIFACT inspector, and you can open each one in the full tool.
What is an EDIFACT SLSRPT?
SLSRPT (sales data report) is the UN/EDIFACT message for reporting basic sales data for products: the location of the sale, the period, the product, and the price, quantity and value sold. GS1 defines it as a message that lets the recipient "process the information automatically and use it for production, marketing or statistical purposes".
According to the EANCOM manual, a recipient can read from it:
- the location of each sale
- the period in which it was sold
- the product, by GTIN
- the selling price, quantity and value
- extra identification such as promotional flags or product group codes
The usual direction is retailer to supplier. GS1 also describes a headquarters or distribution centre compiling sales across its outlets and sending them to a third party such as a market research company.
What SLSRPT is not
GS1's introduction is unusually direct on this point: the message "should never be used to replace business transactions such as Purchase Orders, Delivery Schedules or Inventory Reports." A sales report carries no instruction to ship, and it is not a stock report. In a replenishment programme it travels alongside an INVRPT, and the order still comes as ORDERS.
Where SLSRPT fits: planning, replenishment and VMI
| Use | What the supplier does with SLSRPT |
|---|---|
| Vendor-managed inventory | Combines sales with INVRPT stock to decide what each site needs |
| Demand forecasting | Builds forecasts from real store-level sell-through instead of order history |
| Promotion analysis | Compares sales in the promotional sub-period with the weeks either side |
| Range and distribution checks | Spots stores that stock a product but never sell it, or never stock it |
| Category reporting | Shares sell-through with the retailer's buying team in an agreed format |
GS1's INVRPT manual draws the link explicitly: actual stock combined with actual sales data (SLSRPT) and sales forecasts (SLSFCT) lets a supplier keep stock close to a target level, or trigger reordering automatically.
How the message is organised: location first
SLSRPT is location driven. The detail section is a list of LOC groups, each identifying a place of sale by GLN. Under each location come the products sold there.
UNH ... header: BGM, DTM (report date and period), NAD, CUX
LOC+162 Store A
DTM optional sub-period for this location
LIN Product 1: MOA (value), PRI (price), QTY (quantity sold)
LIN Product 2: ...
LOC+162 Store B
LIN ...
UNS+S end of detail
UNT
The manual adds that, although the message is organised by location, the receiver can process it by any variable it likes, such as a product across all its stores. Because volumes are high, GS1 strongly recommends using codes only, GTINs and GLNs, rather than descriptions.
SLSRPT segment reference
Status is M (mandatory) or C (conditional) and repeats are the maximum the EANCOM 2002 manual allows. Unlike PRICAT and INVRPT, SLSRPT ends with a mandatory UNS+S. There is no CNT.
| Segment | Name | Status | Repeats | Carries | X12 852 equivalent |
|---|---|---|---|---|---|
UNH | Message header | M | 1 | Message reference, SLSRPT:D:01B:UN:EAN007 | ST |
BGM | Beginning of message | M | 1 | Sales report document code, number and function | XQ |
DTM | Date/time/period | M | 5 | Message date (137), sales period (356) | XQ02, XQ03 |
RFF (SG1) | Reference | C | 9 | Contract, or the report being replaced or cancelled | N9, XPO |
NAD (SG2) | Name and address | M | 5 | Seller (SE), supplier (SU) and other parties | N1 loop |
CUX (SG5) | Currencies | C | 5 | Pricing currency, CUX+2:GBP:10 | None common |
LOC (SG6) | Place of sale | C | 200000 | Store or outlet GLN, qualifier 162 | SDQ location IDs |
DTM | Date/time/period | C | 5 | Sub-period for this location | DTM |
LIN (SG8) | Line item | C | 200000 | The product's GTIN with SRV | LIN |
PIA | Additional product id | C | 5 | Buyer's item number, promotional variant | LIN qualifier pairs |
IMD | Item description | C | 5 | Description, if the partner wants it | PID |
RFF | Reference | C | 5 | Contract or price list for this line | REF |
ALI | Additional information | C | 5 | Promotion flags: advertising, price, display | Partner-specific |
MOA | Monetary amount | C | 5 | Value of sales, qualifier 203 | ZA amounts, where used |
PRI (SG9) | Price details | M | 1 | The price at which it sold | CTP |
QTY (SG10) | Quantity | M | 1 | Quantity sold (153), returns, promotion quantity | ZA with activity code |
UNS | Section control | M | 1 | UNS+S, end of the detail section | None |
UNT | Message trailer | M | 1 | Segment count and message reference | SE |
Example 1: weekly sales by store
The fictional retailer Brackenfield Stores reports a week of sales of two products from the fictional supplier Fenwold Foods across three stores. Store 5011122001252 does not range the second product, so it has only one line. All GLNs and GTINs are made up with valid check digits.
Weekly sales by store: three stores, two products
BGM 73E sales report for 5 to 11 October 2026, then one LOC+162 group per store with MOA+203 sales value, PRI selling price and QTY+153 quantity sold for each GTIN.
SLSRPT · Sales data report · ref 1
- Document
- Sales report
- Document number
- BS-SLS-2026W41
- Message function
- Original
- Currency
- GBP
- Document/message date/time
- 2026-10-12
- Date (356)
- 2026-10-05 to 2026-10-11
Parties
| Role | Identifier | Name and address |
|---|---|---|
| SE SE | 5011122000002GS1 (GLN) | - |
| Supplier SU | 5067890000003GS1 (GLN) | - |
Lines (5)
| # | GTIN | Codes | Description | Sales quantity | Price | Amount |
|---|---|---|---|---|---|---|
| 1 | 5067890100017 | - | - | 42 | 3.50 | 147.00 |
| 2 | 5067890100024 | - | - | 18 | 3.75 | 67.50 |
| 3 | 5067890100017 | - | - | 25 | 3.50 | 87.50 |
| 4 | 5067890100024 | - | - | 11 | 3.75 | 41.25 |
| 5 | 5067890100017 | - | - | 59 | 3.50 | 206.50 |
Interchange (UNB)
- Sender
- 5011122000002GS1 GLN
- Recipient
- 5067890000003GS1 GLN
- Prepared
- 2026-10-12 07:00
- Control reference
- BS0092230
- Syntax
- UNOC version 3
- Messages
- 1
| Segment | What it says |
|---|---|
BGM+73E::9+BS-SLS-2026W41+9' | Sales data report (73E, a GS1 code, hence ::9), number BS-SLS-2026W41, original |
DTM+356:2026100520261011:718' | Sales period 5 to 11 October 2026, format 718 (date range) |
NAD+SE / NAD+SU | Seller (the retailer) and supplier |
CUX+2:GBP:10' | Values and prices are in sterling (10 = pricing currency) |
LOC+162+5011122001016::9' | Place of sale: the store with this GLN |
LIN+1++5067890100017:SRV' | Product sold, by GTIN |
MOA+203:147.00' | Sales value for the week: 147.00 |
PRI+AAA:3.50' | Selling price 3.50 |
QTY+153:42' | 42 units sold |
UNS+S' | End of the detail section; mandatory in SLSRPT |
UNT+32+1' | 32 segments from UNH to UNT inclusive |
Two details matter for whoever loads this file. Line numbers run across the whole message, not per store, so the same GTIN appears as line 1, 3 and 5. And the value should equal price times quantity for each line (42 × 3.50 = 147.00); when it does not, the difference usually comes from a price change mid-period, which is what sub-periods are for.
On the document code: the manual's segment example and worked example both use 73E::9, while the code list table in the same edition prints 735 for "sales data report". Use whatever your partner's implementation guide shows.
Example 2: separating a promotional period
Brackenfield ran a price promotion on the oat and honey granola from Thursday 1 to Sunday 4 October, with a shelf display. To keep promotional and normal sales apart, the same store appears in three LOC groups: one for the whole week (the product not on promotion), and two with DTM+356 sub-periods for the product before and during the promotion.
One store, one week, split around a promotion
Repeated LOC+162 groups for the same store with DTM+356 sub-periods. The promotional line carries ALI+++97+98 (promotional price and shelf display) and the lower selling price.
SLSRPT · Sales data report · ref 1
- Document
- Sales report
- Document number
- BS-SLS-2026W40
- Message function
- Original
- Currency
- GBP
- Document/message date/time
- 2026-10-05
- Date (356)
- 2026-09-28 to 2026-10-04
Parties
| Role | Identifier | Name and address |
|---|---|---|
| SE SE | 5011122000002GS1 (GLN) | - |
| Supplier SU | 5067890000003GS1 (GLN) | - |
Lines (3)
| # | GTIN | Codes | Description | Sales quantity | Price | Amount |
|---|---|---|---|---|---|---|
| 1 | 5067890100024 | - | - | 17 | 3.75 | 63.75 |
| 2 | 5067890100017 | - | - | 13 | 3.50 | 45.50 |
| 3 | 5067890100017 | - | - | 39 | 3.00 | 117.00 |
Interchange (UNB)
- Sender
- 5011122000002GS1 GLN
- Recipient
- 5067890000003GS1 GLN
- Prepared
- 2026-10-05 07:00
- Control reference
- BS0092118
- Syntax
- UNOC version 3
- Messages
- 1
| Segment | What it says |
|---|---|
First LOC+162 group, no DTM | The header period applies: the whole week, 28 September to 4 October |
DTM+356:2026092820260930:718' | Sub-period Monday to Wednesday, before the promotion |
DTM+356:2026100120261004:718' | Sub-period Thursday to Sunday, during the promotion |
ALI+++97+98' | Special conditions 97 (promotional price) and 98 (promotional shelf display) |
PRI+AAA:3.00' | The promotional selling price |
QTY+153:39' | 39 sold in four promotional days, against 13 in the three days before |
GS1 allows up to five special condition codes in one ALI, one per element, so overlapping promotions can all be flagged. The location-level DTM is optional: the manual says it is not needed when the period is the same as the header's.
Example 3: cancelling a report
If a report was sent with wrong data, BGM function 1 cancels it. GS1 says only the mandatory segments need resending, with at least the sender and receiver NAD, and the number of the report being cancelled in RFF.
Cancel a previously sent sales report
BGM function 1 (cancellation) with RFF+ALS quoting the sales report number being cancelled. No location or line detail is sent; UNS+S still closes the message.
SLSRPT · Sales data report · ref 1
- Document
- Sales report
- Document number
- BS-SLS-2026W41C
- Message function
- Cancellation
- Document/message date/time
- 2026-10-12
- Reference date/time
- 2026-10-12
- Reference (ALS)
- BS-SLS-2026W41
Parties
| Role | Identifier | Name and address |
|---|---|---|
| SE SE | 5011122000002GS1 (GLN) | - |
| Supplier SU | 5067890000003GS1 (GLN) | - |
Interchange (UNB)
- Sender
- 5011122000002GS1 GLN
- Recipient
- 5067890000003GS1 GLN
- Prepared
- 2026-10-12 15:30
- Control reference
- BS0092262
- Syntax
- UNOC version 3
- Messages
- 1
To correct a report in one step instead, send the full corrected report with function 5 (replace), a new report number in BGM, and the replaced report's number in RFF+ALS. A replacement contains all the data again, not just the corrected stores. Function 2 (addition) is the exception: it adds products left out of the original by mistake, quoting the original report number in BGM.
Code tables
BGM message function
| Code | Meaning in EANCOM SLSRPT |
|---|---|
9 | Original |
1 | Cancellation of a previous report, identified in RFF |
2 | Addition: products omitted from the original report |
5 | Replace: a full report that replaces one identified in RFF |
6 | Confirmation: a resend of a previous report, same number and date |
31 | Copy for a third party, for information |
DTM qualifiers
| Code | Meaning |
|---|---|
137 | Message date (mandatory) |
356 | Sales date or period |
90 / 91 | Report start / end date |
Formats are 102 (a date), 203 (date and time) and 718 (a date range, start date first).
QTY qualifiers
| Code | Meaning |
|---|---|
153 | Statistical sales quantity: units sold |
61 | Return quantity |
210 | Returned by consumer |
26 | Promotion quantity |
145 | Actual stock |
217 | Out of inventory quantity |
Other codes
| Segment | Code | Meaning |
|---|---|---|
LOC | 162 | Place or location of sale (the only qualifier) |
MOA | 203 | Line item amount: value of sales for the period |
ALI | 96 / 97 / 98 | Promotional advertising / price / shelf display |
PRI | AAA / AAB | Calculation net / gross price |
PRI | AAE / AAF | Information price including / excluding taxes |
NAD | SE / SU / CO | Seller / supplier / corporate office |
Timing and frequency
Most sales reports are weekly, covering the retailer's trading week, and sent a day or two after it closes. Fast-moving or VMI lines often move to daily reports. The trading week does not always start on Monday, so read the period from DTM+356 rather than assuming. Files can be large: one line per product per store per period adds up quickly across a national estate.
SLSRPT vs the X12 852
| Data | EDIFACT SLSRPT | X12 852 |
|---|---|---|
| Report number and purpose | BGM | XQ |
| Reporting period | DTM+356 with format 718 | XQ02 and XQ03 |
| Parties | NAD+SE, NAD+SU with GLNs | N1 loop |
| Organising key | Location first: LOC, then LIN | Item first: LIN, then ZA, then SDQ by location |
| Item | LIN with GTIN and SRV | LIN with qualifier pairs |
| Quantity sold | QTY+153 | ZA with a sold activity code |
| Sales value | MOA+203 | Partner-specific |
| Selling price | PRI | CTP |
| Promotion flag | ALI codes 96, 97, 98 | Partner-specific |
| Stock on hand | Usually a separate INVRPT | Often another ZA in the same 852 |
| End of detail | UNS+S | CTT |
Two differences matter most. The organising key is inverted: SLSRPT lists products under each store, while the 852 lists stores under each product (in SDQ). And the 852 often mixes sales and stock in one transaction, while EANCOM usually splits them between SLSRPT and INVRPT, even though SLSRPT's QTY list includes an actual stock code. See the EDI 852 guide for the X12 side.
Common errors and fixes
- Missing
UNS+S. It is mandatory in SLSRPT, unlike PRICAT and INVRPT. Receivers reject the message without it. - Line numbers restarting per store. Number
LINlines sequentially across the whole message. Duplicates confuse loaders. - Value that does not equal price times quantity. If a price changed mid-week, split the period with location-level
DTM, or report the value and use the average price your partner specifies. - Store codes instead of GLNs. Internal store numbers mean nothing to the supplier. Use the store GLN in
LOC+162with agency9. - Ambiguous periods. A report without
DTM+356forces the receiver to guess the week. Always send it. - Returns netted silently. Agree whether
QTY+153is gross or net of returns, and report returns separately withQTY+61if asked. - Wrong UNT count. Large files are generated, but hand-edited test files often miscount.
Testing checklist
- Agree the period definition, cadence, qualifiers and whether values include VAT with your partner.
- Load one week for one store and check totals against the retailer's portal or your own EPOS extract.
- Add stores and products, and check that every store GLN maps to a known location in your system.
- Test a week with a promotion and confirm the sub-periods and
ALIflags load into the right fields. - Test cancellation and replacement: make sure a replaced report overwrites, rather than adds to, the original.
- Check that the file loads within your processing window at full national volume.
- Paste each test message into the EDIFACT inspector to check structure and counts before going live.
Frequently Asked Questions
What is an SLSRPT message?
SLSRPT is the UN/EDIFACT sales data report. A retailer sends it to a supplier to report units sold, sales value and selling price for each product, by store and period.
Is SLSRPT the same as the X12 852?
They do the same job: the 852 product activity data is the X12 equivalent. SLSRPT is organised by location first and usually carries only sales, while the 852 is organised by item and often includes stock too.
What does QTY+153 mean in SLSRPT?
153 is the qualifier for statistical sales quantity. QTY+153:42' means 42 units of the product in the preceding LIN were sold at that location in the reporting period.
How are promotions shown in SLSRPT?
With ALI special condition codes on the line: 96 promotional advertising, 97 promotional price and 98 promotional shelf display. Use a location-level DTM+356 sub-period to separate promotional days from normal days.
Does SLSRPT need UNS and CNT?
UNS+S is mandatory in the EANCOM 2002 SLSRPT. There is no CNT segment in the message.
Can SLSRPT replace purchase orders in a VMI programme?
No. GS1 states that the message should never replace business transactions such as purchase orders, delivery schedules or inventory reports. Orders still flow as ORDERS, and stock as INVRPT.
Related guides
- EDIFACT explained: syntax, envelopes and the full X12 mapping
- EDIFACT INVRPT: the stock report that pairs with SLSRPT in VMI
- EDIFACT PRICAT: the product and price data behind each GTIN
- EDIFACT ORDERS: the replenishment order that follows
- EDI 852 product activity data: the X12 counterpart
- EDIFACT message types: every message and its X12 equivalent
Sources
- EANCOM 2002 S3: SLSRPT sales data report message, GS1
- EANCOM 2002 S3: INVRPT inventory report message, GS1
- UN/EDIFACT D.01B SLSRPT message, UNECE
- Global Location Number (GLN), GS1
Check your SLSRPT structure, counts and GTIN and GLN check digits in the free EDIFACT inspector.