🚗

RunSheet

Every stop, every status, every shift

Page 1 of 10 — Sign In & Shift Start
01 — Driver Sign In
3:52
●●●

RunSheet

Driver operations

Delivery service

Valley Delivery Co. (sample)▾

Your service assigns your runs

One app, every service running on your platform. Drivers only ever see their own service.

Login name

dcraun

Password

â€ĸâ€ĸâ€ĸâ€ĸâ€ĸâ€ĸâ€ĸâ€ĸ
Sign in

New driver? Apply

Trouble signing in? (540) 555-0188

AVEOSOFT

02 — Start Of Shift
3:58
●●●

Tonight’s shift

Thu 23 Jul ¡ Dinner shift 4:00 PM to 10:00 PM

Dale Craun ¡ 2016 Honda Civic ¡ VA XKR-4471

Before you start

✓Driver licensevalidâ€ē
!Insuranceexpires 14 Augâ€ē
✓Alcohol delivery certificateon fileâ€ē
📷Odometer start 112,486 miPhoto

Location sharing turns on when your shift starts and turns off when you clock out.

Start shift
03 — Tracking Health
4:00
●●●

Tracking health

⚠Background location is off — dispatch cannot see you
1Allow location while using the appDone
2

Allow all the time

Needs action

Fix
3

Turn off battery saver for RunSheet

Samsung

Fix

Notification preview

R

Tracking on ¡ Run 14

Stays up the whole time you are clocked in

You can see exactly when you are being tracked. Clock out and it stops.

01 — Run Header
6:03
●●●

Tonight

Run 14 ¡ Thu 23 Jul

On time

3 of 11

stops done
Est. finish 9:10 PMDale Craun

18.4 mi left ¡ 2 pickups pending ¡ 1 return

Next stop

04

Tinkling Spring Tavern

Pickup #48812 ¡ 225 Tinkling Spring Rd

Window 6:05–6:15 · 1.4 mi

Resume · Stop 04 — Tinkling Spring Tavern
02 — Stop List
6:04
●●●

Run 14 ¡ Stops

ListMap
03

T.J. Showalter ¡ #48809

601 Rosser Ave, Waynesboro

✓ Delivered 5:52 · synced

04

Tinkling Spring Tavern

Pickup #48812 ¡ 225 Tinkling Spring Rd

6:05–6:15

Driver Assigned
05

Marcy Alvarez ¡ #48812

418 Jefferson Hwy, Fishersville

6:25–6:45

Queued

🔑 Gate code in notes

06

2 orders at Ridgeview Inn

121 Apple Tree Ln, Waynesboro

Room 214Room 306
07

Augusta Business Park, Suite 300

window 7:00 PM

Queued9 min late
08

Sangers Ln, Staunton

⚠Address needs a pin — tap to fix
03 — Map & Sheet
6:04
●●●
04
05
06
07
08
09
10
11
ListMap
◎ Current stop
04

Tinkling Spring Tavern

225 Tinkling Spring Rd · 1.4 mi · pickup 6:05–6:15

Navigate to pickup
01 — Pickup Detail
6:05
●●●
←

Stop 04 ¡ Pickup

Tinkling Spring Tavern

225 Tinkling Spring Rd,
Fishersville VA 22939

⏱ Ready in 4 min · 6:09 PM

Manifest

3 bags
Order #48812 Alvarez2 bags
Order #48813 Shenk1 bag

Access notes

Park at the side door on Barrenridge. Front lot is catering pickup only. Ask for Wes.

Navigate
📞
đŸ’Ŧ
02 — Status Stepper
6:12
●●●
←

Stop 04 ¡ Order #48812

Status

✓

Driver Assigned

6:01 PM

✓

Driver At RestaurantAUTO

6:07 PM ¡ arrived by geofence

Driver Left Restaurant

You are here ¡ confirm the bags to send it

Driver At Customer’s

Pending

Delivered

Pending

✓ #48812 · 2 bags✓ #48813 · 1 bag
Confirm pickup — 3 bags

Order is not ready

03 — Order Not Ready
6:10
●●●

Stop 04 ¡ Pickup

Tinkling Spring Tavern

225 Tinkling Spring Rd, Fishersville VA 22939

Order is not ready

How long did they say?

5 min10 min15 min30+ min
Restaurant has no record of this order

Dispatch and the customer ETA both update from this. No typing.

01 — Customer Stop
6:26
●●●
←

Stop 05 ¡ #48812

Marcy Alvarez

418 Jefferson Hwy,
Fishersville VA 22939

Long-press to copy

Window 6:25–6:452.1 miETA 6:31

Access notes

Gate code 4417 ¡ Leave behind the screen door ¡ Dog in the yard

đŸ’ĩCash due $34.75tip not added
Navigate
📞
đŸ’Ŧ

Number is masked both ways

02 — Navigation Hand-Off
6:28
●●●

Open in

RunSheet does not do turn-by-turn. It hands you to the app you already trust.

đŸ—ēGoogle Maps✓
🧭Wazeâ€ē
📍Apple Mapsâ€ē
Remember my choice

Opens the saved drop pin, not the street text.

Hotel stop

Ridgeview Inn ¡ Room 214

Ask the desk for the guest by name

Do not leave at the front desk

03 — Arrival
6:33
●●●

Stop 05 ¡ #48812

Marcy Alvarez

Auto-arrive suggestion

Looks like you are at 418 Jefferson Hwy. Arrived 6:33?

Yes, arrived
Not yet

The app never completes a stop for you. It only offers the timestamp it recorded.

⏱0:42 at this stopFix the pin
Complete delivery
01 — One-Hand Camera
6:35
●●●
Too dark — retakePhoto looks good
đŸ”Ļ
🔄

Stamped with time and location

02 — Proof Sheet
6:35
●●●

Stop 05 ¡ Proof

418 Jefferson Hwy ¡ Marcy Alvarez

Delivered
Failed
Re-attempt
+

Received by

Left at door
🔒Signature required for Augusta Business Park
Complete stop

Completes now. The photo finishes uploading on its own.

03 — Cash & Tip
6:36
●●●

Cash at the door

CashCard on filePrepaid corporate
Cash collected$40.00
Order$34.75
Change given$5.25
Tip kept$0.00

✓ Delivered 6:36

GPS ¹8 m ¡ Stop 6 of 11
Next: Ridgeview Inn, 3.4 mi

Undo

Undo stays available for 30 seconds. Cash rolls straight into your checkout at the end of the shift.

01 — Exception Codes
6:40
●●●

What happened?

Pick a reason. No typing, ever.

🛑

Unsafe — dog, person, hazard

One tap. No note needed. Dispatch calls you.

đŸšĒ

Customer not home

Photo of the door required

📍

Cannot find the address

Drop a pin

🔒

No access — gate or lobby

Photo plus the code you tried

â†Šī¸

Refused — wrong or damaged order

2 photos required

đŸĒĒ

Age check failed — no ID or under 21

Reason only, never a photo of the person

🚧

Road impassable

Photo

02 — Failed Stop Evidence
6:43
●●●
Customer not home

Stop 09 ¡ #48821

Karen Puffenbarger ¡ 1414 Greenville Ave, Staunton

Door photo captured

6:41 PM ¡ GPS ¹11 m

✓ Evidence requirement met

Logged automatically

📞Called (540) 555-0142 at 6:41 — no answer
đŸ’ŦText sent 6:42

Account authorization

This account allows leave-at-door

Leave it
Return to the store

Same event shape as a delivery, so dispatch sees one timeline.

03 — Offline Queue
6:47
●●●
📴No signal near Stuarts Draft · 3 actions queued

Waiting to send

🕐Photo proof 6:36waiting
🕐Driver At Customer’s 6:33waiting
🕐Cash collected $40.00waiting

Keep working. Everything sends itself the moment you get a bar.

Once the signal is back

✓Delivered 6:36 · synced 6:58

Dispatch keeps both times: what your phone recorded, and when the office received it.

01 — New Stop Offer
6:52
●●●

New stop from dispatch

0:47of 90s
🍕Draft House Pizza
2740 Stuarts Draft Hwy
🏠Karen Puffenbarger
1414 Greenville Ave, Staunton

+4.1 mi ¡ adds about 12 min ¡ you are 1.2 mi from the pickup ¡ pushes your finish to 9:22 PM

Accept
Decline

Decline reason

Too farAlready running lateVehicle full
02 — Resequence Diff
6:56
●●●

Dispatch reordered your run

Changes wait until you finish the stop you are standing at.

Before

06

Ridgeview Inn

07

Augusta Business Park

After

New 06

Augusta Business Park, Suite 300

window 7:00 PM

07

Ridgeview Inn was 06

Reason

Corporate window is tighter

Got it

Dispatch sees when you acknowledge

03 — Dispatch Chat
7:04
●●●
←
R

Renee ¡ Dispatch

Online

The customer at 418 Jefferson called, use the side door

6:28 PM

Left at door, photo attached

6:36 PM ¡ delivered

Running 10 late

🕐 Queued — will send when you have signal

On my wayRunning 10 lateNeed a call
Message dispatch
→
01 — Run Report
9:47
●●●

Run Report

Shift 4:00 PM to 9:48 PM

5h 48m on the clock ¡ 22 min break

Stops11 stops ¡ 10 delivered ¡ 1 returned
GPS distance47.6 mi
Odometer112,486 → 112,533 (47 mi) ✓ reconciled
📷Odometer end photoCapture

Location sharing stops the second you clock out.

Clock out
02 — Cash Drawer
9:49
●●●

Driver Checkout

Cash Drawer ¡ Run 14 ¡ Thu 23 Jul

Cash collected$86.40
Card orders$214.30
Cash tips$23.00
Card tips$18.25
Owed to the office$86.40
Yours to keep$41.25 in tips
✓Everything synced · 0 actions pending
Submit checkout

Checkout waits until the last photo uploads

03 — Earnings Detail
9:50
●●●

Tonight’s pay

Every line shown. Nothing rolled into a single number.

Base$12.00
11 stops × $2.50$27.50
47.6 mi × $0.30$14.28
Tips$41.25
Total$95.03
Week to date$312.80
🧾Mileage log for taxes47.6 mi · 23 Jul

Base, per-stop and per-mile rates are set by your delivery service, not by RunSheet.

01 — Dispatch Board
app.example.com/dispatch

RunSheet

Office

Dispatch
Drivers
Orders
Reports
Settings
Valley Delivery Co. (sample tenant)

Dispatch board

Thu 23 Jul ¡ 6:34 PM ¡ 6 drivers on shift

Auto dispatch: ON
1
2
3
4
5
6
Driver AssignedDriver Left RestaurantDriver At Customer’sDeliveredFailed

Staunton – Fishersville – Waynesboro corridor · pin numbers match the driver roster

Driver Roster

1 ¡ Dale CraunDriver At Customer’s

stop 5 of 11 ¡ last ping 12s ¡ battery 46% ¡ location Always

2 ¡ Wes HeatwoleSend fix link

last ping 4 min ¡ location downgraded to While Using ¡ battery 9%

3 ¡ Marcus L.Driver At Restaurant

stop 3 of 8 ¡ last ping 9s ¡ battery 71% ¡ location Always

4 ¡ John D.Driver Left Restaurant

stop 6 of 9 ¡ last ping 18s ¡ battery 63% ¡ location Always

2 more on shift ¡ all pings under 30s

Live orders

OrderCustomerDriverStatusTime
#48812Marcy AlvarezDale CraunDriver At Customer’s6:33
#48813Bill ShenkDale CraunDriver Left Restaurant6:14
#48815Ridgeview Inn ¡ Room 214Dale CraunDriver Assigned6:20
#48819Augusta Business Park, Suite 300Marcus L.Driver At Restaurant6:29
#48809T.J. ShowalterDale CraunDelivered5:52
#48804Sarah K.John D.Returned5:31
02 — Order Detail Drawer
app.example.com/orders/48812

RunSheet

Office

Dispatch
Drivers
Orders
Reports
Settings

Order #48812 ¡ Marcy Alvarez

418 Jefferson Hwy, Fishersville VA 22939 ¡ Run 14 ¡ Dale Craun

Delivered 6:36 PM

Event timeline

Driver Assigned

device 6:01 PM ¡ received 6:01 PM

Driver At Restaurant AUTO

device 6:07 PM ¡ received 6:07 PM ¡ geofence

Driver Left Restaurant

device 6:14 PM ¡ received 6:14 PM

Driver At Customer’s OFFLINE

device 6:33 PM ¡ received 6:58 PM

Delivered OFFLINE

device 6:36 PM ¡ received 6:58 PM

Proof of delivery

GPS accuracyÂą8 m
Received byLeft at door
Cash collected$40.00
Change given$5.25

Assignment

Nearest available

Dale Craun

1.2 mi away

Assign
Choose driver
Message driver

Every row on this page is produced by the app. Device time and received time are stored separately so a dead zone never rewrites history.

RunSheet Driver Operations V1

A native driver app that sits on top of an existing dispatch system. Drivers clock in, work tonight's assigned run, hand off to the map app they already trust, push status back the moment it changes, and capture proof, cash and tips even when the phone has no bars. The dispatch view shows what the app produces: live telemetry, device time versus received time, and a proof record per order.

âš™ī¸

Tech Stack

Flutter 3.x
Native platform channels (Kotlin / Swift)
Node.js + Express
PostgreSQL + PostGIS
SQLite / Drift offline store
FCM + APNs
S3 presigned uploads
🧠

Core Technologies

  • Flutter — One codebase, Android and iOS, iPad-ready layouts
  • Kotlin / Swift — Foreground service, region monitoring, OEM battery policy
  • Node.js + Express — Status ingest, assignment, idempotent event API
  • PostgreSQL + PostGIS — Runs, stops, geofences, event ledger
  • Offline queue — Local-first writes with retry and conflict rules
  • Push — Assignment, resequence and dispatch messages
đŸ“Ļ

V1 Deliverables

✓
Per-service driver sign in with tenant scoping, shift start checklist and odometer capture
V1
✓
Background location: Android foreground service, iOS region monitoring, plus the permission and battery-policy wizard drivers actually need
V1
✓
Tonight's run: sequenced stop list, map with matching numbered pins, grouped hotel stops, late overlays
V1
✓
Restaurant leg using the platform's own status words, with geofence auto-arrive that suggests and never auto-completes
V1
✓
Navigation hand-off to Google Maps, Waze or Apple Maps against the saved drop pin
V1
✓
Proof of delivery: one-hand camera, photo quality check, received-by, signature rule for corporate accounts
V1
✓
Offline-first event queue with visible counts, ordered retry and deferred photo upload
V1
✓
Structured exception codes with per-code evidence requirements and auto-logged call and text trail
V1
✓
Two-way dispatch: offered stops with acknowledgement, resequence diff, driver chat with queued sends
V1
✓
Cash and tip capture at the door rolling into driver checkout, cash drawer settlement and run report
V1
✓
Dispatch console view: live roster telemetry, order states, per-order event timeline with device and received times
V1
→
Batched multi-order routing and drop-order optimisation
V2
→
Driver shift bidding and roster self-service
V2
→
Customer-facing live ETA link
V2
→
In-app tip adjustment and settlement export
V2
→
Photo redaction and retention policy per account
V2
→
Tablet dispatch layout for the restaurant counter
V2
🏛

Architecture Layers

MOBILE
Flutter ¡ platform channels ¡ Drift offline store ¡ WorkManager / BGTask
LOCATION
Foreground service ¡ region monitoring ¡ geofence arrivals ¡ OEM battery policy handling
API
Node + Express ¡ idempotent event ingest ¡ JWT + tenant scoping ¡ push fan-out
DATA & OPS
PostgreSQL + PostGIS ¡ S3 media ¡ device-time vs received-time ledger ¡ Sentry ¡ CI builds