The impact screen
One row per impact a rule booked, with the rule and the account that produced it. It is where you go to find out why a margin figure is what it is.
Every margin figure in CCC is a sum of impacts, and this screen is those impacts, one row each. Where the margin screens show a result, this shows the parts it was made of and names the rule responsible for each.
What a row is
| Column | Holds |
|---|---|
| Transaction | The transaction the impact was booked against, and its type |
| Sales order | The order it rolls up to |
| Impact | The amount |
| Calculation rule | The rule that produced it |
| Account | The account it booked to |
| Transaction date | The date it counts on |
| Accounting period | The period that date falls in |
One transaction commonly carries several impacts, from several rules. That is normal, and it is why joining a transaction to this table and summing the transaction's own total multiplies it. See data model.
Filters
Date from, date to, a row limit, and two multi-selects: calculation rule and account. Both multi-selects start with everything selected, so the first load is unfiltered and narrowing is what you do next.
The date defaults come from pages.transactionsfrom and pages.transactionsto in config/settings.json, and the row limit from pages.rowlimit. The row limit is a performance setting, not a filter: it caps what the table renders, so a figure that looks missing may be past the cap rather than absent.
Reading a figure correctly
Impacts retain their calculated sign. A positive stored cost can be correct. Compare signed inputs and the display convention before diagnosing a rule error. See dates, currency and signs.
This is the realised impact only. The expected calculation keeps its figures in cm_expectedimpact_salesorders as one totals row per order and never writes individual impacts, so nothing expected appears here. See expected margin.
What it does not show
The rules themselves, which are on the calculation rules screen, and the aggregated per-order margin, which is cm_impact_salesorders and reaches the sales order screens.
Related
Evidence
Columns from templates/main/contributionmargin/impact.tpl. Filters, the all-selected default and the settings the defaults come from, from app/http/contributionmargin/impact.php and config/settings.json. Expected figures storing only a totals row from app/models/expectedimpact.php and app/jobs/calculate/expectedimpactsalesorders.php. Basis: code-checked against the current implementation.
- Type
page - Status
active - Updated
2026-09-14 - Created
2026-09-13 - Covers
contributionmargin/impact