Set your floors — never go below them
These numbers drive both the plan and the offer judge. Drag them and watch the plan change its advice.
Your time-blocked plan
Don't run everything at once. Work one lane at a time — that's how the $150 Flex-only day becomes ~$195.
🎙️ Voice Judge — say it, hear the verdict
Phone mounted, site open, one tap to wake the mic. Say the app, the pay, and the miles — it always echoes the numbers back before the verdict, because mishearing $12 as $20 (or 4 miles as 14) flips take to skip. If it's unsure, it asks instead of guessing. You still tap Accept / Decline in the driver app itself — this only advises, and it never accepts for you.
🔒 Honest privacy note: on Chrome, the browser sends your voice audio to Google's servers to transcribe it — it's not processed only on your phone. Safari on iOS 14.5+ and Edge also support speech recognition; Firefox effectively doesn't, so Firefox drivers get the typed judge below. And a website can't listen continuously in the background while DoorDash is in front — v1 needs this site in the foreground or a second mounted phone. Kill line for the real product: more than ~1 in 20 pay/miles misheard in a real car, or verdicts slower than 5 seconds, and the live voice judge gets parked.
Quick Judge — typed fallback, 2 fields
The fallback when voice isn't available or the car is too loud — and the same brain the Voice Judge uses. Type the pay and the miles off the offer card — that's all. Everything else is pre-filled from your Plan settings, because there's no time for anything else.
Pre-filled, set once in Plan — never typed mid-offer: trip time 25 min (your typical run) • vehicle cost $0.67/mi • floors $1.80/mi • $25/hr. After the shift, the import screen swaps these estimates for the real numbers.
BORDERLINE — CHECK THE MATH
Below your $1.80/mi floor and under your $25/hr floor. Only take it if it heads toward your next zone.
*Projected from your pre-filled 25-min trip time and $0.67/mi vehicle cost. Estimates on purpose — the After Shift import replaces them with actuals.
Pause-all — the golden rule
The second you accept on one app, pause the rest. One tap here replaces juggling 4 apps at a red light.
Guardrails — don't get deactivated
The mock watches the numbers each app judges you on.
⚠️ Skipping is fine — accepting then cancelling is what hurts. Completion below ~80% triggers deactivation reviews on several platforms, so the judge never tells you to take an offer just to protect acceptance.
⚖️ Compare Mode — three offers, one spoken ranking
Say “compare”, then speak each offer one at a time — it fills slots A, B, C and echoes each back. Max 3: a 4th offer replaces the oldest, and “clear” wipes them. Then ask “which is best?” — you hear the rank first, details only if you ask (“tell me about B”). Saying “take A” logs A as your pick — you still tap Accept in the driver app itself.
⏱ Honest timer note: three truly live offers rarely stay open at once — DoorDash gives ~45 seconds, Uber Eats ~15 — so a live 3-way compare is realistic mainly when you're parked or between deliveries, or comparing a live offer against recent ones. If an offer you entered has already expired, treat the ranking as next-hour planning, not a live decision. On screen (parked), the same slots show as ranked cards — same math, just visible.
🏆 The ranking
Add at least two offers and the ranking appears here — best first, with $/mile, $/hour and net $/hour side by side. Floors come from the Plan tab and apply live.
📸 Import a screenshot
At home, screenshot your earnings or trip screen in the driver app and drop it here. The real product reads the pay, miles, and app off the image — in this mock it pre-fills sample values for you to check and fix before saving. Nothing is timed here, and that's the point: this never happens while an offer is ticking down.
Drop an earnings screenshot, or pick one from your phone:
Good version of this reads the image on your phone and doesn't keep the screenshot afterwards. The mock keeps nothing either — the preview never leaves this page.
📄 Import a CSV export
The driver apps let you download your own weekly earnings / trip history. Download it there, upload it here, and the ledger reconciles the whole batch at once — including tips that landed higher than the judge estimated.
Columns: app, pay, miles, minutes
⌨️ Or just type the shift in
Odometer and totals off the top of your head beat a perfect system you never open. Start miles, end miles, and what each app paid — done in a minute.
Parked, no timer — voice logging shines here. That demo phrase adds a DoorDash $86.00 / 48 mi entry to the ledger and speaks it back to confirm.
The ledger — estimates in, actuals out
Everything you judged live lands here as an estimate. Imports replace estimates with what the apps actually paid, so the per-app $/hour you plan tomorrow with is true.
Today's entries
Where each number came from — tap a source tag in the real product to see the original screenshot or file row.
How data gets in — honestly
- Live: you type 2 fields. The website never sees the offer before you do.
- After shift: screenshots and CSV exports you downloaded yourself from the driver apps.
- Never: your DoorDash/Uber password, a live feed, or background scraping. If a tool promises those without an official partnership, it's logging in as you — and that's the deactivation risk this design avoids.