Rifle ballistics
Powder temperature sensitivity calculator
The same load leaves the muzzle at a different speed on a cold morning than on a hot afternoon, because a propellant’s performance changes with its temperature. How much depends on the powder and on the load: in Hodgdon’s own test at 0, 70 and 125 °F, one .308 load’s velocity varied by 114 ft/s and another’s by 8, and Hornady says a coefficient measured with your own load beats its table of averages. Enter the averages from two to five chronograph sessions and this works out the muzzle velocity change per degree — below and above your baseline separately, the way Hornady’s 4DOF solver takes it — checks it against the chronograph’s own scatter, and gives the velocity at the temperature you will shoot in.
Work it out from your chronograph sessions
Each row is one session: the temperature of the ammunition and the average velocity of the string fired at it. The standard deviation and shot count are optional, but without them there is no way to say whether the change is bigger than chronograph noise. The defaults are Hodgdon’s published .308 Winchester test of Winchester 748 powder under a 168 gr Sierra BTHP, with the baseline at Hodgdon’s own 70 °F, so the calculator opens on the worked example further down.
The method
Hornady’s technical document for Version II of its 4DOF solver, written in November 2016, is the clearest published statement of it. The document puts the size of the effect at anywhere from 30–50 ft/s over a 150 °F span to hundreds of feet per second, depending on caliber, primer and above all the propellant. Its manual calculation is a single division: the difference in velocity between two test temperatures over the difference in temperature.
It asks for three sessions, not two: one at a baseline and one each well below and well above it. Its example is 20, 70 and 100 degrees, with the range set by the temperatures you actually shoot in, and it says the ammunition needs enough soak time to reach each test temperature. It expects two coefficients, because the change per degree is usually not the same above the baseline as below it. You enter the one that matches the conditions, and the solver moves the velocity entered at the baseline by it:
V(T) = Vb + TSCabove · (T − Tb) when T is above Tb Tb = baseline temperature · Vb = velocity at the baseline
If velocity rises in the cold or falls in the heat, Hornady says to enter the coefficient as a negative number, and the calculator allows it. Hodgdon’s table has both cases: in 30-06, AA 4350 ran 15 ft/s faster at 0 °F than at 70 and 14 slower at 125; in .308, Reloder 15 lost 10 ft/s between 70 and 125 °F. Hornady also ships a table of general coefficients by powder, but says a coefficient measured with your own load is more accurate than the table, which averages many loads. It leaves ball powders out of that table altogether because they are typically far more sensitive, and recommends measuring your own.
More than three sessions
Two points fix a line exactly. When one side of the baseline has two or more sessions, the calculator fits that side’s line by least squares, pinned at the baseline:
It also fits a single straight line through every session, with the ordinary least-squares slope given in section 4.4.3.1 of the NIST/SEMATECH e-Handbook of Statistical Methods, and reports how far that line misses the worst session:
If the single line misses by more than the chronograph can explain, one number does not describe the load, and the two coefficients are the better model.
Is the change bigger than the chronograph’s scatter?
A session average is itself uncertain. Its standard error is s ÷ √n — the string’s standard deviation over the square root of the number of shots — and the difference between two independent averages carries the combined error that the NIST two-sample t-test uses (e-Handbook section 1.3.5.3). For a coefficient from two sessions:
Every coefficient and velocity change the calculator gives is a weighted sum of the session averages, so the same idea carries through the general propagation-of-error formula (e-Handbook section 2.5.5): with the sessions independent, the variance of the result is the sum, over the sessions, of each weight squared times that session’s squared standard error.
Whether a figure is bigger than the scatter is then the t-test’s question. The two-sample test rejects “no difference” when the difference is more than t1−α/2, ν standard errors, with the degrees of freedom ν from the Welch formula; for a figure built from more than two sessions the same formula, Welch–Satterthwaite, combines each session’s shots − 1 (e-Handbook section 2.5.7.1). At 95 % confidence and equal SDs, t is 2.10 for two strings of ten shots each (18 degrees of freedom), 2.78 for two of three shots (4) and 4.30 for two of two shots (2), from the e-Handbook’s table of t (section 1.3.6.7.2). The calculator flags any coefficient smaller than that many standard errors, because the data cannot tell it apart from zero.
For a temperature-stable powder that test is hard to pass. Ten shots at an SD of 10 ft/s give a session average with a standard error of 3.2 ft/s, and the difference between two such sessions 4.5 ft/s. A powder that really moves 0.14 ft/s per °F — what PrecisionRifleBlog measured for Varget and H4350 — changes by 7 ft/s over 50 degrees, about 1.6 standard errors against the 2.10 needed: not detectable. The two sessions would need to be about 67 °F apart to reach it. More shots per string or a wider temperature gap are the only remedies; how many shots a string needs is worked through separately.
Units
Neither the Hornady document nor the Hornady–Kestrel guide to entering the coefficient prints its unit. The guide shows a factor of 0.37 on the meter beside a baseline of 75 °F and 2,600 fps, and the Hornady document works in feet per second and degrees Fahrenheit, so ft/s per °F is the natural reading — but it is an inference, and it matters: 0.37 per °F takes that load to 2,581.5 ft/s at 25 °F, while 0.37 per °C would give 2,589.7. Before trusting a device with it, test it: enter a coefficient of 1, set the temperature ten degrees off the baseline, and see whether the velocity it uses moves by ten. The calculator gives every coefficient both ways; one per °C is 1.8 times one per °F.
What it does to the trajectory
The muzzle velocity truing page shows that where drag goes as the square of speed, drop goes as 1/V², so a 1 % slower bullet needs about 2 % more elevation. The calculator prints the elevation change as (Vb ÷ V)² − 1. It is an approximation, and it fails through the transonic region. It also counts the velocity change alone: cold air is denser and adds drop of its own, which a solver works out from the air temperature and pressure you give it.
Worked example: Hodgdon’s .308 test
Hodgdon published velocities and pressures for six powders in .308 Winchester — Winchester-Western case, WLR primer, 168 gr Sierra BTHP — at 0, 70 and 125 °F. That is Hornady’s three-session layout, with the baseline at 70. Winchester 748 averaged 2,655, 2,724 and 2,769 ft/s.
| Below the baseline | (2,724 − 2,655) ÷ (70 − 0) = 69 ÷ 70 = 0.986 ft/s per °F (1.774 per °C) |
|---|---|
| Above the baseline | (2,769 − 2,724) ÷ (125 − 70) = 45 ÷ 55 = 0.818 ft/s per °F (1.473 per °C) |
| One line through all three | 0.915 ft/s per °F; it misses the 70 °F session by 3.4 ft/s |
| Velocity at 25 °F | 2,724 − 0.986 × 45 = 2,679.6 ft/s |
| Elevation at 25 °F, from the velocity alone | (2,724 ÷ 2,679.6)² − 1 = about 3.3 % more than at 70 °F |
The two differences, +45 and −69 ft/s, are the hot and cold variations Hodgdon prints for this powder, and together they make its 114 ft/s extreme spread. Varget in the same table averaged 2,778, 2,771 and 2,779 ft/s: a negative coefficient below the baseline (−0.100 ft/s per °F, faster in the cold) and 0.145 above it. Hodgdon prints no standard deviations or shot counts, so there is no telling whether 7 or 8 ft/s is anything more than scatter. Had each string been ten shots at an SD of 10 ft/s, the coefficients would be 1.6 and 1.8 standard errors from zero, short of the 2.10 that 95 % confidence needs, and the calculator would flag both.
Checked against published figures
| Source | Published data | Published per degree | This calculator |
|---|---|---|---|
| PrecisionRifleBlog, 6mm Dasher, Varget | 2,821 ft/s at 5 °F, 2,835 at 108 °F | 0.136 | 0.136 |
| PrecisionRifleBlog, 6mm Creedmoor, H4350 | 3,088 ft/s at 5 °F, 3,102 at 105 °F | 0.140 | 0.140 |
| Handloader chart, as reproduced by PrecisionRifleBlog | +87 ft/s from 70 to 115 °F | 1.9 | 1.933 |
| Todd Hodnett, as reported by PrecisionRifleBlog: military ammunition, Reloder 15 | 160 ft/s from 40 to 140 °F | none printed | 1.600 |
| Long Range Hunting forum, 2016 | 2,895, 2,935, 2,970, 3,010 ft/s at 10, 40, 70, 100 °F | 1.28 | 1.278 end to end; 1.267 by least squares |
| Hornady–Kestrel guide | factor 0.37, baseline 75 °F, 2,600 fps | no result printed | 2,581.5 ft/s at 25 °F, reading it as per °F |
Per-degree figures are ft/s per °F. The forum post writes its change as 105 ft/s over 90 degrees, but its own end points are 115 ft/s apart, and 115 ÷ 90 is the 1.28 it prints. Least squares through all four points gives 1.267, close to the end-to-end figure because the four lie almost on one line.
Where it goes wrong
It is the powder’s temperature, not the air’s. PrecisionRifleBlog’s 2025 test soaked each batch for 8 hours with a temperature logger wrapped in with the ammunition, took the logged average for the last hour, and fired as soon as the batch came out. The same article points out the reverse case: ammunition left in the sun on a dark surface can reach 115 °F without the air being that hot.
Hornady’s and Kestrel’s solvers key off the air temperature. The Hornady document applies the coefficient using the baseline and the atmospheric temperature you enter. Kestrel’s own answer for ammunition that is warmer or colder than the air is a workaround: turn the velocity–temperature table on, set the environment temperature to the ammunition’s, let the velocity update, turn the table off to lock that velocity in, then set the environment back to the real conditions.
A trued velocity belongs to one temperature. The manual for Kestrel’s Applied Ballistics meters says that when a muzzle velocity calibration finishes, the meter offers to store the new velocity as a table entry at the current temperature. If the table is on and that is declined, it asks to turn the table off, because otherwise the table would overwrite the calibrated value. Truing to drop at distance and correcting for powder temperature are two adjustments to the same number, and they have to agree about which temperature it belongs to.
It is not a straight line. PrecisionRifleBlog’s Dasher load moved close to 0.2 ft/s per °F between 5 and 33 °F, and only 0.1 between 58 and 108. Hodgdon’s W748 load is 0.986 below its baseline and 0.818 above it. The Long Range Hunting post says the same thing and asks for at least four sessions, 30 °F apart, from the current lot of powder. Keep the two coefficients separate and stay inside the temperatures you tested.
Use one chronograph for every session. A fixed bias in the instrument cancels in a difference only if the same instrument measured both ends. A percentage error, such as screens spaced 1 % wrong, scales the coefficient by the same 1 %, which rarely matters.
Velocity is not pressure. In Hodgdon’s 30-06 table, VIT N550 gained 44 ft/s between 70 and 125 °F while its pressure went from 50,100 to 60,200 CUP, a 20 % rise for a 1.5 % change in velocity. Nothing on this page says whether a load is safe at a given temperature; only pressure data does.
Carrying it into a solver
Range Walkout Coming soon, our long-range ballistic solver for Android, solves with one muzzle velocity per rifle profile (the trued one, once you have trued it) and uses the temperature you give it for the air alone: it does not adjust velocity for powder temperature. So its true-to-impact back-computation folds any powder-temperature shift into the trued velocity, and the result belongs to the temperature the ammunition was on the day you trued it. To carry it to another day, enter the trued velocity above as the velocity at the baseline, with that day’s ammunition temperature as the baseline, and type the velocity the calculator gives for today into Range Walkout’s muzzle velocity field. Typing a velocity there replaces the trued one, which is what you want here.
Related: truing muzzle velocity · chronograph velocity statistics · spin drift · the Coriolis effect on a rifle bullet
Sources
- Hornady, 4DOF (Four Degree of Freedom) Ballistic Calculator Technical Document — Muzzle Velocity Correction and the custom and general temperature sensitivity coefficient sections: the two-point method, the three test temperatures, soak time, separate coefficients above and below the baseline, negative values, ball powders.
- Hornady and Kestrel Ballistics, “What is Temperature Sensitivity Coefficient and How to input correctly?” — the 0.37, 75 °F, 2,600 fps entry.
- Kestrel Ballistics FAQ: what temperature to input when the ammunition is not at the ambient temperature — the lock-in workaround.
- Kestrel, instruction manual for the Kestrel 5700 and 5700 Elite with Applied Ballistics — Calibrating Muzzle Velocity, and how it interacts with the velocity–temperature table.
- Hodgdon, “Extreme Rifle Powders: Actual Data Comparing Extreme Spreads” — the 30-06 and .308 Winchester tables at 0, 70 and 125 °F.
- Cal Zant, “Powder Temperature Sensitivity”, PrecisionRifleBlog, 8 March 2025 — the Dasher and Creedmoor tests and their method; the Handloader and Hodnett figures as reported there.
- “Testing Muzzle Velocity/Powder Sensitivity Part 2”, Long Range Hunting forum, 19 September 2016 — the four-session example.
- NIST/SEMATECH e-Handbook of Statistical Methods: 4.4.3.1 Least Squares, 1.3.5.3 Two-Sample t-Test for Equal Means, 1.3.6.7.2 Critical Values of the Student’s t Distribution, 2.5.5 Propagation of error considerations, 2.5.7.1 Degrees of freedom.
Questions or corrections: [email protected]