Analytics

Specialty Pharmacy Status Codes: How to Map SP and Hub Statuses Into One Patient Status Model

Every specialty pharmacy and hub sends its own status codes. How to map them into one patient status model leadership can read and act on.

Oct 20265 min readAnalytics

Why the same patient has four different statuses

A specialty brand with a hub and a limited network of specialty pharmacies receives patient status from every one of them. Each partner sends its own codes, at its own level of detail, on its own schedule. One pharmacy reports a case as pending, another as on hold with a reason code, a third sends a numeric status that only makes sense next to its data dictionary. The hub has its own case statuses on top.

Somebody has to turn all of that into one picture of where patients stand. In many teams that happens in a spreadsheet lookup maintained by one analyst, updated when a partner changes a code and somebody notices. The result is a patient status report where the categories drift quarter to quarter, the pending bar keeps growing, and two dashboards built on the same feeds disagree.

The fix is not a better report. It is a patient status model: one agreed set of stages and reasons that every source status maps into, owned and versioned like any other piece of master data. This article sets out what that model looks like and how to build it. It builds on our guides to specialty pharmacy data and a unified patient view across SP, hub and claims.

What a patient status model contains

  • Stages

    A short, ordered list of where a patient can be: referral received, benefits verification, prior authorisation, financial assistance, ready to fill, on therapy, discontinued, cancelled. Every source status lands in exactly one stage.

    • Six to ten stages is usually enough
    • Ordered, so progress can be measured
    • The same list for hub and every SP
  • Reasons

    Why a patient is sitting in a stage: waiting on payer, waiting on prescriber, waiting on patient, waiting on pharmacy. Reasons are what turn a pending bucket into a list of owners.

    • Kept separate from the stage
    • Each reason has a named owner
    • Unknown is allowed, but reported
  • Dates

    The date a patient entered each stage, taken from the source event rather than the file date. Without stage entry dates there is no time to therapy by stage and no way to see where patients stall.

    • Event date, not load date
    • Kept for every stage, not only the latest
    • Needed for cohort reporting
  • The mapping table

    Every source, every source code, the stage and reason it maps to, and the date the mapping took effect. This is the asset that makes the reports agree, so it is owned, reviewed and versioned.

    • One row per source code
    • Effective dated when a partner changes codes
    • Unmapped codes raise an alert

Where status mapping usually goes wrong

Stage and reason in one field. When a source status like on hold, PA submitted is mapped into a single label, the report can show either the stage or the reason, never both. Keep them as two fields from the start.

Silent new codes. Specialty pharmacies add or change status codes as their own systems change. If the mapping simply drops unknown codes, patients disappear from the report. If it parks them in other, the pending bar grows and nobody knows why. An unmapped code should stop the line and alert an owner.

Latest status only. Many feeds are loaded as a current snapshot. That answers where patients are today, but not how long they waited at each step. Keeping the history of status changes is what makes time to therapy by stage possible.

Statuses counted before patients are linked. A patient transferred from one pharmacy to another shows as cancelled at the first and new at the second. Link the patient across sources first, then apply the model, as covered in our article on abandonment versus reversal.

How to build the model

Agree the stages and reasons

Bring patient services, trade, market access and analytics together once. Write the stages, the reasons and a one line definition of each.

Collect every source dictionary

Request the current status and reason code list from the hub and each specialty pharmacy, including codes that are rarely used.

Map every code, with an owner

Map each source code to one stage and one reason. Record who approved the mapping and when it took effect.

Automate the checks

Every load checks for unmapped codes, impossible moves between stages and late files, and alerts the owner before the report goes out.

Report on the model, not the feeds

Dashboards read stages, reasons and stage dates from the model. When a partner changes a code, only the mapping table changes.

Questions leaders ask about patient status data

Why do specialty pharmacies use different status codes?
Each specialty pharmacy runs its own dispensing and case management systems, with status codes designed for its own operations. Data agreements usually define what must be sent, but the codes themselves often differ by partner. Mapping them into one model is the manufacturer's job.
How many stages should a patient status model have?
Enough to show where patients wait and who owns the next step, and few enough that leadership can read the report in a minute. Six to ten stages, with a separate reason field, works for most specialty brands.
Who should own the status mapping table?
Usually a named person in patient services operations or commercial data, with analytics maintaining it technically. What matters is that changes are approved, dated and visible, the same way a product or territory hierarchy is managed.
What happens when a specialty pharmacy changes its codes?
With an effective dated mapping table, the new codes are added with a start date and the old ones kept for history. The automated check flags any code it has not seen before, so the change is caught on the first load rather than at the next QBR.
Do we need a new platform to do this?
Rarely. The model is a small set of reference tables and checks that sit in the data warehouse already receiving the feeds. The work is mostly agreement and ownership, followed by automation of the mapping and the alerts.

Compare your status mapping with ours

Send us the status categories on your current patient status report and the sources that feed it. We will show where codes are likely being lost or parked, and what a single model would look like. More on our work at specialty pharma analytics and automation.

Contact us

Part of our Pharma Commercial and Patient Analytics hub. Start with our specialty pharmacy analytics.

Talk to us

Is this a problem you are living with?

If any of the above sounds like your week, tell us which part. We will come back with what it would take to fix it.

  • A reply from a consultant, not a sales sequence
  • Usually within one working day
  • No obligation, and nothing to sit through

We reply from [email protected], usually within one working day. We do not add you to a mailing list.