Trex can close the books
because Trex is the books.

Many finance “copilots” are chatbots wrapped around an integration. Trex has the same database access, the same RBAC, and the same audit trail as your accountant.

trex.looppropose → gate → post → auditproposeagent draftspolicy checkrbac + railsapproval gatehuman · your clickpost → ledgerdouble-entryaudit logimmutable
0/318
bank lines matched
HDFC current a/c · last 7 days
0/42
uploaded bills drafted
all waiting for your approval
0
exceptions flagged
1 duplicate · 2 FX legs · 3 missing refs
₹0
possible duplicate held
same vendor, amount and date
five task classes

What Trex actually does.

INTENT_PARSE

Understand

Map your request to a ledger operation. “Show March recurring expenses by department” → SQL on your books, not vibes.
$ “Show March recurring expenses…”
↳
GUIDANCE

Recommend

Suggest entries, accruals, mappings. Always with reasoning. Always pending your nod.
proposal · pending your nod
Provision — rent · March
REPLY_SYNTHESIS

Answer

Format the answer as a card, a table, a chart — not just markdown. Approvals are click-through.
GENERAL_CHAT

Explain

Why is this account here? What does “accrual” mean? Pulls from your COA, your audit log, your context.
$ what does “accrual” mean?
↳ recognised when incurred, not when cash moves — pulled from your COA + audit log
BRIEFING

Summarise

Month-end narrative for the board deck. Generated from the actual close, not the calendar.
six example sessions · illustrative

Watch it work.

Scripted examples of the flow you’d see in the product. Names and numbers are illustrative.

close · march
ACTIVE
$Get March ready to soft-close.
T
Provisions drafted for rent, electricity, AMC — waiting for your approval. 7 unposted bills flagged. P&L, BS, CF refreshed.
$Show the unposted bills.
T
7 bills from Northwind Supplies, Kite Freight and 3 others · ₹4,82,000 total. Want me to draft entries for review?
$Yes.
T
Drafted. Approve them and March is ready to soft-close. Every step is on the audit trail. Variance commentary drafted if you want it.
recon · hdfc · last 7 days
ACTIVE
$Reconcile HDFC current account, last 7 days.
T
Suggested matches for 312 of 318 lines. 6 exceptions queued: 1 possible duplicate payment, 2 FX legs, 3 missing references.
$What’s the duplicate?
T
PAY-3214 (Apr 18, ₹2.30L → ACME Logistics) and PAY-3290 (Apr 22, ₹2.30L → ACME Logistics). Same UTR fragment, same vendor account. Holding both. Reason to keep both?
$No. Reverse PAY-3290.
T
Reversal drafted — approve it and the AP balance corrects. Audit trail attached.
fpa · fy27 base case
ACTIVE
$Draft an FY27 expense forecast by department, base case.
T
Pulled 18 months of actuals. Personnel +9% (headcount plan), COGS +14% (commodity drift), G&A flat. Saved as FY27 Base.
$Show me the worst case.
T
Revenue -15%, headcount frozen. Runway extends 14w → 22w because hiring stops. Three teams breach 90% comp ratio — flagged for HR review.
bills · uploaded pdfs
ACTIVE
$Extract the 42 bills I just uploaded.
T
42 PDFs extracted. 38 mapped to existing vendors. 4 new vendors flagged. All 42 drafted for your review.
$Approve the 38 mapped ones.
T
Posted after your approval. The 4 new-vendor bills wait until you confirm those vendors.
gst · gstr-3b · march
ACTIVE
$Show me the GSTR-3B summary for March.
T
Computed from your books: output tax ₹4,12,800, input tax credit ₹2,96,400. 2 bills are missing HSN codes — flagged. Review it, then file on the GST portal.
$Fix the first one.
T
Proposed HSN 9983 for Vendor X’s bill. Approve it and the GSTR-3B report updates.
anomaly · payables
ACTIVE
$Anything weird in payables this month?
T
Two flags. (1) A Sky Couriers bill of ₹1.8L is far above their usual amount — an outlier. (2) Two Kite Freight bills with the same amount and date — a possible duplicate. Recommend a quick review.
$Show me the duplicate.
T
BILL-2207 and BILL-2219, both ₹46,000 dated Apr 18. Neither paid yet. Want me to draft a void for one of them?
multi-provider llm router

Model orchestration, automated.
Override per session.

json invalid → retryrequest5 task classesroutercost-awaremistral · smallintent_parse · general_chatanthropic · sonnetguidance · reply_synthesisanthropic · opusbriefing
line weight = call share · illustrative
  • ▸Cost-aware routing. Cheap models for INTENT_PARSE, stronger models for REPLY_SYNTHESIS. You don’t pay Claude Opus rates to summarise an invoice.
  • ▸Per-session override. Force a specific provider for sensitive sessions (e.g. financial close on Claude only).
  • ▸Fallback chain. If primary fails JSON validation, we try secondary providers. Your accountant doesn’t see the retry.
  • ▸Your data stays yours. Requests go to Anthropic and Mistral under their no-train terms. We route, we don’t train.
rails · enforced in the ledger

The most useful thing about an in-ledger agent is that we know exactly where it can act. Here’s the rule sheet — as the agent sees it.

rails.policyENFORCED

Post anything to your books without your approval. Every Trex action is a proposal. You approve it, or it doesn’t happen.

Touch a hard-closed period. Blocked. Period reopen requires admin and audit entry.

Create a vendor and pay them in one session. Vendor creation is a separate approval gate. By design.

Send anything outside your tenant. Tenant-isolated. Trex cannot read data outside your schema.

Change the COA structure. Restricted to admin roles. Trex can suggest, not commit.

Train on your data. Pass-through to LLM providers under their no-train terms. We do not fine-tune on customer data.

$ trex import --from tally_export.xml

Watch Trex on your own books.

Bring a Tally XML export. We’ll spin up a tenant, import the data, and walk Trex through your month.