Every time you evaluate, set a timestamp in a table with just one record - table System, field LastTS.
Upon deciding whether to evaluate or not, do an ExecuteSQL with max(ModifyTimestamp) from the 9 records you are monitoring, compare that with the LastTS and decide based on this comparison.
every record keeps track of the number of times it has been modified. If you store the modification count you can compare it with get(recordModificationcount). If they are the same, do nothing, else update . If your data comes from several records you can total the modification counts, it comes to the same thing. If the current mod count is greater than your stored mod count, something has changed and you should update.
I can see that both suggestions may work. Thanks.
Moving from principle to detail: I have tables related in the order:
A < B < C < D &
If any of these values change, the evaluation calcs need updating. Taking the "get(recordModificationcount)" example, I have put an unstored field calculating this on all of A-D tables. The fields that need evaluating are related:
C2 < E.
The snag is that when I sum 'mod counts' changes to A, B, C fields are updated but for D only the first record. I assume I somehow need to sum all records from D related to C?