Overview
Devices
Map
Alerts
Releases
Feature Register
Architecture
Ingest
Roadmap
Gantt
Docs
Referrals
Installers
A/B Test
Customers
Contracts
Outcomes
Support
Integrations
Admin users click to expand
Loading admin users…
Loading overview…

Liveness

Form factor

Collector versions

Envoy firmware (top 5)

Recent alerts

Loading…
Loading devices…

Fleet ISP health

Loading ISP health…

Platform Event Management

Central operations view for all OwlWatt events — fleet devices, API infrastructure, billing, and security.

Alert types reference

Fleet / Devices

critical CPU temp critical — Pi CPU >80°C / 176°F
critical OTA update failure — last update rolled back or failed smoke test
critical Fleet offline spike — >5% of fleet went offline in 30 min window
warning Device offline — collector hasn’t heartbeated in >24 hours
warning CPU temp high — Pi CPU >75°C / 167°F
warning Disk usage high — Pi disk usage >85%
warning Envoy error rate — envoy polling error rate >10%
warning Envoy offline — envoy not polled successfully for >2 hours
warning JWT expiring — Enphase JWT expires within 7 days
info Device stale — heartbeat >1 hour but <24 hours old
info Version mismatch — device not on latest stable release

API / Infrastructure

critical API health degraded — endpoint error rate >5% or p99 latency >2s
critical Database latency — Neon Postgres query p95 >500ms
warning Deployment event — new version deployed to Fly.io (auto-generated)
warning Certificate expiry — TLS cert expiring within 14 days

Billing / Subscriptions

critical Failed charge — Stripe payment failed after retries
warning Subscription churn — customer cancelled or downgraded
warning Stripe webhook failure — webhook delivery failing >3 consecutive attempts

Security

critical Auth failures spike — >20 failed login attempts in 5 min from same IP
warning Rate limit breach — API rate limit exceeded by authenticated user
info Suspicious activity — anomalous access pattern detected
Loading alerts…

Releases

Collector + agent software, auto-registered by CI on tag push. OS image below for reference.
Filter:

Collector software

Loading releases…

Pi OS image

Loading OS image info…
Loading feature register…
Loading…
Loading architecture health…
CUSTOMER SITE EDGE APPLICATION TIER DATA TIER THIRD-PARTY ADMIN FLY · owlwatt-api · host-routed PLANNED · payments + accounting PLANNED · mobile stores 5s local poll HTTPS ingest + hb pg wire S3 API mail AI billing pay BROWSER Customer PWA + dashboard HOME LAN ⇄ WAN customer LAN COLLECTOR Pi · Win · macOS fleet: unknown SOLAR GW Enphase · SolarEdge local API CLOUDFLARE DNS · CDN · WAF · Tunnel health: unknown admin + owlwatt zones owlwatt-api Fly · 2 machines app: unknown HOST ROUTING middleware · hostnames routing: unknown bg jobs maintenance wall NEON POSTGRES pooler · PITR enabled db: unknown CLOUDFLARE R2 owlwatt-releases · images.owlwatt.com r2: unknown RESEND transactional mail mail: unknown ANTHROPIC Claude OCR + AI api: unknown STRIPE checkout + webhooks billing: unknown WAVE accounting planned ENPHASE OAuth planned APPLE app store planned GOOGLE play store planned TWILIO SMS planned ADMIN BROWSER admin.owlwatt.com · Olivier admin console
State ok warn fail unknown planned
Edges live planned
Shipped: — · Planned: — · Healthy: —
Last refresh: — · next poll in —
Loading ingest stats...

Heartbeats per minute (last 24h)

Telemetry rows per minute (last 24h)

Per-customer freshness

Loading...

Anomaly log (last 50)

Loading...

Abuse detection -- top source IPs (last 5 min)

Loading...

Failed login spikes (last 5 min)

Loading...

4xx by endpoint (last 5 min)

Loading...

Product Roadmap

Source: cloud/app/data/plan.yaml — generated view. Run owlwatt-plan sync to regenerate from source.

Roadmap progress: 0 complete | 0 in progress | 0 not started
Phase 0 Complete

Foundations

Lock every decision we'd regret reversing before writing code. Architecture, brand voice, scope, supplier research.

Dependency: None upstream
10 deliverables
  • a. ✓ Architecture of Record (17 locked decisions)
  • b. ✓ Product brief (Olivier verbatim)
  • c. ✓ Startup plan (phased)
  • d. ✓ Brand voice + naming brief
  • e. ✓ Scope lock (1 brand, 1 tier, 3 pipes)
  • f. ✓ RPi dropship supplier research
  • g. ✓ Brand naming pass (OwlWatt)
  • h. ○ LLC formation (MA)
  • i. ✓ Brand domain purchase
  • j. ○ Trademark filing (USPTO TEAS Plus)
Phase 1.5 Complete

Cloud Enphase Credentials

Cloud-to-cloud OAuth for Enphase Enlighten/Kilowatt. Fallback pipe for customers without local collector access.

Dependency: Phase 1 infrastructure
2 deliverables
  • a. ✓ Cloud credential store
  • b. ✓ Collector enrollment fetches creds
Phase 1.6 Complete

Pre-Install Contract Review

Prospective solar customers upload their installer proposal for a plain-English assessment -- escalator vs fleet median, red-flag clauses, buyout terms.

Trigger: Phase 1 ships + quality benchmarked against >=10 real contracts
Cost: $0.02--$0.07 per analysis (OCR + Claude)
4 deliverables
  • a. ✓ Marketing surface at owlwatt.com/pre-install-review
  • b. ✓ OCR + Anthropic pipeline (prospect-tuned prompt)
  • c. ✓ Report delivery via Resend
  • d. ✓ Report delivery via Resend (5-min SLA) with monitoring CTA
Phase 1.8 In Progress

Marketing, SEO & Analytics

Get owlwatt.com indexed by Google, establish organic traffic channels, and instrument the site for conversion tracking.

Analytics migration: PostHog (PAYG) live via PR #33 (53a925e). Running in parallel with Plausible until ~2026-05-26, then Plausible removed.
Affiliate attribution: Rewardful LIVE on landing (r.wdfl.co/rw.js, id 43ef16). Impact platform: marketplace application submitted 2026-05-15, in review.
SEO infra (2026-05-19): IndexNow live (Bing/Yandex/DDG push-pinging). CF Early Hints ON. CF Crawler Hints ON.
20 deliverables
  • a. ✓ Landing page rewrite with refined value prop
  • b. ✓ 5 SEO content pages at /learn/
  • c. ✓ sitemap.xml with all public pages
  • d. ✓ Plausible Analytics (being phased out after 2026-05-26)
  • a. ✓ IndexNow live (Bing/Yandex/DDG) — v392
  • b. ✓ CF Early Hints ON (2026-05-19)
  • c. ✓ CF Crawler Hints ON (2026-05-19)
  • d. ✓ PostHog (PAYG) — PR #33, merged 53a925e, 2026-05-19
  • e. ✓ Rewardful affiliate attribution LIVE
  • f. ✓ Plausible removed from 41 customer-facing HTML files (PR #89, 2026-05-27)
  • g. 🟡 Impact affiliate platform — BLOCKED (rejected by impact.com 2026-05-29); pivoted to Rewardful + direct outreach
  • h. ✓ Google Search Console — domain property verified + sitemap.xml submitted
  • i. ✓ JSON-LD structured data (SoftwareApplication + Organization — LocalBusiness skipped, national SaaS)
  • j. ✓ og:image 1200×630 landscape — og-card-1200x630.png live, twitter:card upgraded to summary_large_image across 39 HTML files (2026-05-27)
  • l. ✓ 5 state SEO landing pages — CA, MA, TX, NJ, NY
  • a. ✓ PostHog analytics.js on all 27 customer-facing pages (PR #38)
  • b. ✓ Server-side Stripe webhook events via posthog_client.py (PR #38)
  • c. ✓ Session replay opt-in on /signup, /pricing, /confirm, /pair, /founders (PR #38)
  • d. 🟡 Parallel verification running (until ~2026-05-26)
  • e. ○ Remove Plausible snippet after verification passes
Phase 1.13 Complete

Attack Surface Hardening

Triggered by 2026-04-20 external-audit findings. Closes brute-force, enumeration, and privilege-escalation gaps on a paid-customer production system. Zero-cost -- all mitigations reuse existing infra. Completed 2026-05-20.

Trigger: Internal security audit 2026-04-20 (Counsel/CISO)
Dependency: PR-Obs (already shipped) + PR-RateLimit (already shipped) provide the infra
Completed: 2026-05-20
10 deliverables
  • a. ✓ Login rate limits
  • b. ✓ Security headers (HSTS, CSP, X-Frame-Options, X-Content-Type-Options, Referrer-Policy)
  • c. ✓ Permissions-Policy header (camera/microphone/usb/geolocation/payment disabled)
  • d. ✓ Host-routing tightening — admin paths denied on unknown hosts (fly.dev/direct-IP)
  • e. ✓ JWT secret split — APP_JWT_SECRET decoupled from admin_provision_token
  • f. ✓ APP_JWT_SECRET rotated (2026-05-19)
  • g. ✓ OWLWATT_SESSION_SECRET rotated (2026-05-20 — symmetric pair closure)
  • h. ✓ ADMIN_OWNER_EMAIL relabeled to work email (gmail removed from admin UI)
  • i. ✓ Secret rotation runbook (docs/security/secret-rotation-runbook.md)
  • j. ✓ Signed OTA manifest — ed25519 verification on collector updates (PR
Also completed: APP_JWT_SECRET + OWLWATT_SESSION_SECRET rotated, secret-rotation runbook written.
Phase 1.14 In Progress

Support Bot (inbound plumbing + AI assistant)

End-to-end customer email support, human-staffed in Phase 1 with a Claude-Sonnet AI assistant assuming drafts/auto-send in Phases 2 & 3. 72-hour human SLA for non-critical issues.

Shipped: Phase 1.14 inbound plumbing (TicketMessage table, HMAC-tagged Reply-To, Svix-signed webhook, admin Support tab). Phase 1.15 — Claude drafts support replies; admin reviews/edits/sends. The ZDR gate was removed via a PII-scrub layer that redacts customer PII before any Claude call.
Remaining: Phase 1.16 — autonomous handling of low-risk support categories (confidence threshold + category whitelist).
Phased scope
  • a. ✓ support_ticket table + in-app form
  • b. ✓ Resend inbound/outbound webhook plumbing
  • a. ✓ pii_scrub.py: scrub/restore pure functions with known + stray PII redaction
  • b. ✓ support_bot.py: generate_draft() best-effort, model haiku-4-5
  • c. ✓ SupportTicket.pending_bot_draft / _at / _flagged fields + migration
  • d. ✓ Trigger in webhook_support_inbound.py + customer_settings.py (2 sites)
  • e. ✓ Admin send-draft + discard-draft endpoints in support_admin_router
  • f. ✓ Scope-confinement system prompt + UPL guardrails + output flagging
  • g. ✓ Admin HTML UI (editable textarea + Send/Discard buttons)
  • a. ○ Category whitelist + confidence threshold
  • b. ○ Auto-send pipeline with audit log
Phase 1.18 In Progress

Customer Acquisition

Dedicated workstream to find and sign up customers — events, organic search, the proposal-review lead magnet, direct outreach, affiliates, and referrals. The product is built; this is the bottleneck.

12 deliverables
  • a. ✓ Written acquisition plan — in the Document Library (slug customer-acquisition-plan, v1 current)
  • b. 🟡 Home shows & homeowner events — NE calendar built (22 events); booth-spend decision pending
  • c. ○ Solarize Mass outreach — contact MassCEC, table at a local community-solar campaign (highest-density solar-owner channel)
  • d. ✓ Drive traffic to the pre-install contract-review lead magnet (owlwatt.com/pre-install-review) — CTAs added to landing + 8 marketing pages
  • e. ○ Direct founder outreach — first 20 customers
  • f. ○ Referral program activation — drive usage of the shipped /refer flow (needs an initial customer base)
  • g. 🟡 Affiliate distribution via Rewardful (live) + Impact platform (blocked — rejected by impact.com 2026-05-29; pivoted to Rewardful + direct outreach)
  • h. ✓ /apps SEO page — live at owlwatt.com/apps (2026-05-28). MobileApplication + FAQPage + Product schema.org, Apple Smart App Banner, Open Graph, Twitter Card, sitemap entry (0.9). Nav + footer linked.
  • i. ✓ 5 /learn cornerstone SEO articles — CA, MA, TX, NJ, NY state landing pages live (2026-05-22). Registered in host-router.
  • j. ✓ SEO content strategy doc — published to Document Library (2026-05-22)
  • k. ✓ SolarEdge + Windows marketing scrub — false integration claims removed from all customer-facing surfaces (apps.html, vs-omnidian, vs-solaredge-insight, dashboard onboarding copy — PRs 2026-05-29/30)
  • l. ○ Paid iOS App Store acquisition (search ads, featured placement)
Phase 1.19 In Progress

Ops Instrumentation & API Access

API access and instrumentation so OwlWatt can be operated and measured programmatically — PostHog query access, read-only DB, error tracking, and a unified acquisition/health dashboard.

8 deliverables
  • a. ✓ PostHog query API key + automated weekly acquisition report (bin/owlwatt-weekly-acquisition-report.py, PR #92)
  • b. ✓ Read-only Neon Postgres connection — owlwatt_analytics_readonly role + ~/.secrets/neon_database_url_readonly (PR #92)
  • c. ✓ Error tracking (sentry_sdk wired into FastAPI; DSN gated; integrations: FastApi/Starlette/Httpx/Sqlalchemy; sample rates env-driven)
  • d. ○ Unified acquisition & health dashboard — signups, funnel, MRR, traffic, uptime (depends on a, b)
  • e. ✓ App Store Connect API key — provisioned + verified working (AuthKey_3KTG3UV725.p8 in ~/.secrets/)
  • f. 🟡 impact.com API credentials — blocked; impact.com rejected OwlWatt application 2026-05-29; pivoted to Rewardful + direct outreach (no impact.com API needed)
  • g. ✓ Resend deliverability instrumentation — hourly collector for sent/delivered/bounced/complained/opened; 5th tile on /admin/ops Traffic section
  • h. ✓ Observability Plane v1 — CF/PostHog/Sentry/Fly/Resend hourly collectors + /admin/ops Traffic section + weekly msgcenter digest + singleton-guard (Postgres advisory lock) + Sentry init diagnostic endpoint (/api/admin/_diag/sentry)
Phase 2.7 Not Started

Battery Recommendation

"Should I add a battery?" -- 1-10 score, estimated payback in years, recommended capacity. Leverages DSIRE incentives, OpenEI URDB rate plans, and customer telemetry.

Trigger: Phase 2 + Phase 1.6 shipped, >=3 customer requests
Cost: ~$0 per recommendation (cached/free inputs)
4 deliverables
  • a. ○ DSIRE + URDB scraper / API integration
  • b. ○ Battery score model
  • c. ○ Battery score tile on dashboard
  • d. ○ Prospect proposal review battery section
Phase 2.8 Complete

Enphase OAuth Backfill

Customers connect Enphase/SolarEdge/SMA cloud accounts to backfill historical data and daily-reconcile local vs vendor numbers for trust-building audit.

Trigger: Phase 2 ships, >=10 customers heartbeating, >=3 backfill requests
2 deliverables
  • Historical backfill (one-time on opt-in) -- 12--24 months from vendor cloud
  • Daily cross-match audit -- local vs vendor, <=5% deviation OK, alerts on 3-day divergence
Phase 2.15 Not Started

Green Button Integration Strategy

Keep bill OCR as primary. Add Green Button XML import as enrichment. Pursue direct Green Button Connect certification with utilities as medium-term play. Skip UtilityAPI until multi-state expansion.

Dependency: Phase 2.1 (Subscription & Monetization)
Timeline: Jul--Sep 2026
5 deliverables
  • a. ○ Green Button XML parser (ESPI schema, interval + billing data)
  • b. ○ Consumption import pipeline
  • c. ○ Bill OCR + Green Button cross-validation pipeline
  • d. ○ Green Button Connect (GBC) certification application with target utilities
  • e. ○ UtilityAPI evaluation deferred until multi-state expansion (Phase 4+)
Phase 2.16 Not Started

Municipal & Community Solar

Extend OwlWatt to municipal deployments (schools, libraries, fire stations) and community solar programs. Same weather-adjusted analysis, different distribution channel and compliance wrapper.

Dependency: Phase 2.15 (Green Button) + Phase 2.11 (Warranty Claims)
Timeline: Oct--Dec 2026
4 deliverables
  • a. ○ Multi-site fleet management (50-500 sites per account)
  • b. ○ RFP-ready compliance documentation & SOC 2 readiness assessment
  • c. ○ Commercial inverter integrations (SolarEdge, SMA, Huawei)
  • d. ○ Community solar per-subscriber production verification & reporting
Phase 3.1 Complete

Cloud Token Plumbing

CustomerApiToken model + migration, customer-facing token issuance UI, auth dependency, data-export/purge integration, per-token rate keyfunc. Prerequisite for all HA phases.

Shipped: 2026-05-12 (branch ha-phase-0-customer-api-token)
Dependency: Phase 1 cloud infrastructure
2 deliverables
  • a. ✓ Cloud token plumbing
  • b. ✓ HA config entry scaffold
Phase 3.4 Complete

Admin Analytics

GET /api/admin/integrations/ha with HA-channel metrics (total connected, 7d active, tier breakdown, HA versions, signup count 30d, conversion rate, new-installs sparkline, median time-to-first-claim). Integrations tab in admin dashboard.

Shipped: 2026-05-12 (branch ha-phase-4-admin-analytics)
Dependency: HA Phase 0
Note: Metrics return zeros until HA Phases 1+2 ship customers with active tokens.
1 deliverable
  • a. ✓ HA install analytics in admin dashboard
Phase 3.5 Complete

Referral Button

button.owlwatt_refer_friend entity in the HA integration. On press -- fetches customer_id from /api/ha/v1/manifest, opens owlwatt.com/refer?from=ha&referrer=<id> via persistent notification + frontend.open_url.

Shipped: 2026-05-12 -- branch ha-phase-6-referral, HA repo main
Tests: 9 cloud tests (test_referral_ha_channel.py) + 9 HA tests (test_button.py) -- all green
1 deliverable
  • a. ✓ Referral button in HA UI
Phase 4.3 Not Started

HW Productionalize

Pi goes from hand-assembled beta to drop-shippable product. SolarEdge, SMA, Tesla collector scaffolding begins.

Dependency: Phase 2 exit criteria + >=5 beta Pi customers
5 deliverables
  • Dropship supplier locked + Pi OS image pipeline
  • Per-unit enrollment QR + pairing-token flow
  • Returns / warranty workflow
  • Hardware COGS reconciliation with CFO agent monthly
  • Multi-vendor collectors: SolarEdge (beta parity), SMA + Tesla (research-grade)
Phase 5.1 Not Started

Scale + Adjacencies

Revenue covers Olivier's time. Cloud-side adjacencies unlock -- shade-exclusion defense, multi-state tariff plugins, Claim Concierge managed service, solar law firm referral network. Pi hardware value-adds are Phase 5.x.

Dependency: Phase 4 stable, revenue >=\$5k MRR
6 deliverables
  • Shade-exclusion defense module (LiDAR + pvlib + PDF)
  • Multi-state tariff plugins (MA to CA NEM 3.0, NY, NJ, NC)
  • Claim Concierge -- OwlWatt generates claim report, refers to vetted partner collection agency. Flat marketing referral fee paid by partner firm.
  • Solar Law Firm Referral Network -- curated panel of solar-dispute attorneys. Flat referral fee per qualified intake.
  • Direct branded email to installers with claim backup
  • Neighbor comparison / benchmarking (anonymized per-ZIP cohorts)
Phase 5.2 Not Started

Pi Value-Add Features

Expand the Pi from "solar monitor" to "home energy nerve center." Each feature increases switching cost and deepens the customer relationship.

Dependency: Phase 5 stable
10 deliverables
  • a. ○ EV Charging Optimization -- shift charging to solar hours via smart charger local API
  • b. ○ Grid Outage Logging -- Envoy grid-up/down events, feeds battery recommendation
  • c. ○ TOU Rate Alerts -- real-time rate monitoring + solar coverage push notifications
  • d. ○ Internet Uptime Monitoring -- distinguish collector offline from ISP outage
  • e. ○ Whole-Home Energy Disaggregation -- ML on CT clamp waveforms for appliance ID
  • f. ○ Hyperlocal Weather Station -- $15 BME280 on GPIO for roof-level conditions
  • g. ○ Demand Response Participation -- utility DR program enrollment, revenue-generating
  • h. ○ Water Heater Solar Sponge -- $20 smart relay for solar-timed water heating
  • i. ○ Backup Cellular Connectivity -- $30 USB LTE modem failover
  • j. ○ Indoor Air Quality -- $10 PMS5003 particulate sensor (stretch)
Phase 5.3 In Progress

Capacitor iOS

Capacitor app that remote-loads the owlwatt.com dashboard. Phased — 5.3a existing-customers app + APNs push; 5.3b StoreKit IAP + dual-billing as the new-customer acquisition funnel.

Trigger: First 50 paying customers OR >=25 iOS customers OR >=3 distinct requests for native iOS
Cost: Apple Dev Program paid; 15% IAP commission (Small Business Program); ~$1-5/mo iOS build CI
Phasing: 5.3a — existing-customers app (Capacitor remote-load + APNs push), ships fast for App Review. 5.3b — StoreKit IAP + dual-billing (Apple subscriptions reconciled alongside Stripe via a billing_source discriminator + App Store Server Notifications); the new-customer funnel goes live here.
IAP pricing: Decided — in-app price = the web price (monthly / annual / founder slot) x ~1.18 markup, so the 15% Apple commission (Small Business Program) leaves margin intact. Founder-slot-via-IAP is a 5.3b implementation detail (Apple IAP products are fixed-price).
Entity note: Apple Developer account is currently Individual — forming an LLC later means an Individual-to-Organization switch, easiest done before live IAP subscriptions exist.
9 deliverables
  • a. ✓ Implementation plan + scoping (architecture, IAP/dual-billing design, M0-M7 breakdown)
  • b. 🟡 App Store Connect — App ID, iOS Distribution cert, APNs key, app record all done (cert/profile created via the App Store Connect API); Small Business Program applied 2026-05-21, pending Apple approval
  • c. ✓ Capacitor scaffold + remote-load WebView (loads owlwatt.com dashboard)
  • d. ✓ APNs push: DeviceToken model, /api/app/push/register, APNs sender, un-stub push channel
  • e. ✓ StoreKit IAP + dual-billing backend — verify/webhook/ledger + billing-router shipped via p1.5b.1+p1.5b.2 (PRs #75 #77 #78 #80, 2026-05-26→27)
  • f. ✓ IAP native purchase UI + Restore Purchases — Swift plugin + paywall + Restore + Delete deep-link shipped via p1.5b.3+p1.5b.4 (PRs #82 #84, 2026-05-27)
  • g. ✓ Privacy manifest (PrivacyInfo.xcprivacy) + App Store listing draft
  • h. ✓ iOS build CI (build-ios.yml)
  • i. ✓ App Review + submission — APPROVED for distribution 2026-05-27. Build 2 (reviewSubmission eae3f4c9-f90e-4801-b4aa-4d062f2bebf9) bundled with both subscription products; v1.0 live at https://apps.apple.com/app/owlwatt-solar-monitor/id6771940071. (Original 5.3a submission e8599317 REJECTED 2026-05-26 for 2.3.8 placeholder icons + 3.1.1 IAP required; both fixed in resubmission.)
Phase 1.20 Complete

Disaster Recovery & Backup

Backups and a tested recovery plan for the whole estate — catastrophic loss, breach, or single-component failure — with agentic recovery runbooks. The database currently has no independent backup.

5 deliverables
  • a. ✓ DR plan document — docs/DISASTER_RECOVERY.md (912 lines, 6 agentic recovery prompts, headline RPO/RTO table — PR #96, 2026-05-27)
  • b. ✓ Automated daily Neon pg_dump → R2 + local, AES-256 encrypted, 30-day retention, restore-verified (~/.owlwatt-db-backup, cron 04:23 UTC)
  • c. ✓ Encryption-key escrow — OWLWATT_KEK_B64 + APP_FERNET_KEY pulled to ~/.secrets; ~/.secrets itself escrowed daily to R2, AES-256 encrypted (~/.owlwatt-secrets-escrow, cron 04:41 UTC). Neon PITR 6h→7d + production branch protected. Escrow passphrase confirmed saved off-box in Olivier's 1Password (2026-06-01).
  • d. ✓ R2 object backup — bin/owlwatt-r2-pdf-backup.sh (PR #91)
  • e. 🟡 Hardening — monthly retention ✓, msgcenter failure alerts ✓, B2 second-provider leg LIVE ✓ (cron 04:53 UTC, owlwatt-db-backups-b2 bucket us-east-005, activated 2026-05-27), scoped R2 tokens ✓ (write token wired into all 3 backup crons + read-only token for restores, both verified end-to-end 2026-06-01; backups no longer use the broad prod credential), restore-from-backup drill ✓ (bin/owlwatt-restore-drill.sh — R2→decrypt→isolated Neon branch→restore→row-count→teardown; PASSED 2026-06-01, scheduled monthly 1st @ 05:30 UTC), R2 PDF mirror now cron'd daily 02:15 UTC

Project Gantt Chart

Interactive timeline of all OwlWatt phases. Hover bars for details. Scroll horizontally to navigate.

View:
Completed
In Progress
Not Started

Critical Path — Blockers & Dependencies

PostHog verification window (~2026-05-26)
PostHog (PR #33, 53a925e) running in parallel with Plausible. After the 7-day parallel check passes, the Plausible snippet is removed.
macOS collector — build + beta soak
v0.1.0-beta shipped 2026-05-20; enforcing rebuild (OTA signature + .app self-update) in flight. Windows collector deferred — no binary until OwlWatt incorporates (EV cert needs LLC + DUNS).
Google Search Console submission
Blocked on: needs Olivier's Google account.
Breach-response counsel
Last open p1.x item — retain a lawyer for breach-notification readiness. Business task, not code.
Pi image v3 rebuild
Blocked on: needs rebuild with all accumulated fixes.

Document Library

Docs stored in R2 — upload new versions without a deploy.

Loading documents...
Select a document to preview

Referral Program

Manage referral partners, track conversions, and view commission stats.

Program design: full attribution rules, commission math ($20 flat / $25 Gold), payout mechanics, and schema are documented in Referral Program — Design & Commission Model (2026-04-20).
See the full Referral Program design & commission model →
Loading referral stats...
Loading partners...

Installer Health Overview

Track installer business viability. When an installer goes under, affected customers lose workmanship warranty + production guarantee coverage.

Loading installer data...

Landing Page A/B Test

Per-variant impressions, unique visitors, signups, and conversion rate for the 3-arm landing rotation on owlwatt.com — v1-bold / v2-trust / v3-story. Persistent counts from LandingImpression — survives deploys.

Loading A/B stats...

Impressions — last 7 days (per variant)

Conversion rate (all-time)

Customers

All non-canary customers. Click View As to open a new tab with that customer's dashboard. An amber banner appears in the customer view; clicking EXIT returns to this page.

Loading customers…
Contract Patterns — Review Queue

Learned patterns

Confirmed
-
Pending review
-
Loading...
Recent Hints

User-submitted contract hints (last 20)

Loading...

Performance Guarantee Claim Outcomes

Customer-recorded results of filed Performance Guarantee claims. Win rate is computed over decided claims only (pending shown separately).

Loading outcomes…

Support tickets

Loading tickets…

Integrations — Home Assistant

HA-channel customer analytics. Counts customers with an active API token (used within 7 days).
UA format expected: owlwatt-ha/<version> (HA <ha_version>)

Loading HA analytics…