Skip to content

Calculation

The engine applies one dated formula version to the day’s transactions and holdings. Upfront is computed once per allotted sale, retention is accrued every day, and every row records which formula produced it. Nothing an SA sees is a figure the engine cannot trace back to a file row and a rule.

Who may do it: the engine calculates daily · Commission Admin (starts re-runs, resolves exceptions) · System Admin (installs a formula version after approval) · Compliance Viewer (reads).

For each allotted subscription, switch-in and regular-savings purchase:

StepAmount
Fee baseThe fee on the transaction, before VAT
Distributor’s shareFee base × the AMC’s upfront sharing % for that fund and date
SA’s upfrontDistributor’s share × the SA’s split × the plan’s upfront rate
Team Lead overrideSA’s upfront × override %, paid on top

The SA who earns is the one whose IC licence is on the transaction, unless an assignment for that account says otherwise. Switch-ins use the switching fee where the institution treats them separately. Dividend reinvestment earns no upfront.

For each holding, every day:

StepAmount
Annual poolMarket value × management fee % a year × the AMC’s retention sharing %
Daily poolAnnual pool ÷ the day-count basis (365 unless the formula sets 360 or actual)
SA’s retentionDaily pool × split × the plan’s trailer rate

The period amount is the sum of the days. Daily accrual is the default because it follows a book that moves mid-month and matches how AMCs remit; a formula version may instead use month-end or average holdings.

When a redemption or switch-out is allotted within the plan’s clawback days of the subscription that earned upfront, the engine reverses the matching share of that upfront, units taken first in, first out. The reversal is an adjustment in the period it happens.

No upfront or retention accrues to an SA whose IC licence is missing or expired on the earning day. The amount goes to the exception queue — not to the SA and not to anyone else — until the Commission Admin resolves it.

Rows are accrued to six decimals and rounded once, half-up to the satang, on each SA’s statement for the period. Daily rows are never rounded, so the reconciliation shows a rounding difference apart from a formula difference.

The institution’s own allocation workbook becomes formula version 1: its tables load into the fee master and the plans, its formulas are expressed in the engine, and the workbook is stored with its hash. The version is accepted when, for the same period, the engine and the workbook agree to 0.00 for every SA. A later change is a new version with its own date and approver.

CodeMeaning
NO_AGENT_ASSIGNEDA transaction or holding with no SA on that day
NO_FEE_MASTERNo fee row for that fund and date
LICENCE_EXPIREDThe licence gate held the amount
NAV_MISSINGNo NAV for that fund and day
FEE_MISMATCHThe fee on the row differs from the fee master beyond tolerance

A period that is still open can be recalculated in full: its computed rows are rebuilt from the files and the current rules. A frozen period is never recalculated; a correction goes in as an adjustment in the next period.

  • Computed rows are immutable. A reversal is a negative row, never an edit.
  • A running calculation is never shown. Screens read the last completed run.
  • No hidden overrides. A cell the workbook sets by hand becomes a documented adjustment, not engine logic.