Standup 9 Oct · Dynamic fee proposal · 10 Oct 2026

Dynamic fee calculation

Proposed approach: configurable rules (campus profile + C1–C10) instead of copying CMS hard-coded SP logic. Canonical Markdown: dynamic-fee-calculation.md. Seeds: campus-finance-profiles.yaml. Faid checklist: campus-finance-profile.html.

1. Why dynamic

CMS procedures hard-code currency stamps (M/R/MYR), semester vs modular branches, and some repeat amounts. Raisd should evaluate a campus finance profile so Finance can change applies / amount / currency without an engineering release for every campus tweak.

2. Architecture (sketch)

flowchart TD
  P[campus_finance_profiles.yaml] --> E[Fee engine Portal API]
  E --> A[Applicant fee step Plane A]
  E --> S[Student projection Plane C]
  E --> W[CAP-53 W1 proof Plane B]
  W --> CMS[CMS SPs Live SoR]
      

3. Evaluation order

StepCaseRule
1C1Zero when not chargeable
2C2Exempt before cutover term
3C3/C4Semester and/or modular mode
4C5Repeat/ADD add-ons (overrides listed, not baked in)
5C6Resource − exemptions
6C7Deferred component
7C8Totals from component lists
8C9/C10Invoices / PayStatus — later

4. Waiting on / next

  1. Dexter — validate C1–C10 vs SP bodies.
  2. Faid — Accept/Change/Defer on finance YAML.
  3. Participant — add/drop + module-registration fee amounts.
  4. Iman — fold Accepts into Demo seed; engine later.

SP evidence: fee-payment-sps.html · CAP-53 W1: cap53-online-enrolment.html.