This is something I wrote up a while ago. Maybe this is your problem.
***
One problem I’ve consistently had over and over again with all-grain brewing is being low on OG. I’d check my pre-boil gravity and I’d calculate out where I’m going to end up, OG-wise, and I’d make my adjustments, but when I did my OG check I was always lower than what I was expecting, and the math just wasn’t adding up. I knew something was amiss, but I couldn’t figure it out until recently.
The short version:
I was doing the math based on my pre-boil SG and trying to extrapolate that to my “into the fermentor” OG, but I wasn’t taking into account the GU’s lost from the boil kettle (BK) deadspace/hoses/chiller, so those missing GU’s always threw my numbers off. To get a more accurate prediction of post-boil OG, then you either have to calculate the GU’s that you’re going to lose to BK deadspace/hoses/chiller or you’ll have to calculate OG for the post-boil volume before you transfer out of the BK.
The long version:
A primer for all-grain newbies:
Calculating estimated original gravity (OG) is one of the biggest differences between extract brewing and all-grain brewing.
With extract brewing, as long as your volumes are correct you’re pretty much guaranteed to be at your OG, unless you didn’t use all of your malt extracts that you were supposed to.
With all-grain brewing, you need to check (or just verify) how much sugar you extracted from the mashing process so you can do something about it before or during the boil if you’re not where you’re supposed to be.
After you finish the mashing step, you need to know two things: your current volume and your current specific gravity (SG). From those two pieces of information, you can calculate your gravity units (GU’s). Knowing how many GU’s you have in the wort, you can then calculate what your final OG should be.
Let's say you just finished your mash and you have 7 gallons of 155° wort pre-boil at an SG of 1.045. Water expands about 2% from room temperature to 155°, so you actually have about 6.85 gallons of wort.
So you take your volume and multiply that against the SG (after dropping the “1.” off of the reading). 1.045 would become 045, or just “45.”
6.85*45 = 308 GU's.
Okay, so you have 308 gravity units. Your wort is always going to have those gravity units unless you remove some of the wort, but you wouldn’t do that. You WILL be removing some of the WATER from the wort, which is only going to concentrate the sugars more. As the sugars get more concentrated, the specific gravity rises at the same rate.
To find out what your OG will be after the boil, you divide the GU’s by the volume of the wort you’re expecting at the end of the boil.
So you do your calculations and say, "well, if I have 308 GU's and I want 5.5 gallons of finished wort...lessee here...308 divided by 5.5 equals 56 which translates into 1.056, and HEY, that's my target OG for this recipe, so I'm golden!"
Then you do a boil for an hour and you evaporate 1 gallon of water and you stop the boil with exactly 6 gallons at boiling temps.
You're going to lose about 4% of the volume when the wort cools, so you have about 5.75 gallons of cooled wort. And let's say you have a very efficient system and lose only .25 gallons of wort to BK deadspace/hoses/chiller, so when all's said and done you have 5.5 gallons of wort in your fermenter just like you wanted. Life is good.
So you go and take an OG of the wort in your carboy and...1.053?! WHAT THE HECK?! WHERE DID THAT THREE POINTS GO?!
But think about that quarter gallon you left behind and the GU's it contained.
308*5.75 (which is the post-boil volume BEFORE transferring to your fermentor) = 1.053, not 1.056 like you were expecting.
So how do you compensate for this problem? By figuring out how many GU's you're going to lose from your BK deadspace/hoses/chiller and adjust accordingly.
On my system, I lose about .75 gallons of wort to BK deadspace/hoses/chiller. I have a 25 gallon pot, so yeah, the deadspace is just going to be bigger.
Anyway...so let's say I have a pre-boil SG of 1.045 at 14.5 gallons (measured), and I know that I'm going to lose .75 gallons of my volume down the drain.
.75 * 45 = 34 GU's that are going to be lost to my system, so I need to deduct that from my GU count.
14.5 measured gallons minus 2% volume for (155°) shrinkage is about 14.2 actual gallons.
14.2 * 45 = 639 GU's.
Minus my 34 GU losses to my system, and I'm looking at 605 GU's that will be going into my carboys.
I'd like 11 gallons of finished wort, so...
605 / 11 = 1.055.
Is that what my recipe is calling for? If it's high, then I add more water or don't boil as long or I just deal with the fact that my mash tun is trying to get me drunk. If it's low, then I boil longer or add some malt extract to up the GU's or just deal with a lower OG. If it's spot on then I celebrate.
Like I said before, the alternate option is to calculate the OG post-boil, but before transferring. Since I know I lose .75 gallons in my transfer, I could take my GU’s (639) and divide that by the sum of the volume I want (11 gallons) plus my transfer loss (.75). 639 divided by 11.75 equals 54.38, which would translate into 1.054. Since we’re rounding numbers in this process, it’s not going to be exact, but close enough for our purposes.