HCPCS code V2020 – Spectacle frames
V2020 is the HCPCS Level II code for frames, purchases. It reports the spectacle frame dispensed with a prescription eyeglass order, while each lens is billed on its own line with a separate V-code.
Medicare Part B excludes routine eyeglasses. It pays for V2020 only as part of one pair of eyeglasses after each cataract surgery with an intraocular lens (IOL) implant. Other payers cover frames through vision plans or state Medicaid benefits, each with its own frequency limits.
- Level
- Level II
- Category
- V — Vision and hearing services
- Code range
- V2020-V2025 Frames
- Billable
- No
- Code also known as
- eyeglass frames, optical frames, prescription eyeglass frames
Let Pabau's smart automation suggest the right codes, reduce claim denials, and keep your practice compliant—effortlessly.
- AI-powered code suggestions
- Real-time compliance checks
- Faster claims, fewer denials
Automate repetitive tasks and focus on what matters most—your patients.
Reduce coding errors and ensure compliance with the latest regulations.
Clean claims, fewer denials, and faster reimbursements.
Powerful insights and reporting to help your practice thrive.
HIPAA compliant SOC 2 certified GDPR-compliant Trusted by 4,000+ clinics worldwide
Key takeaways
HCPCS code V2020 reports the spectacle frame only, and each lens is billed on its own line with a separate V-code.
Medicare Part B excludes routine eyeglasses but covers one pair of eyeglasses after each cataract surgery with IOL implantation. Frames are paid up to the Medicare allowance.
Many payers require modifier NU (new equipment), while LT, RT and RR do not apply to spectacle frames.
Upgraded frames are billed on V2025, and a signed ABN covers the non-covered upgrade amount.
Pabau, the practice management platform we build, checks claims for missing insurer details before submission and tracks each one through to payment.
HCPCS code V2020: Official descriptor and code details
HCPCS code V2020 is the HCPCS Level II code for spectacle frames. The Centers for Medicare and Medicaid Services (CMS) lists it under the official descriptor “Frames, purchases” in the HCPCS code set. V2020 reports the frame dispensed with a prescription eyeglass order. Lenses are never part of it, and each one is billed on a separate claim line.
V2020 is a supply code that reports the physical frame dispensed to the patient. The provider’s exam and refraction are billed separately, so V2020 carries only the materials cost on the claim.
What V2020 covers and what it does not
V2020 covers the spectacle frame only. It applies to any frame style dispensed with prescription lenses as part of a complete eyeglass order. Lens costs are always reported on their own lines.
- Covered: Spectacle frames of any style (full-rim, semi-rimless, rimless) dispensed as part of a prescription eyeglass order.
- Covered: Replacement frames, when payer policy permits and a new dispensing event is documented.
- Not covered by V2020: Lens costs. Single-vision lenses use the V2100-V2199 codes, bifocals use the V2200 series, and trifocals use the V2300 series.
- Not covered by V2020: Contact lenses or contact lens cases.
- Not covered by V2020: Non-prescription (plano) frames with no corrective lenses.
- Not covered by V2020: The professional exam or refraction service, which uses a separate CPT code.
A common billing error is combining the frame and lens costs on a single line. V2020 and each lens code must appear on separate lines of the CMS-1500. Payers edit for this, and a bundled submission typically triggers a CO-97 denial.
How V2020 pairs with V-series lens codes
V2020 usually appears with a lens code on the same claim. Frame-only claims are valid for replacement frames when the payer allows it. Knowing which lens codes pair with V2020 prevents a missing lens line, and it stops V2020 being billed when only lenses were dispensed.
Each lens is billed on its own line. A single-vision pair usually means V2020 on line one and V2100 or another V21xx code on lines two and three, one per eye. Bifocal lenses use the V2200-series codes.
Progressive lenses take the base lens code plus the add-on V2781, which reports a progressive lens, per lens. Check lens code selection against the prescription before you submit, because payers audit lens type against refraction data in the record.
Medicare coverage rules for V2020
Medicare Part B does not cover routine eyeglasses or spectacle frames. The exclusion is statutory, under Social Security Act Section 1862(a)(7). Billing V2020 to Medicare for routine vision correction results in a CO-96 denial.
The exception is narrow. Medicare covers one pair of eyeglasses or contact lenses after each cataract surgery in which an intraocular lens (IOL) is implanted. The rule sits in Social Security Act Section 1861(s)(8) and Medicare Benefit Policy Manual Chapter 15, Section 120. The surgery itself is usually billed on 66984.
- Trigger: Cataract surgery with IOL insertion must be documented in the medical record.
- Frequency: One pair of eyeglasses or contact lenses after each cataract surgery with IOL. Surgery on the second eye starts a new benefit, and the allowance applies per benefit, not annually.
- Frame allowance: Medicare pays frames up to a set allowance. Check the current figure in the CMS DMEPOS fee schedule, because it changes each year and must not be hard-coded into claim templates.
- Participating suppliers: Only a Medicare-enrolled DME supplier or optical dispenser can bill the post-cataract benefit.
- Assignment: Suppliers must accept assignment for the post-cataract eyeglass benefit.
- ABN: Upgraded frames are billed on V2025 (deluxe frame), not V2020. An Advance Beneficiary Notice of Noncoverage (ABN), signed before dispensing, covers the non-covered upgrade amount.
Three checks decide whether Medicare pays for the frame at all, and whether the claim takes V2020 or V2025.

Medicare Advantage plans may extend coverage beyond the statutory exception. Each plan sets its own optical benefit, including frame allowances, covered frequencies, and in-network dispensers. Verify the member’s plan benefit before you submit a V2020 claim under Medicare Advantage.
Pro Tip
Before you submit any V2020 claim for a Medicare patient, confirm the cataract surgery date and IOL implantation in the operative note. Payers audit this retroactively. A copy of the surgical report or a summary note from the operating surgeon, kept in the dispensing record, satisfies most post-payment review requests.
Medicaid and commercial payer policies for V2020
Medicaid optical benefits vary significantly by state. Some state Medicaid programs cover annual frame replacements for adults, while others limit coverage to children under a set age or to medically necessary replacements. There is no national Medicaid rule for V2020 beyond what CMS mandates for mandatory benefit populations.
- Children (EPSDT): Most state Medicaid programs cover frames under Early and Periodic Screening, Diagnostic, and Treatment (EPSDT) vision benefits. Frequency varies by state.
- Adults: Coverage ranges from annual benefits in some states to full exclusion in others. Check the state Medicaid optical fee schedule before dispensing.
- Prior authorization: Several state Medicaid programs require prior authorization for frames above a set cost threshold. Submit the PA request before dispensing, not after.
- Commercial payers: Most vision plans (VSP, EyeMed, Spectera, Davis Vision) cover frames on an annual or biennial frequency. Verify member eligibility and remaining benefit before the appointment.
- Coordination of benefits: When a patient has both a medical plan and a vision plan, the medical plan is primary for post-cataract benefits. The vision plan may cover a routine prescription in the same calendar year, depending on plan rules.
Documentation requirements for V2020 claims
V2020 claims are supply-based, so the documentation must show that a frame was physically dispensed. A prescription in the record is necessary but not sufficient on its own.
- Valid written prescription: Signed by a licensed optometrist or ophthalmologist and dated within the payer’s validity window, typically 12-24 months.
- Itemized dispensing receipt: Shows the specific frame dispensed, its cost, and the date of dispensing.
- Patient delivery confirmation: A patient signature or documented acknowledgment that the eyeglasses were received. The delivery date is the date of service for V2020, not the prescription date.
- NPI of the dispensing provider or supplier: Enter the optical dispenser’s NPI (or DMEPOS supplier number, where required) in Box 33 of the CMS-1500.
- Date of service: The date the frames were dispensed to the patient (Box 24A), not the examination date.
- Place of service code: Typically 11 (office) for dispensing in an optometry or ophthalmology office. Use the code that matches where the patient received the frames.
- ABN (Medicare only): For an upgraded frame billed on V2025, a properly executed ABN must be signed before dispensing and kept on file. It covers the non-covered upgrade amount.
- Surgical documentation (Medicare post-cataract): An operative report or surgical summary confirming IOL implantation.
Keep the itemized dispensing receipt and delivery confirmation in the patient chart. These are the two documents most often requested during post-payment audits of V2020 claims. Missing either can lead to full recoupment of the allowed amount.
Modifiers used with V2020
Modifier selection for V2020 is often misunderstood. Frames are not side-specific and are never rented, so the most common modifiers in other HCPCS categories do not apply here.
The NU modifier is the one billing staff most often omit. Several Medicare Administrative Contractors and vision payers require NU on all DMEPOS supply codes to confirm the item is newly dispensed. Check the applicable Local Coverage Determination (LCD) or payer billing guide before you default to no modifier.
How to bill HCPCS code V2020 step by step
The billing sequence for V2020 follows a set path on a CMS-1500 or 837P electronic claim. Each step matters, because payers run automated edits on optical claims before any human reviewer sees them.

- Confirm payer coverage before dispensing. Check the member’s optical benefit or Medicare post-cataract eligibility. A frame dispensed without confirmed coverage is unlikely to be reimbursed retroactively.
- Verify the Medicare post-cataract exception if you bill Medicare. Confirm IOL implantation in the surgical record, and check that this is the patient’s first pair since that surgery.
- Enter V2020 in Box 24D on the CMS-1500. Append modifier NU if the payer requires it. Bill one unit, and keep the lens cost off this line.
- Enter lens codes on separate lines. Use one line per lens per eye. For most post-cataract claims, V2020 goes on line one, with the single-vision lens code on lines two and three, each with NU if required.
- Set the date of service to the dispensing date in Box 24A, not the examination date or the surgery date.
- Enter the dispensing provider’s NPI in Box 33 (billing provider) and Box 24J (rendering provider NPI). If you bill as a DMEPOS supplier, include the supplier’s Medicare-assigned provider number where required.
- Attach supporting documentation as the payer requires. For Medicare post-cataract claims, some MACs want the surgical report with the initial claim or on request. Keep it in the patient file regardless.
For a clean claim, check that no field is missing or invalid before you send it. The usual clean-claim failures on V2020 are a wrong date of service, a missing NPI, and a missing modifier the payer’s LCD requires.
Common V2020 denial reasons and how to fix them
V2020 denials cluster around four root causes, which are coverage exclusions, duplicate submissions, missing modifiers, and frequency violations. The denial code on the Explanation of Benefits shows which issue triggered the edit. Sorting denials by category with structured denial management shortens the resolution cycle.
OA-18 (duplicate claim) deserves special attention. It appears when a claim is resubmitted too soon after the original. If the first submission is still pending, wait for the remittance before acting. A second identical claim sent during processing is denied as OA-18 and can flag the account for payment integrity review.
Pro Tip
Build a V2020 denial tracker in your practice management system. Log each denial by CARC code, note the root cause, and review the log monthly. Recurring denials usually trace back to a handful of causes, and each one can often be fixed with a single change before claim submission.
How claims management software prevents V2020 claim errors
Most V2020 denials start in the dispensing record. When the frame order, the insurer details and the claim live in separate systems, billing staff re-key the dispensing date, NPI and modifiers by hand.
Pabau’s medical claims management keeps the claim in the same system as the patient record and the invoice. Insurer and policy details sit on the patient record, so each invoice routes to the right payer without re-keying.
- Validation before sending: Pabau checks that insurer details such as membership numbers and authorization codes are in place. The claim cannot be sent until they are.
- US claim submission: Pabau connects to Claim.MD, so your team can run real-time eligibility checks and submit claims electronically to payers.
- Claim status tracking: Every claim moves through pending, submitted, processing, paid or error stages in one dashboard.
- Remittance posting: ERA remittances post against the right invoice, so claims and billing stay in sync.
- Denial review: Filter claims by date, insurer or invoice ID to see which rejections recur and fix the cause upstream.
Your billing team still selects V2020 and the lens codes. Pabau makes sure the claim carrying them is complete, so fewer frame claims come back for missing information.
Send complete V2020 claims the first time
Pabau’s claims management checks insurer details before submission, tracks every claim’s status, and posts remittances against the invoice. Fewer V2020 claims come back for missing information.

Conclusion
V2020 itself rarely causes a denial. The claims that fail usually miss a payer rule around it. The usual culprits are the Medicare post-cataract exception, the NU modifier, and a frame upgrade that belongs on V2025.
Build those rules into dispensing, not billing. Confirm the IOL surgery and the remaining benefit before the frame is ordered, and record the delivery date as the date of service. The claim then leaves the practice complete, and nobody has to rebuild it from a denial.
The cost is a few extra checks at the dispensing desk, and the return is frame claims that get paid the first time. Book a demo to see how Pabau checks V2020 claims for missing details before they reach the payer.
Continue your research
Billing bifocal lenses alongside the frame? HCPCS code V2200 covers the bifocal lens code that pairs with V2020 on multifocal orders.
Checking optical benefits before the frame is ordered? Insurance eligibility verification walks through confirming coverage and remaining benefit before the visit.
Dealing with recurring HCPCS claim denials? Denial management in healthcare walks through how to categorize, track, and systematically reduce denial rates.
Want to reduce claim errors before submission? Submitting a clean claim outlines the field-level requirements that keep optical claims out of the denial queue.
Need to understand the full revenue cycle? What is revenue cycle management covers the end-to-end process from patient intake to collected payment.
Frequently asked questions
What does HCPCS code V2020 cover?
HCPCS code V2020 covers spectacle frames of any style dispensed as part of a prescription eyeglass order. It covers the frame only. Each lens is billed separately on its own claim line with the matching V-code.
Is V2020 covered by Medicare?
Medicare Part B does not cover routine eyeglasses or spectacle frames. The exception is cataract surgery with intraocular lens (IOL) implantation. Medicare then covers one pair of eyeglasses or contact lenses after each surgery, with frames paid up to the Medicare allowance for that benefit.
What is the difference between V2020 and V2100?
V2020 covers the spectacle frame itself, and V2100 covers a single-vision sphere lens from plano to +/-4.00 diopters, per lens. Both codes appear on the same claim when a complete pair of eyeglasses is dispensed, each on its own line.
What modifiers are used with V2020?
Modifier NU (new equipment) is required by many payers, including Medicare, for DMEPOS supply codes like V2020. Modifier RA may be required for replacement frames under certain Medicaid and DME policies. LT, RT and RR do not apply, because spectacle frames cover both eyes and are never rented.
Can V2020 be billed without a lens code?
Yes, in some cases. V2020 usually appears with a lens code, but frame-only claims are valid for replacement frames when the payer allows it. For a new pair of eyeglasses, bill the lens codes on separate lines next to V2020.
What are common denial reasons for HCPCS code V2020?
The most common denials are CO-96 (routine vision excluded by Medicare), OA-18 (duplicate claim) and CO-97 (frame and lens bundled on one line). CO-4 (missing NU modifier) and CO-119 (frequency limit exceeded) are also frequent. Each maps to a fix, such as coverage verification, splitting frame and lens lines, adding the modifier, or checking eligibility before dispensing.
How do I bill V2020 for Medicaid patients?
Medicaid optical coverage for spectacle frames varies by state. Check the state Medicaid optical fee schedule and confirm whether prior authorization is required before dispensing. Children are typically covered under EPSDT vision benefits, and adult coverage depends on the state plan. Enter V2020 with the modifier your state requires, and document the dispensing event.



