Skip to content
EDIFACT SLSRPT — EDIFACT Sales ReportPublished Oct 12, 2026

EDIFACT SLSRPT: Sales Data Report Message Guide

EDIFACT SLSRPT explained: weekly sales by store, promotional periods and cancellations, with live EANCOM examples, code tables and the X12 852 mapping.

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

UseWhat the supplier does with SLSRPT
Vendor-managed inventoryCombines sales with INVRPT stock to decide what each site needs
Demand forecastingBuilds forecasts from real store-level sell-through instead of order history
Promotion analysisCompares sales in the promotional sub-period with the weeks either side
Range and distribution checksSpots stores that stock a product but never sell it, or never stock it
Category reportingShares 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.

SegmentNameStatusRepeatsCarriesX12 852 equivalent
UNHMessage headerM1Message reference, SLSRPT:D:01B:UN:EAN007ST
BGMBeginning of messageM1Sales report document code, number and functionXQ
DTMDate/time/periodM5Message date (137), sales period (356)XQ02, XQ03
RFF (SG1)ReferenceC9Contract, or the report being replaced or cancelledN9, XPO
NAD (SG2)Name and addressM5Seller (SE), supplier (SU) and other partiesN1 loop
CUX (SG5)CurrenciesC5Pricing currency, CUX+2:GBP:10None common
LOC (SG6)Place of saleC200000Store or outlet GLN, qualifier 162SDQ location IDs
DTMDate/time/periodC5Sub-period for this locationDTM
LIN (SG8)Line itemC200000The product's GTIN with SRVLIN
PIAAdditional product idC5Buyer's item number, promotional variantLIN qualifier pairs
IMDItem descriptionC5Description, if the partner wants itPID
RFFReferenceC5Contract or price list for this lineREF
ALIAdditional informationC5Promotion flags: advertising, price, displayPartner-specific
MOAMonetary amountC5Value of sales, qualifier 203ZA amounts, where used
PRI (SG9)Price detailsM1The price at which it soldCTP
QTY (SG10)QuantityM1Quantity sold (153), returns, promotion quantityZA with activity code
UNSSection controlM1UNS+S, end of the detail sectionNone
UNTMessage trailerM1Segment count and message referenceSE

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.

Live exampleEDIFACT SLSRPTEANCOM 2002 D.01B

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.

Structurally valid UN/EDIFACT
UN/EDIFACT · SLSRPT · D:01B:UN · EANCOM EAN007 · 35 segments · 1 message

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

RoleIdentifierName and address
SE SE5011122000002GS1 (GLN)-
Supplier SU5067890000003GS1 (GLN)-

Lines (5)

#GTINCodesDescriptionSales quantityPriceAmount
15067890100017--423.50147.00
25067890100024--183.7567.50
35067890100017--253.5087.50
45067890100024--113.7541.25
55067890100017--593.50206.50

Interchange (UNB)

Sender
5011122000002GS1 GLN
Recipient
5067890000003GS1 GLN
Prepared
2026-10-12 07:00
Control reference
BS0092230
Syntax
UNOC version 3
Messages
1
SegmentWhat 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+SUSeller (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.

Live exampleEDIFACT SLSRPTEANCOM 2002 D.01B

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.

Structurally valid UN/EDIFACT
UN/EDIFACT · SLSRPT · D:01B:UN · EANCOM EAN007 · 30 segments · 1 message

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

RoleIdentifierName and address
SE SE5011122000002GS1 (GLN)-
Supplier SU5067890000003GS1 (GLN)-

Lines (3)

#GTINCodesDescriptionSales quantityPriceAmount
15067890100024--173.7563.75
25067890100017--133.5045.50
35067890100017--393.00117.00

Interchange (UNB)

Sender
5011122000002GS1 GLN
Recipient
5067890000003GS1 GLN
Prepared
2026-10-05 07:00
Control reference
BS0092118
Syntax
UNOC version 3
Messages
1
SegmentWhat it says
First LOC+162 group, no DTMThe 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.

Live exampleEDIFACT SLSRPTEANCOM 2002 D.01B

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.

Structurally valid UN/EDIFACT
UN/EDIFACT · SLSRPT · D:01B:UN · EANCOM EAN007 · 12 segments · 1 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

RoleIdentifierName and address
SE SE5011122000002GS1 (GLN)-
Supplier SU5067890000003GS1 (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

CodeMeaning in EANCOM SLSRPT
9Original
1Cancellation of a previous report, identified in RFF
2Addition: products omitted from the original report
5Replace: a full report that replaces one identified in RFF
6Confirmation: a resend of a previous report, same number and date
31Copy for a third party, for information

DTM qualifiers

CodeMeaning
137Message date (mandatory)
356Sales date or period
90 / 91Report start / end date

Formats are 102 (a date), 203 (date and time) and 718 (a date range, start date first).

QTY qualifiers

CodeMeaning
153Statistical sales quantity: units sold
61Return quantity
210Returned by consumer
26Promotion quantity
145Actual stock
217Out of inventory quantity

Other codes

SegmentCodeMeaning
LOC162Place or location of sale (the only qualifier)
MOA203Line item amount: value of sales for the period
ALI96 / 97 / 98Promotional advertising / price / shelf display
PRIAAA / AABCalculation net / gross price
PRIAAE / AAFInformation price including / excluding taxes
NADSE / SU / COSeller / 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

DataEDIFACT SLSRPTX12 852
Report number and purposeBGMXQ
Reporting periodDTM+356 with format 718XQ02 and XQ03
PartiesNAD+SE, NAD+SU with GLNsN1 loop
Organising keyLocation first: LOC, then LINItem first: LIN, then ZA, then SDQ by location
ItemLIN with GTIN and SRVLIN with qualifier pairs
Quantity soldQTY+153ZA with a sold activity code
Sales valueMOA+203Partner-specific
Selling pricePRICTP
Promotion flagALI codes 96, 97, 98Partner-specific
Stock on handUsually a separate INVRPTOften another ZA in the same 852
End of detailUNS+SCTT

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 LIN lines 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+162 with agency 9.
  • Ambiguous periods. A report without DTM+356 forces the receiver to guess the week. Always send it.
  • Returns netted silently. Agree whether QTY+153 is gross or net of returns, and report returns separately with QTY+61 if asked.
  • Wrong UNT count. Large files are generated, but hand-edited test files often miscount.

Testing checklist

  1. Agree the period definition, cadence, qualifiers and whether values include VAT with your partner.
  2. Load one week for one store and check totals against the retailer's portal or your own EPOS extract.
  3. Add stores and products, and check that every store GLN maps to a known location in your system.
  4. Test a week with a promotion and confirm the sub-periods and ALI flags load into the right fields.
  5. Test cancellation and replacement: make sure a replaced report overwrites, rather than adds to, the original.
  6. Check that the file loads within your processing window at full national volume.
  7. 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

Sources

Check your SLSRPT structure, counts and GTIN and GLN check digits in the free EDIFACT inspector.

James Darby
Last updated: 10/12/2026

How to Answer "Are You EDI Capable?"

A buyer asked, and you need to answer this week. The four things they are checking, what you can say yes to today, and a realistic date for the rest.

  • What a buyer is really asking when they ask this
  • The minimum set-up that makes the answer yes
  • What you can answer today versus what needs building
  • Rough timelines, so you can give a date rather than a maybe

One email with the download. Unsubscribe any time.

Related Resources