Ardlow

What is 867 data? The distributor sales file, explained

Your data sourcesBy James WatermanAs of Oct 12, 2026Updated Oct 25, 20267 min read
Short answer

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.

FieldWhat it meansExample (synthetic)
Transaction dateDate the distributor shipped or invoiced2026-07-29
Transaction typeSale, return, or transfer between distributor locationsSale
DistributorWho shipped the productA specialty distributor
Ship-to IDThe distributor's own customer number for the receiving siteWHD109344
Ship-to nameThe site's name, spelled the distributor's wayCANYON VIEW DERM GROUP
Ship-to locationWhere it went. Real files also carry the street address and often a DEA number or HINLake Jessicaville, GA 30557
Class of tradeThe distributor's label for the type of sitePhysician Office
Product (NDC)National Drug Code, the package-level product ID100 mg single-use vial
UnitsPackages shipped2
Extended dollarsUnits times WAC (wholesale acquisition cost, the list price before discounts and rebates)$3,590 (2 × $1,795)
Invoice numberThe distributor's invoice referenceINV2607290033
AccountYour CRM record for this site, usually an HCO (healthcare organization)Canyon View Dermatology Group, a group practice
TerritoryThe territory credited with the account's sales, from your alignmentSummit 18
One 867 line, field by field. The last two rows are not in the file; you add them by mapping.Synthetic example

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.
Worked example (synthetic data)No real patients, prescribers or accounts · 12 months to Sep 30, 2026

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 typeLinesUnits
Sales15,58674,952
Returns663-830
Net16,24974,122
Lines and units by transaction type, with returns made negative.Synthetic · as of Oct 12, 2026

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 statusShip-to IDsShare of IDsNet unitsShare of units
Mapped to an HCO80595.5%69,70294.0%
Unmapped384.5%4,4206.0%
Total843100%74,122100%
Net units by mapping status, after returns.Synthetic · as of Oct 12, 2026

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-toAnother distributor's ship-toCandidate in the account master
Ship-to IDPSS115488TMB108072
NameRED MAPLE DERM ASSOCRED MAPLE DERMATOLOGY ASSOCIATESRed Maple Dermatology Associates
City and stateSouth Juliemouth, GASouth Juliemouth, GASouth Juliemouth, GA
ZIP318733187331873
Type of sitePhysician Office (class of trade)Physician Office (class of trade)Group practice (account type)
12-month net units53 (on 15 lines)12 (on 3 lines)
TerritoryNone (unmapped)None (unmapped)Vista 14
One practice under two distributors' ship-to IDs, and its one candidate in the account master.Synthetic · as of Oct 12, 2026

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:

  1. Exact identifier: DEA number or HIN, when both sides carry it.
  2. Name plus street address: the most common path for clinics and practices.
  3. ZIP plus a fuzzy name match: good for producing candidates, but a person should confirm each one.
  4. 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 typeClass of trade on the linesShip-to IDsNet unitsShare
Specialty pharmacySpecialty Pharmacy3133,59545.3%
Group practicePhysician Office45121,10228.5%
HospitalHospital1235,9488.0%
ClinicClinic864,4736.0%
UnmappedSix classes, mostly Specialty Pharmacy384,4206.0%
Health systemHospital Outpatient602,2153.0%
Outpatient centerClinic381,7222.3%
Infusion centerInfusion Center166470.9%
Net units by account type and class of trade, with Unmapped kept as its own row.Synthetic · as of Oct 12, 2026

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.