The books

A ledger first. The reports only read it.

Everything Trellis reports comes from one double-entry journal. Invoices and the payments against them post to it for you, you can post to it by hand, and the reports read it back. Every image is a real capture of Trellis running on the fictional StrataForge Robotics books.

Illustration: a brass balance scale resting perfectly level on an oak counter, each pan holding smooth stones, shelves of bound ledgers behind.

The chart of accounts

Every posting needs two accounts, so the chart comes first.

  • Six account types: asset, liability, equity, income, expense, and cost of goods sold.
  • An account can sit under a parent account, so a chart can have groups and sub-accounts.
  • You create, rename, and delete accounts yourself, so the chart fits your business.
  • Posting an invoice needs an Accounts Receivable account and an income account. Without them the invoice still sends, and nothing is posted until they exist.

Journal entries

A journal entry is a set of debit and credit lines. Trellis rejects an entry whose debits do not equal its credits, and rejects one that is zero. An entry is a draft, posted, or voided.

Voiding an entry does not erase it. The entry is marked voided and keeps every line, and the reports stop counting it, so the ledger keeps the history and the books come back to where they were.

Voiding an entry is a call to the API or an agent tool. An entry Trellis posted for an invoice is voided by voiding the invoice. The web app lists entries and creates them.

What posts on its own

These events write to the journal without you. You can also post an entry by hand.

What posts on its own
Invoice sentDebit Accounts Receivable for the total; credit the income accounts named on the invoice's lines, and the first income account on the chart for whatever is left. A second send changes nothing.
Payment applied to an invoiceDebit the deposit account you name, or else the first asset account marked cash; credit Accounts Receivable.
Invoice voidedThe invoice's entry is voided, which takes it out of the books. An invoice with payments applied cannot be voided.

The balance sheet and profit and loss read these entries and the ones you post by hand. Bills and expenses are recorded and appear in the A/P aging and the tax summary.

Reading it back

Five reports are in the web app. Each one reads posted journal entries, except the two aging reports, which read open invoices and bills.

Reading it back
Balance sheetAssets, liabilities, and equity as of a date, from posted entries. Equity includes a computed current period earnings row, so the sheet balances.
Profit and lossIncome and expense accounts for a period, with the net result.
A/R agingUnpaid invoices grouped by how overdue they are. Invoices past their due date are marked overdue as you list them.
A/P agingUnpaid bills grouped the same way.
Tax summaryThe tax on invoices and on bills for a period.
Cash flowAvailable through the API and agent tools.

Whole cents, many organizations

Every amount Trellis stores or returns is a whole number of cents, never a floating-point number, so totals cannot drift.

The web app takes dollars in its forms and converts to cents in one module. Before 10/29/2026 it displayed raw cents as dollars and posted dollars into cent fields; that was fixed that day, and every image on this site was captured after the fix.

Every table carries an organization id. Each request names an organization, and Trellis checks that the caller belongs to it, is an admin, or holds a service token scoped to it.

Contact

Questions about this tool?

Write to Renkara Media Group and a person will answer.