I've recently made the move to a top tier system and have retired the trusty old turkey fryer with the objective of conducting some more tightly controlled brews over the next few years. I've done all grain for years so I usually get what I'm after in a brew but this time the OG was much lower than what it should have been and I'm not entirely sure why but I think it may have been that the grain wasn't milled properly (used someone different for it this time). It should have been 1.095 but was 1.060. Given the lack of any clogging whatever on the mesh screen in the tun, I believe that the grain was under milled and could be the cause of the undershoot and I'd like to get the community's opinion. Grain Bill attached in screenshot.
It's hard to be sure with the limited details given. But here's some possible causes.
Diastatic Power. Your only contributors are the 2-row, MO, Rye. Should have enough to get well over the min DP needed. But may have fallen short if the grain had ever reached denaturing temps. 149°F will denature beta-amylase. This can easily happen if shipped by rail in a cargo container.
Mash PH. 5.6 is optimal. Above or below will reduce enzyme effectiveness.
Mash Temp temps above 149°F will limit what enzymes can contribute. Also you need to adjust target DP if doing so. Grain DP ratings include both beta and alpha amylase at about a 50/50 allowance. So if your recipe targets a min DP of 35 but you mash for all alpha your DP is really only about 17.5.
Gain Mill. This is the most common cause of poor mash efficiency. There is no ideal size that works for everyone. Let's face it, flour grind is the most efficient. But our mashs would be a stuck mess. So we try to get as small as possible without clogging our system. On my system I was able to crush very fine and countered the stuck issues using 1lb of rice hulls. I found $1 of rice hulls equaled about $10 of grain if I were to crush bigger and add more grain.
How to avoid problems? Take readings and adjust. Keep a close eye on temp and PH. Most important do an iodine test for starches every 15-30 min. If you still have starches, just give it more time it will usually get there with time and stirring.