Mostly if you have all investments and fees within a platform that offers custom date reporting, you can get a lot, even all, of the ex-post figures from that. You should be making some effort to aggregate the data into your own report, as a summary for the client.
If you don't have a platform that can do it, and you're trying to do an annual summary of charges paid, here's broadly what I do:
Technically, this should be accompanied by a figure to show the effect of the charges on the investment performance. This is a more difficult calculation to do yourself, but you could look at the overall net return on the entire wrapper over the period and increase the charges by this return. You'll be overstating the effect if you do, but it's a lot better than nothing.
For ex-ante, again, if you are using a CIP with a platform, you can rely on the illustrations. I also have my own spreadsheet for calculating ex-post, or there is the FE Analytics ex-ante calculator, which is very good too.
I'm not aware of any free calculators.
This can be quite difficult if adjusting for fund flows as there are specific approaches to manage these as any 'money weighted' payments closer to the calculation period will have an impact on cost (see modified dietz).
For me if you need either a forward looking cost (ex ante) or (ex post) in the past, I would use the current product costs and fund KIID plus any adviser charges as these is likely to provide a good example of what costs are.
Where you might have an issue is if you have a large fund discount and large payments have been added, but I think the concept of parsimony (simplicity) should apply and work out current costs (as its unlikely) these really would vary much over time.