I couldn't resist replying. You say to estimate attenuation based on published data of +/-5%, then say the result should be within +/-1%.
Intuition tells us that the answer is about 4%. To see this it may help to look at some numbers. Assume he mashed 15 lbs of grain and then added 2 lbs of lactose. If his overall mash efficiency was 65 - 75% he'd have 9.75 - 11.25 lbs extract from the grain plus the two pounds lactose would give 11.75 - 13.25 lbs total extract over 12 gallons beer means 0.979 - 1.105 pounds of extract per gallon which implies 11.24 - 12.62 °P as the observed OG of the wort. Note that this range includes his observed reading but that was taken with a refractometer and refractometers are quite unreliable in their mapping to OG. Yes, they often give a result which is pretty close but often don't. I've seen them off by at least 1 Bx and sometimes more.
Now we know the lactose doesn't ferment so we simply don't count it. The extract absent the lactose is from 0.812 - 0.938 pounds/gal corresponding to an OG range of 9.39 - 10.79 °P.
Now we look at yeast performance. The typical range of ADF for a yeast is 70 -80%. The minimum AE we would expect is 0.2*9.39 = 1.89 and the maximum .3*10.79 = 3.24 which means we'd expect a difference of at most 0.3*10.79 - 0.2*9.39 = 1.359 °P in the apparent attenuations. As the Balling factor is about 0.415 the range of estimated ABW's would be 0.415 times this or 0.564% which translates to an ABV span of 0.71%. This is less than 1 % ABV and that is what I meant when I said he ought to be able to estimate ABV to better than a percent. Assuming that he hits in the middle of the estimated efficiency and ADF he'd have close to 10°P fermentable wort and with 75% attenuation he'd have a drop of 7.5 °P which, with Balling factor 0.415 for 10°P would give him ABW 3.11% and ABV 3.93% (as I said at the outset intuition tells us the answer is about 4%).
The +/- attenuation is based on a specific set of conditions, which he doesn't have.
They can't be too specific or they wouldn't span 10% ADF.
He could also have a stuck fermentation, be using a lot of unfermentable specialty malts, mashed high, or other issue, which could drive any estimation of FG and ABV way off.
Sure, he could but he probably doesn't. If he isn't going to take proper measurements then the best he can hope for is an estimate.
The fact that he found the beer too dry suggests that he had a complete fermentation. With a stuck fermentation the beer would have been too sweet - not too dry.
His OG reading in Brix is pretty good,
No, it isn't as, in the first place, it was made with a refractometer and in the second place a hydrometer reading doesn't really give the OG as the OG really isn't actually defined. Is it as measured in the kettle, or in the fermenter (does it include starters?) and does it account for water lost by evaporation during fermentation, for example. Professionals actually determine OG by measuring ABV and back calculating the effective OG though they do, of course, measure SG of wort at various points throughout the process.
..and all he has to do is take an hydrometer reading to get a good assessment of where the beer is - no lab required!
He can, of course, do that but he won't get a good assessment - probably no better than the WAG estimate I gave above. FWIW I usually find about 0.3% difference between calculated and measured ABV using the Balling formula and very accurate gravity measurements. Most home brewers seem to be happy with ±1% knowledge though I think a lot of them fancy that they are getting more accurate results than that. Not likely with the formulas most of them use which don't take Balling factor into account.