Ballistics Methodology: How We Verify Every Figure
This is the ballistics methodology behind every ballistics page here: the equations, the constants, where each comes from, and what is checked before publishing.
Every ballistics page on this site is built the same way, and this page is the full description of how — the equations, the constants, where each one comes from, what we check before publishing a number, and what we refuse to estimate. It exists so that the cartridge pages can stay about the cartridge, and so that anyone who wants to check our arithmetic can do it without our help.
The ballistics methodology, in four steps
- Recover what the manufacturer has not published, by fitting the model’s one free parameter to the numbers they have.
- Validate the recovery where the answer is already known. If the method cannot return a published coefficient it was not shown, it is not entitled to produce one that does not exist.
- Audit the published table against its own arithmetic, and publish every residual rather than a summary of them.
- State the limit of the evidence — what the data cannot distinguish, and what we are inferring rather than demonstrating.
The equations, in plain text

The bullet is treated as a point mass under gravity and aerodynamic drag, integrated with a fourth-order Runge-Kutta step:
drag deceleration = k × Cd(Mach) × S × speed² ÷ BCMach = speed ÷ speed of soundspeed of sound (fps) = 49.0223 × sqrt(temperature in degrees Rankine)vertical acceleration = drag component − 32.174 ft/s²energy (ft·lb) = bullet weight (gr) × velocity (fps)² ÷ 450240
The launch angle is found by bisection so that the path crosses the line of sight at the chosen zero. Wind deflection is the standard lag-time result: drift = crosswind speed × (actual flight time − range ÷ muzzle velocity).
Where the drag curve comes from
Cd(Mach) is the tabulated G1 drag function — 79 Mach and drag-coefficient pairs published by JBM Ballistics from Ballistic Research Laboratory data — used exactly as published, with linear interpolation between points. The G7 function, used where a manufacturer publishes a G7 coefficient, comes from the same source. We do not smooth, refit or substitute either curve.
Where k comes from
It is not a tuning constant. The G1 standard projectile is defined as one inch in diameter weighing one pound, which gives it a ballistic coefficient of exactly 1. Putting those figures into the drag equation at standard sea-level density:
k = ½ × ρ ÷ g × A × g ÷ w, where ρ = 0.0764729 lb/ft³, A = π/4 × (1/12)² = 0.00545415 ft², w = 1 lbk = 2.085510 × 10⁻⁴
Because that derivation uses the ICAO standard density, every air-density figure on this site is expressed relative to ICAO.
Numerical accuracy
Halving the integration step changes the 500-yard velocity by less than 0.05 fps and the 500-yard drop by less than 0.01 inch. The solution is converged far inside the precision of any published figure it is compared against, so every residual we publish is a property of the data and not of our arithmetic.
The offset between a published coefficient and the table beside it
Hold a maker’s own muzzle velocity fixed, integrate its own published coefficient on the standard G1 drag function in the ICAO standard atmosphere, and the result runs slightly fast against the maker’s own printed velocities. Recovering the coefficient that does reproduce the row gives a number a little higher than the one on the box. Across the 40 well-behaved factory tables in this release — four cartridges, four manufacturers, 62 to 395 grains, 1,050 to 3,450 fps — the recovered coefficient sits 0.05% to 9.5% above the published one, with a median of 1.75%. Most loads cluster tightly: Federal 1.66% to 2.10%, Winchester 1.59% to 1.69% across all but one load, Hornady 1.35% to 2.00% across all but two.
Two things we said followed from it do not. The offset is not uniform across the industry: two Hornady 6.5 PRC loads in this release reproduce at their printed coefficient to within 0.05% and 0.12% — no offset at all — while one Winchester 6.5 PRC load sits at 9.5%. And we cannot say which atmosphere any maker used. The Army Standard Metro atmosphere — 59°F, 29.53 inHg, 78% relative humidity, against the ICAO standard of 59°F, 29.92 inHg and dry air — gives a density ratio of 0.9819, which is close to the median offset. That is a coincidence worth noticing and it is not a finding. No maker in this release states the atmosphere its tables were computed in, in any page or interface we retrieved.
What survives, and what it is good for. The offset itself is real, measured, and reproducible from each maker’s own two published numbers. It is why an app fed the coefficient from the box runs about one to two percent fast at distance against the table printed beside it. If you want to match the figures on the box, use the factory setting in our calculators. If you want to know where the bullet goes on a real day, enter your own conditions. Every caliber page prints both coefficients and the residual, so you can check this on any load without taking our word for it.
Sourcing rules in this ballistics methodology
- Every manufacturer figure is taken from the manufacturer, not from a retailer, an aggregator or another publisher, and the exact page is linked beside the number.
- Every figure is re-fetched before publication, and the load-bearing ones are re-fetched again after the page is written.
- A figure we cannot re-query is provisional. Anything read off a chart, a scanned document or a file we cannot check again is treated as unverified until it is confirmed from a source that can be re-read.
- We do not average two authorities who disagree. Where two sources conflict, both are shown and the conflict is the finding.
- Negative claims get extra checking, and they are scoped to what we retrieved. Saying a company does not publish something is a claim about that whole company; before writing one we check the product page, the brand’s cartridge microsite and FAQ, and any calculator application the brand runs, and we write the sentence as a statement about the sources we retrieved rather than about the company. We have had that sentence wrong before, which is why the rule exists.
What this ballistics methodology will not guess
- Terminal performance. Nothing we publish describes what a bullet does on arrival. Energy is arithmetic, not wounding.
- Legal or ethical adequacy for game. Minimum-caliber and minimum-energy rules are set by each state and change.
- A G7 coefficient where the maker publishes only G1. Converting between drag models by rule of thumb adds more error than it removes.
- Velocity per inch of barrel, unless the manufacturer has published measurements at two barrel lengths for that specific load — and then only between those two lengths.
- Which atmosphere each maker actually used. We measured the offset between the published coefficient and the published table and showed our working. That measurement cannot distinguish an atmosphere from a coefficient, so we draw no conclusion about the air.
What these numbers are worth
A figure printed to the nearest foot per second is not automatically good to the nearest foot per second. These are the things that move a computed velocity on this site, each one measured over the 61 loads in this release that fit a single coefficient rather than assumed.
| Component | Velocity |
|---|---|
| integration step (dt 2×10−4 s against 2×10−5 s) | 0.000 fps |
| published coefficient rounding, at each maker’s own printed precision | 1.022 fps |
| table reproduction residual (rms over loads) | 0.464 fps |
| Combined standard uncertainty | 1.12 fps |
| Expanded, k = 2 | 2.24 fps |
Two things follow. The solver is not the limit: halving the integration step moves a velocity by 0.000 fps, so the integrator contributes nothing measurable. What sets the figure is the rounding of each maker’s own printed coefficient, computed per load at the precision actually printed — every maker in this release publishes three decimals, on all 61 loads, verified against the archived bytes. The worst single load in the release is 1.70 fps. Loads whose published rows fit no single coefficient are disclosed on their own pages and excluded here.
Corrected 2026-08-24. This section previously carried a different budget: a combined 2.4 fps and an expanded 5 in, measured across six loads and five distances on a 150-yard zero, with a drop column beside the velocity one. Two of its rows do not survive. Its largest component, “single drag scale against per-load spread”, belongs to a reading of the evidence this site has since withdrawn — the per-load scale turned out to be algebraically identical to the published coefficient divided by the recovered one, and to carry no information about the air, which is set out under the offset heading above. A separate working file also carried an expanded figure of 11.7 fps; that was an artifact of reading each coefficient’s precision back from a parsed float, which deletes trailing zeros, and it contradicted every page it was written to explain by a factor of four to seven. The table above replaces both. The drop column is withdrawn rather than carried over: it has not been recomputed under the corrected model, and publishing a drop uncertainty derived from the withdrawn one would be worse than publishing none.
Who writes and checks this
These pages are written and checked by James “The XDMAN” Nicholas, 07/02 NFA firearms manufacturer and professional gunsmith. James is an 07/02 NFA Firearms Manufacturer, a professional gunsmith with over 20 years of experience, and a firearms writer, photographer and firearms expert.
If you think a figure here is wrong, point to it and to the source you think it should be. Substantive corrections are made on the page with a dated note saying what changed. I do not rewrite silently.
How to check our work, and how to tell us we are wrong
Every ballistics page publishes the inputs it used — each load’s published muzzle velocity, its published coefficient, the test barrel and zero each figure belongs to, and the maker’s full published velocity row — together with the worst and root-mean-square residual between our reconstruction and that row. Nothing that goes into a figure is held back, so any of it can be reproduced with the equations above and a spreadsheet. The tables themselves remain the manufacturers’ published content; we link each one rather than relicensing it.
These pages re-derive manufacturers’ published figures from those manufacturers’ own stated inputs and print the residual. Where a maker publishes two figures for the same thing, both are shown, the page says which one it uses and why, and it states that the reason for the difference is not published. We take no view on it. That standard obliges us to hold our own arithmetic to the same one: if you can show a figure here does not reproduce, the page changes and the change is dated. Point to the number and the source, and that is enough.
Sources
Data updated September 2026.
- JBM Ballistics — tabulated G1 drag coefficient versus Mach number (values from Ballistic Research Laboratory), retrieved 2026-08-23.
- JBM Ballistics — tabulated G7 drag coefficient versus Mach number, retrieved 2026-08-23.
- U.S. Standard Atmosphere, 1976 (NASA-TM-X-74335 / NOAA-S/T-76-1562), for the sea-level constants the drag term is built on — 59°F, 29.92 inHg, 0.0764742 lb/ft³ — retrieved 2026-08-24.
- Lilja Precision Rifle Barrels — Ballistic Effects of Altitude, Temperature and Humidity, for the Standard Metro and ICAO atmospheric definitions, retrieved 2026-08-23.
Method last reviewed August 2026. Guns and Gadgets Daily is not affiliated with any manufacturer named on this page, and all product and company names are the marks of their respective owners.
