VDA 4984 Message Structure: Field-by-Field DELFOR Guide
VDA 4984 is the German automotive industry's delivery-forecast and call-off message - the EDIFACT DELFOR profile your customer's scheduling system sends when it tells you which parts it expects, in which quantities, on which dates. If VDA 4987 (DESADV) is what you send when goods leave, VDA 4984 is what arrives from the other side: the demand signal your production and shipping plan answers to.
This guide walks the message field by field: what each area contains, which qualifiers actually matter, and the details that most often break real integrations.
The envelope: UNB to UNZ
Like every VDA 49xx message, the file opens with an interchange envelope. UNB carries sender and receiver interchange IDs (as agreed in your EDI onboarding), the interchange control reference (UNB-5) and the syntax version - for current VDA profiles, UN/EDIFACT syntax version 4. The file closes with UNZ, whose count must equal the number of messages inside.
UNB+UNOC:3+SENDER-ID:ZZZ+RECEIVER-ID:ZZZ+260926:0930+4821+++++4'
UNH+4821000001+DELFOR:D:20B:UN+++++1'
...
UNT+86+4821000001'
UNZ+1+4821'
Three things to verify before anything else: the UNH message reference (UNH-1) must equal UNT-2, UNT-1 must equal the real segment count, and the UNH-2 composite must read DELFOR:D:20B:UN (the release your trading partner's guideline specifies - OEMs differ here).
Header: BGM, dates and references
| Segment | What it carries | Why it matters |
|---|---|---|
BGM | Document type and delivery-instructions number | Identifies this specific forecast transmission in disputes and replays |
DTM | Message date/time (137), and frequently the forecast horizon start/end | The horizon dates bound everything below them; a wrong year here invalidates the whole schedule |
RFF | Blanket order / schedule agreement reference | Your link back to the commercial contract; finance matches against it |
NAD | Buyer (BY), supplier (SU), ship-to (ST) | Wrong ship-to codes route goods to the wrong plant gate |
LOC | Ship-to sub-location, unloading point or line | Large plants sort deliveries by dock or line; this is the sort key |
Item lines: LIN, PIA, IMD
Each scheduled material gets its own LIN group. LIN-2 (with qualifier IN) is the customer part number - the identifier everything else hangs off. PIA+1 usually carries your internal/supplier part number for cross-reference, and IMD carries a plain-language description. Most VDA 4984 implementations require the part number and description to match the master data your customer maintains - drift here causes silent rejections, not loud errors.
The schedule itself: QTY, SCC and DTM
This is the heart of the message, and the part that confuses people most. Each LIN contains one or more schedule lines, each combining three pieces:
- QTY - the quantity, with a qualifier saying which quantity: cumulative received, cumulative ordered (backlog), or the discrete amount for a specific date. VDA 4984 leans heavily on cumulative figures: your customer tracks a running total, and each new message updates it.
- SCC - schedule conditions: whether this quantity is firm (frozen, must deliver), forecast (planning signal) or commitment-level. Firm zones are short (days); forecast zones stretch weeks or months ahead.
- DTM - the date (or start/end window) the quantity applies to.
LIN+1++12345-A:IN'
PIA+1+67890-SUPP:SA'
IMD+F++:::WIRING HARNESS, DASH'
SCC+4'
QTY+3:1200:PCE'
DTM+2:20261002:102'
SCC+1'
QTY+3:1450:PCE'
DTM+2:20261009:102'
Reading the example: 1,200 pieces with SCC+4 (firm, for 2026-10-02) and 1,450 pieces with SCC+1 (forecast, for 2026-10-09). Your MRP should consume the firm line into shipping and treat the forecast as capacity signal.
Cumulative quantities: the VDA 4984 specialty
Unlike a plain purchase order, VDA 4984 frequently expresses demand as cumulative-to-date figures (QTY qualifier 1 or 3). The number means "total ordered/received up to this date", not "amount due on this date". Two consequences:
- Comparing two consecutive messages requires arithmetic: the delta between cumulative figures is your real new demand.
- Alignment errors compound: if your cumulative counter and the customer's disagree by 50 pieces once, every subsequent calculation is off by 50 until someone reconciles manually.
If your ERP shows "cumulative quantity drift" complaints, this is the mechanism. Reconciliation starts with the RFF blanket-order reference and the last agreed cumulative figure.
MEA, PAC and the packaging side
Some OEMs include per-item MEA weights and PAC packaging information (standard pack quantity, container type) so suppliers can pre-print labels. When present, packaging data must agree with the label VDA goods tags you print for the matching VDA 4987 despatch advice - mismatched pack quantities between forecast and despatch are a classic goods-receipt complaint trigger.
The five errors we see most
- Date qualifier confusion - DTM+2 (delivery date) vs DTM+64 (delivery window start) vs DTM+63 (end). Mixing them shifts every schedule line by a reading of the wrong calendar field.
- Wrong release in UNH - guideline says D:20B, file says D:96A. It parses; it still fails the partner's mapping.
- Segment count drift after hand edits - UNT-1 no longer matches reality.
- Ship-to LOC codes that don't exist in the plant master data.
- Unit codes - PCE vs EA vs C62 (UN/ECE unit codes). Your customer specifies one; the others are silent rejections.
How to check a file before it costs you
Run the structural check before the data lands in your ERP: envelope integrity, required segments by area, date format validity and code-list sanity. A ten-second local check beats a Monday-morning rejection email from the scheduling department.