The model
Luotirata solves a point-mass (3-DOF) trajectory by classical RK4 integration, with a step sized so each one advances roughly 0.1 m of flight. Drag comes from the standard Mach-indexed G1 and G7 drag tables scaled by the bullet's ballistic coefficient. Air density and the local speed of sound come from the ICAO standard atmosphere, with your own temperature, altitude, station pressure and humidity as overrides.
This is the same class of model as JBM Ballistics and GNU Exterior Ballistics. It is accurate well past 1000 m for sporting use, and it is cheap enough to re-solve on every keystroke — which is why the whole thing runs in your browser with no server.
What is deliberately not modelled
- Spin drift — needs bullet length and barrel twist; planned for a later version.
- Coriolis and Eötvös effects — latitude-dependent, and under a centimetre inside 1000 m.
- Aerodynamic jump and vertical wind.
- Anything internal. No powder, no pressures, no case capacities. This site covers the bullet in flight only, and has no schema field in which such data could be recorded.
Every one of those omissions is smaller than the uncertainty in a catalogue ballistic coefficient at the ranges this tool targets.
Accuracy
The engine is checked in the test suite against published manufacturer trajectory tables. Those tables are themselves point-mass solutions, so close agreement demonstrates that this implementation of the model is correct — it does not independently validate the model against live fire. Achieved against six fixtures:
| Fixture | Velocity | Drop |
|---|---|---|
| S&B .308 168 gr HPBT, G7 0.231, to 1000 yd | within 0.05 % | within 1.0 in |
| Lapua .308 167 gr Scenar, G7 0.223, to 800 m | within 0.5 % | — |
| S&B .223 55 gr FMJ, G7 0.127, to 400 m | within 0.1 % | within 0.6 cm |
| Hornady LE 5.56 55 gr, G1 0.243, to 500 yd | within 1.7 % | within 0.8 in |
| Lapua .308 200 gr subsonic, G7 0.235, to 300 m | within 0.5 % | within 1.0 cm |
| S&B 7.62×51 200 gr subsonic, G7 0.242, to 400 m | within 0.2 % | within 4 cm |
Two caveats that matter more than the numbers above. None of those tables states its sight height except Lapua's subsonic page, so for each fixture the sight height was fitted to the published near-range row and then held fixed for every row beyond it. And the loads with only a G1 BC published (the Hornady LE row) show visibly larger velocity error at distance — that is the drag model, not the integrator, and it is the practical argument for using a G7 BC when one exists.
In the field, the dominant error is neither of these. It is your actual muzzle velocity. A 20 m/s difference between the catalogue's test barrel and your rifle moves the impact at 500 m by more than every modelling approximation on this page combined. Chronograph your load.
Data sources
Drag models
The G1 and G7 tables are Mach-indexed drag coefficients measured on the US Army Ballistic Research Laboratory reference projectiles. They are US Government work product and therefore public domain, and are reproduced identically across GNU Exterior Ballistics, JBM Ballistics and McCoy's Modern Exterior Ballistics.
Atmosphere
ICAO standard atmosphere (a public specification). Saturation vapour pressure for the humidity correction uses the Buck (1996) equation.
Cartridge dimensions
C.I.P. TDCC datasheets and SAAMI specifications. Dimensional facts are not copyrightable; the drawings themselves are not reproduced here.
Load data
Every load row on a cartridge page carries a source field naming the
manufacturer's product page or catalogue it was read from — Sellier & Bellot, Lapua,
Hornady, Federal and Norma. The load data lives in YAML frontmatter in the site's own
repository, so corrections are reviewable as diffs rather than invisible edits.
Where a manufacturer publishes a ballistic coefficient without naming the drag model — Federal's American Eagle line does this, as does Sako — the row says so explicitly and states what we assumed. Where we could not verify a figure at all, the load is not listed. There is no third category.
Scope
External ballistics only: the bullet between the muzzle and the target. Out of scope, and staying that way: internal ballistics (powder charges, pressures, load development), terminal ballistics beyond a kinetic-energy figure, and anything at all about manufacturing or modifying ammunition. The reference pages sit at the level of published reference data.
Energy figures are provided because they are a simple consequence of mass and velocity. Where Finnish hunting-energy classes are mentioned, treat them as an orientation aid: the binding thresholds are in the metsästysasetus and are amended periodically.
Privacy
No accounts, no cookies, no analytics, no backend. Every calculation runs in your browser. The service worker caches the calculator so it works with the phone in flight mode; the only thing it stores is the site's own files.