Product · Operating layer for car washes

WashOrbit

The operating layer I'm building for car washes, on top of the point-of-sale. The POS runs the wash; WashOrbit runs the business around it — turning the raw stream of members, visits, and equipment into the three things owners actually lose sleep over: keeping members, keeping machines running, and making every bad wash right.

Role

Product, design, and build

Stack

Next.js, TypeScript, Postgres, Prisma

Status

In development

The gap I kept hitting

A complaint comes in — and nobody can say what really happened.

Doing marketing for two local car washes, I kept watching the same thing: a customer reports a bad wash, someone hands out a free one to smooth it over, and the real problem — a clogged applicator, a worn mitter — never gets traced or fixed. So it happens again. I started there, with one wedge: turn a complaint into an owned case, link it to the cause, and don't let it close until the machine and the customer are both actually made right.

But the data that fixes a complaint — who the member is, what they pay, which machine touched their car — is the same data that keeps them from cancelling and keeps that machine from breaking. That's the bigger idea: WashOrbit isn't a complaint tool, it's the operating layer around the wash.

Not just a CRM

The operating layer, on top of the point-of-sale.

The point-of-sale runs the wash — identity, memberships, visits, payments. WashOrbit reads that read-only and runs the business around it, across four things owners care about. One is live today; the rest are where it's headed.

MembersOn the roadmap

Retention and churn — the recurring-revenue heartbeat. Spot at-risk members before they cancel and win them back.

MachinesOn the roadmap

Uptime and maintenance. A down tunnel is zero revenue, so equipment health ties straight to the complaints it causes.

MomentsLive today

Making every bad wash right — complaint to incident to approved recovery to a verified fix. The part that's built.

MoneyPartly live

What every issue costs and what every save is worth, per location — so operations shows up in the P&L.

WashOrbit

A calm, dense command center. Warm branding lives on the marketing site; the operator's tool is built to be legible under pressure.

Moments · live today

Moments · Dashboard

The whole operation on one screen.

Open cases, overdue SLAs, approvals waiting on a decision, live incidents, and open claims — the queues a manager actually watches, each one clickable straight into the work.

app.washorbit.com/dashboard

Operations Dashboard

Sunshine Car Wash · signed in as Alice Admin

+ New case
Open cases
7
Overdue SLA
1
Pending approvals
2
Open incidents
1
Open claims
1
Assigned to me
3

Recent cases

#TitleCustomerLocSeverityStatus
#1042Tires not cleaned after Premium WashMaria AlvarezL3HighIn Progress
#1041Scratch on driver-side door alleged after washJames ChenL1CriticalAwaiting Approval
#1039Requests credit for two missed washesRobert OkaforL4MediumAwaiting Approval
#1040Charged after membership pausePriya NatarajanL2MediumTriaged

Moments · Case detail

Everything about one complaint, in one place.

What happened, which customer and visit, who owns it, the incident that caused it, what was promised, the recovery that needed approval, whether the machine and the customer were both verified — and what it all cost.

app.washorbit.com/cases/1042

Case #1042 · Tires not cleaned after Premium Wash

Wash Quality · opened Jul 18, 9:24 AM by Carmen Service

HighResolved

What happened

Member reports the tire shine was not applied and tires still looked dirty after a Premium Wash + Tire Shine at Northgate.

Customer
Maria Alvarez
Vehicle
Toyota RAV4 (MI-8842AA)
Visit
Jul 18 @ L3
Location
L3 — Northgate
Owner
Carmen Service
SLA
Met

Ownership & what's due next

  • Inspect tire-shine coverage at Northgate
    Assigned to Liam Location
    Done
  • Clear applicator #2 nozzle & restore pressure
    Assigned to Morgan Maint.
    Done
  • Confirm return visit with member
    Assigned to Carmen Service
    Done

Recovery & approvals

Promised
Complimentary Premium Wash + Tire Shine and confirmation the line is fixed.
Complimentary Wash · $24.99
Approved by Alice Admin (Org Admin) · delivered
Delivered

Recovery offers require leadership approval before delivery.

Verify resolution & close

Operational correctionVerified

Post-repair test cycles show full tire coverage; supervisor confirmed on 5 vehicles.

Customer outcomeVerified

Member returned for the complimentary wash; tires cleaned and shined correctly.

Linked incident

Tire shine not reaching tires — Northgate (L3)
Equipment
Tire Shine Applicator #2
Root cause
Clogged nozzle and low product pressure prevented product from reaching tires.
Linked cases
3 complaints shared cause
Status
Corrected & verified

Financial impact

Recovery delivered$24.99
Claim payout$0.00
Total cost$24.99

POS sync

Synced

Customer, vehicle, visit, and membership mirrored from the point-of-sale. Cached read-only — no card data stored.

Audit trail

  1. Case opened · Carmen Service
  2. Linked to shared incident · Carmen Service
  3. Corrective action recorded · Morgan Maint.
  4. Recovery approved · Alice Admin
  5. Both outcomes verified · case closed

Moments · Approvals

No make-good goes out unapproved.

Recovery offers and claim payouts land in a leadership queue before they ever reach a customer. Every approve or deny is written to the audit log in the same transaction.

app.washorbit.com/approvals

Approvals

Recovery offers and claim payouts require leadership sign-off before delivery

Recovery · Account creditPending
Two-wash account credit — Case #1039 · Robert Okafor
Requested by Carmen Service
$39.98DenyApprove
Damage claim payoutPending
Alleged door scratch — Case #1041 · James Chen
Requested by Liam Location
$180.00DenyApprove

Every approval decision is written to the immutable audit log in the same transaction.

Members · where it's headed

Members · Retention

The same data that fixes a wash keeps the member.

A concept for the next pillar: read the point-of-sale's membership and visit history to surface who's about to cancel — a paused plan, a visit streak that stopped, a recent complaint — and turn it into a win-back before the churn hits the recurring revenue.

app.washorbit.com/retention
Concept · roadmap

Member Retention

Sunshine Car Wash · unlimited memberships — the recurring-revenue heartbeat

Export at-risk list
Active members
2,841
Net change · 30d
+38
At-risk
63
Save rate
41%
Est. MRR
$71k
Churn · 30d
3.2%

At-risk members

signals from POS visits & memberships
MemberPlanChurn signalRiskAction
Emily NovakUnlimited BasicPaused 14 days — no restart scheduledHighWin-back
Robert OkaforUnlimited BasicOpen credit request for two missed washesHighSave offer
Maria AlvarezUnlimited PremiumRecent complaint (resolved) — watch next visitMediumFollow up
Priya NatarajanUnlimited PremiumVisits down 60% over 30 daysMediumRe-engage

Concept — retention reads the same point-of-sale membership and visit data WashOrbit already mirrors, and a resolved complaint (Moments) becomes a retention signal here.

The rules underneath

Guarantees, not good intentions.

The parts that matter aren't UI — they're invariants enforced in the service layer and covered by tests, so the workflow can't be shortcut even by a rushed operator.

Verified resolution before closure

A case can't be closed until the operational correction and the customer outcome are both verified, with no approval still pending. No quietly-dropped complaints.

Approvals gate the money

Recovery offers and claim payouts require a leadership decision before delivery — and every decision is recorded.

One incident, many cases

Complaints that share a cause link to a single incident instead of spawning one per person, so a real equipment problem is seen for what it is.

History can't drift from state

Every important change appends an immutable audit row in the same transaction, so the record always matches what actually happened.

The point-of-sale stays the source of truth

Customer identity, memberships, visits, and payments are mirrored read-only from the wash's point-of-sale system. WashOrbit never stores card data or an editable copy of billing truth.

Tenant isolation, proven

Multi-tenant with six roles; every query is scoped to the organization and the test suite proves one org can't read another's cases, customers, or files.