Inspiration
Gig apps show drivers one big number: gross earnings. They don't show what's left after gas, car wear, miles driven empty between rides, and self-employment taxes. Millions of people drive as a side hustle without knowing their real hourly rate, and many make less than minimum wage without realizing it. We wanted to make that hidden number visible, and then help drivers do something about it.
What it does
Real Hourly shows rideshare drivers what they really earn per hour, and helps them earn more by working at better times.
- Scan your earnings: drop in a screenshot of your weekly earnings. An AI text reader running in your browser turns it into your work week on a calendar.
- See the truth: a headline shows "The app says $25.44/hr → you really make $16.84/hr", with a breakdown of gas, car wear, taxes and phone costs.
- Color-coded week: every hour of the week is colored by what it really pays in NYC, based on 20.9 million real Uber/Lyft trips.
- Schedule coach: you pick your limits (day job, no late nights, days off). The coach tests every possible way to move your shifts and suggests the best swaps, each explained with real data like "1.9× more rides then, so less unpaid waiting."
- You're in control: apply a move, or click and drag on the calendar yourself, and watch your weekly take-home update live: "Same 25 hours, +$55/week."
How we built it
- Data: a Python script uses DuckDB to query NYC's official trip records directly over the internet. It groups 20.9 million July 2026 trips, with the actual driver pay and tips for each, into 168 hour-of-week slots in about 40 seconds.
- Costs: AAA's 2025 per-mile car costs, the government's weekly NYC gas price ($4.41/gal) and the IRS 2026 mileage deduction (76¢/mile), each linked to its source in the app.
- App: React + TypeScript + Vite. All the math runs in the browser, so there's no server and no database.
- AI: Tesseract.js, a neural-network text-recognition engine, reads screenshots on the device. A search engine we wrote tests every shift swap across the week against the real pay data.
Challenges we ran into
- The public trip data has no driver IDs, so waiting time between rides and empty miles aren't recorded. We made those two numbers clearly labeled assumptions that the user can adjust with sliders, rather than hiding them.
- Huge data: one month of trips is about half a gigabyte. DuckDB let us read only the columns we needed straight from the city's server.
- AI that isn't a chatbot: our first version used a cloud AI that needed an API key. We rebuilt it to run fully on the device, so it's free, private and works for anyone who downloads it.
- Trusting the AI: we don't let the AI's numbers go unchecked. The app recalculates every suggested move with its own math before offering it.
- Windows setup: the "&" in our folder path broke npm's commands, so we rewrote the scripts to work around it.
Accomplishments that we're proud of
- Every number comes from real public data and can be traced to a source.
- The data exploration showed me important information like how late weeknight driving in NYC pays about $11–13/hr after costs, below the $17 minimum wage, even though the app's number looks fine.
- In the Maria demo, the app says $28.69/hr but she really makes $15.19/hr. Moving the same 24 hours to better times earns her +$127/week (about $6,350/year).
What we learned
- A driver's real hourly pay depends as much on when they drive as on how much they drive.
- Being upfront about assumptions makes a product more credible.
- AI is most useful as one part of an experience: here it reads a messy screenshot and searches for better schedules, and the person makes the decisions.
- Open government data can answer questions that the apps don't want to answer.
What's next for Real Hourly
- More cities, starting with Chicago, which publishes similar trip data. Miami and other cities would need a trip data source.
- Delivery drivers (DoorDash, Uber Eats).
- Support for more earnings-screen layouts, plus CSV import.

Log in or sign up for Devpost to join the conversation.