Exterior ballistics
Truing muzzle velocity
Your chronograph says 2600 ft/s. The target at 800 yards says something else. Both can be honest at once, and there are six separate reasons why. Here is where the disagreement comes from, how to back-compute the velocity that fits the drop, and what that number is and is not.
What truing is
You know the range. You know, from a group rather than a shot, how far the bullet landed below where the sights were pointed. A trajectory model turns muzzle velocity into predicted drop; truing runs that backwards and finds the muzzle velocity at which the predicted drop equals the measured one. That number then replaces the chronograph reading in the solver.
It works because drop is an unusually sensitive probe of muzzle velocity — more sensitive than the muzzle velocity measurement itself. The next section is the reason why.
Drop responds to velocity twice over
Take the drag force as proportional to the square of speed. That is a good approximation across any band where the drag coefficient is roughly flat against Mach number, which covers most of a supersonic rifle trajectory. Downrange, that gives:
Time to a fixed range R is then T = (ekR − 1) / k V0, so T is inversely proportional to V0 — and so is the time to reach every point along the way. Vertically, the fall is opposed by the vertical share of the drag, dvy/dt = −g − k v vy. Change the variable from time to distance, dt = dx/v, and it becomes:
The only place V0 appears is the gravity term, so the vertical velocity at any given distance is exactly proportional to 1/V0. The slope of the path is that vertical velocity divided by the forward speed, which is itself proportional to V0. So the slope at every distance, and the drop that is the slope summed over distance, carries two factors of velocity:
One percent of 2600 ft/s is 26 ft/s. On a solution calling for 10 mrad of elevation — a milliradian subtends 3.6 inches per 100 yards — two percent is 0.2 mrad, which is 7.2 inches at 1000 yards. Re-zeroing at 100 yards absorbs a small part of that, so the residual on target grows with range. Truing is done at distance for that reason and nothing else.
The 1/V0² result holds where the drag coefficient is flat. Through transonic it is not, which limits the whole method — see the last section.
Six reasons the two numbers disagree
1. The instrument
An optical chronograph times the bullet's shadow across two screens a known distance apart. Velocity is that distance divided by that time, so an error in the assumed spacing is a proportional error in every reading it will ever give. Spacing wrong by 1 % is 26 ft/s at 2600, in the same direction on every shot, and averaging more rounds does not touch it. Doppler radar sidesteps the geometry: LabRadar publishes an accuracy of ±0.1 %, which is ±2.6 ft/s at 2600 ft/s.
2. Where the instrument sits
The ProChrono Digital manual specifies 10 to 15 feet from the muzzle for rifles, far enough that muzzle blast does not trigger the sensors. So the reading is not muzzle velocity; it is the velocity 10 to 15 feet out. Federal publishes 2600 ft/s at the muzzle and 2427 ft/s at 100 yards for its 175 gr Sierra MatchKing 308 Win load — 173 ft/s over 300 feet, averaging 0.58 ft/s per foot, and steeper than that near the muzzle because drag goes as the square of speed. Fifteen feet out, the bullet is already around 9 ft/s down on what left the barrel. Small, but one-directional, and present in every reading.
3. The powder's temperature
Hodgdon publishes its own temperature test at 0, 70 and 125 °F. For 308 Winchester, Winchester-Western case, WLR primer, 168 gr Sierra BTHP, the extreme velocity spread across that 125-degree span was: Varget 8 ft/s, IMR 4064 46, Reloder 15 and Vihtavuori N140 50 each, AA2520 63, Winchester 748 114.
Winter is the cold side, and Hodgdon prints that too: the W748 load lost 69 ft/s between 70 °F and 0 °F, about 1 ft/s per degree Fahrenheit. Chronograph at 75 °F in September, shoot at 25 °F in January, and that load is roughly 50 ft/s down — 1.8 % of its 2724 ft/s, about 3.7 % of drop. The Varget load stayed within 8 ft/s at all three temperatures.
Caveat on that per-degree figure: three temperatures are not a curve, and it is the manufacturer's own promotional test. Treat it as an order of magnitude with a named source, not a coefficient.
4. The drag model
Sierra's ballistic coefficient listing gives the 175 gr MatchKing's G1 figure in three velocity bands: 0.505 above 2800 ft/s, 0.496 between 2800 and 1800, and 0.485 below 1800. That banding is the manufacturer stating in public that one G1 number does not describe the bullet.
G1 is the drag curve of a flat-based reference projectile about three calibres long with a short, two-calibre-radius ogive nose, from French firings at Gâvre in the late nineteenth century. A ballistic coefficient is the ratio between your bullet's retardation and that reference's, so if the shapes differ the ratio drifts with Mach number. A boat-tail match bullet is nothing like a G1 projectile, which is why the number has to be banded. G7 uses a long boat-tail reference and holds far better over a wide velocity span — Federal and Sierra both publish G7 0.25 for the same bullet. A solver running a single G1 figure predicts a drop that is wrong by an amount which grows with range, and truing muzzle velocity will hide it at exactly one range.
The G1 history: R. L. McCoy, Modern Exterior Ballistics, 2nd ed., chapter 1.
5. The air
Drag is directly proportional to air density, and two different “standard” atmospheres are still in circulation. Army Standard Metro, which older ballistic tables use, is 59 °F, 750 mmHg (29.5275 inHg) and 78 % relative humidity. The ICAO standard atmosphere is 59 °F, 29.92 inHg and dry air. The pressure difference alone is 1.3 % of density, 1.8 % counting the humidity, so a table quoted against one and read by a solver assuming the other is already over a percent out on drag.
And what the solver needs is the real station pressure — the pressure where you are standing. An altimeter setting from an airfield or a weather app has already been corrected to sea level, and using it at 5000 feet of elevation puts the air density badly wrong.
6. The sight
Turret markings are nominal. A scope whose elevation adjustment tracks 2 % small puts 2 % less on the target than the numbers on the dial claim: on a 30 MOA come-up that is 0.6 MOA, about 6 inches at 1000 yards. A minute of angle subtends 1.047 inches per 100 yards. To a truing routine that error is indistinguishable from a slow bullet, and it will be absorbed into the trued velocity. Measure the true click value first with a tall-target test — dial a known amount up a plumb line at a measured distance and see what the group really moved — then true.
Running the back-computation
Drop at a fixed range falls strictly as muzzle velocity rises, with no turning points anywhere in the useful range. A strictly monotonic function of one variable is the easiest root-finding problem there is: bracket the answer between one velocity that predicts too much drop and one that predicts too little, then halve the interval repeatedly. From a bracket of ±200 ft/s, twelve halvings put you inside 0.1 ft/s. No solver needs to be clever about this.
What it needs is inputs that were measured rather than assumed:
- True range to the target. A laser reading or a survey, not the number on the range flag.
- The vertical offset of the group centre from the point of aim.
- The elevation actually dialled, corrected by the tall-target result.
- Station pressure, temperature and humidity at the time of the shot.
- Sight height above the bore axis, and the zero range with its own measured offset.
True on a group, never on a shot. If the load's velocity standard deviation is 10 ft/s, a single round sits more than 10 ft/s from the mean about a third of the time — 31.7 % for a normal distribution — and truing to that round writes its personal deviation permanently into every future firing solution.
Work it out
A point-mass trajectory with the standard G1 or G7 drag function, zeroed at your zero range, then the bisection above for the velocity that reproduces your come-up. The defaults are Federal's own published numbers for GM308M2: with a 200-yard zero its table puts the bullet 51.8 inches low at 500 yards, which is 2.88 mil, and the air is Army Standard Metro. From that, the calculator gives back Federal's 2600 ft/s to within a few feet per second. Put in what your rifle needed.
What a trued velocity actually is
It is not a measurement of muzzle velocity. It is the muzzle velocity that makes this model, with this drag curve, in this air, through this scope, reproduce the drop you saw at that range. Every one of the six errors above ends up inside it. The number is a fitting parameter wearing a physical name, and it should be read that way.
That is acceptable — it is what the whole discipline does — provided two things are held in mind:
It is valid over the band you fitted it in. True at 1000 and the curve fits at 1000. It can fit 600 worse than the untrued curve did, because a range-dependent error has been corrected with a range-independent knob.
It dies with the conditions it absorbed. New scope, new powder lot, different temperature, different altitude: the fit was to those, and it has to be redone.
And a stopping rule. Add up what the chronograph's own error band and the day's temperature swing can honestly account for. If the trued velocity has to move further than that, the residual is not velocity — it is range, tracking or drag, and forcing the velocity to swallow it buries the fault instead of fixing it.
Telling a velocity error from a drag error
The two have different shapes against range, which is exactly what lets you separate them.
A velocity error scales the whole curve. From the derivation above, the drop is wrong by twice the velocity error in percentage terms — the same percentage at 300 yards as at 1000.
A drag error compounds. The velocity deficit grows as the bullet flies, so the percentage drop error is small up close and grows the further out you go.
So fit them at two ranges, not one. Take the velocity from a range where drag has had least time to act, then take a drag scale factor from the far end of the supersonic band. One knob per fault. A truing routine that offers a single range is asking one number to carry two different errors, and it will get both wrong in a way that only shows up at the range you did not test.
In the solver
Range Walkout Coming soon is our long-range ballistic solver for Android. It back-computes muzzle velocity from a known-range shot: you enter the range and the elevation that actually centred the group, and it solves for the velocity that reproduces it, so the solution matches where the bullet actually lands rather than where a chronograph reading says it should. It trues on that one range and has no separate drag factor — one knob — so by the argument above, true it at the distance you mean to shoot and check the other ranges against it. It works from points marked on a range map — range, incline, bearing and latitude come off the targets you place — and adds spin drift and Coriolis into the solution. Details on the products page →
Related: spin drift · the Coriolis effect on a rifle bullet
Questions or corrections: [email protected]