Life Cycle
This is a business cycle of RebateManager usage:
...
This is an example of a Rebate Agreement that is paid semi-annually:
...
Agreement
Before the year starts:
Agreement conditions are negotiated.
Agreement is approved.
During the validity of the agreement (i.e. usually a year):
User can open the read-only agreement to see an overview of the rebate estimations and accruals.
Rebate Record
During the validity of the RR:
Rebate Record is periodically recalculated to have the new rebate estimations & accruals. It uses the actual data of Transactions available to calculate the estimations & accruals. The results of those recalculations are usually presented to business users on dashboards.
RR can create and calculate also one or more PayoutRecords, if it needs to calculate the accruals on more fine-grained level.
After the validity:
Rebate money amount is reviewed and approved by a business user.
Once approved, the rebate amount is exported to an external system to be paid to the customer.
Entity Relationship
Below is a schema that shows a broad perspective of the domain types.
...