29 of 29 drawn (text check; no reviewer pass yet).
| ID | Requirement | Status | Screens | What the screen shows | Check |
|---|---|---|---|---|---|
| R1 | A homeowner types an address and sees their own roof: usable area, sun hours, panel count | built | EST02 | EST02: the roof from Google's Solar API: usable area, sun hours and panel count | TEXT OK |
| R2 | The estimate sizes the system from the monthly bill and shows savings at the Oahu rate, with the formula visible | built | EST03, EST04 | EST03: bill-based sizing with the formula visible EST04: savings at $0.42 per kWh | TEXT OK |
| R3 | The estimate suggests a battery, since export credits on Oahu are low | built | EST03 | EST03: battery suggested by default | TEXT OK |
| R4 | Contact details are asked only after the result is shown; the result ends in booking a site visit | built | EST04 | EST04: contact form appears only after the result, ending in a visit booking | TEXT OK |
| R5 | The widget embeds on the current site with one script tag; no migration needed | built | EST06 | EST06: embed snippet for the current site, no migration | TEXT OK |
| R6 | Addresses with no Solar API data get a clear fallback (request a visit), never a made-up number | built | EST07 | EST07: no-data fallback with no invented numbers | TEXT OK |
| R7 | Every new lead gets a draft personal video of their roof (aerial image, sun map, panel layout, savings) | built | VID02 | VID02: draft personal video built from the lead's roof and estimate | TEXT OK |
| R8 | A person at IEH approves each video before it is sent; nothing goes out automatically | built | VID02, VID01 | VID02: approval dialog before any send VID01: approval queue | TEXT OK |
| R9 | IEH sees who opened and watched each video and which ones led to a visit | built | VID05 | VID05: opens, watches, replies and visits per lead | TEXT OK |
| R10 | A system owner enters system size, install year and last 12 months of production and sees expected vs actual, with the g | built | REP03, REP02 | REP03: expected vs actual, gap in kWh and dollars REP02: owner inputs | TEXT OK |
| R11 | A flagged check becomes a repair lead with the numbers, for the repair team to call | built | REP04 | REP04: flagged checks as repair leads | TEXT OK |
| R12 | The repair checker can be switched on and off from the app, and is live: Google confirmed the Solar API terms allow repa | built | REP04 | REP04: repair check switched on, with the switch to turn it off | TEXT OK |
| R13 | One page per Oahu and Maui neighbourhood with sunlight numbers for that area, reviewed by IEH before publishing | built | NB02, NB03 | NB02: IEH reviews a local page before publishing NB03: the published page | TEXT OK |
| R14 | Each local page shows its data source, sample size and date | built | NB03 | NB03: source, sample size and date on the page | TEXT OK |
| R15 | A campaign to past customers with no battery, using Solar API to say how many more panels their roof can take | built | UP01, UP03 | UP01: audience narrowed with Solar API UP03: the customer email | TEXT OK |
| R16 | The campaign is approved before sending, and the results show replies and booked assessments | built | UP02, UP04 | UP02: approval before send UP04: replies and bookings | TEXT OK |
| R17 | One overview shows all nine ideas, their status, terms checks and results | built | OV01 | OV01: all nine ideas with status and what waits on IEH | TEXT OK |
| R18 | An assistant answers new enquiries within seconds on website chat, texts, Meta lead ads and Yelp, day and night | built | AG02, AG01 | AG02: a Meta lead answered by text within seconds AG01: after-hours website chat | TEXT OK |
| R19 | The assistant explains numbers but never calculates them; every figure comes from the estimate engine (Solar API plus IE | built | AG05 | AG05: the rule shown in the assistant's settings | TEXT OK |
| R20 | The assistant hands to a named person for anything outside its rules (shared or HOA roofs, existing customers, repairs, | built | AG04, AG01 | AG04: handoff to a named person AG01: says who replies and when | TEXT OK |
| R21 | One inbox shows every conversation with owner, due time, confirmed facts and reply times (median and slowest 10%) | built | AG03 | AG03: inbox with owner, due time and reply times | TEXT OK |
| R22 | IEH writes the assistant's rules: what it may say, what it must hand off, price bands with a valid-until date, hours, is | built | AG05 | AG05: price table with valid-until and approver, rules and hours | TEXT OK |
| R23 | A crew lead uploads install photos and a voice note from the phone; theStacc turns them into a project page, a Google Bu | built | IS01, IS02 | IS01: crew upload from the phone IS02: one upload fanned out into 6 drafts | TEXT OK |
| R24 | Install content never shows a house number or the owner's name without written consent | built | IS02 | IS02: consent rules visibly applied to drafts | TEXT OK |
| R25 | 90 days after install, the owner gets a report of what the system made against what Google's data says it should | built | PR01 | PR01: made against expected for the first 90 days | TEXT OK |
| R26 | Every owner gets the same review request; we never filter who is asked. Underperforming systems also go to the repair te | built | PR02 | PR02: everyone gets the same review request; below-expected go to repair | TEXT OK |
| R27 | Review replies are AI-drafted for real reviews only and wait for IEH's approval | built | PR03 | PR03: AI-drafted replies to real reviews waiting approval | TEXT OK |
| R28 | IEH sees which solar questions ChatGPT, Perplexity, Gemini and Google AI Overviews answer with IEH, and which they don't | built | AI01 | AI01: 20 questions on 4 engines | TEXT OK |
| R29 | For each question IEH is missing from, theStacc drafts an answer page using IEH's own data and Solar API numbers, with s | built | AI02, AI03 | AI02: draft answer page with sources AI03: published answer page | TEXT OK |