I’ve been turning twenty years of Operations Research models out of dusty Excel files and onto the open web, one at a time. The vehicle routing one — the free vehicle routing optimizer that lives at routing.kindoflost.com — just got a round of upgrades that make it a lot less fussy to actually use. None of it changes the price (still free, still runs in your browser), but it removes most of the friction that used to make people bounce off it.

Here’s what changed and, more to the point, why you’d care.
You can type addresses now, not coordinates
This is the big one. The first version made you supply latitude and longitude for every stop. That’s fine if you’re an analyst with a clean dataset, and completely unreasonable if you’re a dispatcher with a list of customer addresses. So I added geocoding: leave the lat/long columns blank, drop the street address in instead, and the tool figures out the coordinates for you.
Under the hood it tries the U.S. Census geocoder first — it’s fast and free — and anything the Census can’t pin down automatically falls back to OpenStreetMap’s Nominatim service. If an address still can’t be found, the tool tells you exactly which row to fix instead of silently dropping the stop or dying with a cryptic error. That last part matters more than it sounds: a routing tool that quietly skips a delivery is worse than one that refuses to run.
If you already have coordinates, nothing changes — fill them in and geocoding is skipped entirely. The address column is there for the people who need it.
Time windows in plain English
The optimizer has always handled delivery time windows — “this stop has to be served between 8 and 11.” But you used to enter them as minutes after midnight, so 8:00 AM was 480 and 5:00 PM was 1020. I know why the model wanted it that way; I also know nobody thinks in minutes-after-midnight.
Now you can write 8:00 AM, 5:00 PM, 16:00, or even 8am, and the tool converts it for you. Old workbooks full of numbers still work exactly as before — it just accepts the human version too.
No Excel? Use a Google Sheet instead
Until now the only way in was an Excel file: download the template, fill it in, upload it. That quietly assumes you own Excel and feel like wrangling a file. Plenty of people don’t. So there’s a second door now — paste a link to a Google Sheet and the tool reads it straight from there.
Keep your stops in a Google Sheet, edit them whenever you like in another tab, set the sheet to “anyone with the link can view,” and drop the link into the box on the page. Same tabs, same columns as the Excel template — nothing new to learn. There’s a “copy our template” link right next to it that drops a ready-made sheet into your own Google account, so you start from the correct structure instead of guessing at it.
The file upload isn’t going anywhere; this just sits beside it. And if you do both — upload a file and paste a link — the file wins and the link is ignored, so there’s never any doubt about which one actually ran.
Faster answers, same quality
I also rebuilt the routing engine itself. The original was a faithful port of my old C# model, complete with a clever-but-heavy trick it used to enforce that every load starts at the depot. For the ordinary “deliver from one warehouse” case, that trick doubled the size of the problem and made the solver work harder than it needed to.
The new engine drops it in favor of the standard, leaner formulation. I benchmarked the two side by side on a 113-stop run: given enough time they land on the same routes, but the new one gets there faster and on a model half the size. So I dropped the default solve time and you wait less for the same answer. (The old heavy-duty version isn’t gone — it does one thing the lean version can’t, which is let a single truck reload at the depot and run multiple trips. That’s coming back later as an option for the businesses that actually need it.)
Stop when you’ve seen enough
The optimizer chews on your routes for a set amount of time and then hands back the best answer it found. Most of the time it lands on a good solution in the first few seconds and spends the rest of its budget trying to shave another minute or two off here and there. That’s fine when you’re not in a hurry — and annoying when you are.
So there’s a Stop button now. Hit it while a solve is running and the tool stops where it is and gives you the best routes it had in hand, instead of throwing the work away. If what’s on screen is already good enough for the day, you don’t have to sit through the rest of the search.
I also put a hard ceiling on how long any single run can take: two minutes, no matter what the workbook asks for. You can tell it to search for less, but not more. That’s partly so you don’t wait forever on a setting you forgot you changed, and partly to keep one big job from tying up the server for everyone else — it’s a shared, free box, and a routing problem will happily run for an hour if you let it.
And it knows when to stop on its own
The Stop button is great when you’re watching the screen. Most people aren’t — they hit Run and walk away. And the problem I mentioned a second ago is real: the optimizer usually finds its best answer in the first few seconds and then spends the rest of its time limit politely failing to beat it. That’s you waiting for nothing, and on a shared free server it’s wasted effort for whoever’s behind you.
So there’s now an automatic version of the Stop button. You can tell the tool, “if you go this many seconds without finding anything better, just stop and give me what you’ve got.” Leave it at zero and it behaves exactly as before, running the full time limit. Set it to, say, twenty seconds and a run that used to grind for two minutes hands back the same routes in a fraction of the time — I tested it, and the early-stopped answer was identical to the full-length one on the cases I tried.
One honest caveat: these solvers can occasionally sit flat for a while and then stumble onto a better route, so a very tight cutoff might stop just before a late gain. Set it generously and you get most of the speed with little risk — and the two-minute hard ceiling is still there as a backstop either way.
It stops breaking when you poke it
A few unglamorous reliability fixes, because the most common way a free tool loses someone is by throwing an error at the wrong moment:
- If a solve is already running, the Run button won’t fire a second one into the queue.
- If a network hiccup interrupts a request, it quietly retries once instead of showing a scary “failed to fetch.”
- And a caching change means updates I ship actually show up for you instead of getting stuck behind a stale page.
Why I’m giving this away
People ask why a routing optimizer that companies pay real money for is sitting on a personal blog for free. Honest answer: I spent two decades building these models for employers, watched most of them die when a project ended or a pandemic hit, and decided I’d rather they be useful than archived. I’ll be straight with you — I’ll probably find a way to monetize this down the road. For now it’s free, with no catch, because I’d rather it be used than sit in a folder, and because the best way to figure out what’s worth charging for is to watch what people actually need. The engine is Google’s OR-Tools — genuinely industrial-grade software — wrapped in a web page so you don’t need to install anything or write a line of code. Real driving times come from OpenStreetMap’s routing service, not straight-line guesses.
If you run a small delivery operation, a field-service crew, or you’re just curious what a real vehicle routing problem solver online looks like, the workbook template walks you through it: a row per stop, a row per vehicle, a few parameters. Download it, fill it in, upload it, and you get optimized routes on a map with a stop-by-stop table you can hand to a driver.
This is part of an ongoing series where I take these old models public and write up how it goes — the wins, the dumb mistakes, and the trade-offs. You can read the rest of the series here.
Try the optimizer: routing.kindoflost.com. It’s free, and I’d genuinely like to know where it falls short for your routes.
Things that I use, like, and am affiliated with:
Mint Mobile offers great cell phone service for $15 flat, get $15 off using the link. Get discounted phones with service activation and no contract.
I never spend money before I check Mr Rebates or Rakuten to get cashbacks, rebates, discounts, coupons or cheaper gift cards.
