I’ve found a tool which does basically what I’m asking for. It would be great for FT to replicate this and combine it with breakdown for single stocks, I think they could probably use this API to source the information.
Here’s an example using a few ETFs from my portfolio (with random weightings)
Edit: The underlying ETF data APIs seems to be relatively inexpensive and scalable (they are running k8s) - Freetrade may be able to pretty much use this as is.