Here's another way to think about it. The ballistic engines are all pretty good these days and should yield good results given good inputs. Chronographs are so good these day I say we can accept the results as accurate. The atmospheric data is almost certainly close enough. What's the only input we can't measure directly? BC. Our only option is to use the published numbers. I rarely get any discrepancy in my predicted data and what I see on the range, but if I do have a major problem, BC is the first place I look.

I'm a huge fan of Applied Ballistics. Litz has measured many bullets with his radar setup. In the Kestrel with AB or the AB Quantum app, you can access those "BC's" he measured as AB Custom Curves. I've yet to find one that didn't work nearly perfectly. I've had discrepancies, but they've always turned out to be user error of some sort on my part. The AB custom curves eliminate the need to adjust BC as velocity changes because they are direct measurements of the bullet in flight, not a scaling factor applied to a generic curve.

Don't disregard the effect of smaller changes in density altitude on subsonic projectiles. For example, I've had my data at 220y change by a solid 0.5mrad over the span of an hour or two at a .22 match. Check data first thing in the morning at 220, kestrel predicts 8.0, make good hits. Shoot that stage later in the day and the kestrel says 8.5. Dial it up and make good hits.

Also, be wary of wind direction. Crosswind jump can really fool you. Test for yourself in your app. Calculate a solution for 10mph wind going left to right wind and compare it to the same but with the wind from right to left. On a .22 at 300, it's nearly 0.4mrad difference in elevation. So, 4". I can sometimes be a big deal.