Optical Inventory and Vision Plan Payments in QuickBooks
Jul 11, 2026
PDF, JPG, PNG, BMP, HEIC, TIFF
Upload your bank statement
Drop file here or click to upload
PDF, JPG, PNG, BMP, HEIC, TIFF
Uploading...
Short answer: Frames, lenses, and contact lenses in your dispensary are inventory. You capitalize them to an asset account when you buy them and relieve them to cost of goods sold when the patient picks up the job, not when the vendor invoice clears the bank. A vision plan EFT from VSP or EyeMed is not new income: it is one lump payment against accounts receivable for a batch of patients you already billed. The gap between what you billed and what the plan allowed is a contractual allowance (contra-revenue), not bad debt.
Last updated July 2026.
An optometry practice runs two businesses out of one suite, and the bank statement mashes them into a single column of deposits. Most of the bookkeeping pain in an OD practice comes from treating those two halves the same way.
The exam chair and the dispensary are two different businesses
The exam lane sells time and expertise. You bill a vision plan or a medical carrier, and the money shows up weeks later as one EFT covering a dozen patients at once. Revenue is earned on the date of service, and the amount that eventually arrives is almost never the amount you billed.
The dispensary sells product. You buy frames, they sit on a board, and the moment one walks out the door with lenses in it you have a sale and a matching cost. That is retail accounting: inventory on the balance sheet, cost of goods sold on the income statement, gross margin in between. Bolt the two models together and you get the chart of accounts an optical practice needs.
| Account | Type | What it holds |
|---|---|---|
| Frame Inventory | Current asset | Frames you own on the boards, at cost |
| Contact Lens Inventory | Current asset | Stock lens boxes and trials you own |
| Accounts Receivable | Current asset | Billed but unpaid claims and patient balances |
| Professional Fee Revenue | Income | Exams, fittings, medical office visits |
| Optical Revenue | Income | Frames, lenses, contacts, at charged price |
| Contractual Allowances | Income (contra) | Billed amount minus plan allowed amount |
| COGS: Frames | Cost of goods sold | Cost of frames actually dispensed |
| COGS: Lab and Lenses | Cost of goods sold | Lab invoices for jobs you dispensed |
| Merchant Fees | Expense | Card processing held out of your batches |
Frames and lenses are inventory, not an expense
When a shipment lands from EssilorLuxottica, Safilo, or Marchon, nothing has been earned or lost. You swapped cash (or a payable) for product of equal value. That is a balance sheet event, and it touches your profit and loss only later, when the frame sells.
Expensing frames the day the invoice clears the bank is the most common error in optical bookkeeping, and it does two things at once. It wrecks gross margin month to month: a heavy buying month looks like a disaster and a light one looks like a windfall, while sales barely moved. And it hides an asset. A board holding 400 frames at an average cost of $60 is $24,000 of value that never shows up on the balance sheet, and lenders, buyers, and your year-end numbers all care about that.
Contact lens stock you own works the same way. Lab work from Essilor, Hoya, or Zeiss is a little different: a lab invoice ties to one job for one patient, which makes it closer to a direct job cost than to shelf stock. Either way it belongs in COGS in the period the job is dispensed, matched to the revenue for that job.
Consignment and memo frame boards
Plenty of boards are not the practice's property at all. Under a consignment or memo arrangement the vendor owns the frames until one sells, and you owe nothing until then. If that is how your agreement reads, those frames are not your inventory: you record the cost when the frame sells and the vendor bills you. Check the vendor agreement, because terms vary, and owned boards and memo boards commonly stand side by side in one dispensary.
Worked example: 20 frames in, one complete pair out
All figures below are illustrative round numbers, not real vendor pricing. Say you order 20 frames at $60 each on terms.
- Debit Frame Inventory $1,200
- Credit Accounts Payable $1,200
When the ACH to the vendor clears the bank, you clear the payable: debit Accounts Payable $1,200, credit Checking $1,200. Still nothing on the income statement, which is correct. You have $1,200 of frames.
Now a patient picks a $180 frame and orders lenses you charge $220 for, so the job is $400. The lab bills you $70 for those lenses. The frame you are handing over cost you $60. Revenue on the job:
- Debit Accounts Receivable $400
- Credit Optical Revenue $400 (frame $180 plus lenses $220)
Relieve the frame from inventory:
- Debit COGS: Frames $60
- Credit Frame Inventory $60
Record the lab invoice as a cost of that job:
- Debit COGS: Lab and Lenses $70
- Credit Accounts Payable $70
Total debits $530, total credits $530. The job produced $400 of revenue against $130 of cost, so gross profit is $270. Frame Inventory now reads $1,140, the 19 frames still on the board at $60 each. Every number ties.
QuickBooks Online Plus and Advanced will do the COGS entry for you: set frames up as inventory items with a cost, and the sales receipt posts to income and relieves inventory automatically. Smaller practices run a periodic method instead, posting purchases to Frame Inventory, counting the boards at period end, and booking one journal entry for the difference. Both work. Counting is what makes either one honest.
Vendor and lab invoices are where data entry eats an afternoon, since one frame invoice can carry dozens of lines with model, color, eye size, and cost. You can pull the line items straight off a scanned supplier invoice and work from the extracted list instead of keying it.
Vision plan or medical carrier: two payers, one visit
A routine refractive exam and the materials that follow go to the patient's vision plan: VSP, EyeMed, Davis Vision, Spectera. Those plans behave more like a discount and materials benefit than like insurance, paying on their own fee schedule and remitting on their own cycle.
A medical eye complaint is a different bill entirely. Dry eye, glaucoma, a foreign body, a diabetic eye exam: those are medical services billed to the patient's medical carrier under a medical diagnosis, not to the vision plan. That is a coding question first, but it lands in your books, because one visit can generate two claims to two payers with two allowed amounts and two EFTs arriving in different weeks.
So receivables need to be trackable by payer, not just by patient. Practices with real medical volume will recognize the pattern from this guide to medical practice bookkeeping in QuickBooks, and the same habits apply to the medical side of an OD chart.
The vision plan EFT and the contractual allowance
Here is the entry that trips up more optical practices than any other. A $2,400 EFT from a vision plan lands in checking on a Tuesday. It is not $2,400 of income. It pays down receivables you already recorded, for patients you saw weeks ago, at amounts smaller than you billed.
Worked example, again with illustrative numbers. You bill a plan $250 for an exam and materials. The plan's allowed amount is $160. The patient paid a $20 copay at the desk on the day of service. Weeks later the plan sends $140 by EFT. At the date of service, when you bill:
- Debit Accounts Receivable $250
- Credit Revenue $250
The plan will never pay $250. The $90 difference between your charge and the allowed amount is a contractual allowance, which is contra-revenue. Book it when you know the allowed amount, at billing if your fee schedule is reliable, otherwise when the remittance arrives:
- Debit Contractual Allowances $90 (contra-revenue)
- Credit Accounts Receivable $90
Receivable on this patient is now $160, exactly the allowed amount. The $20 copay you already collected clears part of it:
- Debit Undeposited Funds $20
- Credit Accounts Receivable $20
And the EFT clears the rest:
- Debit Checking $140
- Credit Accounts Receivable $140
Receivable is now zero. Gross revenue $250, contractual allowance $90, net revenue $160, cash collected $20 plus $140 equals $160. It balances at every step, and the income statement shows both what you charge and what you keep, which is the number you want when you are deciding whether a panel is worth staying on.
Multiply that by the 15 or 30 patients on one remittance and you can see why the EFT can never be typed in as a lump of income. The remittance advice (the EOB or the electronic 835) tells you which patients the money covers and what each one allowed. The deposit is only the total.
Card batches never match the day's sales
Patient cards settle in batches and processors take their cut before the money lands. If the desk ran $1,000 of cards today and the processor holds out $25 (illustrative, use your own effective rate), the bank shows a $975 deposit. Record the gross, then the fee:
- Debit Checking $975
- Debit Merchant Fees $25
- Credit Undeposited Funds $1,000
Book only the $975 and you have understated both your sales and your costs, and the daily sales report will never agree to the bank feed. Some processors bill fees once a month as a separate debit instead of netting each batch, so check which model yours uses.
Where the bank statement fits
The bank statement is the cash side of the story, and it is the side you can prove. Converting the PDF into a .qbo file with the PDF to QBO converter and importing it puts every EFT, card batch, vendor ACH, and lab payment on the books with the right date and amount. Catching up several months at once is faster through a bulk statement import than rebuilding the year by hand.
What the cash side cannot do is tell you whose claim a lump EFT paid. No bank feed carries that detail. The workflow that works: import the statement so the deposit exists at the right date and amount, then open the plan's remittance advice and apply that deposit against the patient receivables it covers. The bank tells you how much arrived; the remittance tells you why. The walkthrough on importing optometry practice bank statements into QuickBooks covers the statement side of that routine.
Common mistakes
Booking the plan EFT as income. The revenue was already recorded on the date of service. Posting the EFT to an income account records it twice and leaves the original receivable open forever. It is a payment against accounts receivable.
Expensing frames when the vendor invoice is paid. Frames are inventory until they sell. Expensing at purchase makes gross margin swing with your buying schedule instead of your selling, and it erases a real asset.
Calling the contractual allowance bad debt. Bad debt is money someone owed you and did not pay. A contractual allowance is money nobody ever owed you, because you agreed to the plan's fee schedule when you joined the panel. Bad debt is an expense; a contractual allowance is contra-revenue. Mixing them up distorts your collections rate.
Forgetting the copay is already in receivables. The copay collected at the desk relieves accounts receivable. Post it to income instead and you have double-counted that $20, and the patient balance never clears.
Never counting the boards. Whichever method you use, an inventory balance nobody has touched in a year is a fiction. Count on a schedule and adjust to what is actually there.
Mishandling fill-in doctors. If you pay a locum OD as an independent contractor rather than an employee, that is a 1099-NEC situation, and for payments made on or after January 1, 2026 the reporting threshold is $2,000. Track them to a vendor record all year instead of reconstructing them in January.
Frequently asked questions
How do I record a VSP payment in QuickBooks?
Record it as a payment against accounts receivable, not as income. Open the remittance advice, apply the deposit to the individual patient invoices it covers, and write the difference between your charge and the plan's allowed amount to a contractual allowance account. The deposit total in QuickBooks should equal the EFT that hit your bank.
Are eyeglass frames inventory or an expense?
Frames you own are inventory, a balance sheet asset, until they sell. Capitalize them at cost when the vendor ships, then relieve that cost to cost of goods sold on the day the patient picks up. Frames on a consignment or memo board belong to the vendor, so they stay off your books until one sells and the vendor bills you.
What is a contractual allowance in an optometry practice?
It is the difference between the fee you billed and the amount the vision plan or medical carrier allows under its fee schedule. Bill $250, plan allows $160, and the $90 gap is a contractual allowance. It is contra-revenue that reduces gross revenue to net, and it is not bad debt, because that $90 was never collectible from anyone.
Should an eye exam be billed to vision or medical insurance?
A routine refractive exam and materials go to the vision plan. A visit driven by a medical complaint or diagnosis, such as dry eye, glaucoma, a diabetic eye exam, or a foreign body, goes to the patient's medical carrier. One visit can produce two claims to two payers with two allowed amounts and two payments, so track receivables by payer.
Why does my card deposit not match the day's sales?
Because most processors net their fee out of the batch before depositing. Run $1,000 in cards and a $975 deposit lands. Record the gross sales, the merchant fee as an expense, and the net to the bank, and both sides agree. Some processors instead bill fees once a month as a separate debit, so confirm which model yours uses.
Do I need QuickBooks Online Plus to track optical inventory?
You need Plus or Advanced for built-in inventory items and quantity tracking in QuickBooks Online. Without it you can still use the periodic method: post purchases to a Frame Inventory asset account, count the boards at period end, and book one journal entry moving the sold cost to COGS. More manual, but perfectly valid.
Clean optical books start with clean cash. Get the deposits, the EFTs, and the vendor ACHs into QuickBooks at the right dates, then match them to remittances and lab invoices. When you need a statement on the books, drop the PDF into the bank statement import for QuickBooks Online, or start from the optometry practice converter and let it build the .qbo file for you.
Convert your first statement free.
Upload a PDF bank statement, get a QuickBooks-ready .qbo back in seconds. No card to try it.