Home operations, made visible

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.

See the system
Recurring by design Two-person coordination Live owner view
A modern home with live checklist, team, schedule, and completion layers
143 tasks in the deep-clean library
60 weekly essentials keep the rhythm
9 zones of the home, mapped end to end
2 lanes balanced by effort — 68 and 67

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.

Mechanism

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-window demoExample visit · 1:00 – 9:00 PM
9:15 AM
Demo clock — time of the attempted write
Write deniedthe window opens at 11:00 AM

Write denied — the window opens at 11:00 AM.

Check 01Tokenthe link's token must equal the session's expected tokenpass
Check 02Windowthe clock must sit inside the visit window, ±2h graceblocked
Check 03Statusthe session must still be scheduled or activepass
ResultThe writerecorded with its token and timestamp — or refusedrefused
Production security rules · verbatim

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.

Lane 1 68 tasks

Team Member #1 — Kitchen & Bathrooms

  • Master Bathroom15 weekly22 deep
  • Kitchen — Deep Appliance Cleaning15 weekly26 deep
  • Kitchen Organization0 weekly8 deep
  • Guest Bathroom5 weekly12 deep
Lane 2 67 tasks

Team Member #2 — Bedrooms, Office & Living

  • Master Bedroom7 weekly23 deep
  • Office / Second Bedroom7 weekly24 deep
  • Living Room7 weekly15 deep
  • Outdoor & Storage0 weekly5 deep
Shared · Whole House

8 required tasks that both lanes own together — 4 of them every single week — so the visit ends as one home, not two halves.

Zone proof case

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.

Weekly essentials · every visitDeep-clean library · when scheduledSweep the balcony · one visit
Product view · example visit
ThursdayScheduled session · Phoenix time
1:00 PMWrite window · server-enforced
Two-person teamLanes assigned before arrival
Full house deep clean. All 143 tasks visible in their zones. One-off requests ride along as custom tasks — in the house's own voice.
Live cleaning checklist

Full house deep clean

57%82 of 143
Master Bathroom22 tasks · completeTeam Member #1
Kitchen — Deep Appliance Cleaning26 tasks · completeTeam Member #1
Master Bedroom23 tasks · completeTeam Member #2
Office / Second Bedroom11 of 24 · in progressTeam Member #2
Whole House Required8 shared tasks · up nextBoth lanes

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.

Observed

Attached to the tap

Check-offs, notes, and heartbeats — timestamped writes from the cleaner's device, inside the window.

Token + timestamp stay attached.
Derived

Attached to the math

Progress percentages and person-hours are computed from observed events — never typed in.

Formula + inputs stay attached.
Stated

Attached to the voice

Custom tasks and standing cautions are requests written by the house, and labeled as requests.

Author + date stay attached.
Reconciled

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.

  1. Oct 2025

    First documented two-person deep clean, split by zones.

  2. Nov–Dec 2025

    Prioritized single-cleaner protocols and team splits, refined visit over visit.

  3. Mar 2026

    Full-house redo session — the library hardened by a second pass.

  4. 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.

Nothing live on this pagethe product panels are examples, labeled as examples — no household data is rendered here Owner sign-in is explicitviewing the workspace is read-only and never creates cleaner activity No cleaner accountsthe link is the key, the key expires with the visit, and reads never expose owner controls

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 →
Private owner access

Open your workspace

Sign-in only proves owner access. It does not start a cleaner session or create checklist activity.

or