This differential maintains a changelog entry for every modification to an entitlement, as it happens.
After a period of time (most notably, 13 days, 14 days, 15 days, 1 month, 2 months, etc.), the expected charges can be calculated from that changelog.
There's a number of TODOs left;
- Pro rata temporis calculation
- Actual charging of the wallet.
- Prediction of the next charge (when, what and how much)
Collate the 'creating' and 'charging' queries to ->sum() the values of the columns.
- Evaluate the number of duplicate 'cost' columns
- subscription period for the sku (i.e. domain registered with us -> yearly)