Skip to content
← All of the product

09 · Resolution and money

Close the matter without the ledger going soft.

Demands, offers, the closing statement and the trust ledger stay on one record, and money moves through a dual-control path with the arithmetic done in the database.

TRUST LEDGERTHREE-WAY
Does it tie?
BOOK BALANCEMatchedgrounded
CLIENT LEDGERSMatchedgrounded
BANK STATEMENTNot suppliedblocked
DISBURSEMENTHeld: closing statement unsignedblocked

No bank statement is a refusal, never a zero that reads as reconciled.

The question in the room

Does the trust math tie, and what happens when it does not?

How it works

The mechanism, not the promise.

  • Atomicity bought back on purpose

    This backend reaches the database through a layer with no transactions. Rather than fake it in application code, two database functions exist solely to buy real transactions for money, with a genuine row lock and a real overdraw raise that surfaces as a conflict carrying the function's own message.

  • Two people, never one

    An approved closing statement becomes money only through the existing dual-control proposal flow. Every line lands pending, and a second licensed attorney, never the requester, releases it.

  • A negotiation ledger priced at the time

    Demands, offers and counters are appended, each priced against the valuation band as it stood at that moment. A correction is a new row pointing at the one it supersedes.

  • Overdraw guards per matter and per client

    Shipped

    Segregation is enforced at matter level, not only at client level.

    backend/src/lib/settlement/trustBridge.ts

  • Three-way reconciliation in the database

    Shipped

    Reported as the pair of matched and discrepancy, so no bank statement is a refusal rather than a zero that reads as reconciled.

    backend/src/lib/compliance/trustReconciliation.ts

  • Closing statements frozen at signature

    Shipped

    Once signed, the statement is the record and cannot be edited underneath it.

    backend/src/routes/settlement.ts

  • An attested invoice

    Shipped

    An invoice a client can check against the record behind it.

    backend/src/lib/billing/attestedInvoice.ts

  • Native signature with a sealed evidence record

    Shipped

    One signing surface, ordered signers, sealed when the last one signs.

    backend/src/lib/esign/native.ts

Refusals

What it will not do, and why.

Disburse contingency funds without the signed closing statement.
Florida Bar Rule 4-1.5(f)(5), answered as a conflict. Completion means a completed signature event: a captured mark, a sent row, or an envelope waiting on another signer is not completion and does not release the gate.
Price the work when it cannot read its own terms.
A timed-out read that collapsed into no data once billed real work as free. A pricing engine that cannot read its terms must refuse rather than price at nothing.
Fall back to application code when the database function is absent.
It fails closed with a service error. The instinct to retry the posting in JavaScript is the original bug.
Let a paralegal re-key payees into the trust module.
Reading an approved statement on one screen and typing it into another is how a transposed digit becomes a client's money in the wrong place, in a ledger that makes it permanent.

One record

Nothing here stands on its own.

What feeds it

  • Valuation and the settlement posture
  • Time, expenses and liens
  • The signed closing statement

What it feeds

  • The trust ledger
  • The client portal
  • The audit chain

Limits

What this does not establish.

  • Trust records are immutable and retained. There are no hard deletes and no editing a posted entry.
  • A net recovery can be negative, and the statement shows it rather than flooring it at zero.

Check the work before you believe it.

Run a sample manifest in your own browser, or read where publication refuses for want of evidence.