I have used the math in Palmer’s How to Brew to build a spreadsheet and I have done that same math by hand many times to validate the spreadsheet.
I also own BeerSmith. Getting BeerSmith to make calculations that seem intuitively obvious once you know the math from Palmer is not easy. I recently changed to a new brewhouse. When I did so I updated my spreadsheet, used the Grainfather app, the Brewfather app, and BeerSmith for several batches. Don’t ask me why. I am a nerd and it was fun. Grainfather, Brewfather, and my spreadsheet were all lockstep on volumes of water (mash and sparge) needed based on my observed boil off and absorption rate for my brewhouse. BeerSmith never matched those three and never came close. I finally found an approximation by inputing incorrect absorption numbers. It was very frustrating because I had just paid for a one year license for BeerSmith.
BeerSmith does use PPG for each grain. So do Brewfather and Grainfather. I think that is one of Mark’s complaints. The user gets a false sense of accuracy when using a specific PPG for each grain when the math is really not that accurate.
My issue is volumes. I want a tool that is readable on my phone for 50 year old eyes (Brewfather is not) and predicts the right mash and sparge water values to get exactly 3 gallons wort after boil. I’ve got BeerSmith doing that now but I hold my nose because the absorption number I use seems way to low: 0.416 fl oz/oz. Also, don’t get me started on the unit: fl oz/oz. Why? The customary unit for absorption rate is qts/lb or gallons/lb. I almost have to break out my Chemistry I text book to convert those units!