A better way to run the home.
SparkData Analytics runs home care the way great teams run software — one source of truth for every visit, two coordinated lanes, access that expires with the appointment, and live progress you can watch from anywhere. Planned like infrastructure. Finished with proof.
The visit loop
Every visit runs one closed loop.
Six stages, each hardened against a failure that actually happened — lists that rot, links that leak, tabs that linger, lanes that collide.
The day gets a dated session, scoped on purpose.
A visit is minted from a template — the 60 weekly essentials or the full 143-task deep clean — plus one-off requests written in the house's own voice. The base library never mutates for one day's needs.
- Failure test
- The day needs more than the template offers.
- System response
- Scope switches per visit, and custom tasks ride along date-keyed. A real Wednesday went from weekly scope to a full deep clean with sixteen house-voice requests — and the library never noticed.
- Next proof
- Does today's checklist match today's plan — and only today's?
Stage six feeds stage one. The weekly template is already clean for next time — recurring by design.
The access gate
A link is only a key while the visit is real.
Write access is decided by the database's security rules, not by the page. Drag the clock and watch the gate decide.
Write denied — the window opens at 11:00 AM.
These four lines are lifted from the live firestore.rules — and a build-time test refuses to deploy this page if they drift from production.
request.resource.data.token == sessionData.expectedToken
request.time >= sessionData.windowStart - duration.value(2, 'h')
request.time <= sessionData.windowEnd + duration.value(2, 'h')
sessionData.status in ['scheduled', 'active']
Even a valid token is refused once a session completes — leaked links die with the visit. Sessions, tokens, and closures are minted from an operations CLI, and every deploy passes lint, unit, integration, and browser gates first.
The home, mapped
Every zone owned. Nothing lost between rooms.
Nine zones split into two lanes balanced by effort, not task count — and every zone knows exactly how much of it recurs weekly.
Team Member #1 — Kitchen & Bathrooms
- Master Bathroom
- Kitchen — Deep Appliance Cleaning
- Kitchen Organization
- Guest Bathroom
Team Member #2 — Bedrooms, Office & Living
- Master Bedroom
- Office / Second Bedroom
- Living Room
- Outdoor & Storage
Master Bathroom, two depths.
- Scrub shower tiles and groutweekly
- Deep clean toilet bowl with cleaner and brushweekly
- Disinfect all countertopsweekly
- Sweep and mop floor - pay attention to cornersweekly
- Descale showerhead (soak in vinegar solution if needed)waits for the deep clean
- Clean exhaust fan and light fixtureswaits for the deep clean
Plus 11 more weekly tasks — the deep-only work waits, on purpose, for the deep clean.
Plus 11 more weekly and 5 more deep-only tasks — all 22, one zone, one pass.
Two zones never make the weekly list at all: Kitchen Organization and Outdoor & Storage keep their 13 tasks exclusively in the deep-clean scope. The garage cannot creep into Tuesday.
The SDA signature
Protect the rhythm.
Recurring essentials stay pristine because outliers are forced to be intentional — a one-off is a dated request on a single visit, never a permanent squatter on every future list. Scope is a decision, not an accident.
Full house deep clean
The proof trail
Every number on this page can travel back to the app.
Not a confidence badge — a build gate. The page's numerals are re-derived from the application source on every deploy, and the deploy fails if any of them drift.
Attached to the tap
Check-offs, notes, and heartbeats — timestamped writes from the cleaner's device, inside the window.
Token + timestamp stay attached.Attached to the math
Progress percentages and person-hours are computed from observed events — never typed in.
Formula + inputs stay attached.Attached to the voice
Custom tasks and standing cautions are requests written by the house, and labeled as requests.
Author + date stay attached.Attached to the build
Every numeral on this page is re-derived from the app source by a test before it can deploy.
Test + commit stay attached.The running record
Running a real home since October 2025.
Home Ops isn't a mockup. It has run every deep clean in this house since October 2025 — and its own history shows the system learning.
-
Oct 2025
First documented two-person deep clean, split by zones.
-
Nov–Dec 2025
Prioritized single-cleaner protocols and team splits, refined visit over visit.
-
Mar 2026
Full-house redo session — the library hardened by a second pass.
-
2026
Live tokenized sessions: balanced lanes, server-enforced write windows, custom tasks in the house's voice, and a real-time owner view.
The private boundary
Built to be seen. Designed to stay private.
This showcase and the household it runs never mix. The system is public about how it works and silent about the home it works in.
See the home clearly.
A production-grade operating layer for the work that keeps a home running — starting with every cleaning visit.
Built by SparkData Analytics →