Over 1,040 active days behind the wheel, across three platforms and two states, I generated $327,729 in net earnings — and a data trail rich enough to answer questions almost no driver ever asks. This is what I found when I treated my own gig-work like a research project.
The number Uber shows you in the app is a fiction. So is the figure on your 1099. Both are technically true but neither answers the question that matters: per hour of your life, what does this work pay? The honest answer requires reconciling at least three different ledgers, none of which agree with each other.
I started driving for Uber in July 2018 to supplement income during a career transition. What began as a side gig became a multi-year operation that produced — without my realizing it — one of the richest personal datasets I'd ever encounter. Uber records every trip with timestamps, distances, surge multipliers, and per-line-item payments. Lyft tracks sessions and payouts. Gridwise logs total clocked time including the unpaid waiting and deadheading that Uber's data conveniently omits.
In May 2026 I requested the full archives. What follows is what I found when I joined them together.
The single hardest part of this analysis was getting four different platforms to tell the same story. Each export had its own definition of a "trip," its own version of what counts as earnings, and its own set of inexplicable gaps. The 2024 Uber data showed me a $1,920 day — except I'd only completed four rides that day. The Lyft rides file had 1,484 trips but the payments file showed I'd been earning Lyft money during years where no rides existed in the rides export. Gridwise had hours but no platform attribution.
Pulled raw data exports from Uber (trips + payments), Lyft (rides + sessions + payouts), and Gridwise (the only source with total clocked time including deadhead). Six CSVs, ~415,000 rows.
Gridwise hours matched Uber payments within $1K over three years. The $1,920 outlier turned out to be a screenshot-confirmed back-pay settlement Uber excluded from the standard ledger. Diagnosed via cross-referencing line-item categories.
Built unified daily and monthly aggregates. Calculated $/clocked-hour (not $/engaged-hour), per-trip net after platform fees, and the IRS mileage deduction across 158,940 miles.
Decomposed by day-of-week, hour-of-day, surge tier, airport vs city, and platform. Identified the day where 47% of revenue concentrates, and the surge windows that generate disproportionate earnings.
If you look at Uber's data alone, my "on-trip" earnings averaged $95 per hour. That sounds great. Now subtract the time spent driving toward riders, waiting at the airport queue, repositioning after a long trip, sitting through dispatch lulls — all the time the meter doesn't run but the work continues. The honest rate is less than half.
The headline rate hides a more interesting story: my hourly compensation has been remarkably stable over three years, despite Uber raising its take rate from 17% to 44% over that span. I've been running faster to stay in place.
| Year | Active Days | Trips | Net Earnings | Hours | Miles | $/hr | Tax-Deductible |
|---|
A monthly view reveals patterns invisible at the annual level: the autumn surge that drives every year's earnings curve, the spring trough that I haven't successfully fought against, and the steady upward drift in my month-to-month consistency as I've learned the Pittsburgh market.
If you've spent any time driving, this won't surprise you. What might surprise you is the magnitude. The average Saturday produced $453 in net earnings; the average Tuesday produced $272. Over three-plus years that delta has compounded into something like $50,000 of difference between my weekend earnings and my early-week earnings — for the same hours of work.
The deeper finding is what the day-of-week pattern reveals about cost of complacency. Tuesday is the cheapest day to take off, but Tuesday is also the day where my marginal hour earns the least. The optimization isn't to drive more on Tuesday — it's to never drive past 8 PM on Tuesday, and to always be driving by 5 PM on Saturday.
A single chart that tells you almost everything about how I actually work. The mass of activity sits between 3 PM and 11 PM, all week — but it intensifies on Friday and Saturday nights, and falls off a cliff after midnight. The dawn hours between 3 AM and 7 AM are essentially empty across all seven days. That's not market data. That's my data. Other drivers have very different shapes.
Reading the heatmap: Each cell represents one hour-of-week. Darker cells indicate more completed trips during that hour across the three-year period. Rows are Monday through Sunday (top to bottom); columns are hours 00 through 23 (left to right). Source: Uber completed-trips dataset, Jan 2023 – May 2026.
In 2018, Uber kept about 17 cents of every dollar a rider paid. By 2026, they're keeping 44 cents. This isn't a secret — Uber acknowledges it in their public filings — but the lived experience of it is striking. To earn the same $40 hour I earned in 2023, I have to be substantially more efficient in 2026, because Uber sits on a larger share of the rider's payment.
Conventional wisdom says successful drivers chase surge. My data says something more nuanced: the vast majority of trips happen at base price, and those base trips form the backbone of consistent income. Surge isn't a strategy — it's a windfall that occurs alongside the strategy. The 248 trips I've completed at 3.0× or higher pulled an average fare of $32, more than double the no-surge average.
Pittsburgh International Airport runs averaged $42.69 per trip, against $15.76 for the typical city trip. Over the analysis period I only completed 139 airport trips out of 24,744 — about 0.6%. If I doubled that share, my earnings would rise by roughly $2,000 a year at no additional time cost.
Across the period I received tips on 39.1% of trips, totaling $35,911. Industry research suggests typical rideshare tip rates of 16% to 25%, so this represents one of the strongest signals in the dataset that customer experience matters. At an average $3.60 per tipped ride, tips alone funded the equivalent of roughly 2,800 extra trips' worth of base fare.
When measured properly, Lyft pays $37.21 per clocked hour to Uber's $41.52 — a gap of just 10%. The per-trip narrative ($12.06 Lyft, $12.77 Uber) tells the same story. Lyft is a viable supplement, especially during the late-night bar-close window. I've under-utilized it.
Most data-analysis projects look the same: a corporate dataset, a familiar business question, a chart that confirms what management already suspected. This project was the opposite. The data was my own. The reconciliation was non-obvious. The conclusions changed multiple times as new sources surfaced. That's what real analytics work looks like.
The skills demonstrated in this case study — ingesting messy multi-source data, identifying anomalies that warrant investigation (like the $1,920 day that turned out to be a settlement payment), reconciling ledgers that don't agree, computing the right unit economic rather than the obvious one, and presenting the findings narratively — are the same skills that turn data into business value at any organization.
I taught myself this stack over the course of the analysis: Python, Pandas, time-series reconciliation, financial waterfall analysis, statistical pattern detection, and the communication discipline of writing for an audience that needs to understand the numbers, not just see them.
Built over several days in May 2026 using Python, Pandas, NumPy, and Matplotlib for the data processing, with Chart.js powering the visualizations in this document. All earnings figures are net of platform fees and reconciled against multiple independent sources. No estimates appear in the headline numbers; every figure traces back to a primary data export.
Uber driver_lifetime_trips (46,548 rows)
Uber driver_payments (368,869 line items)
Lyft driver_rides + sessions + payments (3 files)
Gridwise daily earnings + mileage
January 1, 2023 — May 9, 2026
1,040 active driving days
7,876 clocked hours
158,940 miles driven
The full Python notebook, intermediate datasets, and reconciliation logic are available on request. Every number in this document is auditable end-to-end.
If you're hiring for analytics, data, or strategy roles, I'd love to talk about what I could do with your data.