Tire tread life calculator
With 6 mm of tread, a 1.6 mm wear-out limit and a measured wear of 0.0004 mm per mile, you have 4.4 mm and 11,000 miles left. Enter your gauge reading, your limit and your wear rate to plan a trip or a replacement. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Current depth
- 6
- Wear out depth
- 1.6
- Wear rate
- 0.0004
- Remaining depth
- 4.4
- Remaining life
- 11,000
- Usable fraction
- 0.7333333333
- Wear percent of current
- 26.6666666667
Knowing how many miles or kilometres of tread you still have left turns a vague visual glance at the grooves into a number you can plan around. This tire tread life calculator takes three measured inputs—current tread depth, the wear-out depth you treat as the end of service (legal minimum or your own discard limit), and a wear rate in depth units lost per distance unit—and returns the remaining usable depth and the estimated remaining life at that rate. Drivers, fleet managers, and shops use it before long trips, lease returns, and rotation schedules. No photos, no network lookups, and no random drift—only deterministic arithmetic you can re-run for audits and maintenance logs.
How remaining tread life is estimated from depth and wear rate
Tire tread wears roughly in proportion to distance driven when inflation, alignment, load, and road surface stay comparable, so a measured wear rate turns leftover groove depth into leftover distance. The usable depth left is current tread depth minus the wear-out depth you choose—often the legal minimum in your market (for example about one point six millimetres or two thirty-seconds of an inch on many passenger cars) or a stricter fleet discard limit.
If current depth is six millimetres, wear-out is one point six millimetres, and you measured zero point zero zero zero four millimetres lost per mile, remaining depth is four point four millimetres and remaining life is eleven thousand miles. When current depth already equals wear-out, remaining depth and remaining life are zero—the tire is at the end of the budgeted service window.
The calculator does not invent a wear rate from brand marketing mileage; you supply a rate from two depth readings and the odometer span between them, or from a shop gauge log. It also does not convert millimetres to thirty-seconds or miles to kilometres for you: keep depth units consistent across current depth, wear-out depth, and the numerator of the wear rate, and keep the distance unit of the wear rate consistent with the life figure you want back.
Where a tire tread life calculator earns its keep
Road-trip and holiday planners want a transparent miles-left estimate after a tread gauge reading, not a vague “looks okay” before a multi-state drive in the rain. Delivery, taxi, and light-truck fleets log tread depth at service intervals; feeding current depth, a policy wear-out depth, and a per-vehicle wear rate into this capability turns those logs into replacement forecasts and spare-tire budgets without a spreadsheet copy-paste step.
Lease-return and company-car policies often require remaining tread above a threshold at hand-back; estimating remaining life at the current wear rate helps drivers plan rotation or replacement before the penalty window. If you later need tire diameter from size codes, pressure adjusted for load, or unit conversion alone, treat those as separate search intents and landings—this page owns remaining life from depth and wear rate only.
What you can do with it
Pre-trip tread miles-left check
Gauge current depth, enter legal or personal wear-out depth and your measured wear rate, and see estimated remaining miles or kilometres before a long highway trip.
Fleet replacement forecasting
Batch service-bay tread readings with a policy wear-out depth and per-vehicle wear rate to forecast tire replacements and spare inventory.
FAQ
Which units should I use?
The life result matches the distance unit of the wear rate.
What if the tire is already below wear-out depth?
Remaining life would be negative; re-measure or remove the tire from service rather than treating a negative distance as success.
What does the tire tread life calculator cost?
The browser tool is free and runs locally.
How do I work out my wear rate?
Take two tread depth readings and divide the depth lost by the distance driven between them, from the odometer or a shop gauge log. The calculator does not guess a rate from advertised tire mileage.
What wear-out depth should I enter?
Usually the legal minimum where you drive, often about 1.6 mm or 2/32 of an inch on passenger cars, or a stricter discard limit set by your fleet or your lease policy.
Related tools
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/travel/tire-tread-life \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"current_depth":6,"wear_out_depth":1.6,"wear_rate":0.0004}'const res = await fetch("https://api.kit.forhosting.com/travel/tire-tread-life", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"current_depth": 6,
"wear_out_depth": 1.6,
"wear_rate": 0.0004
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/travel/tire-tread-life",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"current_depth": 6,
"wear_out_depth": 1.6,
"wear_rate": 0.0004
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/travel/tire-tread-life", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"current_depth":6,"wear_out_depth":1.6,"wear_rate":0.0004}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"current_depth":6,"wear_out_depth":1.6,"wear_rate":0.0004}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/travel/tire-tread-life", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"current_depth": 6,
"wear_out_depth": 1.6,
"wear_rate": 0.0004
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "travel.tire_tread_life",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |
Technical notes
How remaining tread life is estimated from depth and wear rate
Divide that remaining depth by the wear rate expressed as depth lost per mile or per kilometre, and you obtain remaining life in the same distance unit: remaining_life equals remaining_depth divided by wear_rate.
What you send and what you get back
Send three numeric fields. Missing fields, empty strings, NaN, and Infinity fail early and are not charged. Classic checks include equal current and wear-out depths that yield zero life, a mid-life depth with a small wear rate that yields a large remaining distance, and a zero wear rate that must fail. Wire the free browser form for driveway checks, then call the identical contract from scripts when you batch fleet gauge readings. The field current_depth is the measured tread depth now, in any depth unit you will reuse for wear_out_depth—millimetres, thirty-seconds of an inch, or hundredths of an inch all work because only the depth difference enters the formula. The field wear_out_depth is the depth at which you will remove the tire from service, in that same depth unit; it must not exceed current_depth, or the request fails with invalid_input rather than inventing a negative life. The field wear_rate is depth units lost per one distance unit—for example millimetres per mile, millimetres per kilometre, or thirty-seconds per mile—and must be strictly greater than zero because the formula divides by it. Zero wear rate is rejected with a clear invalid_input message instead of returning Infinity. On success the response echoes the cleaned inputs, remaining_depth equals current_depth minus wear_out_depth, remaining_life equals remaining_depth divided by wear_rate, usable_fraction is remaining_depth over current_depth when current depth is positive, wear_percent_of_current reports how much of the present reading sits at or below the wear-out line as a percentage of current depth, and formula plus method document the contract. Pricing for successful API calls is the published base of $0.002 per item; validation failures do not consume prepaid balance.
Where a tire tread life calculator earns its keep
Tire shops and mobile fitters walk customers through legal minimums and measured wear; a single calculator that applies the same division the technician uses on paper speeds the conversation and leaves a JSON record. Driver training and safety curriculum still introduce tread depth as a wet-braking factor; pairing a hand calculation of leftover depth over wear rate with this endpoint builds trust in both classroom and LMS plugins. Because this capability is a pure parse engine, API pricing is the published base of $0.002 per successful item and failed validation does not consume balance.
Integration use cases
Shop and lease-return demos
Show customers or company drivers remaining life from the same three numbers the gauge and odometer already provide, with a stable JSON record for the job card.
Technical questions
How is remaining tire tread life calculated?
remaining_depth = current_depth − wear_out_depth, then remaining_life = remaining_depth / wear_rate. Wear rate is depth lost per one distance unit (mile or km); remaining_life is in that same distance unit.
What happens if wear rate is zero?
The request fails with invalid_input. The formula divides by wear_rate, so a zero rate is rejected with a clear message instead of returning Infinity or NaN.