Grist can do any kind of calculations. It sounds like the main challenge would be to figure out all the parameters, like costs, fees, taxes, etc., to decide which tables they go to, and then you can create cells to do the calculations.
Here is an example: https://docs.getgrist.com/doc/new~jVCxX33Kc9sqzQZNK8HSXr/p/3#a1.s4.r1.c13. Select the project of interest using the arrows above the top widget, and you’ll see the associated costs in the linked table, and the calculations in the card. Hit “Enter” in any calculation cell to see how it’s actually computed.
One practical suggestion I’ll share is this. In examples like this one, many calculations are all happening within a single record (e.g. the record representing one project). A Card view may be a convenient representation of these fields – you can choose which fields to show, how to lay them out, etc. But when creating the calculations, I prefer to work in a Table view when all these calculation cells are in a single row. It’s not as convenient a view, but it’s much easier to add or rename columns, which matters when you are first creating a set of calculations.
Hope this helps!