The impact screen

TL;DR

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

ColumnHolds
TransactionThe transaction the impact was booked against, and its type
Sales orderThe order it rolls up to
ImpactThe amount
Calculation ruleThe rule that produced it
AccountThe account it booked to
Transaction dateThe date it counts on
Accounting periodThe 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.

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.

About this document