There is a question I have started asking in the first ten minutes of a call with an eye care practice, and I have never once had it answered with a number. It is this: how many prescription verification requests did you receive last month?
Not how many you answered. How many arrived. Fax, email, portal, the automated telephone message that plays into the back office while somebody is trying to find a lens. The question usually produces a pause, then a look at whoever runs the front desk, then some version of quite a few. Occasionally somebody says we don't really deal with those, which is closer to the truth and is also, as it happens, a legally significant answer.
Because every one of those requests started a clock, and if the clock runs out, the sale you did not want to lose is completed by your silence. That is not a metaphor. It is the operative mechanism of a federal trade regulation rule, and it is written into the Code of Federal Regulations in exactly those terms.
This is the twenty-first trade we have taken apart in this series, and it is the strangest one so far, because the regulation has come loose from the practitioner and attached itself to the transaction. In Maryland, nobody licenses the person who measures your pupillary distance, chooses your frame and orders your lenses. Two federal rules govern the moment they hand the glasses over, down to the order of the fields in a checkout form. That inversion explains almost everything about why the software in this trade is the way it is. Let us start with the market, because Baltimore's is not what you would guess.
What Baltimore's eye care market actually looks like
We counted rather than quoting a trade association. The Census Bureau's County Business Patterns program publishes establishment counts by county and industry code, and eye care splits cleanly across two of them: NAICS 621320, offices of optometrists, and NAICS 446130, optical goods stores. The first is the exam room. The second is the shop. In practice most independent businesses in this trade are both, which is a fact we will come back to more than once, because a great deal of federal law hangs off it.
The 2023 file gives Maryland 288 optometry offices with paid employees, 2,301 employees and about $131.0 million in annual payroll, plus 213 optical goods stores with 1,356 employees and $61.3 million. Five hundred and one establishments between them. That is a mid-sized trade by the standards of this series — larger than funeral homes, smaller than salons — and it is distributed across the state in a way that does not follow population.
| County | Optometry offices | Optical shops | Combined | Population | Residents per establishment |
|---|---|---|---|---|---|
| Montgomery | 65 | 54 | 119 | 1,069,397 | 8,987 |
| Baltimore County | 35 | 40 | 75 | 848,676 | 11,316 |
| Prince George's | 38 | 25 | 63 | 956,533 | 15,183 |
| Anne Arundel | 26 | 28 | 54 | 599,965 | 11,110 |
| Howard | 21 | 18 | 39 | 337,341 | 8,650 |
| Frederick | 19 | 6 | 25 | 294,154 | 11,766 |
| Baltimore City | 16 | 6 | 22 | 567,517 | 25,796 |
| Harford | 16 | 5 | 21 | 264,771 | 12,608 |
| Carroll | 9 | 5 | 14 | 176,735 | 12,624 |
Baltimore City has twenty-two eye care establishments for 567,517 people. That is one per 25,796 residents, against Howard's one per 8,650 and Montgomery's one per 8,987. The statewide figure is one per 12,409. The city is not merely below average; it is roughly three times thinner on the ground than the best-served county in its own metropolitan area, and it is the only jurisdiction in the region above twenty thousand residents per establishment. Prince George's, at 15,183, is second worst. The two most thinly covered jurisdictions in Maryland for eye care are the two largest majority-Black jurisdictions in the state, and we will leave that observation where it sits rather than pretending a software studio has anything useful to add to it.
What makes the city number genuinely odd is the building a few blocks east of it. Baltimore is home to the Wilmer Eye Institute at Johns Hopkins, one of the largest and most consistently highly regarded academic ophthalmology centers in the United States. The city is not short of eye care by any measure of expertise or capacity. It is short of storefronts. And the County Business Patterns file shows the same thing from another angle: Baltimore City's 242 physician offices average 27.4 employees each, against Montgomery's 12.6 and Howard's 10.9. That is the statistical fingerprint of an academic medical center, not of a neighborhood practice with a frame board and a Saturday morning.
Two hundred and forty-two physician offices averaging 27.4 employees apiece, and twenty-two places to buy a pair of glasses. Baltimore's eye care is institutional. Its optical retail is not.
Two more numbers from the same file are worth having in your pocket. Maryland has zero establishments in NAICS 339115, ophthalmic goods manufacturing, and exactly three ophthalmic goods wholesalers, all of them in Montgomery County. Every frame and every lens sold in this state arrives from somewhere else. Whatever an independent Baltimore practice competes on, it is not supply.
Nationally, for scale: 21,117 optometry offices with 138,811 employees, and 11,104 optical goods stores with 76,514. Maryland is 1.4 percent of the first and 1.9 percent of the second.
Maryland licenses the doctor. Nobody licenses the dispenser.
Here is the structural fact that shapes this trade in Maryland, and it took me a while to believe it.
Optometrists are licensed by the Maryland Board of Examiners in Optometry under Title 11 of the Health Occupations Article, with all the machinery you would expect — original licensure, continuing education, renewal, and from 1 January 2026 a live-scan criminal history check and a one-time structural racism training requirement for everyone renewing this year. That part is normal.
The person who takes your measurements, selects the frame, orders the lenses, edges and mounts them, adjusts the fit and hands you the finished pair is a dispensing optician, and Maryland does not license them at all. There is no state optician board. There is no registration. American Board of Opticianry and National Contact Lens Examiners certification is available and widely held, and plenty of Maryland employers require it, but that is an employment standard, not a legal one.
You do not have to take my word for how unusual this is, because the FTC counted. In the 2024 final rule amending the Eyeglass Rule, the Commission wrote its own summary of the trade:
"Opticians typically are not authorized to examine eyes to determine prescriptions, but may conduct pupillary distance examinations in order to fit a pair of eyeglasses to an individual. According to one source, twenty-one States currently require opticians to obtain licenses."
— FTC, Ophthalmic Practice Rules final rule, 89 FR 60742, 26 July 2024
Twenty-one states do. Maryland is not among them. And the population involved is not small: the same rule puts the number of active opticians in the United States at roughly 73,000, against 43,000 optometrists and 18,000 ophthalmologists. There are more opticians in this country than optometrists and ophthalmologists combined, and in Maryland not one of them holds a state license to do the work.
Which produces a genuinely peculiar allocation of regulatory weight, and one I have not seen in any other trade in this series: the state regulates the examination heavily and the sale not at all, while the federal government regulates the sale in extraordinary detail and the examination barely. Two FTC rules — the Ophthalmic Practice Rules at 16 CFR Part 456, universally called the Eyeglass Rule, and the Contact Lens Rule at 16 CFR Part 315 — between them dictate what you must hand a patient, when, in what format, what you may not charge for it, what you must keep, for how long, and, for anyone selling online, the order in which your checkout form asks its questions.
That is why practice management software and retail software are the same product in this trade and in no other. And it is why, in our reading, nobody sells that product very well.
The exemption that is written for a practice that barely exists
Both rules require automatic prescription release. The Eyeglass Rule at §456.2(a)(1) says you must provide one copy immediately after the refractive eye examination is completed and before offering to sell the patient ophthalmic goods, whether or not the prescription is requested. The Contact Lens Rule at §315.3(a)(1) says the same on completion of a contact lens fitting. Neither lets you condition release on a purchase, charge a fee for the copy, or ask for a waiver.
None of that is new. The Eyeglass Rule dates to 1978 and took its modern shape in 1992; the Contact Lens Rule has been in force since 2004. What is new is the documentation. On 26 July 2024 the FTC published the amended Eyeglass Rule at 89 FR 60742, effective 24 September 2024, adding §456.4: after handing over the prescription you must obtain a signed confirmation of receipt, or, if you delivered digitally, retain evidence that it was sent, received or made accessible, downloadable and printable. Records kept not less than three years and available for FTC inspection. The Contact Lens Rule got the same treatment in 2020 at §315.3(c).
The Commission was unusually blunt about why. Its record included two consumer surveys, and the numbers are worth reading slowly:
"…found that only 34% of eyeglass wearers automatically received their prescriptions on the day of their office visit, with another 19% receiving it during their visit, but only after asking for it… but 39% of consumers never received their prescription at all."
— FTC, 89 FR 60742, describing a Survey Sampling International poll
A second survey, by SurveyMonkey, found that 47 percent of consumers who saw optometrists and 31 percent of those who saw ophthalmologists were not automatically given a physical copy of their eyeglass prescription, and that 14 percent had to pay their prescriber for a copy when they later asked for one — a charge §456.2(c) has prohibited since 1992. I am not going to pretend those figures reflect well on the profession. They do not. They are also, in my experience of watching front desks, mostly a systems failure rather than a moral one: nobody built the step into the workflow, so the step did not happen.
Now the part that matters, and it is the same move we found buried in the accountants' rule earlier this summer. Read the exemption for who it leaves out.
"Paragraphs (a) and (b) of this section shall not apply to prescribers who do not have a direct or indirect financial interest in the sale of eye wear, including, but not limited to, through an association, affiliation, or co-location with an optical dispenser."
— 16 CFR §456.4(c). §315.3(c)(3) says the same for contact lenses.
There is no size floor. No patient-count threshold, no revenue test, no small-business carve-out of the kind that runs through most federal rules. The trigger is co-location. If there is an optical dispensary in your waiting room — or you have any indirect financial interest in one, through an association or affiliation — you carry the confirmation duty and the three-year record. If you are a salaried refractionist in a hospital clinic with no shop attached, you do not.
A floor plan creates a federal record-keeping obligation. And by the Commission's own description of the market, the exempt shape is the rare one:
"[Optometrists'] offices are often attached to, or part of, an associated optical dispensary… According to some estimates, product sales typically account for roughly 45 to 60% of optometrist revenue."
— FTC, 89 FR 60742
Roughly half of a typical optometrist's income comes from selling things. That single sentence, from a federal rulemaking rather than a vendor brochure, is the best argument I know for why an eye care practice should think of itself as a retailer that happens to hold a clinical license, and should buy — or build — accordingly.
The clock is in somebody else's office
Now the centerpiece, and the reason this article exists.
When an online seller wants to fill a contact lens order, it has two lawful routes under §315.5(a): the patient presents the prescription, or the seller verifies it by direct communication with the prescriber. Verification is not a conversation. It is a procedure with three possible endings, set out at §315.5(c):
"A prescription is verified under paragraph (a)(2) of this section only if one of the following occurs: (1) The prescriber confirms the prescription is accurate…; (2) The prescriber informs the seller… that the prescription is inaccurate and provides the accurate prescription; or (3) The prescriber fails to communicate with the seller within eight (8) business hours after receiving from the seller the information described in paragraph (b)…"
— 16 CFR §315.5(c)
Ending three is called passive verification, and it is the whole game. Silence completes the sale. A commercial transaction between two parties becomes lawful because a third party, who is often a direct competitor of the seller, did not answer the phone.
You can argue about whether that is good policy — Congress made the call in the Fairness to Contact Lens Consumers Act, and the FTC implemented it — but you cannot argue about what it is as a piece of engineering. It is a timer. And the definition of the unit it counts in is where this becomes a software problem rather than an administrative one:
"Business hour means an hour between 9 a.m. and 5 p.m., during a weekday (Monday through Friday), excluding Federal holidays. 'Business hour' also may include, at the seller's option, a prescriber's regular business hours on Saturdays, provided that the seller has actual knowledge of these hours. 'Business hour' shall be determined based on the time zone of the prescriber."
— 16 CFR §315.2
Read that again with a developer's eye and count the external dependencies. The clock runs in the prescriber's time zone, not the seller's and not UTC. It skips federal holidays, which move. It may, at the seller's discretion, include Saturday — but only the prescriber's actual Saturday hours, which the seller must genuinely know. And requests that land outside those hours do not begin counting at all:
"For verification requests received by a prescriber during non-business hours, the calculation of 'eight (8) business hours' shall begin at 9 a.m. on the next weekday that is not a Federal holiday or, if applicable, on Saturday at the beginning of the prescriber's actual business hours."
— 16 CFR §315.2
So eight business hours is not eight hours, and it is not one day. It is a quantity of elapsed wall-clock time that depends entirely on the minute the customer clicked buy. We worked the arithmetic out properly, because as far as we can tell nobody publishes it, and the range is much wider than the people affected by it seem to think.
| Verification request received | Clock starts | Order becomes lawful | Elapsed real time | Multiple of the fastest case |
|---|---|---|---|---|
| Monday 9:00 a.m. | Monday 9:00 a.m. | Monday 5:00 p.m. | 8h 00m | 1.0× |
| Tuesday 1:00 p.m. | Tuesday 1:00 p.m. | Wednesday 1:00 p.m. | 24h 00m | 3.0× |
| Thursday 4:59 p.m. | Thursday 4:59 p.m. | Friday 4:59 p.m. | 24h 00m | 3.0× |
| Saturday 10:00 a.m., seller takes the Saturday option (shop open 9–1) | Saturday 10:00 a.m. | Monday 2:00 p.m. | 52h 00m | 6.5× |
| Saturday 10:00 a.m., seller does not take the Saturday option | Monday 9:00 a.m. | Monday 5:00 p.m. | 55h 00m | 6.9× |
| Friday 5:01 p.m. | Monday 9:00 a.m. | Monday 5:00 p.m. | 71h 59m | 9.0× |
| Thursday 24 Dec 2026, 5:01 p.m. | Monday 28 Dec, 9:00 a.m. | Monday 28 Dec, 5:00 p.m. | 95h 59m | 12.0× |
Same rule. Same words. Same order for the same lenses for the same patient. Eight hours or ninety-six, a twelvefold spread, decided by the minute of the click. And notice the two Saturday rows, because they contain the joke that made me want to write this piece: the order placed on a Saturday morning completes sooner — 52 hours instead of 55 — if the seller happens to know the shop is open on Saturdays. Knowing more about your competitor's opening hours makes the clock run faster in your favor.
Which is presumably why the rule then requires you to write down how you know:
"A seller that exercises its option to include a prescriber's regular Saturday business hours… shall maintain a record of the prescriber's regular Saturday business hours and the basis for the seller's actual knowledge thereof. Such records shall be maintained for a period of not less than three years."
— 16 CFR §315.5(i)
A three-year audit trail explaining why you believe another business is open on Saturday. I have read a lot of regulation for this series and that is my favorite sentence in any of it.
Why the FTC bothered: the $3.5 million reason
The detail in §315.5 is not gratuitous. It was written against a real case. In January 2022 the Department of Justice, acting on an FTC referral, settled with Vision Path, Inc., trading as Hubble Contacts, for $1.5 million in civil penalties and $2 million in consumer redress — at the time the largest Contact Lens Rule matter ever. The complaint alleged that Hubble sent prescribers verification messages that were effectively incomprehensible, then treated the resulting non-response as passive verification and shipped lenses to people who had never been fitted for them, substituting its own house brand for what had actually been prescribed.
The remedy is visible in the rule text. §315.5(d) now requires that any seller using automated telephone verification must record the entire call, open by identifying it as a Contact Lens Rule verification request, deliver the required information "in a slow and deliberate manner and at a reasonably understandable volume", and make it repeatable at the prescriber's option. Both of those phrases are defined terms at §315.2. The federal government has written a product specification for a robocall, including how loud it has to be.
The current maximum civil penalty for a rule violation is $53,088. That figure has been frozen: the FTC's 2025 adjustment took it from $51,744 to $53,088, and the 2026 inflation adjustment was canceled by OMB Memorandum M-26-11 on 17 April 2026, so the 2025 number continues to apply. Per violation, and a violation is an order.
What the FTC thinks the paperwork costs you
Most regulatory impact estimates are buried and vague. This one is not, and it is the most useful number in the whole rulemaking for anybody trying to decide whether a piece of software is worth buying.
Under the Paperwork Reduction Act the Commission had to score its own rule, and it did so in the open, with the arithmetic broken out:
"Commission Estimate of the Total Burden = 3,208,333 Hours. 1. Estimated Hour Burden of 1,375,000 Hours for Prescribers To Release Prescriptions. 2. Estimated Hour Burden of Prescribers' Staff To Obtain and Store Patient Confirmation of Prescription Release = 1,375,000 Hours (343,750 Hours for Patients To Read and Sign Confirmations, 1,031,250 Hours for Prescribers' Offices To Scan and Store Such Confirmations). 3. Estimated Hour Burden on Prescribers' Offices To Obtain and Store Patient Consents to Electronic Delivery = 458,333 Hours…"
— FTC, 89 FR 60742, Paperwork Reduction Act analysis
The same document puts the population at roughly 43,000 active optometrists in the United States. Divide, and the picture sharpens considerably.
| Component | National hours/year | Hours per optometrist | Cost per optometrist | Two-doctor practice |
|---|---|---|---|---|
| Releasing the prescription | 1,375,000 | 32.0 | $876 | $1,752 |
| Patients reading and signing confirmations | 343,750 | 8.0 | — | — |
| Offices scanning and storing confirmations | 1,031,250 | 24.0 | $657 | $1,314 |
| Obtaining and storing e-delivery consents | 458,333 | 10.7 | $293 | $586 |
| Total (of which 66.7 hours fall on the practice) | 3,208,333 | 74.6 | $1,826 | $3,652 |
Seventy-five hours a year per optometrist. Just under two full working weeks, per doctor, spent documenting that a piece of paper changed hands. Allocate it to Maryland by establishment share and the state carries roughly 43,800 hours a year; allocate it to Baltimore City's sixteen optometry offices and it is about 2,400 hours, or 150 hours per practice — call it nineteen working days a year, in a trade where the median premises has seven people in it.
Now look at which line is biggest. 1,031,250 hours — nearly a third of the whole burden — is scanning and storing. Not judgment, not clinical care, not conversation with a patient. Scanning. That is the single most automatable line item in any rule we have read for this series, and the fact that the federal government's own estimate treats it as unavoidable human labor tells you exactly how the Commission expects this to be done: on paper, by a person, at a desk.
There is a footnote to all of this that I think about more than is healthy. The National Taxpayers Union filed a comment arguing that a "modest optometry establishment" doing 3,000 examinations a year would take on 167 extra hours and $4,123 of compliance labor. The Commission could not reproduce the figure and published its own working instead — 3,000 examinations at seventy seconds each comes to 58.3 hours and $1,439.88 — and then added a sentence that says more about this trade than anything else in thirty-three pages of Federal Register:
"…staff does not know how accurate NTU's estimate for a 'modest optometry establishment' is, and does not possess information about typical practices."
— FTC, 89 FR 60742, footnote 274
Two federal-record estimates of the same practice's paperwork, differing by a factor of 2.9, in the same document, with the agency conceding it does not know what a typical practice looks like. Our own allocation of 74.6 hours per optometrist sits between them, which is either reassuring or a warning about all three. The underlying denominator, from the Commission's footnote 319, is that there are about 165 million eyeglass wearers who get exams every other year — so roughly 82.5 million refractive exams a year, spread across 61,000 prescribers.
Work the FTC's own hours at Maryland's own payroll rates and the paperwork costs a two-doctor practice about $3,650 a year. The step from RevolutionEHR Core to Premium costs $4,500. You can buy the top tier of the market-leading platform for roughly what the government thinks the signatures cost you.
That is not a criticism of RevolutionEHR, whose pricing is the most transparent in the category. It is an observation about scale. In this trade the compliance overhead and the software budget are the same order of magnitude, which is unusual — in most of the trades we have surveyed the software is a rounding error next to the real leakage. Here it is not. Here it is a fair fight, and that changes what you should be willing to pay for.
What the software actually costs
We checked twenty-six products on 5 August 2026 — optometric practice management and EHR, optical retail systems, patient engagement platforms and, for context, the two general e-commerce platforms a shop might reach for. Six publish a dollar figure on a page you can read without booking a demo. That is a better showing than pharmacy, where we found none out of thirty, and worse than specialty food, where nine of twenty-nine did.
| Product | What it publishes | What it does not |
|---|---|---|
| RevolutionEHR | Exam-only or optical-only location from $319/mo; Core $455; Advanced from $660 (save 15%); Premium from $830 (save 20%). "No long-term contracts." | The one-time setup fee and the database conversion fee, both described in detail and neither priced. Seven separately branded add-ons (RevBilling, RevClear, RevEngage, RevIntake, RevPayments, RevDirect, RevAspire), none priced. |
| Eyefinity Encompass | Essential from $340/mo; Enhanced from $758/mo ("Save 20%"); a $50 EncompassPay credit. | The third tier. What the asterisk on "starting at" covers. |
| OD Link | A full seven-step ladder, $150–$300/mo local hosting and $180–$360/mo managed cloud, keyed to practice revenue. $0 installation, $0 data conversion, $0 per additional computer. Retraining and customization at $70/hr, or $120/hr with the founder. | Nothing material. This is the most completely published price card in the category. |
| Crystal Practice Management | Additional doctors: $150 / $210 / $290 per month in-office, $2,052 / $3,456 / $3,888 per year on the cloud, across its Essentials, Plus and Pro tiers. A 10% annual-billing discount. | The base price of every tier — all three read "Contact Us for Pricing." The only number Crystal publishes is the marginal one. |
| Weave | "Starting from $199 per month." | All three tiers (Pro, Elite, Ultimate) are "Get Pricing." Feature allocation is published in full, which turns out to be the interesting part. |
| OptiMantra | $99/mo first practitioner, $49 each additional, $25 per clinical staff member, clerical free; add-ons at $25 fax, $38 eRx with EPCS, $0.25 per claim, $75 two-way texting, $100 group texting. | Little. It is also a general integrative-medicine platform rather than an optical one, included here as a floor. |
| Compulink, My Vision Express, VisionWeb, Nextech, iCoreConnect, EyeCarePro, Frames Data, ABB Optical, Optosys, Rhinogram, Demandforce | — | All returned 404 or a redirect with no pricing page on 5 August 2026. |
| Solutionreach, Ocuco, First Insight (MaximEyes) | — | A pricing page that serves, containing no dollar figure. |
| Uprise, Optify, Williams Group (Practice Director), Optix | — | Blocked at the edge (Cloudflare) or failed to resolve. No conclusion drawn. |
Four things in that table are worth pulling out, and none of them is the headline price.
RevolutionEHR prices the thing the FTC regulates
Look again at the first row. RevolutionEHR's entry point of $319 a month is specifically for an "Exam or Optical-only" location. Do both — be a clinic with a dispensary — and the ladder starts at Core, $455. That is a 43 percent step, and what you are buying with it is the ability to be two businesses at once.
Which is precisely the fact §456.4(c) uses to decide whether you owe the federal government three years of signatures. The rule and the rate card have independently converged on the same structural feature of the trade: co-location is the thing that makes an eye care business complicated. One charges you $136 a month for it and the other charges you seventy-five hours a year. Neither of them is wrong about it being the hard part.
The company that pays the claim also sells you the software
Eyefinity is a VSP company. That is not a secret — the site switcher at the top of its own pricing page lists Eyefinity, VSPOnline, Marchon, Altair, Optics and Ventures, all in the same group. VSP Vision Care is the largest vision benefits plan in the United States. Marchon and Altair are frame companies.
So a Baltimore practice on Eyefinity Encompass is using software from the same corporate parent as the plan that adjudicates its claims and the frame lines on part of its board. The product reflects it, entirely openly and to the practice's benefit in most respects: Essential includes "Real-time VSP Eligibilities and Authorizations" and a "VSP Out-of-pocket Calculator." Nobody else can build those as well, because nobody else has the data.
I want to be fair here, because it is easy to make vertical integration sound sinister and it usually is not. If most of your chair time is VSP, Eyefinity is a genuinely strong answer and the eligibility integration alone can justify it. But it is worth being clear-eyed about what you are choosing. The tier step from Essential to Enhanced is $340 to $758, a 123 percent increase, and among the things it buys is Eyefinity PatientNavigator, which gives patients 24/7 self-service access to order statuses, receipts and — the word is on the page — prescriptions.
Federal law requires you to hand over the prescription and, since September 2024, to keep evidence that you did. Patient self-service access to that same prescription is a feature of the upper tier. That is not a scandal. It is just a very precise picture of where the market has put the line.
OD Link charges by how much money you make
OD Link's pricing page contains the most honest sentence we found in this sweep, and I mean that as a compliment:
"OD Link bases the monthly licensing and support fees upon your practice's annual gross income and whether you choose local or cloud hosting."
— OD Link pricing page, retrieved 5 August 2026
Seven tiers, from under $200,000 of annual gross income to over $2.7 million, at $150 to $300 a month for local hosting and $180 to $360 for managed cloud. Setup free. Data conversion free. Extra computers free, with the FileMaker licenses included. Customization at $70 an hour, or $120 if the founder does it himself — a named human being with an hourly rate, on the pricing page, in 2026.
Run the arithmetic on that ladder and something appears that we have not seen once in twenty-one of these teardowns.
| Tier | Practice annual gross income | Local hosting | Annual | Software as % of revenue at band floor |
|---|---|---|---|---|
| 1 | Under $200,000 | $150/mo | $1,800 | — |
| 2 | $200,000 – $500,000 | $175/mo | $2,100 | 1.05% |
| 3 | $500,000 – $900,000 | $200/mo | $2,400 | 0.48% |
| 4 | $900,000 – $1.4M | $225/mo | $2,700 | 0.30% |
| 5 | $1.4M – $2M | $250/mo | $3,000 | 0.21% |
| 6 | $2M – $2.7M | $275/mo | $3,300 | 0.17% |
| 7 | Over $2.7M | $300/mo | $3,600 | 0.13% |
Across the whole ladder the practice's revenue can grow by more than thirteen times while the software bill doubles. The meter is explicitly tied to the customer's success and is regressive — the bigger you get, the smaller a share of you it takes. Every other pricing model in this series does the opposite: per seat, per provider, per location, per claim, per message, all of them designed so that your growth is their revenue. OD Link has built the one meter in the category that gets cheaper as you win, published the whole thing, and put a phone number next to it.
I do not know whether OD Link is the right system for your practice — it runs on Claris FileMaker, which will be a dealbreaker for some people and a delight for others. But the pricing deserves to be pointed at.
Weave prices "your glasses are ready" as a vertical feature
The last one is smaller and more revealing than it looks. Weave publishes a full feature-by-tier grid, and buried in it are three lines flagged by specialty: "Insurance Verification (dental only)", "Practice Analytics (dental only)", "Vaccine Reminders (vet only)" and "Eyewear Ready Notifications (opto only)".
Telling a patient their glasses have arrived is not an advanced capability. It is the single most routine message an optical dispensary sends, several times a day, and it is the moment the patient comes back into the shop with their wallet. In a horizontal patient-communication platform it appears as a vertical feature flag alongside vaccine reminders — because from that platform's point of view, optometry is dentistry with a different notification template.
That is the whole thesis of this series in one row of a comparison grid. Horizontal platforms model your trade as a set of differences from some other trade. Most of the time that is fine and cheap and you should take it. Occasionally the difference is the business.
The Maryland tax line that runs through your own display case
Every trade in this series has one of these, and Maryland's optical version is unusually clean because it is visible by search rather than by argument.
Tax-General §11-211(b) is Maryland's list of exempt health and physical aids. It is a twenty-five clause enumeration, and it is specific to the point of comedy: braille slates, decoders for captioned television, telebraille machines, colostomy appliances, custom-made earmolds, crutches, wheelchairs, hospital beds, oxygen tents, wigs needed as a result of documented medical treatment, nicotine gum, softcup feeders, baby bottle nipples, clinical thermometers, pulse oximeters, blood pressure monitors, N95 respirators, and a nine-item diabetic care sublist running from glucose gels to lancet devices.
Clause (5) exempts an artificial eye. Clause (7) exempts corrective eyeglasses.
We read the whole article — the entire Tax-General code, every title, as published by the Maryland General Assembly. The word "eyeglass" appears exactly once in it, in clause (7). The phrase "contact lens" does not appear at all.
Maryland's tax code names an artificial eye and a pair of glasses. It has never once written down the words "contact lens."
Contact lenses are still exempt — they reach it through the general clauses at §11-211(a), which cover a sale of medicine and a sale of disposable medical supplies. In practice nobody in this trade is charging tax on a box of monthlies. But the difference in how the two products get there is not academic, because the general clauses have soft edges and the enumerated one does not, and an optical dispensary is a display case full of edge cases.
A pair of prescription sunglasses is corrective eyeglasses. A pair of non-prescription sunglasses on the same rack is not. Ready-made reading glasses correct vision and carry no prescription. Plano cosmetic contact lenses are FDA-regulated medical devices that require a prescription and correct nothing. Then there are cases, cords, cloths, spare nose pads, screws, sprays and solutions — and the frame sold on its own to a patient who is bringing lenses from somewhere else, which is a piece of plastic that corrects nothing at all until something is fitted into it.
None of that is expressible as a tax flag on a product record, which is how essentially every point-of-sale system in existence models it. It is a property of the line item within a specific job, and it means the way you itemize a $600 pair of glasses can change the tax on it. We are describing what the statute says rather than giving tax advice, and the sensible move is to settle your own positions with the Comptroller or your accountant. But the software point stands: the tax logic has to live in the order, not in the catalog. We have now found the same shape in pharmacies, florists, specialty food and here, and it is starting to look less like a Maryland quirk and more like a general truth about retail that sits next to a clinical license.
The e-commerce half: why your practice does not sell online
Here is the market as the FTC described it in 2024, all from the same rulemaking. The overall market for eyeglass frames and lenses is about $35.6 billion, up 18 percent from 2019. Online sales of frames and lenses nearly doubled between 2019 and 2022, from $1.82 billion to $3.24 billion. And yet:
"…roughly four out of five eyeglass purchases still occur in person… the average unit price for frames and lenses in 2022 was $360 from independent optical retailers and prescribers compared to just $183 from online eyewear sellers."
— FTC, 89 FR 60742
Online is about a fifth of the purchases and under a tenth of the dollars, at roughly half the ticket. Independent practices are not losing this market on price — they are winning on price per unit, by a factor of nearly two, which is what a fitted, adjusted, warranted pair of glasses is actually worth.
The Centers for Disease Control and Prevention put the number of contact lens wearers in the United States at about 45 million, and the FTC's own footnotes put eyeglass wearers at around 165 million. This is not a niche.
What they are losing is the transaction that happens at eleven at night from a sofa, and — much more painfully — the contact lens reorder that requires no clinical input at all. Every one of those is a customer whose repeat business you handed to somebody who then faxes you for permission to keep it.
So why doesn't the practice just sell them online? Because a normal shopping cart cannot lawfully complete the order, and the reason is worth spelling out, since it is the most specific piece of federal e-commerce regulation I have ever read.
"A seller shall provide a prominent method, and a clear and prominent disclosure of that method, for the patient to present the seller with a copy of the patient's prescription. Such method and the disclosure shall be provided prior to requesting a prescriber's contact information for verification of the prescription… The method to present the prescription shall be provided through (i) the same medium by which the order is placed, or (ii) electronic mail, text message, or file upload."
— 16 CFR §315.5(g)
The Federal Trade Commission has specified the order of the fields in your checkout. Upload comes before "who is your doctor," and it has to be prominent, and the disclosure of it has to be prominent, and it has to be in the same medium as the order. That is not a policy you configure. It is a checkout you build.
And that is the easy part. Behind it sits the rest of §315.5: a verification request carrying the seven fields at §315.5(b), including the date and time of the request and, if you are taking the Saturday option, a clear statement of the prescriber's Saturday hours. The eight-business-hour timer from the table above, running in the prescriber's time zone, skipping federal holidays. A hard stop if the prescriber responds under §315.5(e) that the prescription is inaccurate, expired or otherwise invalid. An absolute prohibition on altering the prescription under §315.5(f), including substituting a different manufacturer's name during verification. Three years of records under §315.5(h), specified separately for fax, email and telephone, with logs naming the individuals who participated in each call. Three more years for the Saturday-hours evidence under §315.5(i).
We checked. There is nothing native in Shopify or BigCommerce that models an order which is placed, held, and then completed or killed by a third party's silence on a business-hours clock in a foreign time zone. There is nothing in any of the optical practice platforms we surveyed either — they are built for the practice as prescriber, not as seller. What exists in the wild is bolt-ons and manual queues.
Which is a shame, because the shape is not exotic. It is an authorization-and-later-capture order with a state machine and a timer attached. We have built almost exactly that for two other trades in this series for reasons that had nothing to do with eye care.
What the online fifth is actually worth to you
It is worth putting a number on this rather than gesturing at it, so here is a model. It is a model, not a measurement, and the assumptions are all on the table.
Take a practice whose patients buy a thousand pairs of glasses a year — a plausible figure for an established two-doctor Baltimore practice with a dispensary, though you will know your own better than we do. Apply the FTC's own market split: four in five of those purchases happen in person, one in five online. Apply the FTC's own price points: $360 average unit price at independent optical retailers and prescribers, $183 at online sellers.
| Scenario | Pairs | Unit price | Revenue | Against a $6,000 Online Store build |
|---|---|---|---|---|
| Bought in the shop today | 800 | $360 | $288,000 | — |
| Bought online elsewhere today | 200 | $183 | $36,600 leaving | — |
| Recapture half of them, at online prices | 100 | $183 | $18,300/yr | 3.1× in year one, recurring |
| Recapture half of them, at your own prices | 100 | $360 | $36,000/yr | 6.0× in year one, recurring |
| Recapture a quarter, at online prices | 50 | $183 | $9,150/yr | 1.5× in year one, recurring |
Even the pessimistic row — recapture a quarter of the leakage, at the low online ticket, on a modest panel — pays for the build inside a year and then keeps paying. And that is eyeglasses only. It does not count contact lens reorders at all, which is the larger and far easier prize, because a reorder needs no fitting, no frame selection and no adjustment appointment. Those 45 million wearers are the most reorderable customers in retail: known product, known quantity, known cadence, and an annual clinical appointment you already own.
Which brings up the field that makes all of this work, and it is one no national seller has.
The expiry date is your best marketing asset
Contact lens prescriptions expire, and §315.6 says exactly how. Not before one year from the issue date, unless the prescriber's own medical judgment sets it earlier — in which case the specific reasons have to be documented in the medical record "with sufficient detail to allow for review by a qualified professional in the field," and kept three years. And §315.6(b)(3) adds a nice bit of internal consistency: no prescriber may set an expiration date shorter than the reexamination interval they themselves recommend.
Then §315.11 preempts anything a state might do about it:
"State and local laws and regulations that establish a prescription expiration date of less than one year or that restrict prescription release or require active verification are preempted."
— 16 CFR §315.11(a)
Maryland cannot shorten it, cannot restrict release, and cannot require that verification be active rather than passive. The clock stands as written, and it is federal all the way down.
What that leaves you with is a date. A per-patient, per-eye, legally operative date that you generated, that lives in your chart, and that determines the exact week a national seller's verification fax will land on your desk. National sellers do not have it — that is precisely why they have to ask you. A reorder prompt keyed to the real expiry date, sent from your practice before the wearer runs out, is the single cheapest piece of retention software in this trade, and it is unavailable to everyone competing with you for that reorder. Most practices instead send a generic annual recall on the anniversary of the last visit, which is a different date, usually the wrong one, and one that anybody could guess.
The inbound side nobody runs
There is a second product hiding here, and it is the one I would build first for most Baltimore practices, because it costs less and pays back faster.
Every verification request that arrives at your office is three things at once. It is a clock you did not start, which completes a competitor's sale if you ignore it. It is a record — §315.3(a)(3) requires that when someone acting for a patient requests a copy of the prescription, you provide it within forty business hours and note in the patient's record the name of the requester and the date and time it was provided. And it is, remarkably, a billable event:
"…an ophthalmologist or optometrist may charge an additional fee for verifying ophthalmic goods dispensed by another seller when the additional fee is imposed at the time the verification is performed."
— 16 CFR §456.2(c)
You may not charge to release a prescription. You may charge to verify goods dispensed by somebody else — but only if you bill it at the moment you do the work. That is an invoice triggered by an inbound fax from a competitor, which is not a workflow any practice management system in this category ships, and which is functionally unbillable unless the arrival of the request is a recorded event in a system rather than a piece of paper in a tray.
Note also the two different clocks in the same rule. Eight business hours to respond to a verification request before your silence completes the sale. Forty business hours — a full business week — to provide a copy to a designated requester. Both denominated in the same peculiar unit, both running on your calendar, both invisible to your software.
What custom actually costs
We publish our prices for the same reason we keep writing these teardowns: the number should not be the mystery.
| Package | Price | What it is, in an optical practice |
|---|---|---|
| Prototype Sprint | $3,500 | One week. Usually the verification desk: inbound requests from every channel landing in one timed queue, with the eight-hour and forty-hour clocks visible and a one-click logged response. Enough to find out whether the problem is as big as you think before anybody commits to a platform. |
| Online Store | from $6,000 | An optical and contact lens storefront on your own domain and merchant account: prescription upload offered before the prescriber's details are requested per §315.5(g), a compliant verification request, the business-hours timer, automatic hard stop on denial, reorder from the patient's own history, and Maryland tax applied per line item. |
| Custom App | from $12,000 | The patient-facing side: digital prescription delivery with recorded affirmative consent under §456.3, the retained evidence §456.4(a)(1)(ii) asks for, reorder reminders keyed to the expiry date on the prescription rather than to a generic recall interval, and frame and lens selection that survives being looked at on a phone. |
| Operations System | from $12,000 | The whole join: dispensing job tracking from order to lab to fitting, remake and warranty history, the three-year record archive both rules require, and the reporting that tells you what your optical half earns per exam rather than per month. |
Set those against the running cost of the alternative honestly. A practice on RevolutionEHR Advanced pays $7,920 a year; on Eyefinity Encompass Enhanced, $9,096. A one-week Prototype Sprint is less than six months of either, and it is yours. That is not an argument for replacing your EHR — see below, because it usually is not — but it is a real argument for owning the layer your EHR was never built to hold.
What we would actually build for a Baltimore practice
Concretely, in the order we would do it.
First, the verification desk. One inbox for every inbound verification request regardless of how it arrived, with the request parsed into the seven §315.5(b) fields, a visible countdown in business hours calculated properly against the federal holiday calendar, a one-click confirm or deny that writes the response and the record simultaneously, and — if you choose to charge for it — the §456.2(c) fee raised at the moment the verification is performed rather than never. This is a week of work and it is the highest-leverage thing in the building, because it converts a pile of paper that silently costs you reorders into a queue that a person can clear in ten minutes a day.
Second, the release record. Prescription handover as a first-class event: generated, delivered by the patient's chosen and recorded method, confirmation captured on the spot, filed automatically against a three-year retention clock, and reportable. This is the 1,031,250 hours of scanning that the FTC assumes you will do by hand, done by a computer instead, and it is the reason we think the compliance case for building here is stronger than in most trades.
Third, the store. Contact lens reorder for your existing patients first, because that is the highest-volume, lowest-risk, most defensible revenue in the practice and it is currently walking out the door to national sites. Then frames, then the accessories with the messy tax treatment. Own domain, own merchant account, no marketplace fee, and — this matters — the store reads the patient's real prescription and its real expiry date, which is the one thing no national seller can do and the entire reason they have to fax you.
Fourth, everything else, only if it earns it. We would leave your EHR alone. Scheduling, charting, claims and eligibility are solved problems with real certification behind them, and rebuilding them is how a sensible project becomes a two-year one.
Build, buy, or leave it alone
The honest summary of a long article. Most practices should keep what they have and add one thing.
- Keep buying your EHR and practice management. RevolutionEHR, Eyefinity, Compulink, Crystal PM and OD Link all do real work, carry ONC certification and vision plan integrations, and are cheap relative to what they handle. If yours works, it works.
- Keep buying patient messaging if the volume justifies it. Weave and Solutionreach are fine at what they do, and "your glasses are ready" being a feature flag is annoying rather than disqualifying.
- Build the verification desk if you receive more than a handful of requests a week, or if you genuinely do not know how many you receive — which, in our experience, is the more common and more expensive situation.
- Build the store if contact lenses are a meaningful part of your revenue and you are watching reorders leave. The compliance layer is the barrier and the barrier is buildable.
- Do not build a chart, a claims engine, or anything that needs certification. Rent those forever and be glad.
The test we apply is simple and it has not failed us yet: rent anything where you are one of ten thousand businesses with the same problem, and build the thing that is true about your trade and false about the trade next door. In optical, the thing that is true and unshared is that your sales are gated by a clock in someone else's office. Nobody is going to build that for you, because outside this trade nobody needs it.
Who we are
We are founderandai, a small studio in Baltimore. We are ex-startup founders who got tired of watching good local businesses pay agency rates for software that did not fit and subscription rates for software that fitted less. Everything is fixed price and fixed date, agreed before we start. You talk to the people writing the code. You own every line, every repository, every key and every account when it ships.
We have now written twenty-one of these teardowns — restaurants, trades, warehousing, healthcare, property, law, nonprofits, fitness, auto repair, childcare, veterinary, salons, funeral homes, breweries, florists, dental, pharmacy, hotels, accounting, specialty food and now optical — and the pattern holds every time. The subscription is rarely the problem. The problem is the one number, or the one clock, that your trade runs on and that no national platform has ever been asked to model.
If you run an optometry practice or an optical shop in Baltimore, Towson, Columbia, Annapolis or anywhere in Maryland, bring us a month of verification requests and your last twelve months of contact lens revenue. We will tell you what we would build, what you should keep renting, and the fixed price that goes with it. If the answer is that you should change nothing, we will tell you that too — we have said it before and the call is still free.