@mikeg the way I’ve done this in the past is by using looping. Generally speaking, it should be pretty straightforward to get a list of the record IDs that need updating. You may want to perform some operations based on a QTY per field in a different table, as well.
The way this has worked, historically, is to use the looping technique. Here is a video of how that works.
You might also find this material backflushing app from the library useful, as it is very similar to your use case: https://tulip.co/library/apps/material-backflush-system/
In that example I think we may be using the Table API to get the affected records, since it was created before linked records.
Finally, with the release of custom widgets you can actually just loop directly, which makes things much easier. That widget is not yet released to the public but if you’d like it I can put it on your instance.
Does this help?