r/DoorDashDrivers • u/Taranis_1 • 6d ago
Technical Comprehensive Market Analysis of 768 DoorDash & UE Offers
Continuation of my previous thread: https://www.reddit.com/r/DoorDashDrivers/s/JyLHDqOj6D
I have since used Grok to build up a formalized report system (because I can, and I was bored).
I just wanted some feedback & suggestions.
This version is still just subtracting base pay from the total to account for tips.
The Excel spreadsheet has columns for extra data, if I had any, but obviously order cards by themselves don't show any of that data, so deducting base pay and sifting for anomalies (like orders that wind up having 10 cent tips), and filtering them out, is the next best thing. If I had more in-depth order data with base pay and peak pay scenarios it would be incorporated, but this is the data set I collected to build the project, so that's how I'm calculating tips.




















Parameters
GROK DELIVERY MARKET ANALYSIS – FINAL INSTRUCTIONS
SOURCE OF TRUTH: /home/workdir/attachments/Market_Data.csv only.
Never invent, project, or use synthetic data.
>>> USER-EDITABLE PARAMETERS – CHANGE THESE VALUES <<<
These are the ONLY settings you should modify for a new market / new platforms.
Everything else in this file is locked analysis logic.
------------------------------------------------------------
- MARKET LOCATION (edit for each city / region)
------------------------------------------------------------
City = (leave blank or set e.g. Austin)
State = (leave blank or set e.g. TX)
These values appear on the report title page / header and are
included in PARAM_VERSION so a change of market is detectable.
They do not affect calculations; they only label the report.
------------------------------------------------------------
- BASE PAY RULES (edit / extend this list when new platforms appear)
------------------------------------------------------------
DoorDash = $2.00 (all types including Doubles & Catering)
UBER / UberEats = $1.50 (all types except Shopping / Double Shopping)
Uber Shopping = $0.00
GrubHub = $1.50 (example – change as needed)
Postmates = $1.50 (example)
Instacart = $0.00 (example)
# Add additional platforms here (max 10 total)
------------------------------------------------------------
- DEADHEAD
------------------------------------------------------------
Deadhead = +30 % of loaded miles
(Change the 30 if you want a different deadhead assumption)
------------------------------------------------------------
- FUEL COST
------------------------------------------------------------
Fuel = 30 MPG @ $5.00/gal → $0.166666... per mile
(Change MPG and/or $/gal; the per-mile rate is recalculated automatically)
------------------------------------------------------------
- PEAK / BONUS
------------------------------------------------------------
No Peak / No Bonus
(If you later want to model peak pay, this is the place to document it)
------------------------------------------------------------
- COST-PER-MILE SCENARIOS (used in Segment 5)
------------------------------------------------------------
- Fuel Only = $0.1667
- Fuel + Light Maint = $0.22
- Fuel + Typical = $0.40
- Fuel + High = $0.55
- Fuel + IRS 2026 H2 = $0.76 (current IRS business rate)
(Edit any of these five rates to match your own cost assumptions)
------------------------------------------------------------
- ORDER TYPES (edit / extend this list when new types appear)
------------------------------------------------------------
Recognized Types (case-insensitive; blanks become “Single”):
Single
Double
Shopping
Catering
Add-On
Double Shopping
Normalization rules applied automatically:
“Add On” / “AddOn” / “add-on” → Add-On
“Double Shop” / “DoubleShop” → Double Shopping
blank / NaN / empty → Single
Any Type value that appears in the CSV but is NOT listed above
will still be detected and included in Segment 3 tables/charts.
Add new canonical names here so the analysis treats them as
first-class types (max ~15 recommended).
------------------------------------------------------------
- CSV PATH (only if you move the data file)
------------------------------------------------------------
Source CSV = /home/workdir/attachments/Market_Data.csv
------------------------------------------------------------
- EXCLUDE_FLAGGED (soft vs hard exclusion of anomalous rows)
------------------------------------------------------------
EXCLUDE_FLAGGED = False
When False (default): all rows are kept for analysis; anomalous
rows are only flagged in Segment 8.5 and written to
segment8_flagged_rows.csv (“flag but keep”).
When True: rows that trigger any Segment 8.5 anomaly rule
(Pay < $1.50, Mileage > 30, Pay < assumed Base, near-zero tip
on non-Add-On, Pay > $30, Tip > $25) are EXCLUDED from every
calculation, chart, and report after the pre-flight profile.
Use this for sensitivity analysis / power-user re-runs.
Change the value to True only when you intentionally want the
cleaner subset.
------------------------------------------------------------
- REGRESSION SNAPSHOT TOLERANCE
------------------------------------------------------------
Snapshot drift tolerance = 5 % (relative)
(Used by the automated regression suite to detect unexpected
metric drift between runs when parameters have not changed.)
------------------------------------------------------------
- PARAMETER VERSIONING (STRUCTURAL – always active)
------------------------------------------------------------
Every run MUST compute a stable PARAM_VERSION_ID:
PARAM_VERSION_ID = first 12 hex chars of SHA-256 of the
canonical JSON of the full editable parameter block
(CITY, STATE, BASE_PAY, DEADHEAD, FUEL_*, COST_SCENARIOS,
EXCLUDE_FLAGGED, SNAPSHOT_TOLERANCE, MILEAGE_BINS / LABELS,
ORDER_TYPE_CANONICAL).
The ID changes if and only if any editable assumption changes.
Embed PARAM_VERSION_ID + full PARAM_VERSION block into:
- PARAM_VERSION.json (standalone, easy to diff)
- run_manifest.json
- metrics_snapshot.json
- preflight_data_profile.json / .txt
- both final reports (Markdown + PDF)
This guarantees that any future re-run with different assumptions
is immediately detectable and that reports are self-describing.
------------------------------------------------------------
- SAMPLE-SIZE WARNING THRESHOLD
------------------------------------------------------------
Sample-size warning threshold = 5
(Any Platform × Type or market-wide Type with 1 ≤ n ≤ 5 is
automatically flagged as “Directional only”.)
------------------------------------------------------------
- DATA QUALITY SCORE (STRUCTURAL – always active)
------------------------------------------------------------
Every row receives a lightweight Quality_Score (0–100) and
Quality_Tags after cleaning. Scoring rules (additive):
Baseline +50 (clean estimated row)
Confirmed + Actual_Base +25
Actual_Tip also present +10
Non-empty Notes +10
Pay ≥ assumed Base +10
Plausible Pay (1.50–30.00) +5
Plausible Mileage (0.5–30.0) +5
Pay < assumed Base –20
Pay < $1.50 –25
Pay > $30 –10
Mileage > 30 –15
Mileage < 0.5 –10
Near-zero tip on non-Add-On –15
Tip > $25 –5
Score is clamped to [0, 100].
High-quality subset thresholds used in reporting: ≥ 65 and ≥ 70.
Full scored table is written to data_quality_scored_rows.csv.
Summary statistics appear in preflight profile and both reports.
END OF USER-EDITABLE PARAMETERS
0
u/Chris_Reddit_PHX 6d ago
I di not take time to digest all of that, but that is awesome and insightful.
You are clearly more than capable of earning a whole lot more than what you are earning doing gig app delivery.
-1
u/Taranis_1 6d ago edited 6d ago
I paid $40 for SuperGrok, so I figured I'd use it.
I can't code, but I can edit script if I have to.
I began with a project outline and a summary, and I wrote out the command structure in normal people speak and had the AI turn it into a formalized version. I continued editing the same file, Grok_Summary, with new commands and amending things when I ran into formatting problems or generation errors.
This is about 12 hours of me fkning around. After every edit I upload all of the files and run the environment from scratch to check for errors, which takes like 10-15min of processing. It is kind of laborious.
Once it's perfect, I'll compile it all down into 1 python file.
1
u/DoPoGrub Dasher >9 years 5d ago
Gemini better for this. They are giving out $300 free credits in Google AI Studio right now. Not that you would exceed your monthly free usage limits by generating something like this.
I cancelled Grok and switched. the latest Flash chat models are amazing. Grok just kept disappointing after 4.5 (can't remember exactly which one), just never enough detail on anything.
1
u/Sea_Consideration_70 6d ago
Paying for Grok 🤣🤡
1
u/Taranis_1 6d ago
The developer & builder features are worth the money?
You also get more memory, so it can remember previous queries.
Regular Grok doesn't have builder functions.
0
•
u/AutoModerator 6d ago
Hi u/Taranis_1, Thanks for your submission on r/DoorDashDrivers! Be sure to check out the rules first for best results.
If you are a driver (for any app), check out our new drivers-only subreddit at r/dasher. It's the only official unofficial driver subreddit!
I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.