What is 867 data? The distributor sales file, explained
867 data is your distributors' sales data: one line for each shipment, saying what was sold, to which site, on which day. It tells you where product went, not who prescribed it or which patient received it.
| Field | What it means | Example (synthetic) |
|---|---|---|
| Transaction date | Date the distributor shipped or invoiced | 2026-07-29 |
| Transaction type | Sale, return, or transfer between distributor locations | Sale |
| Distributor | Who shipped the product | A specialty distributor |
| Ship-to ID | The distributor's own customer number for the receiving site | WHD109344 |
| Ship-to name | The site's name, spelled the distributor's way | CANYON VIEW DERM GROUP |
| Ship-to location | Where it went. Real files also carry the street address and often a DEA number or HIN | Lake Jessicaville, GA 30557 |
| Class of trade | The distributor's label for the type of site | Physician Office |
| Product (NDC) | National Drug Code, the package-level product ID | 100 mg single-use vial |
| Units | Packages shipped | 2 |
| Extended dollars | Units times WAC (wholesale acquisition cost, the list price before discounts and rebates) | $3,590 (2 × $1,795) |
| Invoice number | The distributor's invoice reference | INV2607290033 |
| Account | Your CRM record for this site, usually an HCO (healthcare organization) | Canyon View Dermatology Group, a group practice |
| Territory | The territory credited with the account's sales, from your alignment | Summit 18 |
The name comes from EDI 867, the "Product Transfer and Resale Report" in the X12 electronic data interchange (EDI) standard. Each line is one product shipment from a distributor to a ship-to location such as a hospital, clinic or pharmacy.
A DEA number is the site's Drug Enforcement Administration registration. A HIN is a Health Industry Number, an identifier assigned to healthcare sites.
Where 867 sits in the supply chain
The manufacturer ships to a distributor, often through a 3PL (third-party logistics provider). That leg is your ex-factory or invoice data. The distributor then ships to sites, and that leg is the 867. A separate report, the 852, covers distributor inventory. Neither one sees the patient.
Two things follow:
- 867 dollars are usually list price. The extended amount is typically units times WAC. Your net revenue after rebates, chargebacks and discounts needs other data. Lead with units.
- 867 is demand at the site, not at the prescriber. It shows a practice bought two vials. It does not show which physician wrote the prescription.
Every number in this guide comes from a synthetic dataset. It models a small biotech with one injectable brand (a vial and a pre-filled syringe), 60 territories and three years of sales data from six distributors. Five of them send data daily and one sends a weekly file, so the data runs through October 12, 2026 for five and through October 9 for the sixth. Each package has one WAC: $1,795 for the vial and $1,840 for the syringe. There are no real patients, prescribers, accounts or distributors in it. The analysis window is the 12 months from October 2025 through September 2026.
Step 1: net out returns
Returns arrive as their own lines. Some sources send them as negative numbers, others as positive numbers with a "return" flag. Make returns negative regardless of how they arrive, then add everything up. Most teams also leave transfers out of demand, because a transfer only moves product between distributor locations and would otherwise count twice.
| Transaction type | Lines | Units |
|---|---|---|
| Sales | 15,586 | 74,952 |
| Returns | 663 | -830 |
| Net | 16,249 | 74,122 |
In the example, returns arrive as positive units with a return flag, and they equal 1.1% of shipped units. That is small overall. But a return line is one or two packs and the median sale line is two, so a single return can turn a small site's week negative. Net out returns before you judge any account's trend.
Step 2: map each ship-to to an account
A ship-to ID belongs to the distributor, not to you. To report sales by account, territory or rep, you keep a crosswalk from each distributor ship-to to an account in your CRM (customer relationship management system). This is the step that decides whether your territory numbers are right.
Here is the result for the example's 12 months:
| Mapping status | Ship-to IDs | Share of IDs | Net units | Share of units |
|---|---|---|---|---|
| Mapped to an HCO | 805 | 95.5% | 69,702 | 94.0% |
| Unmapped | 38 | 4.5% | 4,420 | 6.0% |
| Total | 843 | 100% | 74,122 | 100% |
So 6.0% of the brand's net units shipped to sites that no one had matched to an account. Those units are real sales. They belong in the national total, but no territory gets credit for them until they are mapped. Count IDs, not sites: the 805 mapped IDs belong to 739 accounts, because a site that buys through two distributors has an ID from each.
A worked mapping
The unmapped list is top-heavy. Three specialty pharmacy sites hold 3,485 of the 4,420 unmapped units, so mapping those three alone would cut the unmapped share from 6.0% to 1.3%. Physician offices are the most common kind of unmapped ship-to, 19 of the 38, but they are small. Here is the largest unmapped site that arrives under two distributors' IDs:
| One distributor's ship-to | Another distributor's ship-to | Candidate in the account master | |
|---|---|---|---|
| Ship-to ID | PSS115488 | TMB108072 | |
| Name | RED MAPLE DERM ASSOC | RED MAPLE DERMATOLOGY ASSOCIATES | Red Maple Dermatology Associates |
| City and state | South Juliemouth, GA | South Juliemouth, GA | South Juliemouth, GA |
| ZIP | 31873 | 31873 | 31873 |
| Type of site | Physician Office (class of trade) | Physician Office (class of trade) | Group practice (account type) |
| 12-month net units | 53 (on 15 lines) | 12 (on 3 lines) | |
| Territory | None (unmapped) | None (unmapped) | Vista 14 |
Once someone confirms the match, both IDs point to the same account, and those 65 units move from "Unmapped" into Vista 14's numbers.
The two sides name the site differently. One distributor abbreviates the name, the other spells it out, and your CRM has its own capitalization. The distributor's class of trade says Physician Office, while your CRM calls the same site a group practice. Class of trade is a useful check on a match, but it needs a translation between the two vocabularies, not an exact match.
A sensible match order is:
- Exact identifier: DEA number or HIN, when both sides carry it.
- Name plus street address: the most common path for clinics and practices.
- ZIP plus a fuzzy name match: good for producing candidates, but a person should confirm each one.
- Manual review: the leftovers, worked largest first.
The synthetic file is tidier than a real one. Its ship-to records carry the site's name but no street address, and each of the 38 unmapped ship-tos has exactly one account in its ZIP, in the same city, under the same name give or take an abbreviation. Real files carry the street address too, spelled the distributor's way, and one ZIP often holds several candidates. They also bring several ship-to IDs for one hospital (often separate ones for different pharmacies or departments), and new sites every month.
Why 867 maps to HCOs, not HCPs
An 867 line is addressed to a building. A hospital pharmacy, an infusion suite or a group practice receives the product, so the natural match is an HCO, not an HCP (healthcare professional). Prescriber-level views come from other sources, such as specialty pharmacy dispense records or claims data. Matching a ship-to name to doctors also invites false matches: "Smith Dermatology" will look a lot like "Dr. Jane Smith".
Here is where the example's units went, by account type, next to the class of trade the distributors reported. Unmapped volume keeps its own row instead of disappearing:
| Account type | Class of trade on the lines | Ship-to IDs | Net units | Share |
|---|---|---|---|---|
| Specialty pharmacy | Specialty Pharmacy | 31 | 33,595 | 45.3% |
| Group practice | Physician Office | 451 | 21,102 | 28.5% |
| Hospital | Hospital | 123 | 5,948 | 8.0% |
| Clinic | Clinic | 86 | 4,473 | 6.0% |
| Unmapped | Six classes, mostly Specialty Pharmacy | 38 | 4,420 | 6.0% |
| Health system | Hospital Outpatient | 60 | 2,215 | 3.0% |
| Outpatient center | Clinic | 38 | 1,722 | 2.3% |
| Infusion center | Infusion Center | 16 | 647 | 0.9% |
The class of trade travels with every line, mapped or not, so it tells you what kind of site an unmapped ship-to is before anyone matches it: 3,485 of the 4,420 unmapped units went to specialty pharmacies. It is coarser than your account types, though. Here one class, Clinic, covers both clinics and outpatient centers.
Counting the unmapped sites, half the example's units (50.0%) went to specialty pharmacies. They buy the pre-filled syringe and dispense it to patients, so their lines name the pharmacy, not the prescribers behind it. Offices and hospitals buy mostly vials, a few at a time.
Keep "Unmapped" visible
An easy mistake with 867 data is an inner join from sales to accounts. It quietly drops every unmapped line. The national total then looks 6.0% smaller than what the distributors reported, and nobody can see why. Instead, include unmapped units in every total, show them as their own line in every breakdown, and keep a running list of unmapped ship-tos sorted by volume. Mapping the top of that list each month keeps the unmapped share small.
James Waterman builds commercial analytics for small biotech teams. hello@aimlitics.com
Ardlow keeps this crosswalk for you, and keeps sales not yet mapped in every total as their own line. Its open demo runs on the same kind of synthetic data.