What data does a commercial team need, and who sends each piece?
A commercial team draws on up to ten kinds of data: the CRM, territory alignment and the roster, HCP and HCO reference data, distributor sales, shipments out of your warehouse, distributor inventory, specialty pharmacy dispense, hub status, licensed prescriber or claims data, and the goals you set yourselves. Most arrive from vendors on their own schedules, so the real work is joining them on four keys: the CRM account ID, the NPI, a mapping from each distributor ship-to to an account, and the patient ID the hub and pharmacy share.
| Data | Who usually sends it | How often | What it answers | What it can't tell you |
|---|---|---|---|---|
| CRM: calls, accounts and the HCP-to-HCO hierarchy | Your CRM, by export or API | Daily | Who the field reached, how often and through which channel, and which HCPs work at which HCOs | Whether a call changed what anyone prescribed |
| Territory alignment and rep roster | Commercial operations, often with an alignment vendor. The roster comes from HR | At each realignment, hire and departure | Which territory and rep own each account, and who reports to whom | Past alignments, unless you keep dated history |
| HCP and HCO reference data | A reference data vendor, often through the CRM. NPIs come from the public NPI registry | Weekly or monthly | Who each prescriber and site is: NPI, specialty, address, affiliations | What anyone prescribes or buys |
| Distributor sales | Your distributors, usually through a data aggregator | Daily or weekly | Units shipped to each site, net of returns | Who prescribed it, or which patient received it |
| Ex-factory shipments | Your 3PL or ERP | Daily | What left your warehouse for each distributor, the basis for booked revenue | What reached sites or patients |
| Distributor inventory | Distributors, usually through the same aggregator | Daily or weekly | Stock on hand at each distributor | Where that stock goes next |
| Specialty pharmacy dispense | Each specialty pharmacy, directly or through an aggregator | Daily or weekly | Fills shipped to each patient, and whether refills come on time | Fills outside your pharmacy network |
| Hub status | Your hub vendor, which runs the patient support program | Daily | Where each patient stands between referral and therapy, and why cases close | Patients who never enroll with the hub |
| Licensed prescriber or claims data | A data vendor, under license | Weekly or monthly, with a lag | Prescribing across the market: which HCPs treat the condition, who is new to your brand | This week's activity, or every patient: no source sees every claim |
| Goals | You: commercial operations, with sales leadership and finance | Each quarter or year | Whether each territory and rep is on pace | Whether the goal was fair |
Whether you are setting up reporting before a first launch or rebuilding it, no source answers much alone. A call means more next to the account's sales, and a referral means more when you know which rep covers the prescriber. Four keys do most of the joining:
- The CRM account ID ties calls, alignment and goals to the same HCPs and HCOs.
- The NPI ties prescribers in hub, pharmacy and licensed data to HCPs in the CRM.
- A ship-to mapping ties each distributor's own customer number to a CRM account, so the site's sales count toward a territory. Distributors don't carry your CRM IDs, so someone has to build and maintain it. See the guide to the distributor sales file and which territory gets the sales credit.
- The patient ID ties the hub's record of a patient to the pharmacy's, with the patient's identity replaced by an ID. See how long it takes a patient to start therapy.
Licensed data: the contract decides what you can do with it
Prescriber and claims data, and often reference data, come under license. Before a licensed file goes into any analytics tool, yours or a vendor's, check that the contract allows use in third-party software, for the purposes and the people you have in mind. Many data vendors ask for a separate agreement, often called a third-party access agreement, before another company's software can process their data. Holding the file isn't permission to use it.
What to set up first
Teams usually set these up in roughly this order, each step leaning on the one before. That is common practice, not a rule: timelines, contracts and distribution models change it.
- The CRM, alignment, roster and reference data. Every other source joins to these, so have them in place before reps log their first calls.
- Distributor sales, before product first ships. The aggregator contract, the distributor data agreements and the ship-to mapping all take time, and a site's sales can't count toward a territory until it is mapped.
- Hub and specialty pharmacy data, written into those contracts before they're signed: the fields, the cadence, the status codes and the patient ID. Data terms are easier to agree before a contract is signed than after.
- Ex-factory shipments and distributor inventory. Finance usually has the 3PL or ERP data from the first shipment. Set it next to distributor sales to see stock building up in the channel, and add inventory to see where it sits.
- Goals, before the period they cover starts: from a forecast at first, and from sales history once there is some. See how to set sales goals by territory and call goals by rep.
- Licensed prescriber or claims data, when you need the market beyond your own customers, and once the contract allows the use you plan.
Every number from here on comes from a synthetic dataset, read on Monday, October 12, 2026. It models a small biotech with one injectable brand and about three years of history. There are no real patients, prescribers or accounts in it.
The CRM side holds 5,000 HCPs, each linked to a parent HCO, and 800 HCOs, aligned to 60 territories with a rep in each. The roster has 70 people: 60 reps, 8 regional managers and 2 national directors. Goals for October to December are a unit goal for each of the 55 sales territories (the other 5 are medical territories) and a call goal for each of the 60 reps. Four feeds arrive on top: calls, sales, hub and pharmacy status, and specialty pharmacy dispense.
On October 12 the demo had no ex-factory shipments, distributor inventory, or licensed prescriber or claims data, so this example can't show what those answer. (The demo has since added ex-factory and inventory feeds and a weekly treatment alert file, after this guide's numbers were taken.) It also takes a shortcut: it is rebuilt every morning with rows through that same day, where a real feed checked on a Monday morning would run through Sunday at best. Its sales data is closer to life: five distributors send a daily file and one sends a weekly file, Saturday to Friday, landing on Monday.
Step 1: what each feed answered on October 12
| Feed | Rows, last 90 days | Delivers | Data through | One question it answered that day |
|---|---|---|---|---|
| CRM calls | 10,743 | Daily | Oct 12 | Which of the rep's accounts, called in the last year, have gone 60 days or more without one? 46, none of them Tier 1 |
| Sales | 4,017 | Daily from five distributors, weekly from one | Oct 9 (five distributors through Oct 12; the weekly file through Oct 9) | Which of the rep's accounts bought less in the last 13 weeks than in the 13 before? 6, the two biggest each from 16 units to 1 |
| Hub and pharmacy status | 1,184 | Daily | Oct 12 | Which open cases are waiting longer than usual? 2 of 31, the longest 49 days waiting on prior authorization, where 27 is usual |
| Specialty pharmacy dispense | 4,519 | Daily | Oct 12 | Which patients are late for a refill? 63 of the 1,486 on therapy, each more than 7 days past the expected date |
The sales rows came from six distributors and 696 ship-to sites, the fills from four specialty pharmacies, and the status rows from the hub (489) and the pharmacies (695), covering 298 patients. Every feed had rows on all 64 weekdays, except status changes on Labor Day, and fewer on weekends: calls on all 26 weekend days, a handful each, sales on 19, fills on 12 and status changes on 10. Each feed is dated by the last day it is complete through, and a feed that bundles several senders needs a date for each: on October 12 the weekly distributor's newest row was October 9, so the sales data was complete only through October 9. See is my data fresh for how to tell when one stops.
Goals answered a fifth question: is the rep on pace? Sales read through Friday, October 9, because the weekly distributor's next file hadn't landed and the demo waits for it. By then the rep's territory had 36 credited units against a quarterly goal of 250, which is 136% of the goal prorated to that date by weekdays (7 of the quarter's 66). Calls are their own feed and paced to their own date, October 12 (8 weekdays in): the rep had logged 32 against a goal of 269, 98% of pace.
Step 2: how the feeds join
| Link | Key | Joins | Share |
|---|---|---|---|
| Calls to HCPs, their HCOs and territories | CRM account ID | 10,608 of 10,608 calls | 100% |
| Sales to accounts | Ship-to mapped to a CRM account | 16,999 of 18,068 net units | 94.1% |
| Mapped sales to one territory | Alignment | 16,999 of 16,999 net units | 100% |
| Hub prescribers to HCPs | NPI | 127 of 143 prescribers | 88.8% |
| Hub and pharmacy records for one patient | The hub's ID on the pharmacy's rows | 182 of 298 patients | 61.1% |
| Pharmacy fills to HCPs | Prescriber NPI | 3,824 of 4,519 fills | 84.6% |
Here calls join completely, because calls and accounts come from the same CRM. Data from other senders joins less cleanly, and each gap means something different:
- 1,069 net units (5.9%) went to ship-tos not yet mapped to an account. They stay in the total, shown as unmapped, and no territory gets credit for them until someone maps them.
- 16 of the 143 prescribers (11.2%) in the hub data match no HCP in the CRM. They are referring patients for your drug, and the field's account list doesn't include them, so they are worth a look before the next targeting update.
- 116 of the 298 patients (39%) carry only one of the two IDs, and neither group is a failed join. 57 were referred straight to a pharmacy, so the hub never had them. 59 have only the hub's ID: no pharmacy has taken them yet, or their case closed before one did. Count patients across both feeds, or each feed alone undercounts.
One item on the rep's Today that morning needed four sources. The hub's status rows showed a new referral on Friday, October 9. Its prescriber's NPI matched an HCP in the CRM, a Tier 2 dermatologist aligned to the rep's territory, and the call data showed a call on them that same day. The rep saw the prescriber's name, with the patient's details hidden.
James Waterman builds commercial analytics for small biotech teams. hello@aimlitics.com
Ardlow works next to your CRM, joins these feeds on the same keys and keeps unmapped sales in view. Its open demo runs on the same kind of synthetic data.