Late-fee policy
Past-due assessment engine. Reads BillingPolicy.lateFeePolicyand emits DEBIT BillingAdjustments. Idempotent per (invoice, round) — re-runs don't duplicate fees.
Policy shape
Edit on the BillingPolicy row (JSON). Future iteration adds a form.
{
"gracePeriodDays": 7,
"firstFee": { "amount": 15.00, "capPct": 5 },
"subsequentFees": {
"intervalDays": 14,
"amount": 10.00,
"capPct": 10,
"maxAssessments": 3
}
}Run assessment
Operator-triggered. The dunning scheduler also calls this on its own cadence.