I wanted to start a thread on this because there have been a few queries on how to do this. I am interested in frame design, geometry and fit and many that follow the sport know that stack and reach makes it easy to compare frames and also determine a suitable frame for a given rider once the rider knows his best fit. But calculating stack and reach is a bit tedious for many who aren't into math and not all geometry charts have these values. Another poster the other day wanted to know his BB drop for example which wasn't posted and yet stack was. BB drop is easy to calculate once you know the math for how to calculate Stack.
So I thought I would start with Stack first. Reach as it turns out is easy to calculate once stack is known and I will add that a bit later.
Because I ride a Specialized Roubaix which btw does publish Stack and Reach and BB drop, I thought I would use that as an example. Then all you have to do is substitute your frame dimensions in for the values I used. Please feel free to ask any questions if its been a while since you made these type of calculations...
A last note. The calculated value for stack varies slightly from Specialized posted value for Stack. Hard to reconcile this. I rechecked the math a couple of times and yet there is a slight disparity in calculated versus published value. I am quite certain the math is correct and so I have to believe the discrepancy is due to a slight measurement error or one of the published metrics maybe a bit off...like fork rake. I did measure Fork crown to axle center which wasn't published and this maybe the underlying reason.
Stack calculation below and hope it helps others: