Smart Specs Check

Methodology

This page is the contract. It says where every number comes from, what the checker does with it, what it will never claim, and how the data is kept honest after launch. Written 6 September 2026; the code is open to inspection in your browser at /assets/checker.js.

Sources of truth, in order of authority

  1. Manufacturer help or specification page (confidence "manufacturer").
  2. A partner the manufacturer names, such as Lensology for RayNeo, Xreal and Vuzix, or Even Realities' optician partners (confidence "partner").
  3. A named optical retailer's own page, such as Vision Express, Apollo or Générale d'Optique (confidence "retailer").
  4. Everything else, including reviews, forums and third-party lens labs, is "secondary": it is never encoded as a numeric limit, only recorded in the notes and shown as a caveat.

A number reaches the checker only from tiers 1 to 3. Every route carries its source URL and the date it was last read. The full list is on the sources page, and every model page shows the confidence tier per route.

What the checker does with your numbers

  1. Normalise. A missing cylinder is treated as 0. A plus-cylinder prescription is transposed to minus-cylinder form (sphere plus cylinder, cylinder sign flipped, axis rotated by 90°) before any comparison, and the converted line is shown to you. A +1.00 / +2.00 × 90 card becomes +3.00 / −2.00 × 180, which fails a +2.00 cap that the untransposed sphere would pass.
  2. Apply the maker's own power rule. Some makers publish a total power limit (sphere plus cylinder): Meta for its whole family, Snap, and Frame of Choice for Xreal inserts. Others publish sphere and cylinder separately: Even, Viture, Halliday, Rokid, Solos, RayNeo. A few publish no rule, in which case the strongest meridian is used and the result is flagged. Rules are never compared across makers.
  3. Evaluate every route for your country. A route is one way of getting corrected vision: lenses glazed into the frame, an insert behind the optics, a clip-on frame, or a built-in dial. Each is tested independently against its own published sphere, cylinder, reading-addition, prism and PD limits, and its lens-index tiers where the maker publishes them. Routes restricted to other countries are skipped, not failed.
  4. Tier the model from the best passing route, using the strictest official route first. Wider official routes are shown as "also within range via".
  5. Rank by tier, then by whether the model is on sale in your country, then by list price.

Result tiers

TierMeaning
Within published rangeAn official route that glazes lenses into the frame (or a clip-on frame) covers both eyes.
Within range via partnerOnly an unofficial reglazer or lab publishes a covering range. The partner is named.
Within range via insertA prescription insert behind the optics covers you; the frame itself is not corrective.
Covered by built-in dialThe built-in diopter dials cover your sphere. Dials correct short-sight only and never astigmatism.
UnverifiedWould be "within published range", but the source has not been re-read for more than 90 days.
Range not publishedNo route for your country publishes a numeric limit. We do not guess; ask the vendor with your exact prescription.
No prescription route in this countryEvery published route is restricted to other countries. The card says what the range would mean where the product is sold.
Outside published rangeEvery usable route fails, and the reason names the eye. For display and tethered glasses that are out by 2.00 D or less on power alone, the card adds "contacts route": contact lenses plus plano lenses are the community workaround, and vertex distance matters above ±4.00.

One eye outside a range fails the whole route for that model; the two eyes are never averaged. Reading additions on a single-vision-only display route produce a downgrade note ("wear for distance, keep your readers"), never a failure, because the virtual image sits at roughly 4 m. PD produces a warning only. Prism fails every route that publishes no prism limit.

Freshness policy

What this site says, and what it never says

The checker compares numbers against a published range. It is not a sale, a dispense or a sight test. To keep it that way, the site only ever says "within the manufacturer's published range", "outside the manufacturer's published range", "the maker states" or "check with a dispensing optician". It never says a pair is suitable for a named person, never recommends a lens index, never measures or estimates a PD, and never recommends a lens type for you.

This tool checks whether your prescription falls inside the range each manufacturer publishes. It is not optical advice and does not replace a dispensing optician. UK law requires that spectacles for anyone under 16, or anyone registered sight impaired or severely sight impaired, are dispensed by or under the supervision of a registered practitioner, and that prescriptions are less than two years old.

Privacy architecture

Full wording is on the privacy page.

Agent tools (WebMCP)

Every checker, model, availability and UK page registers read-only tools under the draft WebMCP specification so that an assistant browsing on your behalf can run the same check without leaving the page. The tools are check_prescription, get_model, get_availability, list_models, explain_prescription_terms and, on long pages, show_section. All carry readOnlyHint: true; none follows a link, submits, saves or emails. check_prescription runs the same in-browser code as the page and its answer is coarse (model, tier, reason, sale status): it never repeats the numbers entered.

Status as of 6 September 2026: the API is in a Chrome origin trial (versions 149 to 156) and Microsoft Edge has its own trial; the ChatGPT desktop browser can call these tools; Gemini in Chrome and Claude cannot yet. The tools do nothing for search visibility and are not crawled. Developers can inspect them in any browser console via window.__agentTools.

If you use an AI assistant to run the check, your assistant's provider may retain what you type. This site never receives it.

Update workflow

Weekly, by hand (about two hours): re-verify the six hero models across GB, US, DE and FR; triage anything the automated diffs flagged; change a range only on a manufacturer or named-partner source, a market status only on a manufacturer or retailer page. Monthly: one email round to Lensology and one UK optician partner to confirm the cylinder and reading-addition limits that no page publishes, recorded with the date. Quarterly: refresh this page; set discontinued models to "discontinued" and keep their pages.

Nightly, automated (planned): fetch every source URL, strip to text and diff; extract dioptre-shaped numbers near the words sphere, cylinder, total power, add; write changes to a review queue. Retailer feeds moving 5% or more create a price entry in the changelog. News feeds per model go to the review queue only and never change a status on their own.

Never automated: writing a new sphere or cylinder number into a limit, changing a market to "on sale", or marking a route as official.

Every change appears in the changelog with how it was detected.

Test cases the code must pass

These run before every build. If one fails, the site does not publish.

CaseInputExpected
Meta Ray-Ban Display, country restrictionR −3.00/−0.75, L −2.75/−1.00, GBGB: no prescription route (paused). US: within range, total power −3.75 in each eye
Total-power ruleR −3.50/−1.00Display: outside (total −4.50, contacts route). Ray-Ban Meta Gen 2: within
Plus-cylinder transpositionR +1.00/+2.00 × 90Read as +3.00/−2.00 × 180; outside Halliday G2 (+2.00 cap); within Even G2
Dial vs insertR −2.00/−1.00, Viture Luma ProDial fails on astigmatism; insert passes; tier "via insert"
Hyperopia gapR +1.00, RayNeo Air 3sOutside published range (short-sight only)
Reading addition on a displayR −2.00, ADD +2.00, Display (US)Within range, with the single-vision downgrade note
One eye outR −5.00, L −13.00, Even G2Outside; reason says "left eye −13.00 outside −12.00"; eyes never averaged
Stale sourceRoute last verified 100 days agoTier "unverified"

Two more are enforced: the agent tool's answer must not contain any number that was entered, and the built site must not contain an affiliate link without a "sponsored" attribute and an adjacent "Ad" label, an Amazon link next to a price, or a prescription field name in any URL.

Known conflicts we are still resolving

These are shown on the relevant model pages as caveats rather than hidden. Until resolved, the checker uses the narrowest official figure per channel and shows the wider one as "also possible via".

Two decisions taken in the build that the research left open: (1) a model whose only published routes give no numeric range is reported as "range not published" rather than as a pass or a fail; (2) the "contacts route" is shown as a note on "outside published range", not as a separate tier, so a display model that is out by 0.50 D reads as outside its range first and as a possible contacts workaround second.

How the site is funded

Some retailer links are affiliate links, each labelled "Ad" next to the link and carrying a "sponsored" attribute. Commission never changes a range, a status, or the order of results; opticians with no affiliate programme are listed on the same footing. Amazon prices are never shown, because Amazon only permits live prices through an API this site does not yet qualify for. Full details on the affiliate disclosure page.

Corrections

If a manufacturer page says something different from this site, the manufacturer page wins and we want to know. Email hello@smartspecscheck.co.uk with the URL. Corrections are logged in the changelog as "user_tip" once verified.