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;
[x] 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)