Before expanding your ad radius, price the truck's return
Seven public destinations fit inside the same 20-mile circle. Their modeled outbound routes range from 16 to 125 minutes. The return changes the job economics again.
TL;DR
- Check an ad radius against route minutes and the cost of returning the crew. In this seven-point Seattle example, every destination is within 20 straight-line miles, but two returned car routes exceed 40 outbound minutes.
- These are saved public routing calculations, collected October 24, 2026. They are not recorded van journeys, traffic forecasts or a benchmark for your city.
- With invented $420 collections and $220 variable job costs, the Bellevue route leaves $153.17 after the example's return travel costs. The Bainbridge Island route leaves negative $158.93 under those same assumptions.
- Open the offline route and contribution lab. Change the radius, time limit, crew and costs; download every route's result with the assumptions attached.
A circle can admit a town your smallest advertised job cannot afford to serve. Before extending the map, put the return trip beside the money that job leaves and the technician-hours it consumes.
The experiment below uses city halls so the inputs can be published without exposing a customer's address. The routes are real API outputs. Every dollar amount, crew size and on-site duration is an invented teaching input.
What does a 20-mile ad radius leave out?
Start at Seattle City Hall's public map point. Use seven nearby city halls in different directions, including points across Lake Washington and Puget Sound. The origin is a recognizable central reference, not a contractor's shop. The destinations were selected before requesting routes.
For each destination, calculate the straight-line distance from the public point coordinates. Then request the car route returned by FOSSGIS's public OSRM server. Request the return direction separately rather than assuming the two directions take the same time.
Here is the entire selected set. Distances and minutes are rounded only for display; the downloads keep the original values.
| Destination city hall | Straight-line miles | Outbound route miles | Modeled outbound minutes | Modeled return minutes |
|---|---|---|---|---|
| Bellevue | 6.47 | 11.08 | 16.4 | 17.2 |
| Kirkland | 7.68 | 11.37 | 19.6 | 20.8 |
| Redmond | 10.63 | 15.82 | 23.0 | 23.7 |
| Renton | 10.67 | 12.49 | 20.1 | 21.5 |
| Burien | 9.46 | 10.77 | 17.6 | 18.4 |
| Bainbridge Island | 9.00 | 91.26 | 124.9 | 127.7 |
| Bremerton | 14.03 | 64.99 | 88.0 | 90.5 |
All seven pass the 20-mile straight-line test. Five pass the example's 40-minute outbound test. The two across Puget Sound fail that time test under the routes this provider returned.
The long road routes need a qualification beside the numbers: every returned outbound step has a driving mode. These responses do not evaluate an alternative ferry journey, its schedule, waiting time or fare. They also do not prove that a local operator would choose these routes. That makes them useful for checking a circle's assumptions, with a clear limit on what the check establishes.
A destination inside a smaller circle can still take longer to reach than one farther away. At a 10-mile limit, this snapshot includes Bainbridge Island and excludes Redmond. Redmond's returned outbound time is roughly 23 minutes; Bainbridge Island's is roughly 125. The road network and provider profile matter to that comparison.
How should you compare ad radius vs drive time?
Use the circle to describe distance from the chosen origin. Use modeled route time as a separate operational screen. Then check recent dispatch records for the times and vehicle restrictions that actually apply to your crews.
The interactive geographic plot draws the seven saved outbound route traces and an adjustable straight-line circle. Select a numbered point or a table button to inspect it. The default 40-minute limit applies to outbound time; the economics default to outbound plus the separately modeled return.
The tool keeps all seven destinations visible when you change either threshold. It cannot draw a continuous drive-time boundary from seven points. Nor does a green point show that Google will make the corresponding area targetable or deliver an ad there.
Google's location-targeting guide, checked October 24, 2026, describes geographic and radius targets, minimum targeting thresholds and imperfect location signals. A dispatch map is an input to choosing those settings. It does not replace their rules. Use the service-area location-targeting guide for that account-level work.
What does the return do to a $420 job?
Use an invented two-person crew on a two-hour job. Net collections are $420. Variable job costs are $220, including on-site labor and parts, with travel costs kept outside that line.
Charge one vehicle $0.35 per route mile and travel labor $35 per technician-hour. Those rates are examples, not a mileage allowance, wage survey or estimate of a local contractor's costs. The wage rate should represent your applicable cost if you use this model.
For Bellevue, the public responses contain 17,833.8 outbound meters and 982.3 outbound seconds. The return is 17,403.4 meters and 1,032.1 seconds. Add each direction, then convert units:
- Total travel: 21.8954 route miles and 33.5733 elapsed minutes.
- Vehicle travel cash: 21.8954 × $0.35 = $7.66.
- Travel wages: 33.5733 ÷ 60 × two technicians × $35 = $39.17.
- Cash contribution: $420 − $220 − $7.66 − $39.17 = $153.17.
The calculation uses unrounded values; independently rounding cost lines can introduce a cent of difference. This contribution still needs to cover acquisition cost, fixed overhead and profit. It is not the business's net profit.
The crew consumes 5.1191 technician-hours: two technicians multiplied by two on-site hours plus 0.5596 travel hours. If the two people each have four hours available, that gives eight technician-hours. One identical Bellevue job fits that arithmetic window; two do not. Actual scheduling still needs compatible shifts and skills.
Apply the same invented inputs to Bainbridge Island's returned road route. Outbound plus return totals 252.575 minutes and 183.5907 route miles. Travel cash becomes $358.93, so contribution becomes negative $158.93 before acquisition and fixed costs. The job also requires 12.4192 technician-hours, exceeding that eight-hour window.
That is a result of these route outputs and chosen assumptions. It is not evidence that a particular real Bainbridge Island job loses money. A different departure point, job value, ferry plan or crew changes the decision.
How do you charge for crew time without counting wages twice?
First decide what the $220 variable-cost line already contains. If it includes travel wages, uncheck the tool's separate wage deduction. If it includes vehicle travel costs, remove those from that line before adding the mileage charge. Every cost needs one place in the calculation.
Then decide whether this trip displaces other profitable work. On an empty board, another hour in the vehicle may have no additional lost-job value. On a full board, it may consume time needed for another job.
The optional foregone-contribution field is an additional residual amount per technician-hour after the wages already counted. Entering the same loaded wage there would count it twice. Use zero if you cannot support an additional amount from the work that would actually be displaced.
For illustration, enable an invented extra $25 per technician-hour. Bellevue's 1.1191 travel technician-hours carry $27.98 of additional opportunity cost. Decision contribution falls from $153.17 to $125.19. That deduction changes the comparison between uses of scarce time; it does not create a new cash payment.
The dispatch-margin lead-cost calculation follows the next step: how much room the collected work leaves for buying leads, including unsuccessful visits. The technician skill and capacity guide checks whether the people with available hours can perform the advertised work.
What this doesn't cover
- A live travel promise. The snapshot has no observed fleet journeys, live congestion, appointment-time forecasts or van height and weight checks. Its road routes do not validate ferry alternatives.
- Your market's demand or job mix. Seven civic points were chosen for an illustration. They do not represent customer locations, an entire city or a national benchmark.
- A full dispatch or profit model. Travel starts and returns at one origin. Customer-to-customer routing, callbacks, acquisition, tolls, fares, tax and fixed overhead require separate inputs or analysis.
- Ad eligibility or results. Neither the circle nor the time limit proves where an ad will appear, which calls it will create or what those calls will collect.
Do this before expanding the service area
- Choose the actual dispatch origin and a common, modest-value job type. Use recent collected work to set costs and crew requirements.
- List the towns you are considering before looking at the routes. Keep inconvenient points and missing routes in the review.
- Check outbound and return journeys for relevant appointment times with your dispatch records and appropriate routing tools. Record vehicle and ferry assumptions.
- Put travel costs in one place. Add opportunity cost only when you can identify work the travel would displace.
- Compare each job's remaining contribution and crew-hours with the work already on the board. Treat an unknown route as unresolved, not free travel.
- Give the office an accepted-area list by job type. Compare it with the campaign's actual location settings and revise it when capacity changes.
Use the budget and season planning hub to connect that accepted-area list with the work you are promoting this month.
Can you reproduce this calculation?
Yes. Download the complete offline kit, extract it and open index.html in a browser. The saved map and calculator run locally. Your edits stay in the page; the tool makes no network requests or uploads.
The kit includes the route CSV, full snapshot, unmodified public responses, exact request URLs, UTC retrieval times, OSM point IDs, snapped road waypoints, source code and method notes. Straight-line distances use the Haversine formula with a mean Earth radius of 3,958.7613 statute miles. Route meters and seconds come from OSRM; missing values remain unknown.
The collection made seven outbound route requests and one return-table request. Requests were sequential, identified and spaced more than one second apart. The interactive tool uses only those saved responses. Future provider queries may return different routes as the graph or profile changes; the responses did not supply a graph-data timestamp.
Run node --test core.test.mjs from the extracted folder to repeat the 14 calculation and fixture tests. They cover units, threshold boundaries, missing routes, input validation, return directions, crew arithmetic, wage treatment, opportunity cost and the saved public outputs. A separate browser test covers offline use, keyboard selection, CSV export and a 390-pixel viewport when Playwright is already available. Those checks establish the tool's tested behavior, not real-world driving accuracy.
FAQ
Is a 20-mile service radius too large? It depends on the dispatch origin, roads, job economics and available crew. In this selected snapshot, the same circle admits outbound routes ranging from 16.4 to 124.9 modeled minutes. Use your own jobs and travel records before choosing a boundary.
Should the time limit include the return? State the convention explicitly. This tool screens destinations by outbound minutes and charges outbound plus return by default. You can switch the cost model to outbound only, but doing so excludes return travel from that result.
Can I use the tool for my own address? It calculates only from the seven saved civic routes. You can change financial assumptions and thresholds, but another origin or destination needs a new, appropriately sourced route dataset.
Does a positive contribution mean I should advertise there? It is one input to the decision. You still need room for acquisition, overhead and profit, along with suitable technicians and appointment slots. A long trip can consume hours needed for better work even when the job covers its extra cash costs.
Sources
Read October 24, 2026. Public route and point data are © OpenStreetMap contributors, available under ODbL 1.0. Routing is by OSRM on FOSSGIS's public car server. All financial and staffing inputs are invented examples.
- OSRM HTTP API documentation: route and table responses, meters, seconds, directed journeys and missing-route handling.
- FOSSGIS operator description and usage-policy excerpt: server profiles, attribution and request limits. The linked full German policy returned an access-denied page during review; no bypass was attempted.
- OpenStreetMap copyright and license, plus Nominatim usage policy: data attribution and the bounded one-off public coordinate lookup. No customer data was submitted.
- Saved snapshot and exact source requests: all seven destination outputs, original units and snapped waypoints. Unmodified responses are in the downloadable kit.
- Google Ads: Target ads to geographic locations: geographic targeting and its accuracy and availability limits.