Calculation type

ThresholdAdjustment

Reduces each individual charge line's allowed amount down to the amount found in a configured fee schedule, only when the schedule amount is lower than the currently calculated allowed amount for that line; unconditionally destroys (zeroes) the account-level detail's amount via SetBase first.

0
uses
0
customers
Adjustment
category
Charge
applies at

Unused

This type appears in no customer's configuration in the snapshot.

What it computes

records = GetFeeScheduleRecords(context, calc.ScheduleType); context.Details[0].SetBase(0.0M, calc) [runs unconditionally, before the loop, regardless of whether any charge is later adjusted]; for i=1..NumCharges-1: if !IgnoreCharge(calc,charge,context) && records[i] != null && records[i].Amount < detail.Amount: detail.Adjust(records[i].Amount, calc).

Parameters

KeyMeaning
ScheduleTypeKey of the fee schedule (ScheduleTypeReferenceField, inherited from ScheduleTypeCalculation) read via GetFeeScheduleRecords to supply the per-charge ceiling amount used as the threshold.

Gotchas

Despite being categorized Adjustment (implements IAdjustment), the account-level detail is mutated with SetBase, not Adjust -- SetBase replaces BaseCalculation and Amount wholesale (no delta recorded in Adjustments, and it stomps whatever the base calculation or prior adjustments had set for Details[0]) whereas every charge-level change in the same method correctly uses Adjust. This SetBase(0.0M) call is unconditional -- it runs even if no charge ends up adjusted, so any ThresholdAdjustment configured in a FeeLogic always zeroes the account-level amount as a side effect. records[i] can be null (charge code has no schedule entry) and that charge is silently left unadjusted, no error.

In the source

class · /home/cary/src/mdc/MdClarity/MDClarity/MDClarityCore/Backend/CustomerDataModel.cs:907
dispatch · /home/cary/src/mdc/MdClarity/MDClarity/MDClarityCore/Backend/CalculationEngine.cs:750

CONFIRMED