Skip to content

v1.0.0 — MVP: Reconciliation Engine + KPI Dashboard

Choose a tag to compare

@deepan-mehta-analytics deepan-mehta-analytics released this 30 May 07:25

🏠 StayOps — v1.0.0

Full MVP — property operations dashboard with automated booking reconciliation, CSV/Sheets import, and a live KPI dashboard backed by Supabase Postgres.


What's included

Reconciliation Engine

  • Rule-based engine (lib/reconciliation.ts) detects 4 conflict types: duplicate, double_book, gap, price_mismatch
  • Idempotent flag creation — SHA-256 flagKey(type, sortedIds) prevents duplicate flags on re-run
  • Auto-triggers on first visit to /reconciliation if table is empty

KPI Dashboard (/)

  • Occupancy %, Average Daily Rate, Gross Revenue (rolling 30-day window)
  • Revenue by property table with nights + ADR breakdown
  • Upcoming turnovers (next 7 days) for cleaning schedule
  • Open flags card — red/green link to reconciliation page

Booking Import

Source Endpoint Method
CSV upload /api/import/csv multipart/form-data via papaparse
Google Sheets /api/import/sheets service account JSON, A1:Z1000 range
  • Dedup via source_row_hash (SHA-256 of guest|property|dates|channel)
  • Reconciliation auto-runs after every import batch

Reports Page (/reports)

  • All-time revenue by channel and by property
  • ADR per night and revenue share % per segment

Infrastructure

Item Detail
Database Supabase Postgres, 7-table Drizzle schema
Deploy Vercel (auto-deploy on push)
CI GitHub Actions — ESLint + TypeScript typecheck (Node 24)
Rendering All data pages force-dynamic — no stale static pre-renders

Roadmap

  • v2.0.0 — AI agent layer: Claude tool-calling reconciliation, weekly ops report → Slack, turnover auto-generation
  • v3.0.0 — Growth surface: direct-booking landing page, PostHog funnel analytics, lead capture