Product

six steps. one system of record.

This is the flow the app and backend run today. The state names are the real ones.

01 · REQUEST
shift · OPEN

A business asks for coverage

Where, when, headcount, and required qualification. A quote and a prepay hold land before anyone commits.

02 · ACCEPT
assignment · ACCEPTED

Only eligible officers see it

Eligibility, availability, and qualification are checked on the server. One officer per slot. No double booking.

03 · CHECK-IN
assignment · CHECKED_IN

Presence is proven, not claimed

The server draws the geofence, measures distance, rejects mocked GPS and stale timestamps. Coordinates are discarded after the verdict.

04 · APPROVE
completion · APPROVED

A human signs off

An administrator reviews hours, adjusts billed time with a reason, and approves. The original check-out is never overwritten.

05 · LEDGER
financial record · balanced

Balanced to the cent

Business charge, admin fee, and officer payout are computed in integer cents and must sum. Every record stores the rate and fee that applied.

06 · AUDIT
export · READY

Written down forever

Hash-chained events per shift, actor identity hidden from non-admin readers, exports locked in write-once storage for seven years.

Worked example · one officer · 8 hours · $45/h · 10% fee
Business charge$360.00
Admin fee$36.00
Officer payout$324.00
Security

Built on AWS

Built on AWS · encrypted. Customer-managed encryption keys and tenant isolation on every record.

Privacy

No location retention

Only the verdict, distance, and accuracy are stored. Raw coordinates never touch the database or the logs.

Roles

Five, enforced by the API

Officer, Business Admin, Agency Admin, Finance, Auditor. Each route allows exactly the roles it should.

want the technical walkthrough?