Guardrails & approvals
Express bounded discretion as typed policy, compare a proposal to current facts, freeze the result for review, and keep hard stops separate from approvable exceptions.
A guardrail answers whether an otherwise permitted actor can perform a specific action without additional approval. It never substitutes for permission, consent, compliance, fresh facts, or action eligibility.
Decision layers
authenticated actor and permission
∩ action capability
∩ fresh subject facts
∩ compliance eligibility
∩ guardrail bounds
∩ approval / separation of duties
= executable action
Passing one layer does not bypass another.
Harbor promise example
Suppose the lender configures this illustrative early-collections policy:
| Bound | Example policy | Purpose |
|---|---|---|
| Latest commitment | 45 days from agreement | Limits unsupported long-horizon promises. |
| Minimum total | 40% of current amount past due | Prevents immaterial arrangements from suppressing work. |
| Maximum installments | 3 | Keeps follow-up and evaluation clear. |
| First installment | Within 10 days | Requires near-term customer action. |
| Out-of-bounds path | Supervisor review | Preserves discretion with evidence. |
Maya’s $260.00 on May 8 plus $257.14 on May 22 covers 100% of Harbor’s $517.14 amount past due in two installments, with the first in seven days. It is within this example policy.
proposal → permission → current amount past due → bound evaluation
→ within_policy | approval_required | blocked | missing_facts
Creating the promise does not move money. Its outcome later derives from posted payment facts.
Freeze before approval
An approval-bound request preserves normalized payload, financial/schedule preview, request hash, facts and versions, policy/guardrail result, evidence, creator, and expiry. The approver accepts that exact request. Any material edit creates a new hash and requires a new decision.
Maker-checker
The creator cannot approve their own request where separation applies. Eligibility also depends on role, amount/action threshold, legal entity, case type, and current delegation. Approver comments supplement a structured reason code; prose alone is not the decision.
Hard stops versus exceptions
| Result | Can ordinary approval change it? |
|---|---|
| Within guardrail | No approval required unless another policy requires it. |
| Outside guardrail | Yes, through the declared approval path. |
| Missing facts | No; obtain or resolve facts first. |
| Non-overridable block | No ordinary servicing override. |
| Exceptional policy route | Only if the rule explicitly defines scope, authority, and evidence. |
Labeling a block “warning” in a UI does not make it approvable.
Beyond promises
Guardrails can bound refunds, fee adjustments, contact intensity, hardship offers, AI actions, and data exports. Contract changes and money movement still travel through the action request gateway or owning Lending Core endpoint, even when a guardrail allows straight-through execution.