Skip to main content

Transactions

Transactions record movements of money between accounts. The Transactions page lists them, lets you filter the list, and opens a dialog to add, view, edit, or delete a transaction. Lui Ledger uses double-entry bookkeeping: every transaction is made of postings that must balance.

How-to

Add a single transaction

  1. Open Transactions.
  2. Choose Add transaction, then Single transaction.
  3. Set the Date, and optionally a Description (for example Groceries).
  4. On the first posting row, leave Transfer as From, pick the account the money leaves (for example a checking account), and enter the Amount and Commodity.
  5. On the second posting row, leave Transfer as To, pick the expense account (for example groceries), and enter the same Amount and Commodity (see Balanced postings).
  6. Use Add Posting if you need more than two sides.
  7. Choose Save.

The list shows the new transaction with the outflow under From and the inflow under To.

To bring in many transactions at once, choose Add transaction, then Batch import. That opens Import (separate from this page). During import you can apply smart rules to fill in accounts, commodities, and tags.

Edit a transaction

  1. Open Transactions.
  2. Select the transaction card to open Transaction Details.
  3. Choose Edit.
  4. Change the fields or postings as needed.
  5. Choose Save.

If you close while editing with unsaved changes, you are asked to confirm exiting without saving.

Delete a transaction

  1. Open the transaction card.
  2. In Transaction Details, choose Delete.
  3. Confirm with Delete.

Deletion can fail if removing the transaction would break a balance assertion on a later transaction.

Filter the list

  1. On Transactions, choose Filter.
  2. Under By keyword, enter text to search across accounts, description, and tags.
  3. Under By fields, optionally set From Date, To Date, Description, and Tags.
  4. Choose Apply.

Use Reset in the filter drawer to clear all filters. The Filter button shows how many filters are active. You can also start a keyword search from app-wide Search.

Reference

Transactions page

  • Transactions - Lists transactions (newest first), with a total count when results are shown.
  • Filter - Opens Filter Transactions.
  • Add transaction - Menu with Single transaction (opens Add Transaction) and Batch import (opens Import).
  • Selecting a card opens Transaction Details.

Transaction card

Each card shows:

  • Date - The transaction date.
  • Tags - Tags on the transaction, or No tags.
  • Description - The description, or No description.
  • Account - One row per posting account.
  • From - Amounts leaving an account (negative postings).
  • To - Amounts entering an account (zero or positive postings).

Amounts can show hints for Cost and Balance Assertion when those are set on a posting.

Filter Transactions

  • By keyword - Matches text in description, accounts, and tags.
  • From Date / To Date - Limit results to that date range.
  • Description - Match within the description only.
  • Tags - Match transactions that have the selected tags.
  • Reset - Clears filters and applies the empty filter set.
  • Apply / Close - Apply the filter, or close without applying pending edits (form resets to the last applied values).

Postings table in transaction details

Each row is one posting:

  • Transfer - From (money leaves the account) or To (money enters the account).
  • Amount - Quantity for this posting (entered as a positive number; From / To sets the direction).
  • Commodity - Unit of the amount. See Commodities.
  • Account - Which account this posting affects.
  • Tags - Tags for this posting only.
  • Add Posting - Adds another posting row (edit mode).

A new transaction starts with one From and one To posting, using the default commodity.

Cost

On a posting, Cost records the exchange rate used in that transaction when two commodities change hands:

  • Type - No Cost, Unit Cost (price per one unit), or Total Cost (price for the whole posting amount).
  • Amount / Commodity - The cost quantity and its commodity (when a cost type other than No Cost is selected).

Cost is not the same as a market price on the Prices page. See Prices for the full comparison and for how widgets can infer market prices from costs.

Balance Assertion

Optional check on a posting that the account's balance equals an expected amount after this posting is applied:

  • Method
    • No Assertion - No balance check on this posting.
    • This Account - Assert the balance of this account only (not its subaccounts).
    • This Account & Subaccounts - Assert the combined balance of this account and its subaccounts.
  • Amount / Commodity - The expected balance.
  • Other Commodities
    • Allowed - Check only the specified commodity; other commodities in the account may still be present.
    • Disallowed - The account must hold only the specified commodity (at the asserted amount).

If the assertion does not match the actual balance, saving fails with an error. Deleting a transaction can also fail when that would make a later assertion wrong.

For the underlying rules, see Balance assertions in the hledger manual and Balance assertions in the Ledger manual.

Tags

Tags are labels you attach to a transaction or to a single posting. They appear as chips in the UI.

  • Form: a key alone, or key:value (key, colon, optional value).
  • Transaction tags apply to the whole entry; posting tags apply to that row only.
  • Use them to filter on Transactions or to mark categories that cut across accounts (for example a trip or project).

Explanation

What a transaction is, and From / To

A transaction is one real-world event in your bookkeeping: a purchase, a salary deposit, a transfer between accounts, and so on. It always has a Date, usually a Description, and two or more postings.

In Lui Ledger, posting direction is shown as From and To instead of traditional debit and credit wording:

  • From - Value leaves that account (negative amount).
  • To - Value enters that account (zero or positive amount).

On the card, each posting's amount appears under From or To accordingly. That matches the signed-amount style described in Double-entry bookkeeping.

Postings

A posting is one line of a transaction: an account, an amount, and a commodity. Optional extras on a posting include tags, Cost, and a Balance Assertion.

Most everyday transactions have two postings. More complex ones (splits, fees, conversions) can have three or more. Use Add Posting when one event needs to touch more than two accounts.

Balanced postings

Double-entry bookkeeping requires that the postings in a transaction balance: after converting costs where needed, the amounts sum to zero so money does not appear or disappear.

In practice that means the From and To sides match. A simple expense of 50 EUR has 50 EUR From your bank and 50 EUR To an expense account. If the sides do not add up, Lui Ledger rejects the save with an unbalanced-transaction error.

Usual balance signs for account types (Asset and Expense positive; Liability and Revenue negative) are explained in Double-entry bookkeeping. Those conventions are why a typical balanced entry pairs a From posting with a To posting of the same size.

Cost versus market price

When you exchange one commodity for another in a single transaction, Cost on a posting records the rate used in that deal so the entry can stay balanced across commodities.

A market price on Prices is a dated quote used later for reports and widgets. Same idea (one commodity in terms of another), different purpose. Details and examples: Prices.

Balance assertions

A balance assertion is a checkpoint: after this posting, the account balance should equal the amount you stated. That helps catch mistakes when reconciling with a bank statement or after editing older entries.

  • This Account vs This Account & Subaccounts chooses whether subaccount balances count.
  • Other Commodities chooses a single-commodity check (Allowed) or a sole-commodity check (Disallowed).

Assertions are checked when you save. They can also block deleting an earlier transaction if that would make a later assertion fail.

Tags as key-value labels

Tags add an extra labelling dimension beside accounts and description. A tag is always a key; you may add a value after a colon (project:home, trip, trip:2026).

Put tags on the transaction when they apply to the whole event. Put them on a posting when only that side should carry the label. The filter's Tags field and the keyword search both help you find tagged activity later.