Cluster: Lock policy as configurationOn the roadmap
Translating a wiki of tribal knowledge into versioned config.
What a lock pin captures, how the lifecycle progresses, where sell-side fits, and the operational rules that make lock-day predictable.
A rate lock is a contract: in exchange for a price the investor offers today, the borrower receives a guarantee that the rate will be available for a defined period (typically 15 to 60 days). The lender sits between them, accepting pipeline risk for the lock period.
The mechanics matter operationally: while the lock is in force, the lender can't reprice the loan to the borrower without explicit cause. If rates rise, the lock is valuable to the borrower; if rates fall, the lock is the constraint. The lender hedges either case.
A serious lock subsystem captures a complete pin at lock time:
With this pin, the engine can reproduce the lock-day price exactly, on demand, for the life of the lock and beyond. Without it, lock pricing drifts and disputes become forensic.
A lock progresses through a small state machine:
Every state transition writes a journal entry: who, when, prior state, new state, reason if applicable. The journal is hash-chained into the platform-wide audit log, so a regulator can verify the sequence has not been tampered with.
Most lock-desk policy lives in tribal knowledge or a stale wiki. A mature implementation makes it configuration:
With effective-dated policy inheritance, the desk-config layer carries the same versioning posture as ratesheets: change a fee curve today and it applies forward; historical locks remain priced against the curve effective when they wrote. Audit clarity follows.
Lock extensions are the most common operational interaction with the lock subsystem after creation. The pattern:
Concurrency safety: the lock row uses optimistic locking. Two operators attempting to extend simultaneously result in one success and one 409 Conflict on the second; the second operator retries with the new state visible.
Locks that pass their expiry without being extended must transition to EXPIRED. This is a scheduled job that runs on a short cadence (typically every minute). In a multi-replica deployment, you cannot naively run it on every replica — you'd expire each lock N times and emit N webhook deliveries.
The standard pattern uses distributed locking (ShedLock with a JDBC backend in the JVM ecosystem) so that exactly one replica wins the lock per cadence. The winner sweeps; everyone else observes the outcome via the audit log and event stream. This is one of those small details that separates production-grade from demo-grade.
For correspondents and mini-correspondents who hold loans on balance sheet before delivery, sell-side pricing is the desk's primary tool. Sell-side runs the same engine against the same loan facets but against the buy-side investor pack, returning the price that investor would pay for the closed loan.
A serious lock subsystem returns sell-side alongside the loan-level lock so the desk sees the bid-tape outcome next to the retail commitment. Sell-side completion writes its own audit row keyed by (lockId, sellSideId, executingInvestor) so reconciliation against actual investor settlements is a deterministic join, not fuzzy matching on timestamps.
Lock journals tend to be the single most-audited data set in a lender. Make the audit story trivial: every state transition writes a journal entry; every journal entry is hashed into the platform audit chain; every entry carries the actor and the correlationId; the verify endpoint walks the chain and reports the first break, if any.
Done well, a regulator's "reproduce this lock's history" ask becomes a single API call returning the ordered journal plus the chain hashes. Done poorly, it's a database forensics exercise you'd rather not run.
None of these are exotic. The discipline is collecting them consistently and reviewing them on a cadence — weekly for operations, monthly for the desk head.
Cluster
Deep dives that pick up where the pillar leaves off.
Lock management feature page01
Specifications and the API surface.
ReadGlossary: lock period02
Common lock periods and their pricing implications.
ReadGlossary: sell-side pricing03
What sell-side returns and how desks use it.
ReadGlossary: ShedLock04
Distributed locking for the expiry sweeper.
ReadCluster: Lock policy as configurationOn the roadmap
Translating a wiki of tribal knowledge into versioned config.
Cluster: The lock-day surprise — anatomy and preventionOn the roadmap
What goes wrong on lock day and the controls that prevent it.
Frequently asked
Yes. The lock pin captures the ratesheet version it was priced against. Rolling back a ratesheet does not affect existing locks; it affects forward pricing only. The historical replay endpoint can reproduce the locked price using the pinned version even after rollback.
Funding writes a journal entry and transitions the lock to FUNDED. Partial fundings model as separate funding events with cumulative amount tracked on the lock row; full implementation depends on whether your construction-loan or rehab use case matches the platform's data model. Talk to us for specifics.
Breakage is modeled as cancel-then-create-new. The cancel writes a journal entry with a reason code (rate change, borrower request, processing delay, etc.). The new lock is a fresh record. Both link via a manual breakage event with a shared correlationId for downstream reconciliation.
Yes. The execution mode is part of the lock pin. Sell-side pricing differs by mode (mandatory commitments typically price tighter than best-effort), and the cancel/extend policies can be configured per mode.
Indefinitely by default. Lock journals are the audit substrate for compliance — recommended posture is no expiration. Custom retention is configurable on Business and Enterprise tiers.
Other pillars
Loan-level pricing
How modern mortgage pricing engines turn ratesheets, eligibility predicates, and adjustment rules into an explainable price.
Ratesheet automation
Email-in, portal scrape, OCR, and learning header-mapping templates — what it takes to make ratesheet ingestion a non-event.
Compliance & audit
ECOA, HMDA, TRID, and the audit-chain disciplines that make compliance a query rather than a quarterly fire drill.
Secondary marketing
Bid-tape execution, hedging inputs, pull-through analysis, and the event-stream architecture that ties them together.
Ready to see it on your data?
Spin up a sandbox or talk to us about a guided demo. Everything in this guide is wired into the platform — not aspirational.