You are here:
Rebate and Accrual Management Advanced Workflow
Understand the end-to-end workflow, the Data Cloud integration, and the key decisions involved in each step.
Required Editions
| Available in: Enterprise, Unlimited, and Developer Editions that have Rebate and Accrual Management Advanced enabled. |
Prepare the Org
The Salesforce Admin enables Rebate and Accrual Management Advanced, and Data Cloud in Setup. The Admin then navigates to Data Kits to deploy the Accrual and Payout Engine. This deployment is critical as it creates the Data Lake Objects (DLOs) in Data Cloud required for high-volume processing. Finally, the Admin assigns the Advanced Rebate Admin and User permission sets. See Set Up Rebate and Accrual Management Advanced.
Understand Data Lake Objects (DLOs)
The Accrual and Payout Engine uses a set of Data Lake Objects (DLOs) in Data Cloud to stage, process, and transfer data between Salesforce Core and the calculation engine. Each DPE definition reads from and writes to specific DLOs during the accrual calculation sequence. See Data Lake Objects in Rebate and Accrual Management Advanced.
Configure Data Processing Engine (DPE) Templates
The advanced engine uses a coordinated sequence of DPE definitions.
| DPE | Description |
|---|---|
| Advanced Rebate and Accrual Pre-Processing - Rule Configuration | Maps your program rules, tiers, dates, and anchors into metadata that Data Cloud understands. |
| Advanced Rebate and Accrual Pre-Processing - Data Preparation | Ingests raw data from Transaction Journals and member records into the Data Lake Objects used by the engine. |
| Accrual and Payout Engine - Delta Calculation | Compares the current run with the previous run to identify which new or modified records are eligible for calculation. |
| Accrual and Payout Engine - Rule Processing | Executes the actual financial calculations to generate accruals for the qualified transactions. |
| Advanced Rebate and Accrual Post-Processing - Source Generation | Aggregates the calculated results and writes them back from Data Cloud to Salesforce Core, updating the Program Rebate Type Accrual Source, Program Rebate Type Accrual, and Rebate Program Member Accrual objects. |
| Advanced Rebate and Accrual Post-Processing - Status Update | Closes accrual periods once the period end date has passed and updates record status and the last calculation date. |
Create Advanced Rebate Programs
Program managers design the rebate program and set the Execution Type to Advanced. They enroll partner accounts as members and define the independent accrual details. See Create an Advanced Rebate Program
Get Transaction Data for Accrual Processing
To run the Accrual and Payout engine, transaction data must be available either in the Transaction Journal object or directly in AccrualAndPayoutInputDayIngest_dll Data Lake Object in Data Cloud.
If your transaction data exists in Salesforce objects such as orders, convert it into the Transaction Journal format using one of the following methods:
- Create a custom Data Processing Engine (DPE) to map your source object fields to the Transaction Journal.
- Use standard integration techniques such as Bulk API or Data Loader to load data from external systems.
See Populate Transaction Data in Transaction Journals.
Once data is in the Transaction Journal, the pre-processing DPEs transform it into the input format required by the Accrual and Payout engine.
If your data is already structured in the required format, you can populate the DLOs in Data Cloud directly and run the engine without going through the Transaction Journal.
Monitor Calculation Processes and Data
Admins and program managers track the progress and accuracy of calculations at multiple levels:
- View Accrual Sources: Review the Rebate Program Member Accrual, Program Rebate Type Accrual, and Program Rebate Type Accrual Source objects to see aggregated liability data synced back from Data Cloud.
- If transactions are missing from your accruals, use the AccrualAndPayoutTierStage_dll as the primary diagnostic tool. Check these fields:
| Field | What to Look For |
|---|---|
| NewStartDate__c / NewEndDate__c | If null, the engine found no qualifying transactions for that member in the period for the given tier. |
| NewFromValue__c / NewToValue__c | Use these to verify if the cumulative quantity is actually crossing the expected tier boundary |
| RowStatus__c | Confirms whether the record was reprocessed or bypassed as Unmodified. A status of Unmodified is expected on re-runs where nothing changed — it's a problem only when you expect new or updated data. |
| CumulativeQualifierValue__c | Compare against NewFromValue__c / NewToValue__c to confirm whether the cumulative quantity is crossing the expected tier boundary. |
| NewInputStart__c / NewInputEnd__c | Use these to trace the first and last input transactions the engine counted in the tier. |
| NewInputStartOffset__c / NewInputEndOffset__c | Use these to confirm the engine isn't double-counting or skipping input across tier boundaries. The offset accounts for the input measure value already counted in the previous tier. |
See Data Lake Objects in Rebate and Accrual Management Advanced.
Approve Accruals
The Program Manager can review the detailed accrual data in Rebate Program Member Accrual, Program Rebate Type Accrual, and Program Rebate Type Accrual Source objects. To view the final accrued amount for a member, refer to the Final Accrued Amount field on the Rebate Program Member Accrual object. After internal approval, use integration mechanisms such as APIs or Data Loader to pull these amounts into your ERP system.
