Intake creates a bag tag. Then weigh → advance stages → pay.
Orders
Order
Customer
Bag Tag
Weight
Amount
Stage
Action
No WDF orders — create one above.
🔁 Wash & Fold Subscriptions
Recurring monthly plans with included pounds — predictable revenue, sticky customers. Included lbs auto-apply on weigh-in.
Plan
Customer
$/mo
Included lb
Remaining
Renews
Status
No subscriptions yet.
🏢 Commercial Accounts (B2B)
Contract per-lb rates + net terms for gyms, salons, Airbnb hosts, restaurants. Monthly statement rollup.
Business
Contract $/lb
Net Terms
Status
Statement
No commercial accounts yet.
🚚 Delivery
Delivery Zones
Zone
ZIPs
Fee
Min
Free Over
No zones.
Drivers
Driver
Phone
Status
No drivers.
Pending Stops
Type
Customer
Address
ZIP
Fee
Status
No stops.
🗺️ Delivery Routes
No routes yet.
Self-Serve Bays
🛒 Shopify Sync two-way inventory
checking…
Connect your store: paste your Shopify domain + Admin API access token (from a Custom App).
Retail Inventory
Bulk import SKUs from another POS. Paste CSV or pick a file. Columns (any order/case): name,upc,category,cost,price,qty,reorderPoint,supplier. Idempotent by barcode (else name) — re-import updates, never duplicates. Download template
SKU
Item
Category
Price
Qty
Reorder
Sell
Apparel — Styles & 3-D Matrix
Product Matrix
SKU
Color
Size
Width
Barcode
Price
Qty
Sell
Pick a style.
AI Auto-Replenishment
Item
On hand
Forecast 30d
Rec qty
Vendor
Est cost
No low stock.
Vehicle Intake
Work Orders
WO
Vehicle
Customer
Total
Status
No work orders yet.
🚙 Vehicle CRM
Every vehicle you've serviced — search by plate, VIN, customer, or make/model. Click a row for full service history.
Vehicle
Plate
Customer
Mileage
Last service
Next due
Visits
Loading…
Liquor / Package Store
Ring a sale — 21+ age check required
21+ verification — is the customer born on or before:
—
or enter DOB:
Enter date of birth — MM / DD / YYYY
MM/DD/YYYY
Inventory — bottles & cases
SKU
Product
Cat
Size
ABV
Price
Bottles
/Case
Loading…
🍸 Bar POS
Ring a drink — 21+ age check required
21+ verification — is the customer born on or before:
—
or enter DOB:
Recent bar sales
Sale
Items
Total
Age
Loading…
🧾 Tabs
Open a new tab — 21+ age check required
🔒 Pre-auth card $optional card hold on open (0 = none) · simulated
Open tabs
Loading…
🍾 Bottle Service / VIP Tables
Open a VIP table — set minimum spend + assign server
Min $
Open VIP tables
Loading…
🍾 Bar Inventory
Add a product / drink
Products
SKU
Product
Cat
Size
Price
On hand
Pours left
Loading…
🍸 Cocktails recipe costing + fractional pour depletion
Build a recipe — name, price, and 1–4 component pours (oz)
Price $
No recipes yet.
📊 Pour Variance shrinkage / over-pour control
Loading…
Product Catalog
Scan any UPC. Unknown codes are looked up once from an external product DB, then cached forever — the catalog builds itself.
Catalog
Barcode
Name
Brand
Category
Suggested $
Source
Verified
Loading…
Forecourt
Fuel prices ($/gal) — click to edit
Pumps
C-Store
Ring up
Store inventory
Switching POS? Bulk-load your whole c-store catalog. Paste CSV or pick a file. Columns (any order/case): name,upc,category,cost,price,qty,reorderPoint,supplier. Idempotent by barcode (else name) — re-import updates, never duplicates. Download template
SKU
Item
Category
Price
Qty
Loading…
Unified Ledger
Txn
Type
Detail
Amount
Margin
Time
No transactions yet.
💵 Tobacco Scan Data / Rebates
Enroll in manufacturer programs (Altria, RJR/Reynolds, ITG), tag qualifying tobacco UPCs, auto-capture rebate on every sale, generate submission files, and track payments. Petrosoft charges $29/mo for this — it's built in here.
Enroll in a manufacturer program
Tag a qualifying UPC (scan-data eligible)
Enrolled programs
Program
Manufacturer
Cadence
Tagged UPCs
Status
Loading…
Accrual this period — by program
Manufacturer
Period
Units
Accrued
Unreported
No rebate accrued yet.
Generate submission file:
Generated files
File
Manufacturer
Period
Events
Units
Rebate
Created
No files generated yet.
Log a received rebate payment
Payments log
Manufacturer
Period
Expected
Received
Variance
Received At
No payments logged.
🎟️ Lottery Reconciliation
Register scratch games, receive/activate/settle books, record daily scratch + online/draw sales and winner payouts, then reconcile a period against the state settlement to see commission earned, net position, and over/short. Book-to-sale lottery reconciliation — the Petrosoft moat, built in.
Add a scratch game
Receive a book
Games
#
Name
Price
Tix/Book
Comm%
Active
Loading…
Books
Book #
Game
Status
Sold
Sales
No books received.
Record daily sales
Scratch (by book):
Online / draw terminal:
Winner payout (cashed ticket)
Sales this period
Date
Kind
Book/Game
Tix
Sales
Comm
No sales yet.
Payouts this period
Date
Kind
Game
Amount
Comm
No payouts yet.
Reconcile the period
Builds a settlement, marks in-period sales/payouts settled (no double-count), and computes over/short vs. the state amount.
Settlements history
Period
Sales
Commission
Payouts
Net Due
Owed State
State Amt
Over/Short
No settlements yet.
🛢️ Fuel Reconciliation
Pump-to-pocket: every gallon dispensed ties to money collected AND tank inventory. Pull pump totals + ATG tank readings from the fuel controller (simulated now; Gilbarco Passport + Veeder-Root ATG when a site grants access), log deliveries, then reconcile a period to see margin $ and over/short per grade. The Petrosoft fuel moat — and the multi-station Gilbarco deal path.
Volume by grade (gal)
Margin by grade ($)
Tank variance (gal)
Sync from controller (pump totals + ATG readings)
Pulls deterministic sample pump totals + ATG tank readings from the simulated FuelController. Swap to Gilbarco/Veeder-Root by setting RFNRY_FUEL_PROVIDER=gilbarco + creds (see provider status above).
Add / update a grade (retail + cost → margin)
Add / update a tank
Grades (retail → cost → margin)
Grade
Name
Retail
Cost
Margin/gal
Loading…
Tanks (book vs last reading → variance)
Tank
Grade
Capacity
Book gal
Last reading
Variance
No tanks.
Log a delivery (fuel drop increases tank book volume)
Manual dispense entry (per grade/shift)
Competitor price (margin-opportunity flag)
Dispense this period
Date
Pump
Grade
Gallons
Sales
Src
No dispense yet.
Competitor prices
Competitor
Grade
Their ¢
Ours ¢
Flag
No competitor prices.
Reconcile the period → over/short + margin per grade
book inventory = prev + deliveries − dispensed; tank variance = reading − book; margin = (retail−cost)×gal; over/short = sales − expected. Marks in-period rows settled (no double-count).
Reconciliations history
Period
Gallons
Sales
Margin
Margin %
Delivered
Over/Short
No reconciliations yet.
🎛️ Wash Controller
Activate your tunnel through your controller brand. All brands are SIMULATED today — real relay/serial/TCP/API wiring is scoped in the integration roadmap.
Test Activation
Recent activations
When
Brand
Package
Mode
Note
None yet.
🎥 Cameras & AI Security
Reolink-based camera + AI security, POS-linked. Events are SIMULATED today; real RTSP/ONVIF wiring is in the roadmap.
🚗 LPR Auto-Read (Test)
Add camera
Cameras
Location
Brand
AI Features
LPR Token
No cameras.
AI Event Feed
When
Type
Camera
Detail
Clip
No events.
Transaction-linked video: each sale can carry a cameraId+timestamp ref, so an operator can pull “video for ticket #X” (simulated clip URLs today).
📦 AI Inventory Intelligence
Sales velocity, dead-stock/shelf-age, and cross-tenant market recs — computed over your real transaction data. No fabricated numbers.
The platform that thinks. Real math over your own live data — sales trends, ticket & revenue insights, and plain-English answers about your business. Deterministic core (defensible, free, private); optional LLM polish.
📅 Daily Close — AI summary
Loading…
💬 Ask your business
Try: total revenue · tickets today · cash over/short · members · top store
⛽ Margin optimizer
Grade
Now
Comp
Move
Proj $/day
Loading…
📈 Demand & reorder
Item
On hand
Days left
Reorder
Loading…
🚨 Shrink & fraud detection
Severity
Source
Subject
Impact
Detail
No anomalies.
📜 Saved insights
When
Kind
Severity
Impact
Ack
No saved insights.
✨ Services
📅 Calendar
🧭 Floor Board
🎟️ Tickets
📈 Overview
Service Menu
Tap a service to ring it up, or open the register.
Bulk import catalog — paste seed JSON from seed-cowboy-detail.mjs ({categories:[…],services:[…]}). Idempotent by name; re-import updates, never duplicates.
Loading…
Detail Calendar — book appointments by bay
Loading…
Book a Detail Appointment
License plate — look up the vehicle & customer
— or scan/enter the VIN for exact vehicle (Auto.dev) —
Customer
Phone
Vehicle
Bay
Start
Vehicle tier
Deposit $
Tap services to add them — selected turn green
No services selected
Register
Tap services, add the customer/plate, take payment.
Loading services…
🧾 Ticket
No services yet.
Total$0.00
Recent Tickets
Ticket
Source
Customer
Vehicle
Services
Total
Status
No tickets yet.
Detail Center — Overview
Revenue trend
Bookings by status
Top services
Bay utilization
Detail — Today's Floor Board
Loading…
Hot Food
Tap an item, choose options, send to the kitchen.
Loading menu…
🎟️ Order
No items yet.
Total$0.00
Kitchen Display
Live orders — oldest first. Tap to advance.
Loading orders…
Cash Management
Open a drawer
Float $
Open drawers
Safe & back office
Safe: $0.00
Over / short by cashier (today)
Cashier
Drawers
Cash sales
Variance
No closed drawers today.
Activity
Type
Till/Machine
Amount
Detail
Time
No activity yet.
Activity Log
Order
Kind
Target
Detail
Amount
Payment
Time
No activity yet.
Staff
Add staff
Username
Name
Role
Site
Status
Actions
No staff yet.
Employees — profiles, pay & PIN
Name
Position
Rate
Username
Role
PIN
Status
Actions
Click “Refresh” to load employees.
Locations
Location switcher — drill into one store (stays inside your org)
Location
Site ID
Type
Members
Membership MRR
Low stock
No locations.
Team
Add staff (any of your locations, or another org admin)