Internal · Visual Life engine
Rule review
Unresolved gaps — need a STOTTS dispensing decision
The Nikon guide does not settle these. The engine names a product family only and flags professional validation until each is decided.
- ppl_zone_roles — The guide gives no distance / intermediate / near zone-performance copy for any progressive design (pages 4-9 only carry unlabelled illustration figures). What distance/intermediate/near roles should the engine assign to each progressive, and on what basis?
Why it matters: All seven Role fields on the six progressive records are 'unknown'; without a Stotts rule the engine cannot rank progressives against a lifestyle profile. - ppl_power_vs_w — When should Presio Power Z be preferred over Presio W? The guide positions Power Z for "a reliable and comfortable lens with a wider field of vision" and W for "Progressive lens wearers upgrading from standard solutions", but gives no prescription, lifestyle or price rule.
Why it matters: The two designs share identical Rx ranges, coatings and Viewfit options; only star rating (4 vs 3.5) and the Z badge differ. - ppl_ultimate_vs_presio_ultimate — When is SeeMax Ultimate Z justified over Presio Ultimate Z? Both share one overview card; the only printed differences are the "+" after five stars (undefined), compulsory Frame Shape and Boxing and Viewfit included as standard on SeeMax Ultimate Z.
Why it matters: These are presumably the two highest-priced progressives; the engine needs a trigger (frame shape, prescription, previous-design history, budget) to escalate. - ppl_balance_first_time — Presio Balance is "Recommended for: First time progressive lens wearers". Should the engine treat first-time status as a hard route to Presio Balance, or as one factor among others (budget, prescription strength, lifestyle)?
Why it matters: Determines whether first-time presbyopes are ever shown Presio Power Z / Ultimate designs. - ppl_move2_when — Move 2 is "Introductory progressive lens ... trusted quality at accessible value" with no Viewfit, narrower Rx (cyl 4.00, add from +0.75) and 14mm corridor / 18mm min fitting height only. When should the engine offer Move 2 rather than Presio Balance?
Why it matters: Move 2 has the most restrictive fitting and Rx envelope; offering it wrongly produces an unorderable recommendation. - ppl_corridor_selection — Page 7 prints corridor lengths 10mm / 12mm / 14mm and minimum fitting heights 13mm / 15mm / 17mm as cells spanning all five product columns; no product-to-corridor mapping and no frame-depth rule is stated. What corridor should the engine assume per frame depth / fitting height?
Why it matters: Corridor is a Compulsory ordering parameter for every progressive (p54); the engine must either pick one or leave it to the dispenser. - ppl_z_series_definition — Which products constitute the "Z Series" for the footnote "^Extended range to -18.00, available for Z Series products only" (1.74 standard base)? Presio Power Z carries a Z badge but Insights / Z-Contrast are listed only for SeeMax Ultimate Z and Presio Ultimate Z.
Why it matters: Affects whether high-myope (-16.00 to -18.00) prescriptions can be routed to Presio Power Z. - ppl_1_74_asterisk — Index 1.74 carries an asterisk in every Rx-range table (p6, p12, p14, p15, p32, p34) but the only printed asterisk footnote names 1.53. What restriction, if any, applies to 1.74?
Why it matters: The engine may need to suppress 1.74 for some treatments; the guide does not say which. - ppl_pure_blue_move2_matrix_conflict — Move 2 (p8) ticks Pure Blue UV with Ikon, Hard Coat and Uncoated, whereas every other matrix (p7, p13, p16, p33, p35) shows Pure Blue UV unavailable with Ikon and Hard Coat. Is the Move 2 row correct?
Why it matters: Determines the coating choices the engine may offer on Move 2 Pure Blue UV. - ppl_transitions_1_53_colours — The 1.53 Transitions row has a blank Available Colours cell on every matrix (footnote 1: not available in Grey-Green). Which colours are actually available at 1.53?
Why it matters: Needed to offer Transitions on 1.53 Trivex-class lenses without guessing colours. - ppl_color_touch_rx_range — Transitions Color Touch is not named in any Rx-range table heading. Which prescription range applies to Color Touch on each design?
Why it matters: Without this the engine cannot validate a Color Touch order against sphere/cyl limits. - sv_zone_roles — The single vision RX designs (NL SP, NL AS Z, SeeMax Infinite Z) carry only "IDEAL FOR: Enhanced / Premium visual correction" and "Wearers who command the highest visual performance". What distance / driving / digital roles should the engine assign to single vision designs?
Why it matters: All roles on these records are 'unknown'; the engine needs a Stotts rule to recommend single vision at all. - sv_rx_vs_stock — When should the engine route a single vision patient to a stock lens (Myopsee, NL AS stock, NL SP stock, Vida) rather than an RX design (NL SP, NL AS Z, SeeMax Infinite Z)? The overview gives identical "Recommended for" wording to AS (Stock) and AS Z (RX), and to SP (Stock) and SP (RX).
Why it matters: Stock lenses have a hard power/cyl/diameter envelope (cyl max +2.00) and no Viewfit; RX designs have wider ranges but different lead times and cost. - sv_tiering — Page 11 lays NL SP, NL AS Z and SeeMax Infinite Z out as an ascending staircase but states no ranking in words. Is the engine allowed to treat NL SP < NL AS Z < SeeMax Infinite Z as a good/better/best ladder, and what triggers each step?
Why it matters: Determines upsell logic for single vision. - sv_infinite_sensitivity — SeeMax Infinite Z is "Recommended for: Wearers sensitive to aberrations". How does the engine detect aberration sensitivity from questionnaire answers, and what Sensitivity parameter value (-5 to +5, default 0) should be recorded?
Why it matters: Sensitivity parameter is an ordering value; the engine either leaves the default or needs a rule. - sv_myopsee_when — Myopsee stock is "Recommended for: Myopes seeking the best aesthetics and superior visual performance" and is minus-power only. At what minus power / index should Myopsee be preferred over NL AS stock (which has an identical 1.74 grid)?
Why it matters: Both stock ranges overlap; the engine needs a tie-break. - sv_vida_when — Vida is "Introductory single vision lenses ... trusted quality at accessible value" (one star). Should Vida ever be recommended by the engine, or is it a dispenser-only / budget fallback?
Why it matters: Affects the lowest tier offered on the website. - sv_vida_kids_age — The Vida Kids charts print no age wording, and HC / HCC are not expanded anywhere. Who is Vida Kids for, and what do HC and HCC mean?
Why it matters: Needed before the engine can present a children's option or explain its coating. - sv_viewfit_standard_or_optional — Viewfit is stated as "included as standard" only for SeeMax Infinite Z and SeeMax Relaxsee Z (and SeeMax Ultimate Z, Sports). For NL SP, NL AS Z, Relaxsee Z and the Presio designs the table says "Available / Optional with Viewfit version". Is the Viewfit version a chargeable upgrade at Stotts, and when should the engine recommend it?
Why it matters: Changes the price and the measurement workflow (faceform, pantoscopic tilt, BVD) the engine proposes. - sv_asymmetric_z_contrast_products — Page 17 (Asymmetric Z-Contrast Technology, "Z SERIES SINGLE VISION") names no product. Which single vision designs may the engine describe as having Asymmetric Z-Contrast Technology?
Why it matters: Prevents attributing a marketing claim to NL SP (no Z suffix) or others incorrectly. - relaxsee_vs_seemax_relaxsee — Relaxsee Z vs SeeMax Relaxsee Z: the guide differs only in "eye strain relief" vs "tailor-made eye strain relief", "Optimised" vs "Personalised", and the Frame shape optimisation icon. Ranges, coatings and fitting are identical. What selects SeeMax Relaxsee Z?
Why it matters: The engine needs an explicit escalation trigger (frame shape, budget, digital hours) or it will always pick the cheaper one. - relaxsee_design_option_rule — Relaxsee design options 050 / 075 / 100 / 125 are printed with age bands (20~30, 30~40, 40~45, 45~50) and symptom descriptors on image tiles. The guide does not say the age bands are binding. Should the engine choose the option by age, by symptom severity, by add, or leave it to the optometrist?
Why it matters: Design option is an ordering value; mis-selection changes the near support power. - relaxsee_vs_progressive_threshold — At what age / add / symptom level does the engine stop recommending Relaxsee (max Full Add 1.25D, age band to 50) and route to a progressive or E-Life Pro instead?
Why it matters: Prevents recommending an enhanced single vision lens to a fully presbyopic patient. - relaxsee_distance_role — Relaxsee designs are positioned for "digital device users"; the guide is silent on distance, driving and outdoor use. Can Relaxsee be presented as an all-day / driving lens?
Why it matters: distance_role and driving_role are 'unknown' on both Relaxsee records. - elp_1m_vs_2m_threshold — E-Life Pro 1M vs 2M threshold in metres: the guide gives "1M guaranteed at eye-point" / "FOR EASY FOCUS IN YOUR IMMEDIATE ENVIRONMENT" vs "2M guaranteed at eye-point" / "FOR FLEXIBILITY TO MOVE AROUND WHILST MULTI-TASKING IN AN INDOOR SPACE" and star profiles (2/4/3 vs 3/3/3). What working-distance answer or room-size answer selects 1M vs 2M?
Why it matters: The two designs share every Rx, fitting and coating fact; only the positioning line and eye-point distance differ. - elp_read_vs_1m — E-Life Pro Read (~0.7M at eye-point, depending on ADD; indoor distance 0 stars) vs 1M: when is a Read design justified instead of 1M? Is Read limited to desk/craft work only?
Why it matters: Read has a different fitting method (bifocal-style, lower lid) and 30mm frame depth; mis-selection is costly. - elp_read_add_type — E-Life Pro Read ordering types are "recommended for" Low-Add +1.50 and +1.75; Mid-Add +2.00 and +2.25; High-Add +2.50 and above. Is there a minimum ADD (below +1.50) for Read, and should the engine take the near add straight from the prescription?
Why it matters: Adds below +1.50 are not covered by any printed band. - elp_driving_scope — "Lens design not suitable for driving" is printed beneath the SeeCoat Next Drive column with a red arrow (p33, p35). The catalogue treats it as a statement about the whole E-Life Pro design. Does Stotts read it the same way, and must the engine also block SeeCoat Next Drive on E-Life Pro?
Why it matters: driving_role is set to 'excluded' on all three E-Life Pro records on this reading. - elp_vs_progressive — When should E-Life Pro be offered as a second pair alongside a progressive, versus as the primary pair? The overview says "Presbyopes and existing progressive lens wearers to offer a more comfortable vision and natural posture".
Why it matters: Determines whether E-Life Pro appears as an add-on recommendation or a primary product. - elp_fitting_height_add_boundary — E-Life Pro 1M / 2M minimum fitting height is 16mm for ">= 1.75 ADD" and 19mm for "< 1.75 ADD"; frame depth 25mm vs 28mm. Confirm the boundary reading for an add of exactly +1.75 and how the engine should validate frame depth from a questionnaire.
Why it matters: Frame-depth validation prevents an unorderable recommendation. - sports_zone_variant_by_sport — Which SeeMax Sports zone variant (1: distance; 2: distance/intermediate; 3: distance/intermediate/near) for which sport? The guide names no sports in text (page 36 photographs show cycling, tennis, skiing, golf and climbing only).
Why it matters: The engine needs a sport-to-variant map (e.g. cycling with a bike computer, golf scorecard) that the guide does not provide. - sports_when_vs_everyday — When should the engine recommend a SeeMax Sports lens at all versus a Polarised / XTRActive everyday lens in a standard design? The guide positions Sports for "Seasoned professionals to new athletes looking for high precision, enhanced contrast or improved aesthetics for sports."
Why it matters: Sports lenses have no Super Fast Track / Fast Track, SeeCoat Next only, and frame/edge dependencies. - sports_2_hi_threshold — SeeMax Sports 2 vs 2 HI: "SMS 2 for ≤ +1.75 / SMS 2 Hi for ≥ +2.00". The page does not say what quantity the thresholds refer to (presumably ADD) and nothing covers +1.76 to +1.99. Confirm the rule.
Why it matters: Design option is an ordering value. - sports_tint_by_sport — Performance Tints (PO Orange, PP Pink, PG Green, PY Yellow), Performance Polarised (PBG, PPG) and mirrors carry no "ideal for" copy. Which tint / polarised / mirror should the engine propose for which sport or light condition?
Why it matters: Colour recommendation is a large part of a sports-lens conversation; the guide only lists availability. - sports_1_60_performance_polarised_only — At 1.60 the only SeeMax Sports light option is Performance Polarised (everything else N/A). Should the engine ever select 1.60 for Sports, and when?
Why it matters: Avoids offering a tint/Transitions option that does not exist at 1.60. - sports_92_percent_tint — Sun Tint 92% solid is "not available with mirrors, not allowed for driving". Should the engine ever offer 92% and, if so, with what warning?
Why it matters: Compliance / safety constraint on a user-facing recommendation. - coat_drive_vs_next — When to add SeeCoat Next Drive vs standard SeeCoat Next? The guide says Drive is "IDEAL FOR: Those who experience glare in dim light and dark conditions" and "ENHANCED DRIVING PERFORMANCE"; SeeCoat Next is "stunning clarity and unparalleled durability". What questionnaire signal (night driving hours, glare complaint) triggers Drive?
Why it matters: Drive is a paid upgrade and is excluded from the Priority Service; the engine needs a rule. - coat_reveal_when — SeeCoat Next Reveal is only available on Pure Blue UV lenses. When should the engine escalate to Reveal ("superior contrast and colours even in dim light") over SeeCoat Next Blue or Drive, given it forces the Pure Blue UV material and a Priority / Standard lead time?
Why it matters: Reveal changes material, price and despatch service simultaneously. - coat_blue_vs_pure_blue_uv — SeeCoat Next Blue ("Digital devices users") and Pure Blue UV material ("superior protection over a clear lens") both filter blue light 380-500nm. When should the engine recommend the coating, the material, or both?
Why it matters: Avoids double-charging or contradictory advice for digital users. - coat_default_coating — Which coating is Stotts' default (SeeCoat Next, Ikon, Hard Coat)? Ikon and Hard Coat have no description in the guide.
Why it matters: Every recommendation needs a coating; the guide gives no default. - coat_hard_coat_meaning — The guide does not say whether "Hard Coat" (and stock "HC" / "HCC") means a hard coat alone or in combination with an anti-reflection layer. Confirm before presenting it to patients.
Why it matters: Affects the plain-language description in the result page. - coat_uv_claim_wording — Footnote 3 (p51) limits "100% front-surface UV protection" for SeeCoat Next / Drive to "Clear 1.53 and above". Can the engine make a UV claim for 1.50 or photochromic lenses with these coatings?
Why it matters: Prevents an unsubstantiated UV claim on the result page. - light_transitions_generation — The availability tables (p48-49) never name GEN S; only the p47 marketing page does. May the engine describe every "Transitions" order as GEN S, and are Amethyst/Sapphire/Amber/Emerald/Ruby standard Transitions, Color Touch, or both?
Why it matters: The ordering panel lists the five style colours under both headings. - light_color_touch_advice — Transitions Color Touch "lenses are not suitable for driving in twilight or at night" and "May not be suitable for low light conditions." Should the engine hard-block Color Touch for any driver, or show a warning?
Why it matters: Compliance-sensitive: a hard exclusion vs a soft warning changes the recommendation logic. - light_xtractive_vs_gen_s — When should the engine recommend Transitions XTRActive ("very light sensitive or frequently exposed to bright light", "the darkest in the car") over GEN S ("perfect everyday lens")? Note XTRActive is Standard-service only (6 working days) and excluded from fast tracks.
Why it matters: Photochromic tier selection needs a light-sensitivity / driving threshold. - light_polarised_vs_xtractive_polarized — When should a fixed Polarised lens be recommended over Transitions XTRActive Polarized ("frequently exposed to bright light and reflective glare"; "polarisation efficiency of 30% behind the windshield, which is not classified as being polarised")?
Why it matters: Both target glare; cost, indoor use and driving behaviour differ. - light_polarised_colours_1_50_only — Polarised Colours are 1.50 only (and Sun Tints / Cosmetic Tints vary by index). Should the engine down-select index to 1.50 to satisfy a colour preference, or drop the colour to keep a thinner index?
Why it matters: Index vs colour trade-off needs a Stotts priority rule. - light_mirror_lead_time — All mirrors require a 14 working-day lead time and are Standard-service only. Should mirrors be offered on the website result at all, or only flagged as a dispenser option?
Why it matters: Lead time may conflict with the patient promise on the site. - light_second_pair_logic — The guide has no concept of first pair / second pair. When should the engine present sunwear (polarised, tints, mirrors) as a separate second pair versus a photochromic single pair?
Why it matters: Fundamental to the recommendation output structure. - index_selection_rule — The guide lists available indices (1.50 / 1.53 / 1.60 / 1.67 / 1.74) and Rx ranges per index but no rule for choosing an index from a prescription. What sphere/cyl thresholds should the engine use to recommend each index?
Why it matters: Index drives price, thickness and treatment availability (e.g. Pure Blue UV not at 1.53; Polarised Colours 1.50 only). - index_1_53_use — 1.53 is available on most RX designs but is not available with XTRActive Polarized, Pure Blue UV, SeeCoat Next Reveal or SeeCoat Next Blue. When (if ever) should the engine recommend 1.53?
Why it matters: Prevents proposing 1.53 with an incompatible treatment. - base_curve_selection — Base curve 1-8 is selectable but only Standard, Base 4 and Base 7 ranges are tabulated, and "Base curve availability depends on prescription, design, index, lens treatment and diameter". Should the engine ever propose a non-standard base curve (e.g. for wrap frames), or leave it to the dispenser?
Why it matters: Base 4 / Base 7 ranges are much narrower than Standard. - prism_over_3 — Prism over 3 (unit not printed) must be checked with Customer Service and is Standard-service only. How should the engine treat prescriptions with prism?
Why it matters: Prism is a hard ordering constraint (max 3 in any meridian or 5 combined). - fitting_min_heights_from_charts — The DI-charts (p57-61) print no numeric minimum fitting heights; the only printed minimums are p7 (13/15/17mm), p8 (18mm), p13 (recommended 19mm), p33 (15mm lower lid; 30mm frame depth), p35 (16/19mm; 25/28mm) and p55 (17mm Sports 2/3). Does Stotts want frame-depth validation in the engine, and using which of these figures?
Why it matters: Frame-depth validation determines which designs a chosen frame can take. - fitting_measurement_workflow — Viewfit parameters default to 0° / 5° / 12mm / 2.5mm if no value is entered. Will Stotts measure position-of-wear values in practice, or should the engine assume defaults?
Why it matters: Changes what the engine promises about personalisation. - pricing_tiers — The guide contains no lens prices (only despatch-service surcharges). What are Stotts' retail tiers per design / index / coating / light option?
Why it matters: The engine cannot present good/better/best or budget filtering without prices. - lead_time_promise — Despatch services (Super Fast Track £17.50, Fast Track £7.50, Priority £7.50, Standard, Sports Specialist £15) are per-lens Nikon charges. Which services does Stotts offer, at what price, and should lead time influence the recommendation?
Why it matters: Lead-time constraints (XTRActive 6 days, Color Touch 9 days, mirrors 14 days) may need surfacing to the patient. - document_edition — The cover says "DISPENSING GUIDE / March 2026" but the printed version string is NOUK-DG-V11-27/04/2026 (April 2026). Confirm this is the current edition Stotts dispenses from.
Why it matters: Catalogue version string is stamped on every claim. - ppl_star_plus_meaning — The "+" after five stars on SEEMAX ULTIMATE (p2) is not explained anywhere. Should the engine present SeeMax Ultimate Z as above five stars?
Why it matters: Star ratings are the only comparative performance signal the guide prints. - P_RELAXSEE_TIER — REQUIRES_STOTTS_RULE — SeeMax Relaxsee Z adds frame shape optimisation and "personalised vision"; when STOTTS prefers it is not settled by the guide.
- P_SV_TIER — REQUIRES_STOTTS_RULE — tier selection depends on prescription, frame and expectation; not settled online.
- P_PPL_TIER — REQUIRES_STOTTS_RULE — when Presio W / Power Z / Ultimate Z / SeeMax Ultimate Z is justified is a STOTTS dispensing decision (adaptation history, sensitivity, complexity, Rx, frame). Public engine names the family only.
- P_SPORTS_STOTTS — REQUIRES_STOTTS_RULE — sport-specific selection and frame wrap are settled in practice.
compromise layer (8)
| Rule | Trigger | Output | Origin | Source | Status |
|---|---|---|---|---|---|
C_THRESHOLDS | Every domain | SIGNIFICANT needs meaningful exposure AND at least one of: direct difficulty, compensating behaviour, strong current-lens mismatch; STRONG needs multiple independent signals. High exposure alone = potential opportunity (LOW), never a compromise. Brief §59, §94, §166–167. | BUSINESS RULE | — | SUPPORTED |
C_WORK“Your everyday lenses are being asked to handle a visual environment that dominates your working week.” | Screens active; hours/day; monitors; screen behaviours (chin lift, head move/turn, lean, find-the-bit, moved monitor, text size); screen/intermediate difficulty; comfort-vs-clarity; current lens category | WORK domain assessment with exposure hours/year (hours × days × 48 weeks) | BUSINESS RULE | — | NEEDS REVIEW |
C_NEAR | Near tasks; hours; take-off/look-over/swap behaviours; small text / dim reading difficulty; readers or separate pairs | NEAR domain assessment | BUSINESS RULE | — | NEEDS REVIEW |
C_NIGHT | Drives after dark; headlights / rain reflections / dim light; night avoidance | NIGHT_LOW_LIGHT domain assessment; avoidance weighs heavily (§139) | BUSINESS RULE | — | NEEDS REVIEW |
C_DRIVING | Driving frequency; road-sign / distance clarity; dashboard | DRIVING (daytime clarity) assessment — distance clarity issues route to professional assessment, not a product | BUSINESS RULE | — | NEEDS REVIEW |
C_OUTDOORS | Outdoor exposure; bright light discomfort; squinting / non-Rx sunglasses; indoor/outdoor transitions; desire for reactive lenses | OUTDOORS_LIGHT assessment | BUSINESS RULE | — | NEEDS REVIEW |
C_SPORT | Sport weekly/monthly AND specific visual demands | SPORT assessment — occasional play never triggers sport lenses (§107) | BUSINESS RULE | — | NEEDS REVIEW |
C_EVERYDAY | Distance / peripheral / between-distances / adaptation / weight difficulty; low satisfaction; one pair covering many distances; old glasses + changed life | EVERYDAY assessment | BUSINESS RULE | — | NEEDS REVIEW |
requirement layer (12)
| Rule | Trigger | Output | Origin | Source | Status |
|---|---|---|---|---|---|
R_WORK_INTERMEDIATE | WORK ≥ MODERATE with behaviour or difficulty evidence | SUSTAINED_INTERMEDIATE (REQUIRED), WIDE_INTERMEDIATE (PREFERRED if multi-monitor/head turning), GENERAL_NEAR support (PREFERRED) | STOTTS RULE | — | NEEDS REVIEW |
R_WORK_MOBILITY | WORK requirement AND (furthest regular distance ≥ 2m OR moves around room/building OR presents in meeting rooms) | INDOOR_MOBILITY (REQUIRED) | STOTTS RULE | — | NEEDS REVIEW |
R_NEAR_SUSTAINED | NEAR ≥ MODERATE with detailed/sustained close work, staying put | SUSTAINED_NEAR (REQUIRED) | STOTTS RULE | — | NEEDS REVIEW |
R_DIGITAL_SV | Single-vision or no correction; heavy digital use; near fatigue (tired eyes / lean in / bring closer) or screen difficulty; not a presbyopic lens wearer | DIGITAL_NEAR_SUPPORT (PREFERRED) Age band is one signal only (§62). Not every screen user needs Relaxsee (§14). | STOTTS RULE | — | NEEDS REVIEW |
R_PPL_FLEX | Varifocal wearer; ≥4 distinct distances or between-distances / peripheral difficulty / head-move & find-the-bit behaviours | MULTI_DISTANCE_FLEXIBILITY (PREFERRED), HIGH_PERSONALISATION_VALUE (PREFERRED) | STOTTS RULE | — | NEEDS REVIEW |
R_POW“Your prescription is only part of the story. How the finished glasses sit in front of your eyes can also be used in the design of certain lenses.” | Peripheral / adaptation difficulty, or high-complexity varifocal life | POSITION_OF_WEAR_VALUE (PREFERRED), FRAME_SHAPE_OPTIMISATION_VALUE (OPTIONAL) | STOTTS RULE | p53 (Fitting parameters) | NEEDS REVIEW |
R_NIGHT_GLARE | Headlights / rain reflections / dim light while driving, or night driving avoidance | LOW_LIGHT_GLARE (REQUIRED if avoidance or headlights; else PREFERRED), DRIVING_GLARE | STOTTS RULE | — | NEEDS REVIEW |
R_BRIGHT | Bright sunlight uncomfortable / squints / bright or low-sun driving | BRIGHT_LIGHT (PREFERRED), OUTDOOR_GLARE when glare off surfaces reported | STOTTS RULE | — | NEEDS REVIEW |
R_INOUT | Frequent indoor/outdoor movement or wants everyday glasses to react to light | INDOOR_OUTDOOR_TRANSITION (PREFERRED) | STOTTS RULE | — | NEEDS REVIEW |
R_DIM_CONTRAST | Reading / visually demanding activity difficult in dim light | DIM_LIGHT_CONTRAST (OPTIONAL) | STOTTS RULE | — | NEEDS REVIEW |
R_SPORT | SPORT ≥ MODERATE (weekly/monthly + specific visual demand) | SPORT_DISTANCE / SPORT_INTERMEDIATE / SPORT_MULTI_DISTANCE by reported demand | STOTTS RULE | — | NEEDS REVIEW |
R_CONVENIENCE | Customer prefers one pair / dislikes swapping | CONVENIENCE_SINGLE_PAIR (REQUIRED) — a real requirement that shapes the wardrobe decision (§137) | UX RULE | — | SUPPORTED |
product layer (19)
| Rule | Trigger | Output | Origin | Source | Status |
|---|---|---|---|---|---|
P_ELIFE_FAMILY“A lens designed specifically around your desk and immediate workspace.” | SUSTAINED_INTERMEDIATE / WIDE_INTERMEDIATE / SUSTAINED_NEAR / INDOOR_MOBILITY requirement AND customer is a presbyope / existing progressive wearer | E-Life Pro family candidate Guide p3: "Recommended for: Presbyopes and existing progressive lens wearers to offer a more comfortable vision and natural posture." | NIKON SOURCE | p3 (Product overview), p31 (E-Life Pro lens portfolio) | SUPPORTED |
P_ELIFE_READ | SUSTAINED_NEAR, furthest regular distance ≤ ~0.7m, stays put | E-Life Pro Read candidate — "for enhanced and comfortable focus on activities which require your full attention", ~0.7m at eye-point (depending on ADD) | NIKON SOURCE | p31 | SUPPORTED |
P_ELIFE_1M | SUSTAINED/WIDE_INTERMEDIATE, furthest regular distance ≤ ~1.2m, mainly at a desk | E-Life Pro 1M candidate — "for easy focus in your immediate environment", 1M guaranteed at eye-point | NIKON SOURCE | p31 | SUPPORTED |
P_ELIFE_2M | INDOOR_MOBILITY or furthest regular distance ≥ 2m | E-Life Pro 2M candidate — "for flexibility to move around whilst multi-tasking in an indoor space", 2M guaranteed at eye-point | NIKON SOURCE | p31 | SUPPORTED |
P_ELIFE_NOT_DRIVING | Any E-Life Pro candidate | HARD CONSTRAINT: "Lens design not suitable for driving" — driving_role = EXCLUDED. Never offered for DRIVING; always listed under "what it will not do". Verbatim exclusion and pages are read from the catalogue record at runtime (occupational.ts exclusions) and were verified against the rendered pages. | NIKON SOURCE | p33 (E-Life Pro Read availability), p35 (E-Life Pro 1M and 2M availability) | SUPPORTED |
P_ELIFE_VARIANT_VALIDATION | Between 1M and 2M, or Read vs 1M | Public result names the family and the likely variant; the final variant depends on verified working distances and ADD (ordering types: low/mid/high add). | STOTTS RULE | p31 | NEEDS REVIEW |
P_RELAXSEE_FAMILY“A single-vision lens with built-in support for long hours on screens.” | DIGITAL_NEAR_SUPPORT requirement; single-vision wearer | Relaxsee Z / SeeMax Relaxsee Z candidates — "Digital device users looking for an eye strain relief vision solution" (Relaxsee Z), "…a tailor-made eye strain relief vision solution" (SeeMax Relaxsee Z); Relax Zone technology | NIKON SOURCE | p11 (Single vision lens portfolio) | SUPPORTED |
P_RELAXSEE_TIER | Relaxsee Z vs SeeMax Relaxsee Z | REQUIRES_STOTTS_RULE — SeeMax Relaxsee Z adds frame shape optimisation and "personalised vision"; when STOTTS prefers it is not settled by the guide. | STOTTS RULE | p11 | PLACEHOLDER |
P_SV_PREMIUM | Single-vision wearer with peripheral / weight difficulty or high-performance expectation, without digital-support need | NL AS Z ("Premium visual correction", aspheric, thin, "increased peripheral vision performance, thinner and flatter") or SeeMax Infinite Z ("Wearers who command the highest visual performance from their lenses") direction | NIKON SOURCE | p11 | SUPPORTED |
P_SV_TIER | NL SP vs NL AS Z vs SeeMax Infinite Z | REQUIRES_STOTTS_RULE — tier selection depends on prescription, frame and expectation; not settled online. | STOTTS RULE | p11 | PLACEHOLDER |
P_PPL_PERSONALISED“A progressive designed more closely around how you actually use it.” | Varifocal wearer with MULTI_DISTANCE_FLEXIBILITY / HIGH_PERSONALISATION_VALUE / POSITION_OF_WEAR_VALUE | Direction: a more individually optimised Nikon progressive. Guide p2 positioning travels verbatim with each candidate — Presio W "Progressive lens wearers upgrading from standard solutions"; Presio Power Z "Wearers looking for a reliable and comfortable lens with a wider field of vision"; Presio Ultimate Z / SeeMax Ultimate Z "Progressive lens wearers seeking ultimate optical performance…". Guide p5 illustrates progressively wider intermediate and near zones at each tier (illustration only). Viewfit available across the portfolio excluding Move 2. | NIKON SOURCE | p2 (Product overview), p5 (Progressive lens portfolio), p53 (Viewfit) | SUPPORTED |
P_PPL_FIRST_TIME | Reading-glasses or separate-pair wearer for whom one everyday lens is being explored | Presio Balance candidate — "Recommended for: First time progressive lens wearers" (Presio W as an alternative). Whether first-time status is a hard route or one factor is a STOTTS decision (gap ppl_balance_first_time). | NIKON SOURCE | p2 (Product overview) | NEEDS REVIEW |
P_PPL_TIER | Which progressive tier | REQUIRES_STOTTS_RULE — when Presio W / Power Z / Ultimate Z / SeeMax Ultimate Z is justified is a STOTTS dispensing decision (adaptation history, sensitivity, complexity, Rx, frame). Public engine names the family only. | STOTTS RULE | p5 | PLACEHOLDER |
P_MOVE2_NO_VIEWFIT | POSITION_OF_WEAR_VALUE requirement | Move 2 is CONFLICT for personalisation needs — "Viewfit… available across our entire lens portfolio. *Excluding SV stock and Move 2". | NIKON SOURCE | p53 | SUPPORTED |
P_SPORTS_FAMILY | SPORT_* requirement | SeeMax Sports family — "Recommended for: Seasoned professionals to new athletes looking for high precision, enhanced contrast or improved aesthetics for sports." | NIKON SOURCE | p3, p37 (SeeMax Sports lens portfolio) | SUPPORTED |
P_SPORTS_ZONES | SPORT_DISTANCE → 1 visual zone; SPORT_INTERMEDIATE → 2 zones (distance/intermediate); SPORT_MULTI_DISTANCE → 3 zones (distance/intermediate/near) | 1 zone: "stable 360° field of view even at the edge of the lens"; 2 zones: "flexibility for nearer viewing without compromising distance performance"; 3 zones: "smooth transition between wide fields of view with minimum sway". Sports 2 ADD ≤ +1.75 / Sports 2 HI ADD ≥ +2.00 — ADD is a professional check. | NIKON SOURCE | p37 | SUPPORTED |
P_SPORTS_STOTTS | Which sport → which zone variant / wrap / tint | REQUIRES_STOTTS_RULE — sport-specific selection and frame wrap are settled in practice. | STOTTS RULE | p37 | PLACEHOLDER |
P_LEAST_COMPLEX | Every recommendation | Choose the least complex solution that properly addresses the identified need. Never pick the highest tier by default (§12, §89). | BUSINESS RULE | — | SUPPORTED |
P_TWO_STAGE | Every Nikon direction | lifestyle_match (HIGH/MEDIUM/LOW) is separate from eligibility (UNKNOWN online). professional_validation_required = true. Public result names a family/direction, not a final dispensing decision (§41, §101–102). | BUSINESS RULE | — | SUPPORTED |
light layer (10)
| Rule | Trigger | Output | Origin | Source | Status |
|---|---|---|---|---|---|
L_OWN_REASON | Every coating / light option | Must carry its own customer-reported reason. Never added to raise value (§16, §105). | BUSINESS RULE | — | SUPPORTED |
L_DRIVE“We'd explore enhanced glare management because you told us oncoming headlights bother you when driving after dark.” | LOW_LIGHT_GLARE / DRIVING_GLARE requirement | SeeCoat Next Drive — "Enhanced driving performance… Ideal for those who experience glare in dim light and dark conditions", glare reduction filter; "The everyday lens with enhanced driving performance". | NIKON SOURCE | p3, p51 (SeeCoat coatings positioning chart) | SUPPORTED |
L_REVEAL | DIM_LIGHT_CONTRAST requirement | SeeCoat Next Reveal — "A new level in light management… precise contrast, vivid colours, light protection. Ideal for those who want superior contrast and colours even in dim light"; overview: "Recommended for: Patients who experience difficulty reading or conducting visually demanding activities in dim light conditions." | NIKON SOURCE | p3, p51 | SUPPORTED |
L_SEECOAT_BASE | Scratch / smudge difficulty reported | SeeCoat Next — "unparalleled durability, super scratch resistant, super smudge resistant, anti-reflection, dust repellent, UV protection". | NIKON SOURCE | p3, p51 | SUPPORTED |
L_BLUE_NOT_DEFAULT | Heavy digital use | Do NOT auto-recommend SeeCoat Next Blue for screen use. Surface as OPTIONAL discussion only when the customer reports reflections on their lenses alongside heavy screen use (§105). | BUSINESS RULE | p51 | SUPPORTED |
L_GENS | INDOOR_OUTDOOR_TRANSITION or wants everyday glasses to react to light; bright light discomfort | Transitions GEN S — "fully clear indoors", "darkens in seconds", "ultra-responsive to light". | NIKON SOURCE | p47 (Transitions lenses) | SUPPORTED |
L_XTRACTIVE | BRIGHT_LIGHT with bright-daylight / low-sun driving | Transitions XTRActive — "the darkest in the car", "activates in the car", "clear indoors with a hint of tint"; footnote: "May not be suitable for low light conditions" → listed as a trade-off. | NIKON SOURCE | p47 | SUPPORTED |
L_XTRACTIVE_POL | OUTDOOR_GLARE with driving | Transitions XTRActive Polarized — "Less glare with up to 90% polarisation efficiency"; footnote: behind a windshield polarisation efficiency 30%, "not classified as being polarised" → trade-off. | NIKON SOURCE | p47 | SUPPORTED |
L_POLARISED_SUN | OUTDOOR_GLARE / BRIGHT_LIGHT with substantial outdoor or sport time and no usable prescription sunglasses | Prescription sun / polarised discussion (catalogue sunwear pages). Colour/tint selection is settled in practice. | NIKON SOURCE | p47 | NEEDS REVIEW |
L_COLOR_TOUCH_NOT_NIGHT | Any night-driving requirement | HARD CONSTRAINT: "Transitions Color Touch lenses are not suitable for driving in twilight or at night." | NIKON SOURCE | p47 | SUPPORTED |
wardrobe layer (8)
| Rule | Trigger | Output | Origin | Source | Status |
|---|---|---|---|---|---|
W_ONE_PAIR | No domain above LOW, or only EVERYDAY affected | ONE PAIR SHOULD SERVE YOU WELL / GOOD NEWS | BUSINESS RULE | — | SUPPORTED |
W_SECOND_PAIR | A task-specific requirement (occupational / sport) whose solution is excluded or unsuited for another required environment (e.g. E-Life Pro excluded for driving) AND customer open to a second pair | STRONG CASE FOR A SECOND TASK-SPECIFIC PAIR | BUSINESS RULE | — | SUPPORTED |
W_THREE | Three distinct environments each with ≥ MODERATE evidence and conflicting needs | THREE DISTINCT VISUAL ENVIRONMENTS — still presented with restraint | BUSINESS RULE | — | SUPPORTED |
W_CONVENIENCE | Customer prefers one pair | Improve the everyday pair first; a task-specific pair becomes SECONDARY/OPTIONAL with the trade-off explained (§137) | UX RULE | — | SUPPORTED |
W_EXISTING | Already owns and uses a purpose-built pair for that environment | No new pair for that environment; review the existing one (§135) | BUSINESS RULE | — | SUPPORTED |
W_UNDERUSED | Owns a specialist pair but rarely/never uses it | Address why before recommending another pair; convenience reasons may favour improving the everyday pair (§136) | BUSINESS RULE | — | SUPPORTED |
W_HIERARCHY | Every result | ONE PRIMARY opportunity; SECONDARY; OPTIONAL; NO CHANGE NEEDED. Lead with what would make the biggest difference (§64–65). | BUSINESS RULE | — | SUPPORTED |
W_NEGATIVE | Negative evidence (no difficulty, no behaviour, low exposure, existing pair) | Weakens or removes the recommendation and produces a pertinent "you probably don't need this" (§22, §167) | BUSINESS RULE | — | SUPPORTED |
safety layer (3)
| Rule | Trigger | Output | Origin | Source | Status |
|---|---|---|---|---|---|
S_EXIT | Recent change in vision, new double vision, distortion, sudden loss, new flashes/floaters, painful eye | Exit the commercial path. Advise professional assessment without fear-based wording. No product named. | BUSINESS RULE | — | SUPPORTED |
S_NEEDS_MORE | ≥3 "not sure" answers, or conflicting answers not resolved | WE NEED TO KNOW MORE — area worth exploring identified, no product precision (§150). | BUSINESS RULE | — | SUPPORTED |
S_DISTANCE_CLARITY | Road-sign / distance clarity difficulty | Route to prescription check rather than a product; may indicate a prescription change. | BUSINESS RULE | — | SUPPORTED |
reveal layer (6)
| Rule | Trigger | Output | Origin | Source | Status |
|---|---|---|---|---|---|
V_HOURS | Screen hours ≥ 5/day | "Over a working year, that's roughly N hours." (hours × 5 × 48, conservative) | UX RULE | — | SUPPORTED |
V_JOBS | One pair AND ≥4 visual jobs | "That's one pair doing at least N different visual jobs." | UX RULE | — | SUPPORTED |
V_NIGHT | Low driving exposure but night difficulty | "Night driving is only a small part of your week, but it's where you've described the most difficulty." | UX RULE | — | SUPPORTED |
V_LIFE_CHANGED | Glasses ≥3 years old AND life changed | "Your glasses may have been right for the life you had when you bought them." | UX RULE | — | SUPPORTED |
V_CONTRADICTION_SAT | Satisfied/"fine" but ≥2 compensating behaviours or glare | Show the relationship between their own answers; never contradict them (§31–32). | UX RULE | — | SUPPORTED |
V_CONTRADICTION_SCREEN | "No screen problems" but heavy hours + enlarged text / moved monitor / removes glasses | "You may have adapted your environment around your vision without thinking about it." | UX RULE | — | SUPPORTED |
Question bank (39)
Every question must be able to change a decision. Questions listing no decision should be deleted (§56).
| Id | Stage | Question | Component | Decides | Shown when |
|---|---|---|---|---|---|
rely | WEAR | What do you rely on most to see clearly? | SCENE_SELECT | compromise, recommendation | always |
lens_type | WEAR | What kind of glasses? | CARD_SELECT | compromise, product_family, occupational_type, one_vs_many | {"computed":"wears_glasses"} |
behaviour_early | WEAR | Do your glasses ever make you do this? | BEHAVIOUR_ANIMATION | compromise, confidence | {"computed":"wears_anything"} |
age | WEAR | How old are your main glasses? | CARD_SELECT | compromise, professional_follow_up | {"computed":"wears_glasses"} |
satisfaction | WEAR | How well do they serve you, day to day? | VISUAL_SLIDER | compromise, confidence | {"computed":"wears_glasses"} |
one_pair | WEAR | Do you use one pair for almost everything? | CARD_SELECT | one_vs_many, compromise | {"computed":"wears_glasses"} |
specialist_pairs | WEAR | Which pairs do you have? | OBJECT_SELECT | one_vs_many, recommendation, occupational_type | {"tag":"multi_pair"} |
specialist_use | WEAR | And do you actually use them? | CARD_SELECT | one_vs_many, recommendation | {"computed":"has_specialist_pairs"} |
specialist_why | WEAR | Why not? | CARD_SELECT | one_vs_many, recommendation | {"tag":"spec_underused"} |
scenes | LIFE | Where do your eyes spend their time? | SCENE_SELECT | compromise, recommendation, one_vs_many | always |
screen_hours | LIFE | On a working day, how long are your eyes on screens? | TIME_SLIDER | compromise, occupational_type, priority | {"tag":"env_screens"} |
screen_days | LIFE | How many days a week? | CARD_SELECT | compromise | {"valueGte":["screen_hours_day",5]} |
workspace | LIFE | Build your desk. What are you looking at? | WORKSPACE_BUILDER | occupational_type, compromise, product_family | {"tag":"env_screens"} |
work_movement | LIFE | While you work, do you mainly… | CARD_SELECT | occupational_type | {"computed":"screens_meaningful"} |
made_for_work | LIFE | Were your work glasses made specifically for your working environment? | CARD_SELECT | recommendation, occupational_type | {"tag":"owns_work_pair"} |
furthest | FOLLOW_UP | While you're working, how far away is the furthest thing you regularly need to see clearly? | DISTANCE_MAP | occupational_type, product_family | {"computed":"occupational_ambiguous"} |
drive_freq | LIFE | How much do you drive? | CARD_SELECT | compromise, light_management, priority | {"tag":"env_driving"} |
drive_dark | LIFE | How often do you drive after dark? | LIGHT_CONDITION_SELECTOR | light_management, compromise | {"any":[{"tag":"drive_some"},{"tag":"drive_daily"}]} |
drive_issues | LIFE | What actually happens when driving gets harder? | ROAD_CONDITION_SELECTOR | light_management, compromise, safety | {"any":[{"tag":"drive_some"},{"tag":"drive_daily"}]} |
near_tasks | LIFE | What close work fills your time? | OBJECT_SELECT | compromise, occupational_type, recommendation | {"tag":"env_near"} |
near_hours | LIFE | How long a day, roughly? | TIME_SLIDER | compromise, priority | {"tag":"env_near"} |
near_movement | LIFE | For that close work, do you stay put or move about? | CARD_SELECT | occupational_type | {"tag":"near_detail"} |
indoor_env | LIFE | Which of these is your indoor world? | SCENE_SELECT | occupational_type, compromise | {"all":[{"tag":"env_indoor"},{"not":{"computed":"screens_meaningful"}}]} |
outdoor_freq | LIFE | How much of your time is outdoors? | CARD_SELECT | light_management, compromise | {"tag":"env_outdoors"} |
light | LIFE | How do you get on with changing light? | LIGHT_CONDITION_SELECTOR | light_management | {"computed":"light_relevant"}skip: {"computed":"light_irrelevant"} |
sport_which | LIFE | Which sports? | SCENE_SELECT | recommendation, light_management | {"tag":"env_sport"} |
sport_freq | LIFE | How often? | CARD_SELECT | recommendation, priority | {"tag":"env_sport"} |
sport_visual | LIFE | What matters most visually when you play? | CARD_SELECT | recommendation, light_management | {"tag":"sport_meaningful"} |
behaviour_context | HABITS | When does that happen most? | CARD_SELECT | compromise, priority | {"computed":"early_behaviour_any"} |
behaviour_more | HABITS | And any of these? | BEHAVIOUR_ANIMATION | compromise, confidence | {"any":[{"computed":"screens_meaningful"},{"tag":"lens_varifocal"},{"tag":"near_heavy"}]}skip: {"computed":"work_evidence_saturated"} |
difficulties | HABITS | Which of these could genuinely be better? | CARD_SELECT | compromise, light_management, priority, safety | {"computed":"wears_anything"} |
comfort | HABITS | At your screen: can you see it — and is it comfortable to keep seeing it? | CARD_SELECT | compromise, confidence | {"computed":"screens_meaningful"}skip: {"computed":"work_evidence_saturated"} |
clarify_screen | FOLLOW_UP | You said screens could be better, but they're only a small part of your day. Which is closer? | CARD_SELECT | compromise, confidence | {"computed":"screen_contradiction"} |
avoidance | HABITS | Do you ever put something off because seeing it is uncomfortable or awkward? | CARD_SELECT | priority, compromise, professional_follow_up | {"computed":"wears_anything"}skip: {"computed":"happy_and_quiet"} |
priority | MATTERS | If you could improve one thing, which would matter most? | CARD_SELECT | priority | always |
swap_tolerance | MATTERS | How would you feel about a second pair made for one specific job? | CARD_SELECT | one_vs_many, recommendation | {"computed":"task_pair_plausible"} |
life_changed | MATTERS | Has your life changed since you got your current glasses? | CARD_SELECT | compromise, priority | {"all":[{"computed":"wears_glasses"},{"tag":"age_old"}]} |
age_band | MATTERS | Which age band are you in? | CARD_SELECT | product_family, confidence | {"not":{"computed":"presbyopic_lens"}} |
symptoms | SAFETY | Lastly — have you noticed any of these recently? | CARD_SELECT | safety | always |