A four-year-old comes in for her preschool checkup. The pediatrician does the full exam, reviews growth and development, gives the DTaP, IPV, MMR and varicella boosters, runs a developmental screen, and then, because the mother mentions it at the end, looks at a two-day-old ear and diagnoses acute otitis media. Antibiotics are prescribed. The visit took 35 minutes. The claim that goes out has one line on it: 99392.

That practice left somewhere between $150 and $300 on the table for a single visit, depending on the payer, and it does this a dozen times a week. Well-child visit coding is the one area of pediatric billing where the codes themselves are easy but the combinations are not, and the combinations are where the money is. We see the same handful of mistakes in nearly every pediatric and family medicine practice we audit.

This piece lays out how we code the well visit, how vaccines and screenings attach to it, and how we decide when a same-day sick problem earns its own E/M code with modifier 25.

Key takeaways

  • Preventive medicine codes 99381 to 99385 (new patient) and 99391 to 99395 (established patient) are chosen by the patient's age on the date of service, never by time or medical decision making.
  • Vaccine administration is billed separately: 90460 and 90461 when the clinician counsels a patient through age 18, 90471 and 90472 otherwise, plus the product code for each vaccine and diagnosis Z23.
  • Developmental, behavioral and risk screenings (96110, 96127, 96160, 96161) are separately reportable when a standardized instrument is scored and documented.
  • A same-day problem visit gets its own E/M code with modifier 25 only when the problem required work beyond the preventive service and the note shows that work separately.

The preventive medicine codes by age

The preventive medicine services codes describe the periodic comprehensive exam: an age-appropriate history, examination, counseling and anticipatory guidance, and the ordering of screenings and immunizations. A new patient is one who has not received a professional service from the physician, or another physician of the same specialty in the same group, in the past three years.

Patient age on date of serviceNew patientEstablished patient
Under 1 year9938199391
1 through 4 years9938299392
5 through 11 years9938399393
12 through 17 years9938499394
18 through 39 years9938599395

Age is measured on the day of the visit. A child seen the day before her fifth birthday is 99392; the day after, 99393. There is no time component and no documentation level. That is the good news. The bad news is that the code says nothing about anything else you did, so everything else must be on its own line or it will not be paid.

Diagnosis codes: Z00.121, Z00.129 and the newborn codes

The preventive visit is reported with a Z00.1 code. Z00.129 is a routine child health examination without abnormal findings. Z00.121 is the same exam with abnormal findings, and the ICD-10-CM guidelines tell you to add a code for each abnormal finding. Newborns have their own codes: Z00.110 for a health exam under 8 days old and Z00.111 for 8 to 28 days old. From day 29 the child is on Z00.121 or Z00.129 like everyone else.

The choice between Z00.121 and Z00.129 is the one most practices get wrong. Some code Z00.129 on every well visit out of habit, then bill a sick E/M for the otitis media, and the payer sees a well visit with no findings next to a problem visit and denies the problem visit as included. Our rule: if the exam turned up something new or worsening that changed the plan, it is Z00.121 plus the finding; a known, stable condition that was simply listed is Z00.129 with the chronic condition coded after it if the physician addressed it.

Vaccines always get Z23, encounter for immunization, regardless of how many were given. One Z23 covers all of them, pointed from every vaccine and administration line.

Vaccines on the same day: 90460 versus 90471

Every vaccine generates two kinds of lines: the product (for example 90700 for DTaP or 90707 for MMR) and the administration. The administration codes are where pediatric practices lose money, and the two families cannot be mixed for the same vaccine.

90460 and 90461 are for patients through 18 years of age when the physician or qualified health professional counsels the patient or family face to face about each vaccine. 90460 is reported once for the first component of each vaccine and 90461 for each additional component. A component is a disease the vaccine protects against, so DTaP is 90460 plus two units of 90461, MMR the same, and single-component IPV and varicella are 90460 alone. For our four-year-old, that is four units of 90460 and four units of 90461.

90471 and 90472 are for administration without clinician counseling, or for patients over 18. They count vaccines, not components, so the same four boosters would be 90471 and three units of 90472. The counseling codes pay more with most payers, but only if the counseling is documented: "risks and benefits discussed with mother, VIS provided, questions answered" is enough; a checkbox that says "vaccines given" is not.

New this year: CPT 2026, effective January 1, 2026, added 90482, 90483 and 90484 for immunization counseling when no vaccine is given that day. They are time based (3 to 10 minutes, over 10 to 20 minutes, and over 20 minutes) and are meant for the hesitant-parent conversation that ends with "not today." Only one is reported per visit and the time cannot overlap with counseling for a vaccine that was administered. Payer adoption is uneven so far, so check the remittance before you build a workflow around them.

Screenings that are separately reportable

Standardized screening instruments are not part of the preventive code. When staff administer a validated tool and the clinician documents the score and what was done with it, the screening is billed on its own line. The instruments that come up most often in a Bright Futures schedule:

  1. 96110, developmental screening with a standardized instrument (ASQ, PEDS) at the 9, 18 and 30 month visits, and autism screening (M-CHAT) at 18 and 24 months. One unit per instrument.
  2. 96127, brief emotional or behavioral assessment (PHQ-A for adolescent depression from age 12, Vanderbilt for ADHD). One unit per instrument; many payers cap units per day.
  3. 96160, patient-focused health risk assessment, for example a CRAFFT substance use screen in adolescents.
  4. 96161, caregiver-focused health risk assessment for the benefit of the patient: the code for maternal postpartum depression screening (Edinburgh) at the infant's visit, billed under the infant.
  5. 92551 hearing screening and 99173 visual acuity screening at the ages Bright Futures calls for them.
  6. 99188, fluoride varnish application, typically from first tooth eruption through age 5.

Two mistakes recur. First, billing 96110 for the clinician's own developmental surveillance questions without a scored instrument in the chart; that is part of the preventive visit. Second, forgetting that some payers bundle 96127 into the preventive code unless modifier 59 or the payer's preferred modifier is present. If 96127 comes back CO-97 (benefit included in another service), look up that payer's policy before you appeal; it may simply need the modifier.

The modifier 25 decision for a same-day sick visit

CPT allows a problem-oriented E/M service (99212 to 99215) on the same day as a preventive service when the problem is significant enough to require additional work to perform the key components of a problem-oriented visit. Modifier 25, appended to the problem E/M code, tells the payer the two services were significant and separately identifiable. The preventive code is billed without a modifier.

The question we ask is: if the child had come in only for this problem, would it have justified a visit? A new ear infection with an exam, a diagnosis and a prescription: yes. A refill of a stable asthma controller: no, that is part of the preventive visit's review of chronic conditions. Wheezing that leads to a nebulizer treatment, a controller change and a follow-up plan: yes, and likely 99214 on MDM.

The documentation has to show the separate work: a clearly labeled section in the note for the problem, with its own history, exam elements, assessment and plan. The problem E/M level is chosen from the work documented for the problem alone. Since 2021 the office E/M level is set by medical decision making or time, and if you use time, only the time spent on the problem counts.

Here is the full claim for the four-year-old, with fictional allowed amounts to show the arithmetic. The exact dollars depend on the payer; the point is the lines that never made it onto the original claim.

LineCodeUnitsDiagnosis pointerIllustrative allowed
Preventive visit, established, age 1 to 4993921Z00.121$135
Problem visit, acute otitis media99213-251H66.001$90 (many payers reduce)
DTaP, IPV, MMR, varicella products90700, 90713, 90707, 907161 eachZ23varies by product
Administration with counseling, first component904604Z23$25 each
Administration, additional components904614Z23$14 each
Developmental screening (ASQ)961101Z00.121$12

Some commercial payers reduce the problem E/M when it is billed with a same-day preventive visit, and some Medicaid programs do not pay it at all. Those are contract terms, not coding rules. Know your top five payers' positions and write them down for the coder.

The denials each mistake produces

When a well-child claim comes back short, the remark codes usually say which rule was missed. CO-4 (procedure code inconsistent with modifier or missing modifier) on the sick E/M almost always means modifier 25 was left off. CO-97 on vaccine administration usually means a counseling code was billed for a patient over 18, or the payer wants 90471 for a nurse-only visit. CO-11 (diagnosis inconsistent with procedure) on a 96161 line usually means the maternal depression screen was pointed at the mother's diagnosis rather than the infant's Z00 code. An age edit on 99392 means the date of birth on the claim is wrong, which the front desk should verify at check-in.

The habit that fixes most of this is a daily charge reconciliation against the immunization record and the screening log: every vaccine documented in the EHR should have a product line and an administration line on that day's claim, and every scored instrument should have a screening line. Our medical billing team runs this as a daily report for pediatric clients, and it is a standard test in an RCM audit because the gap between vaccines given and vaccines billed is one of the cleanest measures of charge capture a practice has.

Questions we hear

Can we bill 90460 when the nurse gives the vaccines and the physician is not in the room?

Not unless the physician or another qualified health care professional (a nurse practitioner or physician assistant, under CPT's definition) did the counseling face to face that day. Nurse-only counseling does not qualify, so a nurse-only vaccine visit is 90471 and 90472. If the physician counseled during the well visit and the nurse then administered, 90460 and 90461 are appropriate and the physician's note should say what was discussed.

The parent brings a sibling "just for a quick look" during the well visit. How do we bill that?

The sibling is a separate patient with a separate encounter. If the physician examines the sibling and makes a decision, that is a problem visit documented in the sibling's chart and billed under the sibling's insurance.

A payer paid the preventive visit but bundled the modifier 25 sick visit. Is it worth appealing?

Check the payer's policy first. If it allows a separate E/M with modifier 25 and the note shows distinct work, appeal with the note and a short letter quoting the CPT preventive medicine guidelines. If the published policy is that the payer never pays a same-day problem visit with a preventive code, the appeal will lose and the answer is contract renegotiation. Track how often each payer does this in your denial management reporting.

What to do this week

  1. Pull last month's 9938x and 9939x claims and count how many have an administration line for each vaccine in the immunization record. Every gap is unbilled work.
  2. Check the same claims for a scored screening instrument without a 96110, 96127, 96160 or 96161 line.
  3. Write a one-page grid of your top five payers' policies on same-day preventive and problem E/M services.
  4. Add a labeled "Separate problem addressed today" section to the well-visit note template so modifier 25 has something to stand on.
  5. Have the front desk verify the date of birth at every well visit so age edits stop bouncing 9939x claims.