The short answer
A machine-readable price file is structured data for software to process. Before using a number, establish its product, pricing unit, payer or program, date, and meaning. A valid-looking amount is not enough to establish what you would pay.
Start with the question the number can answer
“What did a program reimburse?” and “What can I buy this prescription for?” are different questions. Give each imported observation a price category before putting it into a comparison table.
This checklist is RxCompare’s approach to evaluating price data, not a claim about the fields that will appear in a future federal schema. Use the final publisher documentation when it becomes available.
Identify the product before joining records
Match the complete medication description, strength, dosage form, release type, and package. A familiar brand or ingredient name is not a unique package identifier. A different release form can be a different prescription.
Preserve National Drug Codes as text so leading zeros survive. Keep the original identifier alongside any normalized version. If a source supplies equivalent products rather than the package that will be dispensed, do not turn that list into a false exact match.
Attach the unit and the denominator
A value per milliliter, tablet, package, prescription, or 30-day equivalent describes a different denominator. Keep the amount and its unit together in both the database and the visible table.
An illustrative $2 per-unit value does not establish a $2 bottle price. Conversely, a $20 fill total does not establish a unit price unless the exact included quantity is known. Division can be mathematically correct while the comparison is still wrong.
Sources: CMS: Pharmacy pricing and NADAC.
Keep source dates separate from retrieval dates
Record when the publisher says a value applies, when it ends if supplied, and when you downloaded it. A successful download today does not make every amount current today.
Retain corrections as revisions. If two records give conflicting values for the same product and date, expose the ambiguity instead of drawing a smooth trend through it. A gap in a series should stay a gap unless you explicitly label a model.
Ask what is included in the amount
Unknown fields should remain unknown. A blank delivery charge should not become free shipping, and a missing negotiated price should not become zero.
- Is it a pharmacy offer, a negotiated rate, a reimbursement amount, or a historical aggregate?
- Are dispensing charges, delivery, required supplies, and memberships included?
- Does a discount require a particular card or enrollment?
- Does the record identify a location, network, or applicable plan?
- Does the source describe the number as gross, net, average, estimated, or observed?
Use public data without pretending it is personalized
Public price research can be useful without collecting names, insurance numbers, or prescription records. Keep any patient-specific benefit estimate in an appropriately authorized workflow, separate from public reference pages.
When sharing a finding, include the source, file version, relevant date, identifier, and unit. State the comparison you actually made. “These two published unit rates differ” is a narrower claim than “patients will save this amount.”
Common questions
Can I put every price into one cheapest-drug table?
Only comparable offers belong in the same ranking. Benchmarks, different quantities, program eligibility, and insurance rates require separate treatment.
Is missing data a zero price?
No. Missing means unknown or unpublished unless the publisher explicitly says otherwise.
Sources & further reading
- CMS: Health plan price transparency
- CMS: Pharmacy pricing and NADAC
- CMS: Selected drugs and negotiated prices
Source links checked 2026-10-19. Cost information only; this content has not been clinically reviewed.