How this site works

Three calculators, one formula each, all of it arithmetic you could do on paper. Below them, the decoder that is not finished, and the four things this site refuses to build.

The car loan calculator

The level monthly payment on an amortising loan is P = L·i ÷ (1 − (1+i)−n), where L is the amount financed, i is the APR divided by twelve, and n is the number of months. A zero-rate loan is computed separately as L ÷ n, because the general formula divides by zero there — and manufacturer 0% financing is common enough that treating it as an exotic case would be wrong.

The schedule is then generated payment by payment from the rounded payment, with the final payment adjusted to clear the balance exactly. That is what a lender does. A closed-form total-interest formula disagrees with the payments you will really make by a few cents, and a total that does not match its own column is worse than no total. Every amount is held as a whole number of cents.

Sales tax is charged on the price less the trade-in allowance, which is the rule in most states that tax vehicle sales. It is not the rule everywhere: California and Virginia, among others, tax the full price, and the figure will be low for them. That assumption is printed with every result rather than buried here.

The tire size calculator

A P-metric size states three things and fixes everything else. In 225/45R17, the section width is 225 millimetres, the aspect ratio says the sidewall is 45% of that width, and the wheel is 17 inches. So the sidewall is 225 × 0.45 = 101.25 mm, and the overall diameter is 17 × 25.4 + 2 × 101.25 = 634.3 mm. Circumference is π times that, and revolutions per mile is 1,609,344 millimetres divided by the circumference.

The speedometer reads wheel revolutions and was calibrated for the original diameter, so the true speed is the indicated speed multiplied by the ratio of the new diameter to the old. A smaller tire makes the speedometer read high — it claims a speed you are not doing — and a larger one makes it read low, which is the direction that collects tickets. The clearance change is half the diameter change, because the axle sits half a diameter above the road.

Whether a size physically fits is not arithmetic and this page does not claim to answer it. Strut clearance, arch liners, wheel offset and suspension travel decide that, and none of them appears in a size string.

The gear ratio calculator

The wheel turns mph × revolutions per mile ÷ 60 times a minute, and the engine turns that multiplied by the transmission ratio and the final drive. The tire is therefore not decoration on this page: changing it moves the answer as much as changing the differential does. Miles per hour per 1,000 rpm is reported too, because it is independent of the speed you chose and is the figure worth carrying between two axle ratios.

It assumes no tire slip and no torque converter slip, and it does not model transfer cases or hub reductions. If you have one, multiply it into the final drive.

The decoder, and why it needs no server

NHTSA's vPIC database maps the pattern of characters in a VIN onto a make, model, body style, engine and plant. It is a United States federal work, carries no copyright, and NHTSA publishes it expressly so that it can be decoded away from their servers. This site carries the August 2026 release (vPICList_lite_2026_08.plain.zip), rebuilt into a compact column format and served as /data/vpic-2026-08.bin.gz.

The format is why the whole product fits in a browser. The same 1,674,161 pattern rows are 16.8 MB gzipped as a SQLite file and about 4 MB as four parallel columns of variable-length integers. The container was the cost, not the data. Two of the four columns ascend, so they are stored as differences rather than values, and all four are zig-zag encoded so a step backwards costs one byte instead of ten.

When you press Decode, the page fetches that file once and inflates it while it is still arriving, using DecompressionStream — your browser's own gzip support, so this site ships no decompression library at all. The result goes into the Cache API. The match itself runs in a worker thread, off the page, because scanning 1.67 million rows on the main thread would make a phone stop responding to taps in the middle of the one thing it came to do.

The VIN is never transmitted. Not to us — this site is static files and has no server that could receive one — and not to NHTSA. The field you type it into has no name attribute, so there is not even a form submission that could carry it. The one caveat we state rather than hide is that fetching the database is a request to our own service: it carries no VIN, because it happens before you have typed one, it is the identical file for every visitor, and after it completes nothing else leaves the page. Switch your network off and decode again to see that for yourself.

A VIN does not select one pattern; it selects several. Six separate schemas covered 2003 for Honda's manufacturer code alone, and vPIC merges every matching pattern across all of them, with the more specific mask winning where two disagree. A decoder that takes the first match returns whichever row happened to be stored first, which is how two decoders reading the same public data give different answers.

Two things it tells you honestly rather than confidently. The tenth character repeats on a thirty-year cycle, so 3 means 2003 and 2033 and 1973; where no schema range in the data corroborates the year, the page says the year is unconfirmed instead of printing it as fact. And a check digit that disagrees is flagged, never used to refuse the decode — the check digit is mandatory only in North America, and refusing on it would reject legitimate imports.

The wave-one calculators on this site deliberately do not load that file. Somebody who came for a tire calculator should not pay four megabytes for a decoder they did not ask for, and neither should the check-digit page, which is pure arithmetic.

Four things this site will not do