Wind is the hardest variable in long-range shooting because it changes the bullet’s sideways position continuously through its flight. This calculator uses the classic lag-time model to turn a wind call into a precise windage hold in inches, MOA, and MIL at every distance you care about.
How it works
Wind drift is driven by lag time — how much longer the bullet takes to reach the target than it would in a vacuum:
time_of_flight = range / average_velocity (approx, drag-corrected)
vacuum_time = range / muzzle_velocity
lag_time = time_of_flight - vacuum_time
drift (ft) = crosswind_speed (ft/s) * lag_time (s)
The crosswind component is wind_speed * sin(angle), so a full-value 3 o’clock wind
uses the whole wind speed while an oblique wind uses only part of it. Velocity at range
is estimated from the G1 ballistic coefficient using a retardation approximation, which
captures how the bullet slows down and the wind gains more time to act.
Converting to a scope hold
Once drift is known in inches at a distance, the angular hold is:
- MOA = drift_inches / (1.047 * range_in_hundreds_of_yards)
- MIL = drift_inches / (3.6 * range_in_hundreds_of_yards)
Tips
A useful range rule of thumb: a full-value 10 mph wind drifts a typical 2700 fps, 0.5 BC hunting bullet roughly 1 MOA at 300 yards and grows faster past 500. Always read the wind at your position and downrange — mirage and vegetation near the target often tell you more than the wind at the firing line. Treat the output as your starting hold, then refine with observed impacts.