Short version: GrubHub does not show a time estimate on the offer screen, so rutera calculates one from the miles and the order count. Every GrubHub hourly figure carries a tilde (~) to make clear it is an estimate. The dollars-per-mile figure is exact and carries no tilde.
The problem: no time value on the offer screen
GrubHub is the only supported platform that does not show a time estimate on the offer screen. It shows the pay, the total miles, and the number of orders, but never a duration.
This matters because an hourly rate is pay divided by time. Without a time value, an hourly rate cannot be measured at all. Uber, Lyft, and DoorDash all put a duration on the screen, so rutera reads it and does exact math. GrubHub gives you two of the three numbers you need and withholds the third.
rutera has two options here. It can show nothing for GrubHub hourly rate, leaving you to guess. Or it can estimate the time and be transparent about the fact that it is an estimate. rutera does the second, and marks every GrubHub hourly figure with a tilde so you always know which numbers are measured and which are modeled.
How the estimate is built
Driving time
Driving time is estimated from the total miles shown in the offer at an average of 30 miles per hour. This is a realistic city driving pace that accounts for traffic lights, turns, and stops. It is deliberately not a highway speed, because delivery routes are almost never highway routes.
The mileage GrubHub shows already covers the full route: from your current position, through every pickup, to every dropoff. That means no additional driving time is added anywhere in the calculation. The miles are the whole trip.
Stop time
Stop time is the part of the job that happens with the car parked. Finding the restaurant. Parking. Walking in. Waiting for the food to be ready. Walking back. Then locating the customer address and completing the handoff.
None of this shows up in the mileage, because none of it involves moving the car. So rutera adds it separately:
| Offer type | Stop time added | What it covers |
|---|---|---|
| Single order | 10 minutes | One restaurant visit, one dropoff |
| Two order bundle | 30 minutes | Two restaurant visits, two dropoffs, plus the added handling of juggling two orders |
The two order bundle gets more than double the single order allowance on purpose. Bundles are not two deliveries running in parallel. They are two deliveries running in sequence with extra cognitive overhead: keeping the bags separate, confirming which order goes where, and often waiting at the second restaurant while the first order sits in the car getting cold.
The formula
The estimated total time is the driving time plus the stop time. The hourly rate is the offer pay divided by that total.
Estimated time = (miles ÷ 30 mph × 60) + stop time
Estimated hourly = pay ÷ estimated time × 60
A worked example
A GrubHub offer paying $6.00 for 5.5 miles with 1 order.
| Step | Calculation | Result |
|---|---|---|
| Driving time | 5.5 miles at 30 mph | ~11 minutes |
| Stop time | 1 order | 10 minutes |
| Estimated total | 11 + 10 | ~21 minutes |
| Estimated hourly | $6.00 over 21 minutes | ~$17/hour |
| Dollars per mile | $6.00 ÷ 5.5 miles | $1.09/mile (exact) |
Notice that the dollars-per-mile figure needs no estimate at all. GrubHub gives you the pay and the miles, so that number is exact. Only the hourly rate is modeled.
How accurate is it?
The model was checked against GrubHub's own internal delivery time estimates on real offers.
| Offer | rutera estimate | GrubHub internal estimate | Difference |
|---|---|---|---|
| 3.2 miles, 1 order | 16 minutes | 18 minutes | −2 minutes |
| 10.8 miles, 2 orders | 52 minutes | 53 minutes | −1 minute |
Close, but not identical, and the direction matters. In both cases rutera lands under GrubHub's own figure, which means rutera is allowing slightly less time than the platform expects the job to take. Less time in the denominator produces a higher hourly rate, so the rutera number runs a little optimistic rather than a little cautious. Keep that in mind when an offer is sitting right on your threshold.
Real conditions vary on top of that. A restaurant that is slammed on a Friday night will blow past the 10 minute stop allowance. A drive-through pickup in a quiet suburb might take four minutes. Construction, an apartment complex with no parking, a customer who does not answer their phone: all of it moves the real number.
Treat the estimate as a fast comparison tool rather than a promise. The goal is to give you a consistent number to judge offers by, where otherwise you would have none at all.
Why a consistent estimate beats no number
Some drivers will look at the tilde and ask why rutera shows a modeled number at all. The answer is that you are already estimating. Every GrubHub driver who has ever glanced at an offer and thought "that's too far for six bucks" ran a rough time model in their head. They just did it inconsistently, under time pressure, with a 10 second countdown running.
The value of the rutera estimate is not that it is perfect. It is that it is the same model every time. When you compare a $6.00 for 5.5 miles offer against an $11.00 for 9 miles offer, both numbers came out of the same formula, so the comparison is fair. Your own mental math on a busy Friday night is not that consistent, and it gets worse the longer you drive.
The tilde is there so you never confuse the two kinds of number. Uber, Lyft, and DoorDash hourly rates in rutera are measured. GrubHub hourly rates are estimated. Both are useful. They are just not the same thing, and rutera does not pretend otherwise.
What is not included
To be clear about the limits of the model:
- Restaurant wait variance. The 10 minute stop allowance is an average. A slow kitchen can double it.
- Return-to-zone time. If a delivery drops you 12 miles outside your usual area, the drive back is unpaid and not in the estimate.
- Traffic conditions. 30 mph is a city average. Rush hour on a bad corridor is not 30 mph.
- Parking difficulty. A downtown high-rise with no loading zone eats time that a suburban house does not.
- Bundles of three or more. The current model covers single orders and two order bundles.
Every one of these pushes the real hourly rate down, not up. Which means the rutera GrubHub estimate should be read as an optimistic ceiling rather than a midpoint. If an offer looks marginal at the estimated rate, it is probably worse than marginal in reality.
The bigger point about gross pay
An hourly rate, estimated or measured, is still gross pay. It is not profit. Out of that ~$17/hour comes gas, tire wear, brake wear, oil, depreciation, and the self-employment tax that nobody withholds for you.
That is why rutera tracks your vehicle cost per mile separately and shows you real profit alongside the offer numbers. An offer at ~$17/hour with 5.5 miles of driving costs you roughly $1.65 in vehicle expense at a $0.30/mile operating cost. Your real take is closer to $4.35 for 21 minutes of work, or about $12.40/hour before tax.
For more on this, see Uber Driver Expenses: The True Cost of Driving in 2026 and How to Calculate Your Real Hourly Rate.
Frequently asked questions
Why not just use GPS to measure the actual time?
Because the decision has to be made before you accept. GrubHub gives you a short countdown to accept or decline. rutera has to produce a number in that window, from the information on the screen, with no future knowledge. Measuring the real time afterward is useful for your records, and rutera does that too, but it does not help you decide.
Will the model change?
Probably. The stop time allowances and the 30 mph assumption are tuning parameters, and they get revisited as more real offers get compared against real outcomes. If the model changes, this page changes with it.
Does this affect the dollars per mile figure?
No. Dollars per mile is exact for every platform including GrubHub, because both inputs come straight off the offer screen. If you prefer to judge offers on $/mile alone, the GrubHub number is as reliable as any other platform's.
What about Roadie?
Roadie is on the roadmap and not yet supported. When it lands, the same principle applies: if the platform gives a time value, rutera measures. If it does not, rutera estimates and says so.
Try rutera for free
Analyze offers, track miles, manage costs. Currently free, no account needed.
Download on Google Play →