Vaccine administration billing: CPT 90460, 90461, and 90471-90474.
Vaccine administration is the code family that diverges hardest from every other specialty's billing logic, because the counting unit is the antigen component, not the injection, and the wrong pairing between counseling status and code family silently undercounts revenue rather than triggering a denial. This guide covers the full 90460/90461 versus 90471-90474 selection logic with worked combination-vaccine examples, VFC versus private-stock billing mechanics, nirsevimab/RSV coding, the new 2026 counseling-only codes, and the diagnosis pairing that governs all of it.
Key takeaways
- 90460/90461 are billed per antigen component, not per injection. A hexavalent combination vaccine is 90460 plus five units of 90461, not one unit of 90460 for the single shot given.
- Counseling status, not age alone, decides the code family. No documented face-to-face counseling means 90471-90474 applies even to a 4-year-old, and a fully counseled adolescent still qualifies for 90460/90461 up through age 18.
- Nirsevimab's administration-code direction is the reverse of the standard pattern: 96380 means counseling was furnished, 96381 means it wasn't — opposite of how 90460 versus 90471 works, and a frequent source of coder confusion.
- VFC stock changes what belongs on the claim, not the administration code. No product charge goes out for a VFC dose under any circumstance — only the capped administration fee.
Selecting the code family: counseling status decides it, not age alone
The threshold question on every vaccine administration claim is whether face-to-face counseling about the vaccine was furnished by the physician or another qualified health professional and documented in the note — not simply whether the patient is a child. Age caps the counseling codes at 18 and under, but counseling status is the actual gate.
| Code | When to use it | Unit basis |
|---|---|---|
90460 | First or only component of a vaccine, with documented face-to-face physician/QHP counseling, patient age 18 or younger | Per encounter, first component |
90461 | Add-on: each additional component of the same vaccine, same visit, same counseling requirement | One unit per additional component — not one unit per shot |
90471 | First injectable vaccine administered, no counseling furnished or patient over 18 | Per encounter, first injection |
90472 | Add-on: each additional injectable vaccine, same visit | One unit per additional injection |
90473 | First oral or intranasal vaccine administered, no counseling furnished or patient over 18 | Per encounter, first oral/intranasal dose |
90474 | Add-on: each additional oral or intranasal vaccine, same visit | One unit per additional oral/intranasal dose |
The two families don't mix within the same "first" position on one date of service — a claim reports one first-administration code per counseling status and route, then stacks the applicable add-on for everything after it. A common real-world scenario shows how this plays out: an 8-year-old gets a counseled DTaP-IPV booster and an uncounseled flu shot at the same visit because the flu vaccine discussion happened by phone the week before and wasn't repeated face-to-face that day. The claim reports 90460 plus 90461 units for the DTaP-IPV components (counseled), and 90471 for the flu shot (uncounseled) — two separate first-administration lines on one claim, because they fall under different counseling status, not a coding error.
Component counting: the part every practice undercounts
A combination vaccine's component count follows standard billing-industry convention: DTaP counts as three components (diphtheria, tetanus, acellular pertussis), and every other antigen in the product — polio, Hib, hepatitis B, MMR, varicella — counts as one component each. The injection is one shot; the components inside it are what 90461 counts.
| Combination product type | Components | Billing |
|---|---|---|
| Hexavalent DTaP-IPV-Hib-HepB | Diphtheria, tetanus, pertussis (3, as DTaP) + IPV + Hib + HepB = 6 | 90460 + 5 units 90461 |
| Pentavalent DTaP-IPV-Hib | DTaP (3) + IPV + Hib = 5 | 90460 + 4 units 90461 |
| DTaP-HepB-IPV | DTaP (3) + HepB + IPV = 5 | 90460 + 4 units 90461 |
| DTaP-IPV (no Hib/HepB) | DTaP (3) + IPV = 4 | 90460 + 3 units 90461 |
| MMRV (measles-mumps-rubella-varicella) | Measles + mumps + rubella + varicella = 4 | 90460 + 3 units 90461 |
| MMR (measles-mumps-rubella) | 3 components | 90460 + 2 units 90461 |
| Single-antigen product (e.g., HepB alone) | 1 component | 90460 only, no 90461 units |
Undercounting is a silent revenue loss, not a denial. A claim billed at 90460 with two units of 90461 for a hexavalent product that should carry five units doesn't reject — it just pays for three fewer components than were actually administered, and nothing in the remittance flags the shortfall. Run a periodic audit that cross-references the specific NDC or product administered against the expected component count, rather than relying on coders to recount antigens from memory on every combination product in the fridge.
VFC versus private stock: what changes on the claim
Vaccines for Children (VFC) eligibility changes what belongs on the claim, not which administration code applies. When the dose came from VFC inventory, federal law prohibits billing for the vaccine product itself — the claim carries an administration-fee-only line, and that fee is capped at whatever rate the state sets in its VFC provider agreement, which varies by state and is published in each state's own agreement documentation. Privately purchased stock bills both the product code and the administration code normally, at the practice's contracted rate.
The operational risk is a practice that stocks both VFC and privately purchased doses of the same product side by side. Without a system that flags which specific dose — by lot number, not just by product — came from which source, a coder has no way to know whether a product charge belongs on the claim at all. Billing a product charge against a VFC-sourced dose isn't a documentation nuance; it's a compliance finding that surfaces in a VFC program audit, separate from and in addition to any payer-side billing review.
Nirsevimab and RSV administration coding
Nirsevimab (RSV monoclonal antibody) coding runs on dose, not component count, and its administration-code pairing runs backward from the 90460/90471 pattern — a distinction worth flagging specifically because coders trained on the standard vaccine logic tend to apply it here by habit and get it wrong.
| Code | Use |
|---|---|
90380 | Nirsevimab, 50 mg/0.5 mL dose — infants under 5 kg |
90381 | Nirsevimab, 100 mg/1 mL dose — infants at or above 5 kg; the 200 mg high-risk second-season dose is billed as 2 units of 90381, not a separate code |
96380 | Administration, with counseling furnished at the visit |
96381 | Administration, without counseling furnished |
Compare the direction to the standard family: for 90460 versus 90471, counseling is what unlocks the higher-documentation code (90460). For nirsevimab's administration codes, counseling is what selects 96380 over 96381 — conceptually the same logic (counseling status decides the code) but coders who mentally map "counseling = the lower number" from the 90460/90471 pattern will pick wrong here, since 96380 (counseling) is the lower-numbered code and 96381 (no counseling) is higher, the opposite ordering from what they're used to scanning for. Use Z23 as the diagnosis, exactly as with any other immunization encounter, and confirm VFC-versus-private-stock status before deciding whether a product charge belongs on the claim at all, same as any other vaccine.
2026: stand-alone counseling codes 90482/90483
Effective January 1, 2026, CPT added two time-based codes for immunization counseling furnished on a day no vaccine is actually administered — a caregiver who wants to discuss the schedule before deciding, or a visit where counseling happens but the vaccine is declined or deferred that day.
- 190482 — 3 to 10 minutes of documented immunization counseling, no product given.
- 290483 — more than 10 up to 20 minutes of documented immunization counseling, no product given.
Both are time-based and require the counseling duration to be documented in the note, the same discipline any other time-based code demands. CMS assigned both a status indicator of "I" — not valid for Medicare payment — so their revenue depends entirely on which commercial payers and Medicaid MCOs choose to recognize them; check payer policy before building either into a fee schedule, since a practice that routes these to Medicare will see every claim denied on the status indicator rather than a documentation issue. When a separately identifiable E/M is billed alongside 90482/90483 the same day, modifier 25 goes on the E/M code.
Diagnosis coding matters here specifically because no immunization was actually performed. Z23 (encounter for immunization) is the wrong primary code on a counseling-only visit where the vaccine wasn't given — use the appropriate code from the Z28 family instead: Z28.82 when a caregiver declines after counseling, Z28.83 when the product simply wasn't available that day, or the relevant contraindication or patient-decision code from the same family. Billing 90482/90483 with a Z23 primary diagnosis on a visit where nothing was administered is a documentation mismatch a payer's own edit logic can catch on its face, since the diagnosis says "immunization" happened and the procedure code says it didn't.
- Count antigen components against the specific product's NDC, not from memory, before finalizing 90461 units.
- Track VFC-versus-private-stock status per dose, by lot number, not just by product.
- Route 90482/90483 only to payers confirmed to recognize them — never to Medicare.
- Use a Z28.x code, not Z23, on a counseling-only visit where no vaccine was given.
- Don't bill one unit of 90460 per injection instead of one unit per antigen component.
- Don't assume nirsevimab's 96380/96381 follows the same counseling-to-number-order as 90460/90471 — it's reversed.
- Don't put a product charge on a claim for a VFC-sourced dose under any circumstance.
- Don't bill 90471 for a vaccine that was actually counseled and documented as such — it understates the claim.
Top denial and underpayment patterns
| Pattern | Why it happens | Fix |
|---|---|---|
| Component undercounting | 90461 billed at one unit per shot instead of one unit per additional antigen in a combination product | Audit combination-product claims against the NDC's known component count on a recurring schedule, not just at initial coder training |
| Wrong code family for counseling status | 90471 billed when face-to-face counseling was actually furnished and documented, or 90460 billed with no counseling note to support it | Require an explicit counseling-documented checkbox or note field the coder checks before selecting the code family |
| Product charge on a VFC dose | VFC and privately purchased stock of the same product aren't tracked separately by lot, so the coder can't tell which source a given dose came from | Flag VFC status per lot at the point of administration, not retroactively at coding |
| 90482/90483 routed to Medicare | Counseling-only claim submitted to Medicare, which carries a status indicator of "I" for both codes | Build a payer-eligibility rule into the scrubber that blocks 90482/90483 from ever reaching a Medicare claim |
| Z23 on a counseling-only, no-vaccine-given visit | Default diagnosis habit carries Z23 over from routine immunization visits onto a visit where nothing was actually administered | Use the appropriate Z28.x code (refusal, unavailability, contraindication) as primary when 90482/90483 is billed instead of an administration code |
Build a standing reference table in your EHR or practice management system mapping every stocked vaccine NDC to its exact component count, refreshed whenever formulary or manufacturer changes occur. Component undercounting is invisible in a remittance advice — it just pays less — so the only reliable catch is a periodic audit against a source-of-truth table, not a denial work queue that will never flag it.
Not sure your vaccine administration billing is capturing full revenue?
We'll audit a sample of your recent combination-vaccine claims for component undercounting, VFC/private-stock mixing, and counseling-code selection, and show what's recoverable.
Frequently asked questions
What's the difference between 90460 and 90471?
90460 requires face-to-face counseling about the vaccine by the physician or another qualified health professional, applies only through age 18, and is billed per component of the vaccine with add-on 90461 for each additional component in a combination product. 90471-90474 are used when no counseling is furnished or the patient is over 18, and they're billed per vaccine administered, not per component - 90471/90472 for injectable routes, 90473/90474 for oral or intranasal routes. The two families are not mixed for the same product on the same date: pick counseling status first, then the right code set follows.
How many units of 90461 do we bill for a combination vaccine?
One unit of 90461 for every component beyond the first, using the standard billing-industry convention that a DTaP antigen counts as three components (diphtheria, tetanus, pertussis). A hexavalent DTaP-IPV-Hib-HepB product carries six components, so it's billed as 90460 plus five units of 90461. A pentavalent DTaP-IPV-Hib product carries five components, billed as 90460 plus four units of 90461. Billing one unit of 90460 per injection instead of counting antigens is the most common way practices undercount, and undercounted claims pay less without generating a denial that would otherwise flag the error.
Do we bill a product code for a vaccine that came from VFC stock?
No. Federal law prohibits billing for the vaccine product itself when the dose came from Vaccines for Children inventory, so the claim carries an administration-fee-only line, capped at whatever rate the state sets in its VFC provider agreement. Privately purchased stock bills both the product code and the administration code normally. When a practice carries both VFC and privately purchased stock of the same product, the source has to be tracked per dose and flagged on the claim - mixing the two without that distinction is a recurring audit finding, not just a missed-revenue issue.
Verify before billing. CPT is a registered trademark of the American Medical Association; codes here are paraphrased, not reproduced from the CPT Professional edition. CPT, HCPCS and ICD-10 codes, coverage policy, and bundling edits change, including annual code-set updates. This page reflects standard industry practice and is provided for general education — it is not a substitute for your own compliance review, your current payer contracts, or the current-year code sets. Confirm requirements against your specific payer mix before submitting claims.