# EDI 875 Grocery Products Purchase Order Guide

> How the EDI 875 Grocery Products Purchase Order works. Learn key segments, perishables handling, and how the 875 differs from the standard EDI 850.

**The EDI 875 Grocery Products Purchase Order is the X12 transaction set used specifically by grocery retailers and food distributors to order grocery items, with extensions for perishability dates, weight-based pricing, lot tracking, and other grocery-specific attributes that the standard EDI 850 doesn't carry well.**

## What Is an EDI 875?

**An EDI 875 is a structured grocery purchase order document defined by the [ASC X12 standards body](https://x12.org/) that grocery retailers and food distributors send to suppliers to place orders for grocery, fresh, frozen, dairy, and produce products.** It is functionally similar to the EDI 850 but adds segments for catch-weights, freshness dates, lot/batch numbers, and other attributes critical for food distribution.

The 875 exists because the standard 850 was designed for general merchandise. Grocery distribution has different needs:

- Items priced by actual weight (catch-weight) rather than each
- Mandatory freshness, sell-by, and best-by dates
- Lot tracking and traceability for FSMA compliance
- Temperature requirements at ship and receive
- Variable case packs (random-weight cases)

Some grocery trading partners use the standard 850 with grocery extensions. Others standardize on the 875. Both are common in North American grocery EDI.

## EDI 875 Format and Key Segments

The 875 inherits most of the 850's structure, with grocery-specific segments added:

| Segment | Purpose | Example |
|---|---|---|
| `BPO` | Header — order number, order type, date, action code | `BPO*00*GRO123456*20260509` |
| `LIN` | Line item identification | `LIN*1*UP*012345678905*VN*VENDOR-SKU` |
| `SI` | Service item characteristics — UOM, quantity, price | `SI*EA*12***5.99` |
| `G69` | Item description | `G69*Whole Wheat Bread 24oz` |
| `DTM` | Date qualifiers — order, delivery, sell-by, expiration | `DTM*146*20260516` (sell-by date) |
| `CB1` | Catch-weight detail — actual weight at order time | `CB1*200*LB*12*EA` |
| `LM` | Code source for retailer-specific qualifiers | `LM*01*HDA` (Healthcare Distribution Alliance code) |
| `N9` | Reference numbers (lot, batch, traceability) | `N9*LO*LOT2026Q2-001` |
| `CTT` | Transaction totals — number of line items | `CTT*15` |

### Catch-weight handling in CB1

The CB1 segment is the defining grocery-specific addition. For catch-weight items (deli meats, produce, seafood), the order specifies an approximate quantity in eaches but the actual price is calculated from weight at delivery. The CB1 captures the estimated or ordered weight so the receiving system can validate the invoice price against actual weight delivered.

## EDI 875 vs EDI 850

The most-asked comparison for the 875:

| Aspect | EDI 850 | EDI 875 |
|---|---|---|
| Industry | General merchandise, retail, manufacturing | Grocery, food distribution, perishables |
| Catch-weight items | Not natively supported | First-class via CB1 segment |
| Sell-by / best-by dates | Optional via DTM | Standard practice via DTM*146 |
| Lot/batch tracking | Optional via REF | Standard practice via N9*LO |
| Variable case packs | Awkward | Natively supported |
| Random-weight UOM (LB, KG) | Supported but not idiomatic | Idiomatic |

If you sell only general merchandise, use the 850. If you sell perishables, fresh, frozen, or any catch-weight items into grocery channels, the 875 is the cleaner fit.

## Common Use Cases

### Wholesale grocery distributor ordering from a CPG vendor

A grocery wholesaler (KeHE, UNFI, C&S Wholesale) sends an 875 to a CPG brand for next-week's replenishment. Items include both fixed-weight (boxes of cereal) and catch-weight (deli cheese) lines in the same order. The 875 carries each correctly without separate documents.

### Independent grocery chain ordering produce

A regional grocery chain orders produce from a co-op or direct-from-farm supplier. The 875 carries delivery date, lot numbers for traceability, and target weights per item, with the supplier free to ship within an agreed weight tolerance.

### Foodservice distributor ordering from a manufacturer

Foodservice distributors (Sysco, US Foods, Performance Food Group) send 875s to food manufacturers for restaurant-channel orders, with sell-by dates and case-pack detail required for foodservice menu compliance.

## Interactive Example: Wholesaler 875 Grocery Purchase Order

This is a real grocery-wholesaler 875 shape mixing a fixed-weight bread case line with a catch-weight cheese block line, plus sell-by dates and lot tracking. Use the **Plain English** tab for a translation or **Split View** to compare raw vs parsed.

<EDISample id="875-grocery-catch-weight" />

In the example above: order GRO-456789 for delivery 2026-05-16. Line 1 is 5 cases of Whole Wheat Bread at $14.99/case, sell-by 2026-05-20. Line 2 is 40 lb of Sharp Cheddar Deli Block at $6.49/lb (catch-weight via CB1 segment), sell-by 2026-05-30, lot number LOT2026Q2-178.

## Interactive Example: KeHE Multi Catch-Weight 875

KeHE and other natural-foods grocery distributors order multiple catch-weight items per PO with strict lot tracking and sell-by date discipline for traceability and rotation. Each line carries CB1 for the ordered weight and N9*LO for the lot number to be reserved.

<EDISample id="875-kehe-catchweight" />

The example above orders three catch-weight specialty items (grass-fed butter, raw Manchego cheese, prosciutto di Parma) totaling 250 lb across the order, each with its own sell-by date and pre-assigned lot number. The vendor's WMS reserves inventory from the specified lots and confirms actual delivered weight via the downstream 945 and 810.

## Interactive Example: UNFI Fixed-Weight Natural Foods 875

UNFI orders dry goods (pasta, sauces, oils) by the case at fixed pricing per case, with longer sell-by horizons and an organic certification reference at the order header. No catch-weight, no lot tracking required for shelf-stable items.

<EDISample id="875-unfi-fixed-weight" />

The example above orders four cases of organic dry goods (pasta, marinara, olive oil, balsamic) at fixed case pricing, with USDA Organic certification carried as a header REF segment. Sell-by dates range from one year out (sauce) to two years out (vinegar), reflecting different shelf-life classes for shelf-stable foods.

## Trading Partner Requirements

Grocery partners have stricter requirements than general retail:

- **DSCSA / FSMA compliance**: Pharmaceuticals (HDA partners) and high-risk foods require lot tracking via `N9*LO` for traceability under the Drug Supply Chain Security Act and Food Safety Modernization Act.
- **Temperature requirements**: Frozen and refrigerated items often require `TD5` segments specifying carrier temperature ranges.
- **Case-pack flexibility**: Some grocery items ship in variable case packs depending on supplier batch. Trading partners must accept ranges or use catch-weight reporting.
- **Sell-by / use-by dates**: `DTM*146` (sell-by), `DTM*150` (use-by), and `DTM*036` (expiration) are typically required for any perishable line.

## Implementation Best Practices

1. **Distinguish fixed-weight from catch-weight at item setup** — your item master needs to know which UOM applies (each, case, pound, kilo) before the 875 lands.
2. **Validate sell-by dates against your production schedule** — if a 875 requests a sell-by date you can't meet from current inventory, route to your S&OP process before sending an 855 acceptance.
3. **Capture lot numbers in your warehouse system** — when the 875 requires lot tracking, your WMS must persist lot data per case so the downstream 856 ASN can reference the correct lot for each shipped carton.
4. **Build a catch-weight tolerance check** — when actual delivered weight differs from ordered weight by more than the tolerance (typically 5%), the receiving 810 invoice may get auto-rejected by the buyer.
5. **Route 875s to a grocery-aware order handler** — the standard 850 pipeline often won't correctly process 875 segments. Either extend the 850 handler or create a dedicated 875 path.

## Related Transaction Sets

- [EDI 850 Purchase Order](/guides/edi/850-purchase-order) — General-merchandise counterpart; many non-grocery retailers use 850 instead of 875
- [EDI 855 PO Acknowledgment](/guides/edi/855-purchase-order-acknowledgment) — Acknowledge 875s the same way you acknowledge 850s
- [EDI 856 Ship Notice (ASN)](/guides/edi/856-ship-notice) — ASN should reference lot numbers from the 875 for traceability
- [EDI 880 Grocery Products Invoice](/guides/edi/880-grocery-products-invoice) — Grocery-specific invoice that pairs with the 875 the way 810 pairs with 850

## Frequently Asked Questions

**What is an EDI 875 used for?**
The 875 is a grocery-specific purchase order with segments for catch-weights, sell-by dates, lot tracking, and variable case packs that the standard 850 doesn't carry well.

**What is the difference between EDI 875 and EDI 850?**
Both are purchase orders. The 875 adds grocery-specific segments (CB1 for catch-weight, mandatory DTM*146 for sell-by, N9*LO for lot tracking) that grocery and food distribution partners require. Use 850 for general merchandise; use 875 for grocery and perishables.

**Do I need EDI 875 if I already support EDI 850?**
Depends on your trading partners. Many grocery wholesalers (KeHE, UNFI) accept either 850 or 875. Some grocery retailers standardize on 875 and reject 850s. Confirm partner-by-partner.

**What pairs with the 875 the way 810 pairs with 850?**
The EDI 880 Grocery Products Invoice is the grocery-specific invoice counterpart. Many grocery suppliers use the standard 810 instead.

**Is the 875 used outside grocery?**
Rarely. The transaction set is specifically scoped to grocery and food distribution. Any retail vertical with similar perishability needs (floral, pharmaceutical) typically uses the 850 with extensions instead.

## Need Help With EDI 875?

OrderSync handles 875s and the standard 850 through a single pipeline. Catch-weight items, sell-by dates, lot tracking, and grocery-specific attributes are handled natively without extending your order management system.

Try the [free EDI Inspector](/edi-inspector) to parse and validate your 875 samples.
