Skip to main content

Premium books tier

Close + Attest

Lawenots Close Graph coupled to settlement anchors and portal daily attestation — marketed as attestation, not custody.

$399 / yr

Product spine

Close Graph

A period-close graph where every close input becomes a node. Each node has a clear status, an evidence trail, and a readiness score.

Lawenots treats close inputs as graph nodes, not separate records scattered across different tools. This covers transactions, reconciliation items, AR and AP expectations, compensation expectations, and settlement anchors. Each one is checked against the same ledger before a period can close.

Node lifecycle

Open
Matched
Settled
Attested
Carried forward

Transaction

Plaid row, CSV import, exchange/on-chain activity

Must be categorized and either matched, settled, attested, or carried forward.

Reconciliation item

Bank reconciliation difference, duplicate suspect, feed gap

Open reconciliation nodes block close until cleared or explicitly carried forward.

Invoice / AR expectation

Stripe MRR, Coinbase Commerce, invoice draft, pipeline revenue expectation

Expected-vs-received revenue reconciles into the same canonical ledger; missing receipts remain close blockers.

Bill / AP expectation

Vendor bill, expected processor payout, unpaid obligation

Unpaid or unresolved payables remain blockers unless carried forward with evidence.

Compensation expectation

Gusto/Deel/ADP/PEO register import, contractor accrual, recurring compensation journal

Expected compensation must reconcile to posted GL and provider-register evidence; Lawenots does not run payroll tax or disbursement.

Settlement anchor

Plaid ACH, Stripe payout, on-chain USDC tx hash, Close + Attest anchor

Should-settle vs did-settle evidence anchors must reference GL rows and hashes before attestation.

Readiness formula

readiness = round((sum(weight for passed nodes) / sum(all node weights)) * 100)

Open nodes block close. Matched, settled, attested, or explicitly carried-forward nodes pass according to their type and close policy.

Carry-forward with content-hashed note

Carry-forward is a first-class graph transition, not a loose comment. The operator states why an open item belongs in the next period; Lawenots hashes the note and includes it in the period evidence package.

Evidence package

  • Serialized period subgraph (nodes, states, edges, weights, close policy version)
  • Locked trial balance and statement exports
  • Lawenots Verify findings and remediation/carry-forward notes
  • Canonical matched/unmatched ledger used by AR, AP, comp, and settlement references
  • Export receipts with SHA-256 content hashes and source revision
  • Close timeline: hash-chained activity log of node mutations
  • Close + Attest metadata when enabled (Merkle root, Ed25519 signature, public key id)

Hash-chained close timeline

Every graph mutation records previousEventHash + eventBodyHash + actor + timestamp. The resulting eventHash turns the close timeline into evidence: reviewers can detect missing or reordered mutations.

{
  "eventId": "evt_close_01HW...",
  "nodeId": "node_txn_9421",
  "transition": "matched -> settled",
  "actor": "user_123",
  "previousEventHash": "b83f...19aa",
  "eventBodyHash": "ad91...0e7c",
  "eventHash": "1c4d...91bf"
}
[
  {
    "id": "node_txn_9421",
    "type": "transaction",
    "state": "settled",
    "label": "Stripe payout matched to bank deposit",
    "weight": 12
  },
  {
    "id": "node_recon_117",
    "type": "reconciliation_item",
    "state": "matched",
    "label": "Duplicate suspect resolved",
    "weight": 10
  },
  {
    "id": "node_ar_2026_05_mrr",
    "type": "ar_expectation",
    "state": "open",
    "label": "Expected MRR not received by cutoff",
    "weight": 15
  },
  {
    "id": "node_ap_vendor_17",
    "type": "ap_expectation",
    "state": "carried_forward",
    "label": "Vendor bill carried to next period with hashed note",
    "weight": 8
  },
  {
    "id": "node_anchor_331",
    "type": "settlement_anchor",
    "state": "attested",
    "label": "Settlement anchor included in evidence package",
    "weight": 10
  }
]
{
  "period": "2026-05",
  "closePolicyVersion": "close-graph-v1",
  "readinessFormula": "readiness = round((sum(weight for passed nodes) / sum(all node weights)) * 100)",
  "canonicalLedger": "single matched/unmatched ledger for transactions, AR, AP, comp, settlement",
  "nodeCounts": {
    "open": 1,
    "matched": 1,
    "settled": 1,
    "attested": 1,
    "carried_forward": 1
  },
  "evidencePackage": "locked trial balance + issue list + graph JSON + export receipts + timeline hashes + attestation metadata"
}

Publishable methodology: Close Graph formula and evidence model →

Close feeds

Revenue, settlement, and compensation reconciliation feed one close engine

Lawenots does not become an invoice generator, bill-pay rail, or payroll tax engine. It imports what should have happened, reconciles it against what did happen, and contributes typed expectation nodes into the same Close Graph and canonical matched/unmatched ledger.

Expectation objects

Each module creates typed expectation nodes that enter the same readiness formula, issue taxonomy, evidence package, and carry-forward rules. One engine, three feeds.

Revenue reconciliation

nodeType: ar_expectation

Expected: Stripe MRR, Coinbase Commerce receipts, invoice drafts, pipeline expectations

Observed: Imported cash receipts, processor exports, or on-chain evidence

Blocker: Expected but not received by close

Integrations, not an invoice generator

Settlement reconciliation

nodeType: settlement_anchor

Expected: Plaid ACH, Stripe payouts, and on-chain USDC that should settle

Observed: Imported payout events, bank confirmations, and tx-hash evidence

Blocker: Should-settle vs did-settle mismatch

Evidence and anchoring, not a bill-pay UI

Compensation reconciliation

nodeType: comp_expectation

Expected: Comp run-rate, payroll calendar, and provider register imports (Gusto, Deel, ADP, PEO)

Observed: Posted GL, provider register rows, and optional crypto-leg evidence

Blocker: Register / GL discrepancy by close

Reconciliation only, not payroll tax or disbursement

Crypto-leg evidence reuse

Crypto legs carry tx hash + FMV as evidence, reuse the lot and 8949 machinery, and can emit an outflow event into allocation drift when that module is provisioned.

{
  "id": "exp_settlement_usdc_2026_05_01",
  "module": "settlement",
  "provider": "Ethereum",
  "closeGraphNodeType": "settlement_anchor",
  "expectedAmount": 1200,
  "currency": "USD",
  "expectedAt": "2026-05-28T17:00:00Z",
  "evidence": {
    "txHash": "0x7e3a...91bc",
    "fmvUsd": 1200,
    "ledgerReference": "gl_44291"
  }
}

#2 product surface

Lawenots Verify

Lawenots can review any books — and close them

Import QuickBooks, Xero, or CSV. Lawenots Verify surfaces close blockers, scores readiness, and returns a hashed readiness report that looks like a real close package. Works even if the client never migrates.

  • Standalone Close Readiness Check

    Import QB / Xero / CSV → Lawenots Verify flags uncategorized rows, duplicates, feed gaps, open recon, lot mismatch, and ledger imbalance → readiness score + fix list.

  • Firm / CPA mode

    A reviewer runs the check across client books they don't own. One CPA, many accounts — the multi-client distribution node.

  • Mini evidence artifact

    Every check produces a content-hashed readiness report with the same receipt look as a full close package — natural upsell to attested close.

  • Built-in migration path

    Every blocker fixed in the check is one step toward running the whole close on Lawenots. Import first; Close Graph when ready.

Import is the top of the funnel. Close Graph is the destination.

Free first attested close

Your first attested close is free — for any organization

Bring your books native or import from QuickBooks. We deliver one real evidence package for your first period — a locked trial balance, issue list, matched/unmatched ledger, export receipts, and attestation metadata — with a live verify link anyone can check.

  • Any org, any source

    Start in Lawenots books or import QB-sourced data. The first period's attested close package costs nothing.

  • One real evidence package

    Not a demo. A serialized period subgraph with a Merkle-root attestation and a public verify link you can hand to a CPA.

  • The CPA becomes the salesperson

    A signed, independently verifiable close package beats a spreadsheet. Your CPA sees it once and wants it every period.

Free covers period one. Close + Attest ($399/yr) covers ongoing anchoring, batch closes, and firm workflows.

Visual proof of correctness

Close → attestation → export receipt

The brand is auditable artifacts, not neon dashboards. Step through what Close + Attest produces — then verify offline with open verification tooling.

Every close input becomes a graph node with a reproducible state: open, matched, settled, attested, or carried forward.

Tax-ready methodology → · Guided sandbox →

{
  "period": "2026-05",
  "closePolicyVersion": "close-graph-v1",
  "canonicalLedger": "matched/unmatched source of truth",
  "nodeStates": {
    "open": 1,
    "matched": 14,
    "settled": 9,
    "attested": 4,
    "carried_forward": 1
  }
}

Provable close

What Close + Attest gives you that a PDF export cannot

When you lock a period on the Close + Attest tier, Lawenots couples the Close Graph to a daily Merkle-root attestation from the licensed settlement pipeline. You get evidence an auditor or CPA can verify independently — not just a spreadsheet snapshot.

  1. 1 · Close Graph in Lawenots

    Complete checklist-driven close against graph nodes, lock the period, and post settlement anchors to your GL. Hash-chained activity log captures every mutation.

  2. 2 · Cryptographic proof chain

    Each day the pipeline publishes a Merkle root and Ed25519 signature over a content hash. Lawenots stores anchor rows and can verify the signature offline with a public key — no portal private secrets required.

  3. 3 · CPA / auditor handoff

    Export the serialized period subgraph plus attestation metadata. Operators, firms, and auditors verify evidence packages with MIT open tooling — no Lawenots account required. Attestation, not custody — Lawenots never holds funds.

Example attestation record (illustrative)

period: 2026-05
pipelineMerkleRoot: 8f3a…c21e
contentHash: ed25519-signed bundle
settlementAnchor: contract-abc · pipelineRootHash 4d9e…
export: activity log + locked trial balance + anchor GL entries

Open verification

Independently verify Close + Attest evidence

Lawenots publishes verification tooling for Close + Attest so operators, firms, and auditors can independently validate evidence packages without a Lawenots account.

These are verification and contract artifacts — not the full product. Reconciliation matching, allocation drift logic, and Labs Flywheel covenant implementations remain proprietary.

What's included

  • Close Graph nodes for transactions, recon items, AR/AP expectations, compensation expectations, and settlement anchors
  • Deterministic readiness formula from node weights and states
  • Canonical matched/unmatched ledger shared by AR, AP, comp, and settlement references
  • Settlement anchor rows posted to books GL automatically
  • Carry-forward transition with content-hashed reviewer note
  • Hash-chained close timeline / activity log for SOC 2 evidence packaging
  • Portal DailyAttestation Merkle-root evidence chain

Stripe not configured in this environment — set STRIPE_SECRET_KEY to enable checkout.

Checkout unavailableCompare books tiers

Settlement exceptions surface to the principal operator directly — not a Lawenots UI surface. Lawenots anchors funded and released receipts; human override is handled out-of-band by the operator.

Close + Attest — Lawenots