Key takeaways
HCPCS code J0970 covered an injection of estradiol valerate up to 40 mg, and CMS deleted it effective January 1, 2011.
J1380 is the active replacement code, billed as one unit for every 10 mg of estradiol valerate administered.
Medicare’s medically unlikely edit caps J1380 at 3 units, or 30 mg, per date of service.
A 40 mg dose cannot simply be billed as 4 units, so plan the dose or expect to appeal.
Submitting J0970 today triggers an automatic rejection from Medicare, Medicaid, and most commercial payers.
HCPCS code J0970 was the J-code for an injection of estradiol valerate, up to 40 mg. CMS deleted it effective January 1, 2011, so no payer accepts it today. Estradiol valerate injections are now reported with J1380, in units of 10 mg.
One rule decides whether those claims pay. Medicare’s medically unlikely edit limits J1380 to 3 units per date of service, which is 30 mg. The 40 mg dose that J0970 once covered in a single unit has no clean path through that limit.
This reference covers what J0970 described, when it was deleted, the active crosswalk codes, and the unit math that keeps a claim payable. It also lists the ICD-10 codes payers expect alongside the drug.
HCPCS code J0970: Code description and details
HCPCS code J0970 is a deleted Healthcare Common Procedure Coding System (HCPCS) Level II J-code. J-codes report drugs and biologics given in a clinical setting, billed separately from the clinician’s professional service. When J0970 was active, it reported one injection of estradiol valerate at a dose of up to 40 mg.
HCPCS Level II runs wider than drugs alone. H-codes such as H0034 report behavioral health services, and G-codes such as G0293 cover services CMS defines outside the CPT set.
The table below captures the full code details as they stood when the code was active.
Practices billing hormone therapy should check their fee schedules against HRT clinic software that tracks code status changes. One manual audit a year is not enough.
Is J0970 still active? Code status and history
J0970 is deleted and cannot be used for billing. Any claim that reports it as a drug code will be rejected by Medicare, Medicaid, and most private payers. CMS maintains the HCPCS Level II set and publishes quarterly updates that add, revise, and delete codes.
CMS deletes a J-code when it is no longer needed, when a drug is reformulated or withdrawn, or when a code family is restructured. J0970’s deletion took effect January 1, 2011, and its 40 mg descriptor has had no active equivalent since.
Payment for the active code comes from the Medicare physician fee schedule, which CMS republishes every year. A charge master built on the old code will never match those amounts.
A deleted code comes back as an unprocessable claim rather than a coverage denial. Knowing which denial codes mean rejection saves your team from appealing something that only needs a corrected code.
Sound medical practice compliance routines include auditing drug codes against the CMS quarterly updates at least twice a year.
About estradiol valerate: Drug overview for billers
Estradiol valerate is a synthetic estrogen given by intramuscular injection. It is used in hormone replacement therapy (HRT) for menopausal symptoms, in hypogonadism, and in gender-affirming hormone care. It is sold as Delestrogen and comes in more than one concentration.
Because a clinician administers it in the practice, it is billed with a HCPCS Level II J-code rather than through a pharmacy benefit.
Practices that give these injections alongside other women’s health services often run them in OB/GYN practice software. The recorded dose then sits in the same chart the biller works from. Key clinical and billing facts about the drug:
- Drug class: Estrogen, synthetic ester
- Brand name: Delestrogen
- Route: Intramuscular injection only
- Common concentrations: 10 mg/mL and 20 mg/mL, so the 40 mg in J0970’s descriptor was a billing ceiling rather than a vial strength
- Clinical uses: Menopausal vasomotor symptoms, female hypogonadism, gender-affirming estrogen therapy, palliative prostate cancer care
- Billing context: The drug is billed separately from the injection administration service
The 40 mg ceiling in J0970’s descriptor sat well above the 10 mg ceiling in J1380. That difference is what turns a simple dose into a unit calculation, covered below.
J0970 crosswalk and replacement codes
J1380 is the active code for estradiol valerate injections and the closest match to J0970. Confirm the official CMS crosswalk before treating it as the definitive replacement, because payer policies differ. The AAPC HCPCS code lookup is a quick way to check current status.
Additional active codes sometimes used for estradiol injections, depending on formulation and payer policy:
- J1380: Injection, estradiol valerate, up to 10 mg, active and the usual replacement
- J1000: Injection, depo-estradiol cypionate, up to 5 mg, a different ester and not a direct crosswalk
- J3490: Unclassified drugs, used when no specific J-code exists for a formulation
- J3590: Unclassified biologics, used for biologics without a specific code
Hormone injections across the J-series share the same unit logic. J1071 covers testosterone cypionate, and the same rules on dose documentation and unit math apply there.
J0970 vs J1380: Understanding the dosage difference
The dosage ceiling is the operational difference between the two codes. J0970 covered up to 40 mg per encounter as a single unit. J1380 covers up to 10 mg per unit, so a 20 mg dose bills as 2 units and a 30 mg dose as 3 units.
The unit math stops there. Medicare’s medically unlikely edit (MUE) for J1380 is 3 units per date of service, which is 30 mg. A fourth unit is denied automatically, before anyone at the payer reads the claim.
So a 40 mg dose has no clean single-claim route. Three options remain, and each carries a cost:
- Split the dosing across separate dates of service, where the clinical plan allows it, so no single day exceeds 30 mg.
- Bill 3 units and absorb the remaining 10 mg as a write-off. This is the simplest route and the one most practices take.
- Bill 4 units, expect the automatic denial, then appeal with the chart note and the NDC quantity that show the full dose.
Prior authorization does not solve this. Prior authorization settles whether the payer covers the drug at all, while the MUE caps how many units one date of service can carry.
Underbilling costs money too. One unit of J1380 for a 30 mg injection reports a third of the dose and pays accordingly. Structured HIPAA-compliant billing workflows that capture the administered dose at the point of care prevent both errors.
Confirm unit limits with the patient’s payer and your Medicare Administrative Contractor (MAC) before you bill more than 3 units. Commercial payers set their own edits, and some copy the Medicare value exactly.
Pro Tip
Run a quarterly audit of your drug billing codes against the CMS HCPCS quarterly update files. Deleted codes like J0970 sit in legacy charge master tables for years, producing silent rejections that only surface at reconciliation.
How to bill estradiol valerate injections now
Practices that once used J0970 need a workflow built around the active code and its daily unit limit. The steps below apply to Medicare and most Medicaid programs. Commercial payers may set different rules.

- Confirm the active code. Use J1380 for estradiol valerate injections. Check its status in the CMS HCPCS quarterly update, or in your billing software’s code database, before you submit.
- Document the administered dose. Record the exact dose in milligrams in the clinical note. That note supports the number of units billed and the medical necessity of a higher dose.
- Calculate units against the MUE. Bill one unit per 10 mg administered, up to the 3-unit daily limit of 30 mg. A 40 mg dose does not become 4 payable units, so either split the dosing across dates of service or plan for an appeal.
- Bill the administration separately. The drug and the injection administration are separate services, and 96372 is the usual administration code. Do not bundle them unless payer policy requires it.
- Check payer-specific rules. MACs publish Local Coverage Determinations that can add prior authorization or dosage limits for estradiol injections. State Medicaid programs add another layer of variation.
- Pair it with the right ICD-10 code. Medicare will not reimburse a drug code without a diagnosis that supports it. The next section lists the usual pairings.
Keep drug codes and procedure codes distinct while you build the claim. 20550 reports an injection as a procedure, while J1380 reports the drug that went into the syringe.
Prescription management that captures drug, dose, and route at the point of prescribing makes step 2 automatic. The biller then reads a number instead of interpreting a note.

ICD-10 codes to pair with estradiol valerate injections
Every drug claim needs an ICD-10 code that establishes medical necessity, and the right pairing follows the clinical indication. For estradiol valerate, the usual codes cover menopausal conditions, hypogonadism, and gender dysphoria.
Recorded hormone levels make the pairing easier to defend on audit. A menopause hormone levels chart in the record shows why the clinician chose that dose.
Fertility and OB/GYN practices often bill these injections next to other procedures. IVF CPT codes covers the codes that most often appear on the same claim.
Coverage for estradiol injections paired with F64.0 varies by state Medicaid program and commercial payer. Read the payer’s medical policy before billing gender-affirming hormone therapy with that combination.
Pro Tip
Write the clinical indication in language that maps directly to the ICD-10 code. “Hot flashes, night sweats, and vasomotor instability related to menopause” maps cleanly to N95.1. Vague wording such as “hormone therapy” does not establish medical necessity and invites a denial.
Billing guidelines and payer-specific notes for J1380
Accurate J1380 billing depends on payer rules that sit outside the code itself. The points below apply to most Medicare and Medicaid scenarios, and commercial payers may differ.
- Administration code: Bill CPT 96372 alongside J1380 for the administration service. Some payers bundle administration into the drug code, so check your MAC’s policy before billing both.
- Place of service: J-codes are usually billed in a non-facility setting such as an office. A hospital outpatient setting may bring different billing rules or revenue codes.
- National Drug Code (NDC): Medicare requires the NDC for separately billed drugs in some settings. Include the 11-digit NDC, the unit of measure, and the quantity administered.
- Prior authorization: Requirements vary by payer and clinical indication. Gender-affirming care claims are the most likely to need authorization in states without an explicit coverage mandate.
- Medicaid state variation: States set their own coverage policies, fee schedules, and authorization rules for drug codes. A policy that applies in California may not apply in Texas.
One denied line costs more staff time than the drug is worth. Tracking rejections by code is the core of denial management, and it shows whether the problem is the code, the units, or the diagnosis.
How Pabau keeps deleted drug codes off your claims
Most practices find a deleted code the hard way, on a rejection report. The charge master still carries J0970, staff still pick it from a list, and every claim built on it comes straight back.
Practice management software like Pabau ties the dose recorded in the treatment note to the code on the claim. Our claims management software holds the active code, the NDC, and the unit count together. Nobody rebuilds the unit math from a chart note at month end.
That means fewer corrected claims and a shorter rejection list to work through each month. Every Pabau subscription includes claims management, so this is part of your setup from the first month rather than a later upgrade.
Stop billing drug codes that no longer exist
Pabau flags inactive HCPCS codes before submission and keeps the dose, unit count, and NDC together on the claim. See how it handles estradiol valerate injection billing.
Conclusion
J0970 has been gone since 2011, so the only decision left is how you handle the dose. Estradiol valerate goes out as J1380, one unit per 10 mg, with the milligrams written in the note.
The 30 mg daily ceiling is where the money is won or lost. Decide in advance whether a 40 mg order gets split across dates of service, or billed at 3 units with the balance written off. Deciding it at the claim stage is how these lines end up denied.
Audit the charge master once a quarter and the deleted-code problem stops coming back. Book a demo to see how Pabau keeps drug codes, units, and diagnoses lined up before a claim leaves your practice.
Continue your research
Billing the injection as well as the drug? 96372 covers the administration service that sits alongside a J-code on the same claim.
Running testosterone injections in the same practice? J1071 walks through unit billing and documentation for testosterone cypionate.
Want fewer claims coming back at all? Clean claim explains what payers check on first submission and how to clear those checks.
Need to read a rejection properly? Denial codes decodes the reason codes payers return, including unit and edit failures.
Building a compliant billing process from scratch? Medical billing compliance covers the documentation and audit habits that keep drug claims defensible.
Frequently asked questions
What is HCPCS code J0970?
HCPCS code J0970 is a deleted HCPCS Level II J-code. It described an injection of estradiol valerate, up to 40 mg, given in a clinical setting. CMS deleted it effective January 1, 2011, so it is no longer part of the active code set.
Is J0970 a deleted HCPCS code?
Yes. J0970 was deleted effective January 1, 2011 and is no longer a valid billing code. Any claim submitted with J0970 as a drug code will be rejected by Medicare, Medicaid, and most private payers. Practices must use an active replacement code such as J1380.
What is the crosswalk or replacement code for J0970?
J1380, injection of estradiol valerate up to 10 mg, is the active code most closely related to J0970. Because its ceiling is 10 mg per unit rather than 40 mg, higher doses are reported in multiple units, up to the 3-unit daily limit. Confirm the official CMS crosswalk before treating J1380 as the definitive replacement.
What is the difference between J0970 and J1380?
Both codes describe estradiol valerate injections. J0970 covered up to 40 mg per encounter as a single unit, while J1380 covers up to 10 mg per unit. A 30 mg dose therefore bills as 3 units, which is also the highest number of units Medicare will pay in one day.
Can I bill 4 units of J1380 for a 40 mg dose?
No. Medicare’s medically unlikely edit caps J1380 at 3 units, or 30 mg, per date of service, so a fourth unit is denied automatically. Prior authorization does not lift that cap. You have three options. Split the dosing across separate dates of service, bill 3 units and write off the balance, or appeal with the chart note and NDC quantity.
How do I bill for an estradiol valerate injection after J0970 was deleted?
Use J1380, billed as one unit per 10 mg administered, alongside CPT 96372 for the injection administration. Keep the total to 3 units per date of service to stay within the Medicare edit. Document the exact dose in milligrams, include the NDC where the payer requires it, and pair the drug code with a supporting ICD-10 diagnosis.
Can J0970 still be used for Medicare billing?
No. Medicare does not accept deleted HCPCS codes, so a claim submitted with J0970 is rejected automatically. There is no appeal pathway for a claim rejected only because the code is deleted. The claim has to be resubmitted with an active code such as J1380.
What ICD-10 codes are used with estradiol valerate injection billing?
Common pairings include N95.1 for menopausal and female climacteric states, E28.39 for other primary ovarian failure, and F64.0 for gender dysphoria in adolescents and adults. Coverage for F64.0 pairings varies widely by payer and by state Medicaid program.
What happens if I submit a claim with J0970 today?
The claim will be rejected. Medicare, Medicaid, and most commercial payers validate every claim against the active HCPCS code list. A claim using J0970 fails that check and is returned as unprocessable, so the practice has to correct the code and resubmit.