Scan barcode

Point the camera at the barcode. Hold steady inside the frame.
Starting camera…
📊 Overview
🚗 Car Wash
🧺 Laundromat
👕 Retail
🛢️ Oil & Lube
🥃 Liquor Store
🍸 Bar / Nightclub
✨ Auto Detail Center
⛽ Fuel & Convenience Store
🎥 Security / Cameras
💵 Cash
🎛️ Operations

Wash Packages

Tunnel status

License Plate Check-In

Simulate a camera plate read. Members auto-authorize; non-members get an upsell prompt.
TX-CE-1425 (member) TX-RB-2250 (member) XYZ-9999 (non-member)

Unlimited Plans

Members

IDNamePlanPlatesVisits (cycle/life)Status

AI Wash Attendant

Simulate who's at the kiosk. VWA returns the best next-action pitch.
member plate new buyer picks BASIC brand-new car

Loyalty Accounts 10 pts / $1 · 1000 pts = $1 credit

AccountTierPointsLifetime
No loyalty activity yet — make a purchase.

Live Machine Metrics

MachineStatusTurnsRevenueUtil%Avg $DowntimeFaults

Machine Control

Audit Log

ActionMachineByDetailTime
No control actions yet.

Command Center

💵 Labor Cost (today)

Labor Cost
—
Labor % of Revenue
—
Labor Hours
—
$ / Car
—

Analytics

Revenue trend
Membership growth
Sales by vertical
Top movers
Visits / throughput

Wash-Dry-Fold

Intake creates a bag tag. Then weigh → advance stages → pay.

Orders

OrderCustomerBag TagWeightAmountStageAction
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.
PlanCustomer$/moIncluded lbRemainingRenewsStatus
No subscriptions yet.

🏢 Commercial Accounts (B2B)

Contract per-lb rates + net terms for gyms, salons, Airbnb hosts, restaurants. Monthly statement rollup.
BusinessContract $/lbNet TermsStatusStatement
No commercial accounts yet.

🚚 Delivery

Delivery Zones

ZoneZIPsFeeMinFree Over
No zones.

Drivers

DriverPhoneStatus
No drivers.

Pending Stops

TypeCustomerAddressZIPFeeStatus
No stops.

🗺️ Delivery Routes

No routes yet.

Self-Serve Bays

🛒 Shopify Sync two-way inventory
checking…

Retail Inventory

SKUItemCategoryPriceQtyReorderSell

Apparel — Styles & 3-D Matrix

Product Matrix

SKUColorSizeWidthBarcodePriceQtySell
Pick a style.

AI Auto-Replenishment

ItemOn handForecast 30dRec qtyVendorEst cost
No low stock.

Vehicle Intake

Work Orders

WOVehicleCustomerTotalStatus
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.
VehiclePlateCustomerMileageLast serviceNext dueVisits
Loading…

Liquor / Package Store

Ring a sale — 21+ age check required
21+ verification — is the customer born on or before:
—
or enter DOB:

Inventory — bottles & cases

SKUProductCatSizeABVPriceBottles/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

SaleItemsTotalAge
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

SKUProductCatSizePriceOn handPours 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

BarcodeNameBrandCategorySuggested $SourceVerified
Loading…

Forecourt

Fuel prices ($/gal) — click to edit

Pumps

C-Store

Ring up

Store inventory

SKUItemCategoryPriceQty
Loading…

Unified Ledger

TxnTypeDetailAmountMarginTime
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
ProgramManufacturerCadenceTagged UPCsStatus
Loading…
Accrual this period — by program
ManufacturerPeriodUnitsAccruedUnreported
No rebate accrued yet.
Generate submission file:
Generated files
FileManufacturerPeriodEventsUnitsRebateCreated
No files generated yet.
Log a received rebate payment
Payments log
ManufacturerPeriodExpectedReceivedVarianceReceived 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
#NamePriceTix/BookComm%Active
Loading…
Books
Book #GameStatusSoldSales
No books received.
Record daily sales
Scratch (by book):
Online / draw terminal:
Winner payout (cashed ticket)
Sales this period
DateKindBook/GameTixSalesComm
No sales yet.
Payouts this period
DateKindGameAmountComm
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
PeriodSalesCommissionPayoutsNet DueOwed StateState AmtOver/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)
GradeNameRetailCostMargin/gal
Loading…
Tanks (book vs last reading → variance)
TankGradeCapacityBook galLast readingVariance
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
DatePumpGradeGallonsSalesSrc
No dispense yet.
Competitor prices
CompetitorGradeTheir ¢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
PeriodGallonsSalesMarginMargin %DeliveredOver/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
WhenBrandPackageModeNote
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
LocationBrandAI FeaturesLPR Token
No cameras.
AI Event Feed
WhenTypeCameraDetailClip
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.
Sales Velocity
SKUQtyUnits/day 7dUnits/day 30dTrendClass
Loading…
Shelf-Age & Dead Stock
SKUQtyDays since saleDays of supplyFlagsRecommend
Loading…
Nearby-Market Recommendations (cross-tenant aggregate, anonymized)

🧠 AI Insights

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
GradeNowCompMoveProj $/day
Loading…
📈 Demand & reorder
ItemOn handDays leftReorder
Loading…
📜 Saved insights
WhenKindSeverityImpactAck
No saved insights.
✨ Services
📅 Calendar
🧭 Floor Board
🎟️ Tickets
📈 Overview
Service Menu
Tap a service to ring it up, or open the register.
Loading…

Detail Calendar — book appointments by bay

Loading…
Register
Tap services, add the customer/plate, take payment.
Loading services…
🧾 Ticket
No services yet.
Total$0.00

Recent Tickets

TicketSourceCustomerVehicleServicesTotalStatus
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)

CashierDrawersCash salesVariance
No closed drawers today.

Activity

TypeTill/MachineAmountDetailTime
No activity yet.

Activity Log

OrderKindTargetDetailAmountPaymentTime
No activity yet.

Staff

Add staff
UsernameNameRoleSiteStatusActions
No staff yet.
Employees — profiles, pay & PIN
NamePositionRateUsernameRolePINStatusActions
Click “Refresh” to load employees.

Locations

Location switcher — drill into one store (stays inside your org)
LocationSite IDTypeMembersMembership MRRLow stock
No locations.

Team

Add staff (any of your locations, or another org admin)
UsernameNameRoleSiteOrgStatus
No staff yet.

Campaigns

Compose & send
Tokens: {name} {plan} {location} {expiry}. Marketing respects consent; opted-out recipients are skipped.
CampaignChannelAudienceSentSkippedFailedTime
No campaigns yet.

Automations

Welcome (on enroll, transactional) · Win-back (on cancel/lapse) · Expiring card (payment nudge). Editing requires marketing:write.
AutomationEnabledChannelTemplateDelay (min)
Loading…

Messaging Config

Credentials are write-only — stored encrypted, never shown. Simulated provider is active; real Twilio/Resend drop in later.
SMS (Twilio)
A2P 10DLC: —
Email (Resend)
Domain verified: —

Send Log

ChannelToStatusSourceRefProviderTime
No sends yet.
📣 Message Customers