Upfront Tip
Weekly. Free. Straight from the driver's seat.
I’m not a programmer. I told an AI agent what I wanted, gave it access to the information I wanted analyzed, and worked with it to build a database.
The process starts with GigU. Every time an Uber offer comes onto my phone, GigU can capture a screenshot. It doesn’t matter whether I accept the trip or decline it. The screenshot records the offer.
That’s important because the trips you decline tell you something too. They show what Uber was offering at a particular time, in a particular location, with a particular fare.
Then there’s my Uber data. I can download information about the trips I’ve actually completed, including what I earned and whether I received a tip.
Those two sources are valuable on their own. But they’re much more interesting when you put them together.
Imagine being able to look at an offer you received three months ago and compare it with what you actually earned after completing the trip. You can start to understand which offers turned out better than they initially appeared and which ones weren’t worth your time.
That’s what I asked Grok Bot to do.
My database currently includes approximately 11,722 offer screenshots, 6,909 more recent trip records, and 2,157 offers matched with completed trips. I also gave it historical Uber data covering 13,384 trips and roughly 300 weeks of summaries.
Some of those records overlap, so you can’t just add everything together and call it unique trips. The agent has to identify duplicates and reconcile the information. That’s part of the work I wanted it to do.
And now I can ask questions about my driving in ordinary English.
How to build your own database
You don’t need thousands of trips to get started. You don’t need to be an accountant, either. And you certainly don’t need to know how to write computer code.
You do need to start collecting information.
1. Capture your offers
I use GigU, which sponsors Tip You in the App. It can capture screenshots of the Uber offers I receive, including the ones I decline.
Those screenshots are the foundation of the database. They include the fare, pickup time and distance, trip time and distance, passenger rating, and other details shown on the offer.
You can take screenshots manually, and that’s what I did before I started using GigU. But it’s difficult to capture everything yourself.
The important thing is to collect offers consistently. Don’t just save the really good ones or the really bad ones. You want to understand the range of offers available to you.
GigU is free through the end of 2026, and you can find it at gigu.app.
2. Get your Uber earnings data
You also need the other side of the transaction: what happened after you accepted a trip.
Go to drivers.uber.com and download your available earnings and trip information. I use weekly exports so my database can stay current.
You can also request a copy of your historical personal data from Uber. I did that, and it gave me information going back to my first day driving in February 2020.
The historical data is useful, but don’t feel like you need years of records to get started.
Start with what you have.
3. Give the information to an AI agent
I used Grok Bot. I gave it access to the relevant screenshots and Uber data, then told it what I wanted to accomplish.
I wanted a database of offers and completed trips. I wanted duplicate records identified. I wanted offers matched with completed rides whenever there was enough information to make a reliable match.
Most importantly, I wanted to ask questions about the data without having to learn how to query a database myself.
You can begin with a prompt like this:
I drive Uber in [your market]. I want to build a database that helps me make better decisions about which trips to accept, when to drive, and where to drive.
I have screenshots of Uber trip offers and records of completed trips and earnings. Help me organize this information into a database.
Identify duplicate records, extract the relevant information from each offer, and match offers to completed trips when possible.
I want to analyze earnings per mile, earnings per hour, estimated vehicle expenses, passenger ratings, and tips.
Explain what you’re doing as you go. Show me how many records you have, where the data came from, and anything you’re uncertain about. Don’t make up missing information.
That’s a starting point, not some magical prompt you have to copy perfectly.
The most important thing is to tell the agent what you’re trying to accomplish. Then work through the process with it.
I had to answer questions, clarify things, and make decisions along the way. The agent did a lot of the tedious work, but I was still directing it.
4. Tell it what matters to you
Not every driver wants the same thing.
I estimate my vehicle expenses at about 30 cents per mile. That matters when I’m deciding whether a trip is profitable.
I also care about where a trip leaves me. A ride that looks great on the offer card might not be so great if I have to drive 30 miles back without a passenger.
And sometimes I accept a trip for reasons that have nothing to do with maximizing income. I might want to go to a particular town, finish my day near home, or have a conversation with somebody.
The database shouldn’t make those decisions for me.
It should give me better information so I can make them myself.
Tell your agent your vehicle costs, the types of rides you take, the areas you drive, and what you care about when evaluating an offer.
Then ask it to show its work.
If it tells you a particular neighborhood is more profitable, ask how many trips support that conclusion. If it recommends a minimum fare, ask what happens to your waiting time when you reject more offers.
A recommendation based on ten trips is different from one based on a thousand.
5. Start asking questions
Once you have a database, it gets interesting.
Here are some questions I’d start with:
Which times of day have produced my best earnings after vehicle expenses?
Which types of trips have the highest probability of receiving a tip?
What are my best and worst pickup locations?
Which destinations tend to leave me driving back empty?
How should I set my GigU minimum dollars per mile, dollars per hour, and passenger rating for tonight?
How many offers would I have rejected if I’d used those settings over the past month?
You can also ask much more specific questions. That’s what I did with the airport reservation in Dryden.
I don’t need the computer to tell me whether I should enjoy being an Uber driver. I need it to help me understand the economics of the work.
There’s a difference.
6. Keep the database current
My goal is to have the database update as new information becomes available.
Grok Bot can run scheduled routines. I have it check for new screenshots, add the information to the database, and look for new completed-trip records.
I still need to provide updated Uber earnings information when it isn’t already available to the agent.
But once the system is established, I don’t want to spend hours manually entering numbers into spreadsheets. That’s precisely the kind of work I want AI to handle.
Before a shift, I can ask what settings might make sense for the area and time I’m planning to drive.
Then I can update GigU and go to work.
The computer does the analysis. I make the decisions.
A few things to be careful about
First, protect your information. Your screenshots and Uber data can contain sensitive details. Keep offer screenshots in a dedicated folder or album when possible, limit what an AI agent can access, and don’t give it passwords, banking screenshots, recovery codes, or private messages.
Second, don’t assume the AI is always right. It can misunderstand a screenshot, match the wrong records, or draw conclusions from too little information. Ask for sample sizes and check important calculations against the original data.
Third, don’t confuse revenue with profit. A $40-an-hour trip isn’t necessarily a $40-an-hour business. You still have vehicle expenses, waiting time, and potentially an empty drive back.
And finally, don’t assume your numbers will look like mine.
I drive mostly UberX and some Comfort in Central New York. My car is different from yours. My costs are different. My market is different. Even the hours I choose to drive influence what the database can tell me.
That’s why I think drivers should build their own systems instead of unquestioningly copying somebody else’s filters.
How long does it take?
I think you can begin learning useful things within a few weeks of collecting offers. Within a few months, you might have enough information to start refining your minimum fares and passenger-rating preferences.
After six months, you’ll have a much better picture of how different times of day, destinations, and trip types perform. After a year, you’ll have a substantial history to study.
Those are rough expectations, not guarantees. It depends on how often you drive, how many offers you capture, and the quality of the information.
But the sooner you start collecting data, the sooner you’ll have something worth analyzing.
What if drivers worked together?
This is the part I find most interesting.
What if two or three drivers in the same city started collecting this information and comparing what they learned?
Maybe one driver spends most of the day on the north side of town. Another drives around the airport. Somebody else works nights.
Individually, each driver has a limited view of the market. Together, they might begin to understand things that none of them could see alone.
There are privacy issues to work through, and you’d have to account for different vehicles, expenses, and driving strategies. I haven’t built a shared system like this yet.
But I keep thinking about the possibilities.
I also have two phones. What if I spent a day driving Lyft while leaving Uber available on the other phone to capture offers? I might collect hundreds of offers without accepting them. That could tell me quite a bit about the range of prices Uber is offering in my market.
It’s an experiment I’d like to try.
And it leads to a bigger question.
What happens if drivers across the country start making decisions based on their own data instead of simply accepting whatever the apps offer?
Would Uber and Lyft have to change the way they price trips?
I don’t know. But I think it’s worth finding out.
Living above the algorithm
I love being an Uber driver.
I like the flexibility. I like being in my car. I like meeting strangers and hearing their stories. And I like the freedom to decide when I want to work.
I don’t particularly like feeling that an algorithm knows everything about my business while I know very little about how it makes decisions.
This database doesn’t solve that problem completely. Uber still has information I don’t have, and an AI model can’t predict every trip, tip, or change in demand.
But it’s a start.
And I think there’s a larger lesson here.
Algorithms are everywhere. Uber has one. YouTube has one. TikTok has one. They’re constantly influencing what we see, what we do, and sometimes how we make our living.
I don’t think the answer is to stop using technology. I use it every day. I’m using more of it now than I ever have.
The question is whether we’re using these tools to accomplish something important to us or simply reacting to whatever they put in front of us.
For me, building this database is one small way of taking control.
And that’s what I mean by living above the algorithm. It doesn’t necessarily mean quitting Uber. I might drive Uber for years to come. I enjoy it.
It means having more information, making better decisions, and creating more options for yourself.
If you’re an Uber driver, I’d encourage you to start collecting your own data. You don’t have to build the entire system in a weekend. Just get started.
And if you think this is all overkill, I’d genuinely like to hear that too.
I talk more about the project in my Daily Drive episode, “Uber Has an Algorithm. So Do I.” GigU and Red Tiger sponsor Tip You in the App, and I appreciate their support.
If you want to keep talking about this with other drivers, you can join my Thrive community or the free Thrive Facebook group.
I hope you’re safe, healthy, and happy. And I want you to know I’m cheering for you.
Be well. Take care.
Levi