Not for customers — this is the internal team tracker.
Accounts are created by the owner in the Supabase dashboard — there's no public sign-up here on purpose.
Caro Detail // Detail Team
Employee XP Tracker
Log real work. Watch the dial fill. Level up when you clear the gate.
Log a Job
Choose who this job is for.
Log a Job
Revenue, time and add-ons feed commission math and trackers automatically. Log CSAT separately once a survey response comes back.
Each vehicle's price rolls into the subtotal below. Target gross rate and total estimated time are both auto-blended from what's picked here. If two people are checked as working the same vehicle together, that vehicle's estimated time is automatically split between them. Any additional services beyond the main one — whether preset at booking or upsold on the job — go in the Add-Ons section below.
Anything beyond the main service — whether it was already on the order at booking or upsold during the job. Check it off, pick a pricing category or type a price, adjust its time if this one ran different, then mark its origin: already on the order (no commission change) or upsold by a tech (they get add-on commission on it, and it counts toward their upsell stats). Its time either way rolls into the job's estimate.
Tracks attempt rate separately from success — answer this even if nothing sold, so we know whether upselling was tried at all. If more than one tech is on the job, Ctrl/Cmd-click (or tap each on mobile) to select everyone who attempted — e.g. both tried and both struck out. Auto-fills once an add-on above is marked "upsold by a tech", but you can still correct it.
Tracks attempt rate separately from success, same as upselling — answer this even when the customer didn't book, so we know whether the ask was made at all. If more than one tech is on the job, Ctrl/Cmd-click (or tap each on mobile) to select everyone who asked. If they booked, enter the subtotal of the newly-booked job — that's a success and splits % of it as a bonus evenly among whoever's selected above, on top of full BAMFAM XP each.
Ctrl/Cmd-click (or tap each on mobile) to select more than one.
Comes off this ticket as a discount and off their credit balance when you save. Doesn't change their tech's commission.
Leave this unchecked if the vehicle prices above already include it. It's added as a fee, so it counts toward shop revenue but not commission — same as the Pricing Calculator.
Replaces their calculated commission for this job entirely — for one-off situations (a favor, a hard job that deserves extra, a discount you're covering yourself). Only applies to the primary technician on this card, not to any teammates in a split job.
Revenue, tip and base commission split proportionally by actual time worked — a "2" gets twice the cut of a "1". Upsell pay is split the same way — the seller picked on each upsell gets the sales credit (upsell stats, gates and badges), not extra pay. Who worked which vehicle is set per-vehicle above, and drives each person's vehicle credit. Everyone included still gets full XP.
hrminsec
hrminsec
Fill in the fields above to see the commission preview.
Log CSAT
One question to the customer: "Were you happy with your detail today?" Tap their answer.
Pick Yes/No or enter a star rating.
Log Redo
Linking this to the original job keeps your quality data accurate — and if that job earned an efficiency bonus, it gets corrected automatically, since a job that needed a redo wasn't actually done right the first time.
Edit Customer
Update this customer's name or origin — it autofills automatically the next time this Customer ID is used in Log Job.
Referral credit
Give this customer credit for referring someone — it shows up as a pickable discount in Log Job for any job they book.
Balance$0.00
Edit Employee
Correct details, set a PIN, place someone at a level, or manage certifications and PTO.
Paste this into the employee_id column when you create their Supabase login — see SETUP-GUIDE.md.
New Goal
Something closer and more achievable than the big level gates. Great to set together in a 1:1.
1:1 Meeting
Auto-built from their current numbers. Questions are from the guide — jot short answers as you go, skip whatever doesn't fit this conversation.
Past 1:1s — printable
"How's it been going since we last talked?" · "Best part of work lately? Most frustrating?"
Does the pace toward their next level feel right? · What's the hardest part of hitting [goal]? · Change or drop any current goal?
What skill do they want to get better at? · Job type they avoid, and why? · Who would they want to learn from?
Anything I could do better as your manager? · Anything about how the shop runs that's frustrating?
Walk me through what happened on [specific job]. · Any car type or situation where they feel rushed?
Where do they see themselves on the ladder a year from now? · Boss or Manager leaning, even if early?
How's the team dynamic feeling? · Anyone who deserves a shoutout I might not know about?
"What's one thing you'll focus on before we talk next?"
Settings
Every number the system runs on. Changing commission rates will ask whether to recalculate past jobs.
XP Awards
Level Gates & Bonuses
XP
Vehicles
Upsells
Reviews
Min Days
Redo % Max
Bonus $
Commission %
Add-on %
5★ Bonus $
Hourly $/hr
CSAT Min
Ladder options
Extra career tracks stay hidden until you need them. Each one turns itself back on automatically if someone is already on it.
Fork — Boss Track
XP
Vehicles
Upsells
Reviews
Bonus $
Commission %
Add-on %
5★ Bonus $
Hourly $/hr
CSAT Min
Fork — Shop Manager Track
Sales Ladder — Level Gates & Bonuses
Same mechanic as the technician ladder, applied to anyone with "Sales Rep" as their title. "Bookings" plays the same role "Vehicles" does for technicians.
XP
Bookings
Upsells
Reviews
Min Days
Lost-Deal % Max
Bonus $
Commission %
Add-on %
5★ Bonus $
Hourly $/hr
CSAT Min
Sales Fork — Top Closer Track
XP
Bookings
Upsells
Reviews
Bonus $
Commission %
Add-on %
5★ Bonus $
Hourly $/hr
CSAT Min
Sales Fork — Sales Manager Track
Shop-Wide
Once per order, on top of everything else. Each tier's minutes is the upper bound for that tier — the last row covers anything longer.
Upsell Minimums
Required minimums for each tech's Upsell Offer % (how often they attempt one) and Upsell Close % (how often an attempt sells). Set either to 0 to turn that requirement off.
BAMFAM Minimums
Required minimums for each tech's BAMFAM Attempt % (how often they ask for a rebooking) and BAMFAM Success % (how often an ask ends in a booking). Set either to 0 to turn that requirement off.
Fees & Discounts
Named presets to pick from when logging a job — a discount subtracts from the subtotal, a fee adds to it. Commission is always paid on the subtotal either way, never on the adjustment.
Payroll
Real commission dollars from logged jobs, plus hourly-floor reconciliation. Click any row for the job-by-job breakdown.
Log Additional Hours
Every logged job's actual time already counts toward hours worked automatically. Use this only for time not tied to a specific job — cleaning, waiting on customers, training. Adding full shift hours here on top of job time would double-count.
Shop Stats
The business view — everything logged, rolled up.
Add Employee
One name, or paste a whole list — one per line — to add several at once.
What's New
A running log of what's changed in this tool, in plain language.
Settings Change History
Who changed what pay-related setting, and when — separate from the general activity log since these are worth extra traceability.
Permissions
Who can do what. Owner-only. Changing someone's role takes effect the next time they load the app.
Level permissions (1-4)
Restricts tab access for anyone whose employee record has that permission level set — applies on top of role, and applies to owners/managers/leads too if their record has a level set. Set each person's level in Edit Employee. Unchecking a box here removes that access even for an owner-role login.
What each role can do
Owner — everything, including Settings, Payroll, hiring/firing, and this Permissions tab.
Manager — full roster access, Payroll, hiring, adding employees. Can't change commission rates, permanently delete anyone, or manage permissions.
Lead — can view and log activity for the whole team, run 1:1s, view the poster. No Payroll, Settings, hiring, or adding/removing employees.
Employee — sees only their own card, as it works today.
Marketing Settings
Once 5+ customers have a tracked Customer ID, LTV switches automatically from this fallback rate to your real repeat rate — no need to update it by hand.
Menu & Pricing
Pricing by category, a time estimate, the pitch, and how to perform it. This feeds the Add-Ons picker in Log Job.
New member
Record dues
New plan
Like a service's Sedan / SUV / Truck prices. Leave empty if the plan has one price.
Changing a plan's prices only affects new sign-ups. Existing members keep the price they signed up at. Sales tax is set on each member.
Add Service
Pricing by category
e.g. Sedan, SUV, Truck — whatever categories make sense for this service. Time is how long one of these takes one tech — Log Job, the schedule and the Pricing calculator use it. Leave it blank to estimate from price ÷ target rate. Product $ is what the chemicals and supplies for one job cost you — it's used for per-service profit in the Pricing calculator. The P&L counts what you actually buy, logged as purchases.
Edit Job Entry
Affects pay — recalculated on save, same as Log Job
hrminsec
hrminsec
Custom-pay overrides from the original job aren't reconstructed here — this recalculates commission, hourly top-up/overage, and efficiency bonus fresh from the numbers above, the same formulas Log Job uses.
Editable — doesn't affect commission
New milestone
Availability
Weekly pattern is the baseline for this person. Add a date override for any specific day that changes — like a part-time schedule from a second job that shifts week to week.
Date Overrides
Add Recurring Expense
Set a day and it shows up in Upcoming Bills, on the home screen and in your phone's calendar. Days 29–31 fall on the last day in shorter months. Mark bills you pay yourself as paid; autopay bills count as paid on their day.
Keeps a new expense from being charged against months before it existed.
Stops applying to P&L automatically once this date passes — the month it ends still gets a fair partial share, not the full month. Once it ends it moves to an "Ended" list and keeps counting in past periods it was active for.
Add Forfeited Deposit
Only fill this in if your state actually taxes a kept/forfeited deposit — that varies by state and by whether any service was performed, so check with your accountant if you're not sure. Leave at 0 if none applies; the full amount then counts as shop revenue.
Add Training Item
Quiz (optional)
Add questions to test understanding before marking this training complete.
Temporary Rate Adjustment
Applies to jobs logged from today forward only — never touches pay already earned. Automatically expires and reverts to their normal level rate, no manual cleanup needed.
Add Service
Pricing by category (optional)
e.g. Sedan, SUV, Truck — leave empty to just use the flat price above. Time on a category is how long the add-on takes on that size; leave it blank to use the time estimate below.
Time estimate
How long this add-on typically adds to the job — feeds the job's total estimated time when it's selected.
hrmin
Hiring
Score candidates against the same questions every time, then compare them on real numbers instead of memory. Candidate notes are owner-only and never visible in employee view.
Candidate
Rate each answer 1–5 as you go. Leave blank to skip a question — skipped ones don't drag the average down.
Refund / Void
Linking this to the original job means everything it actually paid out — commission, any overage bonus, efficiency bonus, and minimum-payout top-up — gets correctly reversed, not just the ticket revenue.
New Appointment
Locked onto this appointment — changing your default later doesn't change it. Once the job is completed, it's paid on this job's share of that quarter's net profit.
Leave blank to use the estimate (split across the techs).
Employee View
Enter your PIN to see just your own card. Leave blank and cancel to browse without one.