9mm Luger Trajectory Calculator
See how 9mm Luger stacks up in our full caliber comparison chart — energy, drop and recoil for every handgun caliber side by side.
The 9mm Luger is the world's most popular defensive handgun cartridge. With a 124-grain bullet at 1,090 fps and a 25-yard zero, expect about 1.5 inches of drop at 50 yards, 5.1 inches at 75 yards, and 10.9 inches at 100 yards. The round delivers 327 ft-lbs at the muzzle and retains 252 ft-lbs at 100 yards—more than adequate for defensive use at any practical pistol distance.
Use the calculator to match your specific load. Click "Modify Calculation" to enter your bullet weight, muzzle velocity, and ballistic coefficient. The 9mm spans 115-grain target loads to 147-grain subsonic rounds, each with different trajectories. You can also factor in wind and atmospheric conditions for competition shooting.
Compare up to 5 different loads. The current caliber (9mm Luger) is pre-selected for the first load.
9mm Luger Trajectory Chart
9mm Luger Ballistics Data
| Range (yd) | Elevation (in) | Elevation (MOA) | Elevation (MIL) | Windage (in) | Windage (MOA) | Windage (MIL) | Time (s) | Velocity (fps) | Energy (ft-lbs) |
|---|---|---|---|---|---|---|---|---|---|
| 0 | -0.5 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1090.0 | 327.21 |
| 5 | -0.24 | 4.45 | 1.294 | 0.0 | 0.0 | 0.0 | 0.015 | 1081.03 | 321.85 |
| 10 | -0.07 | 0.61 | 0.179 | 0.0 | 0.0 | 0.0 | 0.029 | 1072.63 | 316.87 |
| 15 | 0.03 | -0.22 | -0.063 | 0.0 | 0.0 | 0.0 | 0.043 | 1064.5 | 312.08 |
| 20 | 0.06 | -0.27 | -0.079 | 0.0 | 0.0 | 0.0 | 0.057 | 1056.62 | 307.48 |
| 25 | 0.0 | -0.01 | -0.003 | 0.0 | 0.0 | 0.0 | 0.071 | 1048.98 | 303.05 |
| 30 | -0.13 | 0.41 | 0.12 | 0.0 | 0.0 | 0.0 | 0.085 | 1041.57 | 298.78 |
| 35 | -0.34 | 0.93 | 0.272 | 0.0 | 0.0 | 0.0 | 0.1 | 1034.39 | 294.67 |
| 40 | -0.64 | 1.52 | 0.442 | 0.0 | 0.0 | 0.0 | 0.114 | 1027.4 | 290.71 |
| 45 | -1.02 | 2.15 | 0.625 | 0.0 | 0.0 | 0.0 | 0.129 | 1020.63 | 286.89 |
| 50 | -1.48 | 2.81 | 0.818 | 0.0 | 0.0 | 0.0 | 0.144 | 1014.03 | 283.19 |
| 55 | -2.02 | 3.5 | 1.018 | 0.0 | 0.0 | 0.0 | 0.159 | 1007.61 | 279.62 |
| 60 | -2.65 | 4.21 | 1.224 | 0.0 | 0.0 | 0.0 | 0.174 | 1001.36 | 276.16 |
| 65 | -3.37 | 4.94 | 1.436 | 0.0 | 0.0 | 0.0 | 0.189 | 995.26 | 272.8 |
| 70 | -4.17 | 5.68 | 1.652 | 0.0 | 0.0 | 0.0 | 0.204 | 989.31 | 269.55 |
| 75 | -5.07 | 6.44 | 1.873 | 0.0 | 0.0 | 0.0 | 0.219 | 983.51 | 266.4 |
| 80 | -6.05 | 7.21 | 2.097 | 0.0 | 0.0 | 0.0 | 0.234 | 977.85 | 263.34 |
| 85 | -7.12 | 7.99 | 2.324 | 0.0 | 0.0 | 0.0 | 0.25 | 972.31 | 260.37 |
| 90 | -8.29 | 8.78 | 2.554 | 0.0 | 0.0 | 0.0 | 0.265 | 966.89 | 257.47 |
| 95 | -9.55 | 9.58 | 2.788 | 0.0 | 0.0 | 0.0 | 0.281 | 961.59 | 254.66 |
| 100 | -10.9 | 10.4 | 3.024 | 0.0 | 0.0 | 0.0 | 0.296 | 956.39 | 251.91 |
Take this table to the range
The 9mm Luger reference load above as a wallet-size DOPE card: the same zero, standard conditions, holds in MOA, a 10 mph wind column, and a blank column to write in what the rifle actually does.
Download it as it is, or customize the size (turret cap, armband, index card), the columns, the wind speeds and units.
Print at 100% (“Actual size”). Laminate it or use waterproof paper for the field.
Available 9mm Luger Ammunition Ballistics
Zeroing the 9mm Luger
Every table in this section uses the same reference load as the calculator above, 124gr G1 .169 at 1,090 fps, with a 0.5" sight height over the bore, at standard conditions (59°F, sea level, no wind for drop; 10 mph crosswind for drift). Handgun zeros are short because the sight sits close to the bore and the bullet arcs little inside 50 yards; the choice is really about where you want the crossover. Change the bullet, velocity or sight height in the calculator above to solve your own load.
9mm Luger zero comparison
| 10-yd zero | 15-yd zero | 25-yd zero | |
|---|---|---|---|
| Near zero | 10 yd | 15 yd | 13 yd |
| Far zero | 32 yd | 22 yd | 25 yd |
| Max ordinate | +0.2" | +0.0" | +0.1" |
| Max ordinate distance | 21 yd | 18 yd | 19 yd |
| Hold-dead-on window (4" vital zone, ±2") | 0–57 yd | 0–53 yd | 0–54 yd |
| Sight in at 25 yd | +0.2" (+0.6 MOA) | -0.1" (-0.2 MOA) | 0.0" (+0.0 MOA) |
| Drop at 50 yd | -1.2" | -1.6" | -1.5" |
| Drop at 100 yd | -10.3" | -11.1" | -10.9" |
| Energy at 50 yd | 283 ft-lb | 283 ft-lb | 283 ft-lb |
How to read it: filled circles are the near and far zero, where the bullet's path crosses the line of sight;the triangle is the peak (max ordinate). The shaded band is the 4" vital zone, ±2" either side of the line of sight. The dashed line marks the edge of the hold-dead-on window. The chart is zoomed to where the zero matters; the tables below run to 100 yards.
Key terms
- Near zero
- Where the bullet first climbs up through the line of sight. It starts below the sight, because the sight sits above the barrel.
- Far zero
- Where it falls back down through the line of sight. A "200-yard zero" is the far zero; the near zero comes with it.
- Max ordinate
- The highest the bullet gets above the line of sight, between the two crossings. This is what makes a zero shoot high in the middle.
- Point blank range (MPBR)
- The zero that keeps the whole arc inside a vital zone for the longest distance, so you can aim at the centre and hold dead-on.
9mm Luger with a 10-Yard Zero
Zeroed at 10 yards with a 0.5" sight height, the 124gr load crosses the line of sight on the way up at 10 yards, peaks +0.2" at 21 yards, crosses back down at 32 yards, and is -1.2" at 50 and -10.3" at 100 yards. This load is subsonic from the muzzle.
| Range (yd) | Drop (in) | Drop (MOA) | Drop (MIL) | Velocity (fps) | Energy (ft-lb) | Wind drift, 10 mph (in) |
|---|---|---|---|---|---|---|
| 0 | -0.5" | 0.00 | 0.00 | 1,090 | 327 | 0.1 |
| 5 | -0.2" | -3.89 | -1.13 | 1,081 | 322 | 0.1 |
| 10 | 0.0" | -0.05 | -0.01 | 1,073 | 317 | 0.1 |
| 15 | +0.1" | +0.78 | +0.23 | 1,064 | 312 | 0.2 |
| 20 | +0.2" | +0.84 | +0.24 | 1,057 | 307 | 0.2 |
| 25 | +0.2" | +0.58 | +0.17 | 1,049 | 303 | 0.3 |
| 30 | +0.1" | +0.15 | +0.04 | 1,042 | 299 | 0.4 |
| 35 | -0.1" | -0.37 | -0.11 | 1,034 | 295 | 0.6 |
| 40 | -0.4" | -0.96 | -0.28 | 1,027 | 291 | 0.7 |
| 45 | -0.8" | -1.58 | -0.46 | 1,021 | 287 | 0.8 |
| 50 | -1.2" | -2.25 | -0.65 | 1,014 | 283 | 1.0 |
| 55 | -1.7" | -2.94 | -0.85 | 1,008 | 280 | 1.2 |
| 60 | -2.3" | -3.65 | -1.06 | 1,001 | 276 | 1.4 |
| 65 | -3.0" | -4.37 | -1.27 | 995 | 273 | 1.6 |
| 70 | -3.8" | -5.12 | -1.49 | 989 | 270 | 1.9 |
| 75 | -4.6" | -5.87 | -1.71 | 984 | 266 | 2.1 |
| 80 | -5.6" | -6.64 | -1.93 | 978 | 263 | 2.4 |
| 85 | -6.6" | -7.43 | -2.16 | 972 | 260 | 2.7 |
| 90 | -7.8" | -8.22 | -2.39 | 967 | 257 | 3.0 |
| 95 | -9.0" | -9.02 | -2.62 | 962 | 255 | 3.3 |
| 100 | -10.3" | -9.83 | -2.86 | 956 | 252 | 3.6 |
124gr G1 .169 at 1,090 fps, 0.5" sight height over bore, standard conditions (59°F, sea level), 10 mph full-value crosswind. Positive drop is above the line of sight. This load is subsonic from the muzzle, so there is no transonic zone to cross.
9mm Luger with a 15-Yard Zero
Zeroed at 15 yards with a 0.5" sight height, the 124gr load crosses the line of sight on the way up at 15 yards, peaks +0.0" at 18 yards, crosses back down at 22 yards, and is -1.6" at 50 and -11.1" at 100 yards. This load is subsonic from the muzzle.
| Range (yd) | Drop (in) | Drop (MOA) | Drop (MIL) | Velocity (fps) | Energy (ft-lb) | Wind drift, 10 mph (in) |
|---|---|---|---|---|---|---|
| 0 | -0.5" | 0.00 | 0.00 | 1,090 | 327 | 0.1 |
| 5 | -0.3" | -4.68 | -1.36 | 1,081 | 322 | 0.1 |
| 10 | -0.1" | -0.85 | -0.25 | 1,073 | 317 | 0.1 |
| 15 | 0.0" | -0.01 | 0.00 | 1,064 | 312 | 0.2 |
| 20 | +0.0" | +0.04 | +0.01 | 1,057 | 307 | 0.2 |
| 25 | -0.1" | -0.22 | -0.06 | 1,049 | 303 | 0.3 |
| 30 | -0.2" | -0.64 | -0.19 | 1,042 | 299 | 0.4 |
| 35 | -0.4" | -1.17 | -0.34 | 1,034 | 295 | 0.6 |
| 40 | -0.7" | -1.75 | -0.51 | 1,027 | 291 | 0.7 |
| 45 | -1.1" | -2.38 | -0.69 | 1,021 | 287 | 0.8 |
| 50 | -1.6" | -3.04 | -0.88 | 1,014 | 283 | 1.0 |
| 55 | -2.2" | -3.73 | -1.09 | 1,008 | 280 | 1.2 |
| 60 | -2.8" | -4.44 | -1.29 | 1,001 | 276 | 1.4 |
| 65 | -3.5" | -5.17 | -1.50 | 995 | 273 | 1.6 |
| 70 | -4.3" | -5.91 | -1.72 | 989 | 270 | 1.9 |
| 75 | -5.3" | -6.67 | -1.94 | 984 | 266 | 2.1 |
| 80 | -6.2" | -7.44 | -2.16 | 978 | 263 | 2.4 |
| 85 | -7.3" | -8.22 | -2.39 | 972 | 260 | 2.7 |
| 90 | -8.5" | -9.01 | -2.62 | 967 | 257 | 3.0 |
| 95 | -9.8" | -9.81 | -2.85 | 962 | 255 | 3.3 |
| 100 | -11.1" | -10.63 | -3.09 | 956 | 252 | 3.6 |
124gr G1 .169 at 1,090 fps, 0.5" sight height over bore, standard conditions (59°F, sea level), 10 mph full-value crosswind. Positive drop is above the line of sight. This load is subsonic from the muzzle, so there is no transonic zone to cross.
9mm Luger with a 25-Yard Zero
Zeroed at 25 yards with a 0.5" sight height, the 124gr load first crosses the line of sight at 13 yards, peaks +0.1" at 19 yards, returns to zero at 25, and is -1.5" at 50 and -10.9" at 100 yards. This load is subsonic from the muzzle.
| Range (yd) | Drop (in) | Drop (MOA) | Drop (MIL) | Velocity (fps) | Energy (ft-lb) | Wind drift, 10 mph (in) |
|---|---|---|---|---|---|---|
| 0 | -0.5" | 0.00 | 0.00 | 1,090 | 327 | 0.1 |
| 5 | -0.2" | -4.45 | -1.29 | 1,081 | 322 | 0.1 |
| 10 | -0.1" | -0.61 | -0.18 | 1,073 | 317 | 0.1 |
| 15 | +0.0" | +0.22 | +0.06 | 1,064 | 312 | 0.2 |
| 20 | +0.1" | +0.27 | +0.08 | 1,057 | 307 | 0.2 |
| 25 | 0.0" | +0.01 | 0.00 | 1,049 | 303 | 0.3 |
| 30 | -0.1" | -0.41 | -0.12 | 1,042 | 299 | 0.4 |
| 35 | -0.3" | -0.93 | -0.27 | 1,034 | 295 | 0.6 |
| 40 | -0.6" | -1.52 | -0.44 | 1,027 | 291 | 0.7 |
| 45 | -1.0" | -2.15 | -0.62 | 1,021 | 287 | 0.8 |
| 50 | -1.5" | -2.81 | -0.82 | 1,014 | 283 | 1.0 |
| 55 | -2.0" | -3.50 | -1.02 | 1,008 | 280 | 1.2 |
| 60 | -2.7" | -4.21 | -1.22 | 1,001 | 276 | 1.4 |
| 65 | -3.4" | -4.94 | -1.44 | 995 | 273 | 1.6 |
| 70 | -4.2" | -5.68 | -1.65 | 989 | 270 | 1.9 |
| 75 | -5.1" | -6.44 | -1.87 | 984 | 266 | 2.1 |
| 80 | -6.1" | -7.21 | -2.10 | 978 | 263 | 2.4 |
| 85 | -7.1" | -7.99 | -2.32 | 972 | 260 | 2.7 |
| 90 | -8.3" | -8.78 | -2.55 | 967 | 257 | 3.0 |
| 95 | -9.6" | -9.58 | -2.79 | 962 | 255 | 3.3 |
| 100 | -10.9" | -10.40 | -3.02 | 956 | 252 | 3.6 |
124gr G1 .169 at 1,090 fps, 0.5" sight height over bore, standard conditions (59°F, sea level), 10 mph full-value crosswind. Positive drop is above the line of sight. This load is subsonic from the muzzle, so there is no transonic zone to cross.
Which Zero Should You Use for the 9mm Luger?
This page assumes iron sights half an inch over the bore, and at that height the 9mm zero barely matters: whether you zero at 10, 15 or 25 yards the bullet is within 1.6" of the line of sight at 50 yards and 10 to 11 inches low at 100. Choose the zero that matches how you confirm it, which for most pistols with fixed sights means 25 yards, the distance the factory regulated them for.
The 15-yard zero is the tangent zero for this load: the bullet touches the line of sight at 15 and never climbs above it, so point of aim is point of impact or slightly low everywhere. The 10-yard zero is a near zero that crosses back at 32 yards, with a peak of less than a fifth of an inch, which is why a 10-yard zero on a pistol with irons is harmless.
A slide-mounted red dot changes the picture because the dot sits nearer 0.9" over the bore. At that height a 10-yard zero is 0.7" high at 25 and does not cross back down until 56 yards, while a 25-yard zero never rises above the dot and is about an inch low at 50. The red-dot zero comparison pages solve the cartridge at the taller sight height; use those numbers, not this page's, for a dot.
Guidance reviewed 2026-09-13.
Similar Calibers
9mm Luger Ballistics Comparisons
Stock Up On 9mm Luger Ammo for the Range
| PRODUCT | DEALER | QUANTITY | PRICE | SHIPPING | TOTAL PRICE | PRICE/RD |
|---|---|---|---|---|---|---|
|
MaxxTech 9mm Luger 115gr FMJ
Sold by:
Sentry Ammo
|
Sentry Ammo | 1000 | $213.49 | $21.36 | $234.85 |
$0.23
1000 Rounds
|
| Black Basin Outdoors | 1000 | $239.49 | $0.00 | $239.49 |
$0.24
1000 Rounds
|
|
| Sentry Ammo | 1000 | $211.53 | $29.36 | $240.89 |
$0.24
1000 Rounds
|
|
| Black Basin Outdoors | 1000 | $267.84 | $0.00 | $267.84 |
$0.27
1000 Rounds
|
|
| BulkAmmo.com | 1000 | $248.00 | $19.89 | $267.89 |
$0.27
1000 Rounds
|