Last Change Source
Last change source is the field on each tracked loan that records which write path most recently changed the loan's tracked balance. It's how Policy Stack can give you a precise message — rather than a generic error — when a per-loan repayment is rejected.
Values
- manual_create — the loan was created through the Add Loan flow
- baseline — the loan was created automatically as a baseline from a snapshot's loan balance during policy setup
- repayment — the balance was last adjusted by a per-loan or policy-level repayment
- snapshot_reconciliation — a historical marker from the previous snapshot proportional-adjustment flow; current production snapshot saves do not stamp new tracked loans with this value
- admin_script — the balance was changed by a one-off internal correction script
- unknown — pre-existing loans created before this field was added
Why It Matters to You
When a per-loan repayment contains more principal than the current tracked balance, the error message branches on this field. If the last change was snapshot_reconciliation, the message identifies the older state and points to reviewing the payment type or editing Current Balance on the loan detail page. See I Tried to Log a Repayment and Got an Error.
Internal Detail
The field is stored on the policy_loans table. Each write path updates it as part of its own update. You don't interact with this field directly; it's surfaced through the messages the app shows you.
Related terms: Snapshot Reconciliation, Policy-Level Repayment, Loan Balance