Skip to content
EDI 879 — EDI TransactionPublished Nov 4, 2026

EDI 879 Price Information: Grocery Cost Guide

EDI 879 Price Information explained: G91 change types, effective dates, G28 items, G40 old and new cost, G93 price brackets, examples, and 879 vs 832 and 888.

The EDI 879 is how a grocery supplier changes its cost in the retailer's system. When a manufacturer raises a case cost, the retailer's buying system, its receiving and its accounts payable all need the new figure on the same date. If they do not get it, orders go out at the old cost, invoices come in at the new one, and the difference returns as a deduction.

The 879 is the price half of grocery item data. The 888 Item Maintenance sets up the item and leaves price changes out; the 879 carries them. This guide covers what the 879 holds, its change types and dates, two live examples (a cost increase and new item bracket pricing), every segment you will map, and the errors that turn into short-pays.

What Is an EDI 879?

An EDI 879 is the Price Information transaction set defined by the ASC X12 standards body. Its X12 purpose statement says it enables a manufacturer, supplier, broker or agent to provide a trading partner with pricing information. It belongs to the grocery Uniform Communication Standard (UCS) family alongside the 888 and the 889 Promotion Announcement, uses grocery "G" segments, and travels in functional group QG (Product Information).

Authoritative references for 879 work:

Who sends it? The supplier side: a manufacturer, its broker or agent.

Who receives it? A grocery retailer or wholesaler, into the cost file its buying, receiving and payables systems share.

When is it sent? With or soon after an 888 for a new item, and ahead of every cost change, with enough lead time for the retailer's guide. The dates inside the 879 tell the retailer when the new cost applies.

Why does it matter? Grocery margins are thin and orders are frequent. A cost change that reaches the retailer late, or with the wrong date, affects every order and invoice in between, and each one becomes a deduction to research.

Where the 879 Sits in Grocery Item and Cost Data

Grocery item data moves in a fixed order, and the 879 is the cost step:

  1. Item setup. The supplier sends the case and consumer unit data on an 888, or through the retailer's chosen catalog route.
  2. Initial cost. The 879 with change type W (new) gives the starting cost. Some retailers require it to travel with the 888.
  3. Promotions. Temporary deals and allowances go on the 889, separate from the list cost.
  4. Orders and invoices. The retailer orders on an 875 or 850 at the cost on file, and the supplier bills on an 880 or 810. For direct store delivery, the 894 is checked against the same cost file at the back door.
  5. Cost changes. Every later increase or decrease goes on a new 879 with change type B, dated ahead of the change.

Retailers that do not take the 879 usually take costs on an 832 Price/Sales Catalog, a GS1 data pool, or their own portal. Which one applies is the retailer's choice, set out in its guide.

Interactive Example: Case Cost Increase (G91 Change Type B)

A granola manufacturer raises the case cost of two 16 oz items from $39.84 to $42.60, starting with orders placed on January 4. G91*B marks this as a price change. Two N1 loops name the vendor and the buyer. Three heading G62 dates give the first order date (87), first ship date (88) and first arrival date (89) for the new cost. Each item is a G28 (case code and consumer UPC), a G20 (12 per case, 16 oz), a G69 description and a G40 with the new cost, the old cost and the unit (CA).

Use the Plain English tab for a readable summary, or click any segment to break it down element by element.

Live exampleGrocery Chain (Price Information)EDI 879

Grocery 879 Cost Increase

A granola manufacturer raises the case cost of two items from $39.84 to $42.60, with first order, first ship and first arrival dates in G62 and old and new cost in G40

Document
879 Price Information
From / to
PINEHOLLOW → HARBORGROCER
Segments
20
Interchange date
Dec 2, 2026

Raw EDI (X12)

1
ISA*00* *00* *ZZ*PINEHOLLOW *ZZ*HARBORGROCER *261202*1000*U*00401*000000879*0*P*:~
2
GS*QG*PINEHOLLOW*HARBORGROCER*20261202*1000*879*X*004010UCS~
3
ST*879*0001~
4
G91*B~
5
N1*VN*PINE HOLLOW FOODS*1*081234567~
6
N1*BY*HARBOR GROCERY*1*069854900~
7
G62*87*20270104~
8
G62*88*20270104~
9
G62*89*20270106~
10
G28*008451200116*084512001168~
11
G20*12*16*OZ~
12
G69*HONEY ALMOND GRANOLA 16 OZ~
13
G40**42.60*39.84****CA~
14
G28*008451200123*084512001236~
15
G20*12*16*OZ~
16
G69*CRANBERRY PECAN GRANOLA 16 OZ~
17
G40**42.60*39.84****CA~
18
SE*16*0001~
19
GE*1*879~
20
IEA*1*000000879~

Human-Readable

Interchange

Sender ID(ZZ)PINEHOLLOW
Receiver ID(ZZ)HARBORGROCER
Date261202
Time1000
Standards IDU
Version00401
Control Number000000879
Acknowledgment RequestedNo
UsageProduction
Included Groups (IEA01)1

Functional Group

Functional IDQGQG
SenderPINEHOLLOW
ReceiverHARBORGROCER
Date20261202
Time1000
Control Number879
Agency CodeX
Version004010UCS
Transactions1
Reported Transaction Count (GE01)1

Transaction 879

Price Information
Transaction Type879
Control Number0001
Segments, ST to SE16
Count in SE0116 (matches)

Segment Detail

G91Price Change Status
G9101Change Type CodeB
N1Party Identification
N101Entity CodeVN
N102NamePINE HOLLOW FOODS
N103ID Qualifier1
N104ID Code081234567
N1Party Identification
N101Entity CodeBY
N102NameHARBOR GROCERY
N103ID Qualifier1
N104ID Code069854900
G62Date/Time
G6201Date Qualifier87
G6202Date20270104
G62Date/Time
G6201Date Qualifier88
G6202Date20270104
G62Date/Time
G6201Date Qualifier89
G6202Date20270106
G28Line Item Numbers
G2801U.P.C. Case Code008451200116
G2802U.P.C. Consumer Package Code084512001168
G20Item Packing Detail
G2001Pack12
G2002Size16
G2003Size UnitOZ
G69Line Item Detail (Description)
G6901Item DescriptionHONEY ALMOND GRANOLA 16 OZ
G40Bracket Price
G4002Item List Cost (New)42.60
G4003Item List Cost (Old)39.84
G4007Cost Unit of MeasureCA
G28Line Item Numbers
G2801U.P.C. Case Code008451200123
G2802U.P.C. Consumer Package Code084512001236
G20Item Packing Detail
G2001Pack12
G2002Size16
G2003Size UnitOZ
G69Line Item Detail (Description)
G6901Item DescriptionCRANBERRY PECAN GRANOLA 16 OZ
G40Bracket Price
G4002Item List Cost (New)42.60
G4003Item List Cost (Old)39.84
G4007Cost Unit of MeasureCA
1 functional group1 transactionControl #000000879Valid

Interactive Example: New Item Pricing With Brackets (G91 Change Type W)

When the same two items were first set up on an 888, the supplier sent their starting costs on an 879 with G91*W (new). This file defines two quantity brackets in the heading with G93 (1 to 49 cases, and 50 cases or more), then gives each item a G40 per bracket: $39.84 and $38.40 per case.

Live exampleGrocery Chain (Price Information)EDI 879

Grocery 879 New Item Bracket Pricing

Initial pricing (G91 change type W) for two new items set up on an 888: two quantity brackets defined in G93 and a G40 cost per bracket per item

Document
879 Price Information
From / to
PINEHOLLOW → HARBORGROCER
Segments
22
Interchange date
Nov 4, 2026

Raw EDI (X12)

1
ISA*00* *00* *ZZ*PINEHOLLOW *ZZ*HARBORGROCER *261104*0905*U*00401*000000880*0*P*:~
2
GS*QG*PINEHOLLOW*HARBORGROCER*20261104*0905*880*X*004010UCS~
3
ST*879*0001~
4
G91*W~
5
N1*VN*PINE HOLLOW FOODS*1*081234567~
6
N1*BY*HARBOR GROCERY*1*069854900~
7
G62*87*20261201~
8
G93*1*1*CA*1 TO 49 CASES~
9
G93*2*50*CA*50 CASES OR MORE~
10
G28*008451200116*084512001168~
11
G20*12*16*OZ~
12
G69*HONEY ALMOND GRANOLA 16 OZ~
13
G40*1*39.84*****CA~
14
G40*2*38.40*****CA~
15
G28*008451200123*084512001236~
16
G20*12*16*OZ~
17
G69*CRANBERRY PECAN GRANOLA 16 OZ~
18
G40*1*39.84*****CA~
19
G40*2*38.40*****CA~
20
SE*18*0001~
21
GE*1*880~
22
IEA*1*000000880~

Human-Readable

Interchange

Sender ID(ZZ)PINEHOLLOW
Receiver ID(ZZ)HARBORGROCER
Date261104
Time0905
Standards IDU
Version00401
Control Number000000880
Acknowledgment RequestedNo
UsageProduction
Included Groups (IEA01)1

Functional Group

Functional IDQGQG
SenderPINEHOLLOW
ReceiverHARBORGROCER
Date20261104
Time0905
Control Number880
Agency CodeX
Version004010UCS
Transactions1
Reported Transaction Count (GE01)1

Transaction 879

Price Information
Transaction Type879
Control Number0001
Segments, ST to SE18
Count in SE0118 (matches)

Segment Detail

G91Price Change Status
G9101Change Type CodeW
N1Party Identification
N101Entity CodeVN
N102NamePINE HOLLOW FOODS
N103ID Qualifier1
N104ID Code081234567
N1Party Identification
N101Entity CodeBY
N102NameHARBOR GROCERY
N103ID Qualifier1
N104ID Code069854900
G62Date/Time
G6201Date Qualifier87
G6202Date20261201
G93Price Bracket Identification
G9301Price Bracket Identifier1
G9302Bracket Minimum Quantity1
G9303Unit of MeasureCA
G9304Bracket Description1 TO 49 CASES
G93Price Bracket Identification
G9301Price Bracket Identifier2
G9302Bracket Minimum Quantity50
G9303Unit of MeasureCA
G9304Bracket Description50 CASES OR MORE
G28Line Item Numbers
G2801U.P.C. Case Code008451200116
G2802U.P.C. Consumer Package Code084512001168
G20Item Packing Detail
G2001Pack12
G2002Size16
G2003Size UnitOZ
G69Line Item Detail (Description)
G6901Item DescriptionHONEY ALMOND GRANOLA 16 OZ
G40Bracket Price
G4001Price Bracket Identifier1
G4002Item List Cost (New)39.84
G4007Cost Unit of MeasureCA
G40Bracket Price
G4001Price Bracket Identifier2
G4002Item List Cost (New)38.40
G4007Cost Unit of MeasureCA
G28Line Item Numbers
G2801U.P.C. Case Code008451200123
G2802U.P.C. Consumer Package Code084512001236
G20Item Packing Detail
G2001Pack12
G2002Size16
G2003Size UnitOZ
G69Line Item Detail (Description)
G6901Item DescriptionCRANBERRY PECAN GRANOLA 16 OZ
G40Bracket Price
G4001Price Bracket Identifier1
G4002Item List Cost (New)39.84
G4007Cost Unit of MeasureCA
G40Bracket Price
G4001Price Bracket Identifier2
G4002Item List Cost (New)38.40
G4007Cost Unit of MeasureCA
1 functional group1 transactionControl #000000880Valid

879 Structure at a Glance

AreaSegmentNameUsageNotes
HeadingSTTransaction Set HeaderMandatoryST01 = 879
HeadingG91Price Change StatusMandatoryThe change type for the whole file
Heading loopN1, N2, N3, N4Name and addressMandatory loop, up to 999Vendor, buyer, broker; buyer loops can define price areas
HeadingN9Reference IdentificationOptional
HeadingG61ContactOptional
HeadingNTENote/Special InstructionOptional
HeadingG36Price List ReferenceOptionalThe supplier's price list number and date
HeadingG26Pricing ConditionsOptionalConditions that apply to the prices
HeadingG43Promotion/Price List AreaOptionalPricing market or store numbers
HeadingG62Date/TimeMandatory, up to 10Effective dates for every item in the file
HeadingG93Price Bracket IdentificationOptional, up to 50Defines quantity or weight brackets
HeadingG46Promotion Allowance/ChargeOptional
Detail loopG28Line Item NumbersMandatory, repeatsThe item: case code, consumer UPC or other IDs
Detail loopG20Item Packing DetailOptionalPack, size, weight, volume, inner pack
Detail loopG69Line Item Detail, DescriptionOptional
Detail loopG26, G43Pricing conditions and areaOptionalItem-level overrides
Detail loopG62Date/TimeOptional, up to 4Item-level dates that override the heading
Detail loopG46, G22, SACAllowances, prepricing, chargesOptional
Bracket loopG40Bracket PriceMandatory in loop, up to 100 per itemNew and old cost per bracket
Bracket loopG46Promotion Allowance/ChargeOptionalAllowance tied to that bracket
TrailerSETransaction Set TrailerMandatorySegment count and control number

In the envelope, GS01 is QG and GS08 is commonly 004010UCS, or the UCS release the retailer names. Retailer guides cut this down sharply: many use only G91, the N1 loops, G62, G28, G20, G69 and G40.

Key Segments Explained

G91: Price Change Status

G91*B~

G91 has one element, the change type, and it sets how the receiver treats everything in the file.

CodeX12 meaningTypical use
WNewInitial costs, often for items just set up on an 888
BOriginal Price Change TransactionA cost change to existing items
CCancel Previous Price Change TransactionWithdraw a change sent earlier
GAdd Items to a Previous Change TransactionAdd items you left off a change
HDelete Items from a Previous Change TransactionRemove items from a change
JReplace All Dates Shown in a Previous ChangeMove the effective dates
KReplace Prices Shown in a Previous Change TransactionCorrect the prices; some retailers use it for a full price file refresh
QReplace Previous Change Transaction EntirelySeveral kinds of change at once
I / DIncrease Rate / Decrease RateRate changes, where the guide uses them

The X12 list has 21 codes. Retailers accept a handful, and some give them specific meanings. One public guide, for example, uses K for a full item price file refresh. Use only the codes in your partner's guide.

N1 Loop: Vendor, Buyer and Price Areas

N1*VN*PINE HOLLOW FOODS*1*081234567~
N1*BY*HARBOR GROCERY*1*069854900~

N101 names the role: VN for the vendor whose prices these are, BY for the buyer, and in some guides BO for the broker. N103/N104 carry the ID (here 1 = DUNS). Some retailers use repeated BY loops to say which zones, divisions or locations a price applies to, and treat a file with no location as applying everywhere. That is a partner rule, so check the guide before relying on it.

G62: Effective Dates

G62*87*20270104~
G62*88*20270104~
G62*89*20270106~

G6201 is the date qualifier and G6202 the date. Heading G62 dates apply to every item. A G62 inside an item loop overrides the heading for that item.

QualifierMeaningHow retailers use it
87First order dateThe first date purchase orders go out at the new cost
88First ship dateThe first date orders ship at the new cost
89First arrival dateThe first date orders can arrive at the new cost
07Effective dateA single effective date; one public guide limits it to DSD items
09Process dateWhen the file was generated, sometimes with a time

Which of these your retailer requires, and which one drives its cost file, is in its guide. Get it wrong and the cost can switch a week earlier or later than you intended.

G28: Line Item Numbers

G28*008451200116*084512001168~
ElementNameExampleWhat it means
G2801U.P.C. Case Code008451200116The 12-character grocery case code
G2802U.P.C. Consumer Package Code084512001168The consumer UPC on the shelf unit
G2803 / G2804Product ID qualifier and IDFor example UK with a 14-digit GTIN, or VN with your item number
G2805 / G2806Second qualifier and IDAnother identifier, such as UP with a UPC

X12 requires at least one of G2801, G2802 or G2803. The codes must match the item exactly as set up on the 888, since the retailer looks the cost up by them. Newer UCS guides move the case identifier to a 14-digit GTIN with qualifier UK in G2803/G2804.

G20: Item Packing Detail

G20*12*16*OZ~

G2001 is the pack (consumer units per case), G2002/G2003 the size and unit. Weight, volume, color and inner pack follow. It matters when the cost is per case: a retailer that stores unit costs divides the case cost by this pack, so a wrong pack here produces a wrong unit cost even when the case cost is right.

G40: Bracket Price

G40**42.60*39.84****CA~
ElementNameExampleWhat it means
G4001Price Bracket IdentifierLinks to a G93 bracket in the heading. Empty when there are no brackets
G4002Item List Cost, New42.60The cost from the effective date. Mandatory
G4003Item List Cost, Old39.84The cost before the effective date
G4004DescriptionFree text
G4005 / G4006Suggested retail, new and oldConsumer price, where the retailer takes it here
G4007Unit of MeasureCAThe invoicing unit for the costs in G4002 and G4003
G4008Price Identifier CodeOptional pricing specification
G4009NumberThe shipping unit to billing unit conversion factor

Sending the old cost in G4003 is optional in the standard but worth doing. It lets the retailer check that both sides agree on the starting point, and it makes a mistyped new cost easier to catch. Make sure G4007 matches how you invoice: a case cost labeled EA is read as a cost per unit.

G93: Price Bracket Identification

G93*1*1*CA*1 TO 49 CASES~
G93*2*50*CA*50 CASES OR MORE~

G9301 is the bracket identifier that G4001 points to. G9302/G9303 give the bracket's minimum quantity or weight and its unit, and G9304 describes it. G9308 can say whether freight is included in the bracket's price (Y or N). If a G40 names a bracket, the heading must define it with a G93.

G22: Pricing Information

G22 carries prepricing: whether the item is pre-priced and, if it is, the new suggested retail price and multiple (for example 2 for $5.00), with an effective date. One public guide accepts it on the 879 only when the pre-price changes together with the cost, and wants it on the 888 otherwise.

G36, G26, G43 and G46

  • G36 names the supplier's price list and its date, so the retailer can tie the 879 to a published price sheet.
  • G26 sets pricing conditions, such as a date basis or a minimum quantity.
  • G43 identifies a pricing market or store number the price applies to.
  • G46 carries an allowance or charge. Trade promotions belong on the 889; retailers that accept G46 on the 879 say which kinds.

EDI 879 vs 832, 888 and 889

DocumentSent byPurposeNotes
879 Price InformationManufacturer, supplier, brokerNew costs, cost changes and their datesGrocery UCS; price only
888 Item MaintenanceManufacturer, supplier, brokerAdd, change, withdraw or delete itemsItem data; price changes go on the 879
889 Promotion AnnouncementManufacturer, brokerTemporary deals and allowancesPromotional money, not list cost
832 Price/Sales CatalogVendorCatalog with items, attributes and pricesGeneral purpose; used across retail, distribution and grocery

The short version: the 879 changes list cost, the 889 announces temporary deals on top of it, and the 888 describes the item the cost belongs to. The 832 can do the item and price jobs in one document, which is why retailers outside grocery, and many inside it, use it instead.

Common 879 Errors and How to Prevent Them

ErrorWhat happensPrevention
Cost sent after the effective dateOrders and invoices in between disagree; deductions followSend with the lead time in the retailer's guide
Wrong date qualifierNew cost switches on the wrong dayUse the qualifiers the guide names (87, 88, 89 or 07)
Item codes that differ from the 888Cost not applied, or applied to the wrong itemPull G28 from the same item master as the 888
Case cost with unit EA in G4007Cost read as per unit, multiplying it by the packLabel the invoicing unit correctly
Pack in G20 does not match the item fileWrong unit cost after the retailer dividesKeep the pack consistent with the 888
G40 bracket with no G93Bracket cannot be resolved; file rejectedDefine every bracket in the heading
Change type the retailer does not acceptFile rejected or misappliedUse only the G91 codes in the guide
Invoicing at the new cost before the retailer's dateShort-pay on the differenceBill at the cost in effect on the retailer's chosen date

Cost errors rarely fail at the 879. They surface as price discrepancy deductions and retail chargebacks on later invoices. The EDI inspector lays out each G28 and G40 by name, which makes a cost file quick to check before it goes out.

879 Implementation Checklist

  • Confirm the retailer takes the 879, or wants costs on an 832, a data pool or its portal
  • Get its 879 guide and the G91 change types it accepts
  • Confirm which G62 qualifier drives its cost file, and the lead time it needs
  • Confirm the item identifiers it wants in G28 (12-digit case code, GTIN-14, consumer UPC)
  • Confirm case or unit cost, and set G4007 and G20 to match
  • Decide whether to send old cost in G4003 (recommended where allowed)
  • If you use brackets, define each one in G93
  • Test a new item, an increase, a decrease and a cancellation, and watch the 997 and any 824
  • Line up your own order entry and invoicing with the same effective date

If you are new to grocery EDI, the grocery EDI requirements guide and EDI for grocery and retail suppliers show how the 879 fits with orders, deliveries and invoices.

Checking Order Prices Against Your Costs With OrderSync

A cost change only works if the orders that follow carry the new cost. Grocery and food suppliers receive orders as EDI 875s and 850s, but also as emails, PDFs and spreadsheets from wholesalers, independents and DSD accounts, and an old cost on any of them becomes a dispute later.

OrderSync reads those orders in any format, matches each line to your catalog by UPC, case code or the customer's item number, converts units, and outputs valid X12 or clean data to your ERP. Paste any 879 into the free EDI inspector to see it parsed with a plain-English summary, or book a 15-minute walkthrough to see your own orders processed.

Frequently Asked Questions

What is an EDI 879 used for?

The EDI 879 Price Information sends item costs from a grocery manufacturer, supplier or broker to a retailer or wholesaler. It carries initial costs for new items and later cost increases and decreases, with the dates they take effect and, optionally, quantity price brackets.

What is the difference between EDI 879 and EDI 888?

The 888 Item Maintenance sets up and maintains the item itself: case and consumer codes, pack, size, weight and dimensions. The X12 standard leaves price changes out of the 888 and puts them on the 879. Some retailers require the 879 to arrive with the 888 for a new item.

What is the difference between EDI 879 and EDI 832?

The 879 is a grocery UCS set that carries costs only, for items already set up. The 832 Price/Sales Catalog is a general-purpose catalog that can carry items, attributes and prices together. Retailers choose which they accept, and many outside grocery use the 832.

What does G91 mean in an EDI 879?

G91 is the Price Change Status segment. Its one element says what the file does: W for new pricing, B for a price change, C to cancel a previous change, K to replace prices in a previous change, and other codes for adding or deleting items and replacing dates.

Where is the price in an EDI 879?

The cost is in the G40 Bracket Price segment. G4002 holds the new cost and G4003 the old cost, both in the unit of measure given in G4007. When a G40 names a price bracket in G4001, that bracket is defined by a G93 segment in the heading.

What dates does an EDI 879 use?

G62 segments carry the dates. Grocery guides commonly use qualifier 87 for the first order date, 88 for the first ship date and 89 for the first arrival date at the new cost, or 07 for a single effective date. Heading dates apply to every item; item-level G62 dates override them.

What functional group does the EDI 879 use?

The 879 uses functional group QG (Product Information), the same group as the 888 and 889. Grocery retailers commonly name 004010UCS or a later UCS release in GS08, as set out in their implementation guides.

James Darby
Last updated: 11/4/2026

Related Resources