Sign in

Blog · Coverage and territory · Pharma

Reach and frequency for pharma sales teams, without the Friday spreadsheet

How a pharmaceutical field force computes reach and frequency per rep, territory and prescriber tier from the CRM call export and the call plan: the definitions, the roll-up that reconciles to the plan, a worked cycle, and the four ways the number is usually wrong.

The short answerReach is the share of targets on the call plan that were called at least once in the cycle; frequency is calls per target against the planned number. Compute both from the CRM call export joined to the call plan, per rep and per tier, roll them up by summing targets and calls rather than averaging percentages, and assert that the plan's target list and the call data agree before the cycle review.

Every pharmaceutical field force measures reach and frequency, and in most of them a sales operations analyst rebuilds the numbers in a spreadsheet on the last Friday of the cycle. The data is the same each time and the arithmetic is the same each time. This guide sets out the method so it can run on every export, and the checks that catch the four usual errors before the cycle review.

The two measures

For a rep and a tier in a cycle:

Reach = targets with at least one call ÷ targets on the plan Frequency attainment = calls made on targets ÷ calls planned on targets

Reach says whether the rep got to the prescriber at all. Frequency says whether they got there as often as the plan required. A tier-one prescriber called once against a plan of six is reached and badly under frequency; both numbers are needed.

The rows you need

  • Call export: one row per call with prescriber identifier, rep, territory, date and call type. From Veeva, Salesforce or whichever CRM the team runs.
  • Call plan: one row per prescriber on the plan with tier, territory, rep and planned calls for the cycle.
  • Cycle dates: start and end.

Prescriber identifiers only. The measure never needs a name.

The roll-up

  1. Prescriber: calls in the cycle, planned calls, reached flag.
  2. Rep by tier: targets, targets reached, calls made, calls planned. Reach and frequency attainment.
  3. Rep: the same summed across tiers. Sum targets and calls; do not average the tier percentages.
  4. District, region, national: sum again at each level.

The assertion that makes the review short:

targets on the plan (national) = Σ regions = Σ districts = Σ reps

and

calls in the export that match a plan target = calls counted in the roll-up

The second one counts the calls that did not match any target on the plan, which are either off-plan calls, which is a coaching conversation, or calls logged against a wrong identifier, which is a data conversation. Either way they are shown, not lost.

A worked cycle

One rep, one territory, three tiers, cycle of ten weeks.

Tier Targets Planned per target Calls planned Targets reached Calls made Reach Frequency
1 12 6 72 11 61 92% 85%
2 30 3 90 24 68 80% 76%
3 45 1 45 29 31 64% 69%
All 87 207 64 160 74% 77%

The list for the rep opens with the one tier-one target not reached, then the six tier-two targets not reached, ranked by potential. The district manager's view compares the rep's 85 percent tier-one frequency with the district's median. Off-plan calls, 14 in this cycle, appear as their own line.

Where it goes wrong

Targets that moved. A prescriber who changed practice mid-cycle stays on one rep's plan and appears in another rep's calls. The plan-to-call match fails for that identifier, and the report shows it as an off-plan call for one rep and a miss for the other. The fix is a dated plan change, not a manual adjustment on Friday.

Identifiers that do not join. Calls logged against a practice or an account rather than the prescriber never match the plan. The report counts them; the CRM needs the prescriber identifier on every call.

Plan changed without history. When the plan is revised mid-cycle, the old plan disappears and the first half of the cycle is measured against targets that were not on it. Keep plan versions with dates and measure each call against the plan in force on that date.

Call types counted inconsistently. A sample drop counted as a call by one district and not another makes district comparisons meaningless. Fix the list of call types that count and apply it everywhere.

The Friday that stops happening

Mapped once, the same two exports produce the same roll-up on any day of the cycle, not only the last one. Reps see their own gaps by tier as the cycle runs; district managers see attainment by rep with the trend. The off-plan and unmatched calls are on the report rather than in a reconciliation. Covirage builds this from the exports as they are, with prescriber identifiers only, and runs inside the company's tenant on an enterprise deployment. The pharma page describes the setup.

Questions people ask

What reach and frequency should a pharma team aim for?

The plan sets it: a tier-one prescriber might be planned for six calls a cycle and a tier-three for one. Reach against plan should be close to full for tier one; frequency attainment of eighty to ninety percent is common. The comparison that matters is rep against rep on the same tiers, and cycle against cycle.

Does this need Veeva, or a specific CRM?

It needs a call export with the prescriber identifier, the rep, the date and the call type, and the call plan with targets, tiers and planned frequency. Veeva and Salesforce both export exactly that. The file is the integration.

How are prescriber identities protected?

The measure uses prescriber identifiers only. Names never leave the CRM. On an enterprise deployment the whole roll-up runs inside the company's own tenant.