How good is one number, where should you take it from, and is there anything better than G7?
I was sitting on a pile of real-world Cd-Mach curves — measured drag data for 183 real, modern match-grade bullets across three manufacturers (Lapua, Hornady, Berger) — and could finally ask the machine all the questions that are at the heart of modern youth’s preoccupations, namely:
- For modern spitzer boat-tail G7-ish projectiles, how accurate is a single G7 BC for supersonic trajectory calculations? Common knowledge says "pretty damn accurate" — but exactly how accurate, that was the question, and now there’s data on several hundred bullets to answer it with.
- This comes up a lot in discussions around short-range BC calculations (Labrabaco-style), and around the differences you get depending on exactly which "near" and "far" velocities you pick to compute a BC from. Put simply: for a two-point BC calculation, what velocity range gives the smallest trajectory error, all the way down into transonic? And as a bonus: how sub-optimal is a purely close-range BC estimate, if you have a good muzzle velocity but no clue what happens further downrange?
- Could there be a better generic drag profile than G7 for modern spitzer boat-tail VLD bullets — something like a "G7++"?
Let’s take them in order.
1. How good is a single G7 BC, really?
First, a word on "G7-ish." Not every bullet is built around the G7 reference shape: hunting bullets, AP, FMJ and other non-match designs often have a genuinely different drag signature. So every bullet here was run through an automatic test — fit a single G7 form factor (equivalently, a BC) to the bullet’s own measured supersonic drag curve, then check how far the real curve wanders from that fitted constant. Bullets that stay within 3% are "G7-ish"; the rest are "other." The cutoff isn’t arbitrary: it lines up almost exactly with what you’d guess from the names alone. Scenar/Scenar-L, BTHP/ELD-M/ELD-X/CX/Aeromatch land solidly in "G7-ish," while Naturalis, AP, FMJ and Sub-X land in "other," as expected. That gave 183 G7-ish bullets (34 Lapua, 101 Hornady, 48 Berger). Two borderline cases got dropped on closer inspection, leaving 181 for the trajectory tests below.
Here’s the real Cd-Mach curve for one of them (a 155gr .308 Scenar), against a plain G7 curve scaled by its own best-fit BC:
They track closely almost everywhere, and diverge right where you’d expect: around the transonic hump.
That picture is the whole story of what a G7 BC is. It’s a single number that scales the standard G7 reference curve up or down, hoping the scaled version lands close to the bullet’s own. It never lands exactly. A real bullet’s curve has its own shape, its own bumps, and no amount of scaling someone else’s curve will reproduce them. The best a scaled curve can do is touch the real one at exactly one velocity. At that one Mach number the chosen BC is perfectly correct; move away in either direction and the two curves drift apart again.
Which way they drift isn’t predictable either. Slide that touch-point down through the supersonic range, from near the muzzle toward transonic, and for some bullets the BC that keeps the curves touching climbs steadily; for others it falls just as steadily. Same nominal "G7-ish" shape, opposite behavior. It’s a property of the individual bullet, not a rule of thumb.
Pinning down a BC this way — pick one velocity, solve for whatever BC makes the curves cross exactly there — is what I’ll call Method P, for pointwise. It’s the most direct way to read a BC straight off a measured drag curve.
To see how good any one Method-P choice actually is, I fly a full trajectory with that BC and compare it, the whole way down, against the trajectory the bullet’s own true drag curve would produce. All those small differences get folded into one number: the RMSE, in mrad — the same unit a scope’s clicks are measured in, commonly 0.1 mrad per click.
Here’s what that looks like across the pool, at three representative muzzle velocities: how far the BC value itself moves across all the reasonable touch-points between the muzzle and Mach 1.5, and how much error that produces for the typical bullet versus the single worst one. Every RMSE below is measured over the same stretch of flight, muzzle down to Mach 1.3, so the rows compare like with like rather than rewarding whoever flies longest.
| Muzzle Mach | BC swing, % (typical / worst bullet) | RMSE, best pick, mrad (typical / worst bullet) | RMSE, typical pick, mrad (typical / worst bullet) | RMSE, worst pick, mrad (typical / worst bullet) |
|---|---|---|---|---|
| 2.2 | 2.60 / 6.33 | 0.0021 / 0.0064 | 0.0104 / 0.0301 | 0.0200 / 0.0748 |
| 2.5 | 3.76 / 8.58 | 0.0042 / 0.0122 | 0.0207 / 0.0654 | 0.0457 / 0.1034 |
| 2.9 | 4.57 / 11.07 | 0.0055 / 0.0211 | 0.0218 / 0.1074 | 0.0801 / 0.2021 |
At a Mach 2.5 muzzle — a fair starting point for a lot of modern cartridges — that works out to roughly 0.2 clicks of error on average, growing to about 0.4 clicks if your touch-point happens to be one of the less favorable ones for that bullet, and about 1 click for the worst case in the whole pool.
It gets worse the faster the bullet starts out, because a faster bullet stays supersonic longer and gives the same underlying mismatch more time to accumulate into drop. At a Mach 2.9 muzzle the worst cases climb to roughly 1 to 2 clicks.
Put that in perspective: even at the sloppy end — a poorly chosen touch-point, a fast magnum-class load, scored all the way out to the edge of transonic — the miss is about one scope click. Usually it’s a fraction of that. For a single scaled copy of a reference curve, that’s remarkable.
One caveat on those numbers: they describe what happens when the touch-point is picked more or less at random, anywhere between the muzzle and Mach 1.5. Every such pick is legitimate by the letter of the method. They simply aren’t equally good. So can you do better by choosing deliberately?
2. So where should you actually take a BC from?
Two ways a BC gets determined in practice: off a known drag curve (Method P, above), or by measuring two velocities in the field and backing out whatever BC explains the difference. Take the single-point case first, since it’s the cleaner of the two.
If you’re picking that touch-point deliberately, what counts as "best"? Two reasonable answers:
- Criterion A — the touch-point that minimizes error averaged over the entire flight, from the muzzle until the bullet has dropped out of transonic.
- Criterion B — the touch-point that’s most accurate at one specific spot: the edge where supersonic gives way to transonic. Arguably the spot that matters most, since that’s exactly where a G7 model starts getting shaky.
Run both searches across the 181-bullet pool, at every muzzle velocity tested:
| Muzzle Mach | Optimal touch-point, Criterion A | Optimal touch-point, Criterion B |
|---|---|---|
| 2.2 | Mach 1.95 | Mach 1.95 |
| 2.3 | Mach 2.00 | Mach 2.00 |
| 2.4 | Mach 2.05 | Mach 2.05 |
| 2.5 | Mach 2.10 | Mach 2.10 |
| 2.6 | Mach 2.15 | Mach 2.15 |
| 2.7 | Mach 2.20 | Mach 2.20 |
| 2.8 | Mach 2.20 | Mach 2.20 |
| 2.9 | Mach 2.25 | Mach 2.25 |
Identical, muzzle velocity after muzzle velocity. The two criteria agree closely enough that it isn’t worth picking sides. Here’s the shape of that agreement at a Mach 2.5 muzzle, both criteria overlaid:
Note the sharp spike right around Mach 2.1 — not a bell curve, a genuine peak. It drifts with muzzle velocity, climbing from about Mach 1.95 at a modest Mach 2.2 muzzle to about Mach 2.25 at a fast Mach 2.9 one. If you want one number that works across the whole range a rifle cartridge might realistically span, Mach 2.1 is it: dead-on at a mid-range muzzle velocity, and a solid compromise at either end.
So what does choosing well actually buy you? Fixing the touch-point at Mach 2.1 for every bullet — one BC each, used unchanged at every muzzle velocity — and scoring drop error from the muzzle down to Mach 1.3:
| Muzzle Mach | RMSE, mrad (typical) | RMSE, mrad (best 5%) | RMSE, mrad (worst 5%) | RMSE, mrad (worst observed) |
|---|---|---|---|---|
| 2.2 | 0.0089 | 0.0012 | 0.0172 | 0.0208 |
| 2.5 | 0.0076 | 0.0026 | 0.0191 | 0.0366 |
| 2.9 | 0.0258 | 0.0038 | 0.0774 | 0.1247 |
With a properly chosen BC, typical error is measured in thousandths of a milliradian: a hundredth of a click, give or take. That’s about as good as this kind of model gets.
There are outliers. A handful of the less perfectly G7-ish bullets, launched north of 975 m/s (about 3200 fps), can accumulate a full click of error by the time they reach transonic even with the best available touch-point. Not the norm, but worth knowing about if you’re loading something fast and unusual.
But then, an attentive reader would object, you’d have to be a total nerd (am I?) to calculate BC values this way when you already have the bullet’s entire Cd-Mach curve in hand — which is exactly what Method P needs to work at all. Fair. In the real world almost nobody has a measured drag curve. What they have is a chronograph, a rangefinder and a muzzle velocity.
Enter Method V
In practice a BC is worked out by measuring two velocities — a "near" one and a "far" one — over a known distance, then calculating whatever single BC explains the velocity lost in between. Call that Method V, for velocity. The near reading is almost always at or very close to the muzzle. Where to put the far one is the real question.
Sweeping that far point across the whole supersonic band, for every bullet, at every muzzle velocity:
| Muzzle Mach | Median optimal far-Mach, Criterion A | Median optimal far-Mach, Criterion B | Median A−B gap |
|---|---|---|---|
| 2.2 | 1.70 | 1.70 | 0.00 |
| 2.3 | 1.75 | 1.75 | 0.00 |
| 2.4 | 1.75 | 1.80 | 0.00 |
| 2.5 | 1.80 | 1.80 | 0.00 |
| 2.6 | 1.80 | 1.80 | 0.00 |
| 2.7 | 1.85 | 1.85 | 0.00 |
| 2.8 | 1.85 | 1.85 | 0.00 |
| 2.9 | 1.85 | 1.85 | 0.00 |
Again the two criteria agree, and again the recommendation climbs gently with muzzle velocity, from Mach 1.7 to about Mach 1.85.
In actual distance downrange, though, that optimal far point moves around far more than the Mach numbers suggest, because how much range it takes to slow a bullet to a given Mach depends heavily on the bullet. For a light, low-BC bullet at a modest muzzle velocity it can land as close as 350–400 m. For a heavy, high-BC VLD pushed fast, the same Mach number doesn’t arrive until 700 m or well beyond.
If you have a choice in the matter — estimating a BC from the velocity table on the side of an ammo box, say, rather than running your own chronograph session — use that table to pick the distance where the velocity is right, not a fixed distance. For reference: Mach 1.0 at 15°C is 340 m/s, or 1115 fps.
And if you’re unsure which way to round, go long. A 0.5 Mach error off the optimum typically costs a fraction of a click either way, about 0.02 mrad, but the two directions aren’t symmetric. Pulling the far point in toward the muzzle, shortening the measured stretch, cost upward of a full click at long range in the worst cases I saw. Pushing it the same 0.5 Mach deeper into transonic stayed much cheaper: typically a tenth of a click, and never worse than about three-quarters of one.
What about a really short baseline?
A few years back, when I put together the original Labrabaco tool, a heated argument broke out on an internet forum, where some random guy insisted that determining a BC from short-range measurements — the 100 to 200 m typical of a Labradar’s working range — was impossible and invalid. The guy was an illiterate and resentful dork, but the question he’d stumbled into is a fair one: what does a short baseline actually cost you?
Same setup as before, comparing a BC measured over just the first 100 m or 200 m of flight against each bullet’s own best achievable one:
| Muzzle Mach | 100 m: extra mrad (median/worst) | 100 m: % of pool under 0.05 mrad extra | 200 m: extra mrad (median/worst) | 200 m: % of pool under 0.05 mrad extra |
|---|---|---|---|---|
| 2.2 | 0.0182 / 0.0535 | 98.3% | 0.0064 / 0.0375 | 100.0% |
| 2.5 | 0.0354 / 0.1562 | 74.6% | 0.0240 / 0.1113 | 92.3% |
| 2.9 | 0.0323 / 0.2180 | 71.8% | 0.0295 / 0.1665 | 79.6% |
Pooled across every muzzle velocity tested, a 100 m baseline typically keeps you under about 0.03 mrad of extra error over the whole supersonic trajectory; 200 m brings that down to about 0.021.
The usual caveat applies: a short baseline is less forgiving for a faster bullet. At a Mach 2.5 muzzle (roughly 850 m/s, about 2790 fps, a genuinely common speed) about 75% of the bullets tested stayed under half a click of extra error at 100 m, and about 92% did at 200 m.
For those who like numbers and tables as much as I do, here are the best, worst and most typical cases at that same Mach 2.5 muzzle, ranked by extra error at 100 m:
| Bullet | Optimal BC | 100 m BC | 200 m BC | Extra mrad (100 m / 200 m) | |
|---|---|---|---|---|---|
| Best | 250gr BTHP, Hornady | 0.3156 | 0.3157 | 0.3156 | 0.0001 / 0.0001 |
| 230gr ELD-X, Hornady | 0.3085 | 0.3085 | 0.3091 | 0.0001 / 0.0047 | |
| 300gr Hybrid TAC, Berger | 0.4224 | 0.4225 | 0.4226 | 0.0005 / 0.0011 | |
| Typical | 109gr ELD-M, Hornady | 0.2790 | 0.2824 | 0.2815 | 0.0354 / 0.0255 |
| 123gr FMJ, Lapua | 0.1334 | 0.1373 | 0.1344 | 0.0355 / 0.0046 | |
| 168gr BTHP, Hornady | 0.2463 | 0.2495 | 0.2483 | 0.0352 / 0.0204 | |
| Worst | 230gr A-TIP, Hornady | 0.4142 | 0.4292 | 0.4250 | 0.1562 / 0.1113 |
| 190gr A-TIP, Hornady | 0.3864 | 0.3981 | 0.3957 | 0.1134 / 0.0882 | |
| 147gr ELD-M, Hornady | 0.3183 | 0.3293 | 0.3261 | 0.1055 / 0.0727 |
Notice something: every BC in that table looks perfectly unremarkable. The 100 m and 200 m numbers all sit within a couple of percent of the "true" optimal value, whether the bullet lands in the best group or the worst. What separates a cheap short-baseline BC from a costly one is the size of the resulting error, not how sketchy the number looks — and you can’t tell which group a bullet is in by eyeballing it.
Final word on short-baseline BCs: Labrabaco might not be the way to double-check a military-grade Doppler radar. But done right, it gets you pretty damn close to the ballistic truth.
3. Is there a better generic drag profile than G7 — a "G7++"?
The goal here is worth stating precisely, because it’s easy to misread. This wasn’t about building some exotic new drag model that needs its own new measurement. It was about a drop-in replacement for plain G7: something you could feed the same ordinary G7 BC you already have — off a box label, from a chronograph fit, wherever — and get a curve that matches a real bullet’s drag more closely than plain G7, for free.
Short answer: there isn’t one that reliably beats G7 across all three manufacturers at once.
A couple of universal-correction ideas got tried. The simplest was a two-number version: a bit less drag correction needed in the transonic zone than in the subsonic one, roughly speaking. It genuinely helped. Fitted on Lapua’s bullets alone, it cut typical error by roughly a fifth to a third and worst-case error by about as much, and it transferred almost as well to Hornady’s bullets, which it had never seen during fitting.
The more ambitious version — a full pointwise "average shape", pooling all 183 bullets’ curves at every individual speed rather than just two numbers — told a less comfortable story once split by manufacturer. In the transonic zone specifically, the part this exercise cared about most, it made Hornady’s bullets roughly 15% more accurate on average, left Lapua’s essentially unchanged, and made Berger’s about a quarter worse.
Feeding it manufacturers’ own published BCs, rather than one derived the same careful way the curve itself was built, didn’t fix that either, for a tidy reason: the curve was tuned assuming its BC comes from one specific measurement recipe. A published BC is close to that but not computed quite the same way, which reopens a small version of exactly the mismatch the curve exists to avoid.
Worth a postscript, since it echoes the running theme. Manufacturer-published BCs and my own independently derived numbers typically agree within 1.4–1.9% — reassuringly close, for two completely different methods. And yet, exactly as sections 1 and 2 showed, a gap that small still compounds into a noticeably larger trajectory error over a few hundred meters. Small number, bigger practical difference, again.
One last aside: the G7 reference isn’t a description of any bullet actually on the market. It’s a fixed mathematical stand-in modeled on a slender, boat-tailed shape that dates back generations, well before polymer tips and extreme low-drag ogives. That a single scaled copy of that old curve still tracks modern match bullets as well as it does (see section 1) is genuinely impressive. But every attempt at replacing it universally kept coming out manufacturer-dependent, which hints that today’s bullet families have each drifted from that old reference in their own direction — far enough that no single "G7++" captures all of them equally well. The fix has to be bullet-specific rather than generic.
Key takeaways (I asked AI to sort my trash)
- A single G7 BC is remarkably accurate for modern G7-ish match bullets — typical error is a fraction of a scope click, worst case around one.
- There’s no single "correct" BC value — where you read it off the drag curve, or which two velocities you measure, changes both the number and the resulting error.
- Two different definitions of "the best" BC point — best over the whole shot, or best right at the transonic edge — agree so closely it’s not worth picking sides.
- For reading a BC straight off a drag curve, the best single touch-point is around Mach 2.1, drifting a bit with muzzle velocity.
- For a two-point (chronograph) BC measurement, put the near reading at the muzzle and the far one around Mach 1.7–1.85 — a little into transonic, not right at its edge.
- That "far" Mach point lands at very different actual distances depending on the bullet — 350–400 m for a light, slow one, 700 m or more for a heavy, fast VLD.
- If unsure where to put the far reading, go long — a baseline that’s too short costs more than one that reaches a bit too far into transonic.
- Even a short 100–200 m baseline (Labradar-style) gets most bullets close to their best achievable BC — good enough for the large majority, and better still at 200 m than at 100 m.
- A short-baseline BC that’s costing you real accuracy usually looks perfectly normal — the number alone won’t tell you which bullets are the exceptions.
- No universal "better than G7" replacement curve exists — any real fix has to be tailored to the specific bullet, not one-size-fits-all across manufacturers.