Determination of volumes throughout your process is one of the primary reasons for using brewing software such as BeerSmith.
On it's own, it is not that difficult to calculate once you know the losses in your system. There are a few primary points in making wort where losses occur: dead space and piping losses in the mash tun, losses due to water absorption of the grain. volume loss due to boil off, and loss after boil to trub, sampling, and/or piping loss.
So, following the logic in BeerSmith, the user specifies the desired volume into the fermenter (batch size). In the equipment profile post boil/pre-fermenter losses are specified, again by the user. The program adds the batch size and post boil losses (trub loss) to get the post boil volume. It then takes the boil off volume and adds t hff at to the post boil volume to get the pre boil volume.
The program will then calcul as the back to the beginning amount of water needed to achieve the pre-boil volume automatically. Note: I have left out the adjustment for thermal volume expansion, but the software calculates this into the various hot volume figures for you.
Since it does this for us, once you have measured and adjusted your equipment profile to match your process volumes, it should be pretty close almost every time, with in the user ability to measure (measurement noise).
When you set up your equipment profile, you specify a base grain weight for the program to configure a basic balance. The volume related to the grain bill will be adjusted for each recipe as the equipment profile is applied. I recommend using an average grain bill to set your profile up. Once done, you can pretty much forget about it unless you make a significant change to your efficiency.