32 of 32 drawn (text check; no reviewer pass yet).
| ID | Requirement | Status | Screens | What the screen shows | Check |
|---|---|---|---|---|---|
| R1 | Reviews are printed in the page's server HTML wherever we control the page (WordPress plugin, theStacc-hosted site, Fair | built | VS06, IN04 | VS06: the page source with every review in plain HTML IN04: per-page yes/no for reviews in the raw HTML | TEXT OK |
| R2 | One site tag carries every add-on and the traffic pixel, under 10 KB. Why: one install, light pages. Source: UC13, gap 1 | built | IN02, WS04 | IN02: one site key for the plugin and tag WS04: more add-ons on the same tag | TEXT OK |
| R3 | The first visit shows a finished widget built from the reviews we already sync. Why: value before work. Source: UC9 (Sen | built | WS02 | WS02: a finished widget on first visit | TEXT OK |
| R4 | Templates are grouped by where they go on the page and previewed with the business's own reviews. Why: owners don't know | built | WS03 | WS03: layouts grouped by placement | TEXT OK |
| R5 | One editor for every add-on: tabs on the left, live preview on the right, autosaved draft, "Publish changes" makes a new | built | ED01, ED08 | ED01: editor shell with rules, pin, hide and restore ED08: publish dialog listing what changes | TEXT OK |
| R6 | The header always shows Google's own average and total. Any rating filter adds a disclosure that can't be switched off. | built | ED02, VS01 | ED02: fairness panel with the true header and locked disclosure VS01: disclosure and attribution on the live widget | TEXT OK |
| R7 | Owners can hide or pin single reviews. Hiding needs a reason, applies the same rule to any rating, and never changes the | built | RV03, ED01 | RV03: hide reason that applies to any rating ED01: editor shell with rules, pin, hide and restore | TEXT OK |
| R8 | Every review widget shows "Reviews from Google", the author's name and avatar, a link to the review on Google and a noti | built | VS01, ED05 | VS01: disclosure and attribution on the live widget ED05: attribution and links marked always on | TEXT OK |
| R9 | Reviews from the Places API are never published; publishing reviews needs a connected Google Business Profile. Why: the | built | RV04 | RV04: sources with GBP required and the 30-day cap | TEXT OK |
| R10 | Business Profile reviews are kept no more than 30 days after the last sync; deleted reviews leave at the next sync; a di | built | ER01, RV04 | ER01: disconnected location with the date reviews stop RV04: sources with GBP required and the 30-day cap | TEXT OK |
| R11 | Design matches the site by default: brand colours from Company Brain, the site's own font, light, dark or auto. Why: no | built | ED04 | ED04: brand match from Company Brain | TEXT OK |
| R12 | Preview on desktop, tablet and phone, plus "View as Google sees it" showing the raw HTML without scripts. Why: proof of | built | ED07 | ED07: raw HTML view with the review count | TEXT OK |
| R13 | An install wizard per site builder, with "Email the code to my developer" and "Ask theStacc to install it" on every step | built | IN01, IN03 | IN01: site builder picker with developer email IN03: email to the developer | TEXT OK |
| R14 | An install check per page: tag seen, last ping, and whether the review text is in the raw HTML, with a fix hint. Why: pr | built | IN04 | IN04: per-page yes/no for reviews in the raw HTML | TEXT OK |
| R15 | A hosted reviews page on the Fairview profile, shareable by link and QR. Why: works with no website at all. Source: UC19 | built | VS03 | VS03: hosted reviews page with ordering notice | TEXT OK |
| R16 | The review inbox shows where each review appears on the website and offers hide and pin; a reply posted to Google shows | built | RV01, RV02 | RV01: inbox with the On website column RV02: reply posted to Google and shown on the site | TEXT OK |
| R17 | A sources page per location: connection type, reviews held against Google's total, last and next sync, errors. Facebook | built | RV04 | RV04: sources with GBP required and the 30-day cap | TEXT OK |
| R18 | Get reviews: link, QR and message templates sent the same way to every customer. No routing unhappy customers away, no g | built | RV05 | RV05: same ask to every customer and the never list | TEXT OK |
| R19 | Alerts by email and WhatsApp: every new review, reviews of 3 stars or fewer at once, a weekly digest, tag silent for 7 d | built | RV06, RV07 | RV06: alert matrix by channel RV07: WhatsApp alert for a low review | TEXT OK |
| R20 | Analytics per widget and per page (views, read more, "Write a review" and "Open on Google" clicks), free, and a section | built | AN01, AN03 | AN01: views and clicks per widget AN03: monthly report section | TEXT OK |
| R21 | A review score and rank against a named rival, with what moves it. The score can't be bought. Why: gamification principl | built | AN02, AN02 | AN02: score and rank against the named rival AN02: score and rank against the named rival | TEXT OK |
| R22 | Team roles (owner, editor, viewer) and an agency view of every client's add-ons, install health and score. Why: agencies | built | TM01, AG01 | TM01: roles table AG01: all clients with install health | TEXT OK |
| R23 | White label (custom domain for the tag and hosted page) is priced as a count, v2. Why: limits, not hidden features. Sour | later | AG02 | AG02: custom domain as a count | TEXT OK |
| R24 | Widgets never go dark. On downgrade, extra widgets pause, keep their last good HTML for 14 days, then render an empty ze | built | ST01, ST02 | ST01: downgrade pauses one widget, never breaks the site ST02: paused widget with its end date | TEXT OK |
| R25 | Free plan: 1 review widget and 1 badge per location, sync every 24 h, a small "Reviews by Fairview" link. Why: pricing r | built | WS05 | WS05: plan counts with the Free badge link | TEXT OK |
| R26 | Clear empty and error states: no location, 0 reviews, rules that match 0 reviews, GBP disconnected, tag silent, tag on t | built | ER02, ER03, ER04 | ER02: location with no reviews ER03: rules that match nothing, with fixes ER04: tag on the wrong domain | TEXT OK |
| R27 | An add-on library on the same tag: WhatsApp button, click to call, business hours, service-area map, FAQ, lead form. Why | built | WS04, WS04 | WS04: more add-ons on the same tag WS04: more add-ons on the same tag | TEXT OK |
| R28 | Accessibility always on: keyboard, screen reader labels, reduced motion respected, no layout shift. Never a paid extra. | built | ED06, ED03 | ED06: accessibility always on and facts-only schema ED03: reduced motion respected | TEXT OK |
| R29 | JSON-LD carries basic LocalBusiness facts only, no review stars markup, and the editor says plainly that Google doesn't | built | ED06, VS06 | ED06: accessibility always on and facts-only schema VS06: the page source with every review in plain HTML | TEXT OK |
| R30 | An internal support console: look up a widget, re-render and purge, switch off an abusive tag, remove a review on reques | built | SP01 | SP01: staff lookup and actions | TEXT OK |
| R31 | Some features are never built: testimonial scraping, AI case studies, "Verified" certificates, made-up counters, review | built | WS06 | WS06: later and never lists with reasons | TEXT OK |
| R32 | Later items are shown as a roadmap, not hidden: AI summary (on click, credits), more sources, per-service widgets, toast | later | WS06 | WS06: later and never lists with reasons | TEXT OK |