Transactions
This is where every bank and credit card transaction lands after syncing from your connected accounts. Your job is simple: confirm each one is categorized correctly, match payments to the invoices or bills they settle, and resolve anything AI couldn't decide on its own. Categorizing a transaction creates a balanced journal entry behind the scenes, so a clean transactions list means clean financial statements.
Key capabilities
- Automatic sync from connected accounts, with a periodic fallback sync
- Layered auto-categorization: bank rules, historical patterns, global patterns, then AI
- One-click AI Categorize to clear the whole uncategorized backlog in the background
- Category suggestions on demand, with an optional slower LLM pass for unresolved rows
- Link as Payment to settle invoices and bills directly from the transaction drawer
- Split one transaction across multiple bills via Apply Transaction to Multiple Bills, with allocation tracking
- Bulk recategorize, re-counterparty, mark reviewed, and mark reconciled across selections
- "Mark all reviewed" for an entire date range during close
- Recurring detection to surface subscriptions and repeating charges
- CSV/Excel import (file, paste, or column-mapping), plus manual and bulk manual creation
- Attach receipts and documents to any transaction
- Cleaned merchant names backed by the global counterparty registry
- Rich filters: account, category, source account, tag, date, amount direction, uncategorized, and missing counterparty
How it works
Transactions flow in from Plaid, get a counterparty and a suggested category from the layered engine, and post a journal entry when confidence is high. Anything the engine can't resolve waits in the uncategorized queue for you.
flowchart LR
bank["Bank / card"] -->|"Bank sync"| sync["DayZero sync"]
sync --> clean["Clean counterparty"]
clean --> engine["Categorization engine"]
engine --> confident{"High confidence?"}
confident -->|"Yes"| done["Categorized + journal entry"]
confident -->|"No"| review["Uncategorized queue"]
review -->|"You categorize or match"| doneHow to use it
- Transactions appear automatically from connected accounts — no manual import needed.
- Click a transaction to open the detail drawer, then assign a category (ledger), add a memo, attach a receipt, or apply tags.
- Use Link as Payment to match a transaction to the invoice or bill it settles, or Apply Transaction to Multiple Bills to split one payment across several bills.
- Click AI Categorize to run the full categorization workflow over every uncategorized transaction at once.
- Filter to only uncategorized to work the backlog, or toggle the missing-counterparty filter to surface wires and miscellaneous deposits that need a name.
- Select multiple rows to bulk-update their category, set a counterparty, or mark them reviewed/reconciled.
- Open the Recurring Detection tab to review automatically detected subscriptions and recurring charges.
Pro tips
- Truly uncategorized transactions (no journal entry) don't appear on your P&L or Balance Sheet — clear them so your reports are complete and reconciliation-ready.
- Recategorizing all transactions for a counterparty automatically creates a bank rule, so future transactions from that merchant categorize themselves.
- Amounts follow a sign convention: positive is money in (inflow), negative is money out (outflow). The CSV template includes sample rows showing how this maps for bank vs. credit-card accounts.
- Bank-synced rows can't be permanently deleted — you can hide them and later restore them; manual and CSV rows are removed permanently.
- Use the date-range and account filters to scope to one period or account while reconciling, and the review-status filter to track what's left to verify.
- Paste transaction text straight from a bank export instead of saving a file — DayZero converts it into an importable file for you.
In-depth guide
Source & deletion eligibility
Where a transaction came from governs whether it can be deleted.
| Source | Origin | Deletion |
|---|---|---|
| Bank sync | Synced from your connected bank or card | Hidden (reversible via restore); can be permanently removed |
| Manual | Created by hand | Permanent delete |
| Imported | Imported via CSV/Excel | Permanent delete |
| Migration | Imported from Xero/QuickBooks | Not deletable here — remove at the source |
- Hiding a bank-synced row drops its journal entry and excludes it from lists and reports.
- Restoring re-runs categorization and rebuilds the entry, picking up any rules you've added since.
Status
Each transaction tracks three independent states:
| State | Meaning |
|---|---|
| Posted vs. not posted | Whether the transaction appears in your ledger and reports (not-posted and hidden transactions stay out of them) |
| Reviewed vs. unreviewed | Whether you've verified the categorization |
| Reconciled | Whether it's been matched to a bank statement during reconciliation |
Categorization methods
DayZero records how each transaction was categorized, so you can audit automated decisions:
| Method | Source of the category |
|---|---|
| Bank rule | A bank rule matched |
| Your own history | A prior pattern on your own books |
| Cross-business pattern | A pattern seen across other businesses |
| AI | AI categorization |
| Similar transaction | Matched a similar past transaction |
| Internal transfer | Detected a transfer between your own accounts |
| Manual | You set it yourself |
| Uncategorized | Not yet categorized |
How categorization works
- AI Categorize runs in the background, combining your bank rules, your own categorization history, and AI, and auto-applies a category to a journal entry whenever it's confident enough.
- High-confidence decisions also teach new bank rules, so the system gets faster the more you use it.
- The on-demand suggest categories action favors fast pattern-based matches first and falls back to a deeper AI pass for transactions it can't resolve on its own.
Counterparties & cleaning
- Each transaction gets a cleaned counterparty name and, where possible, a link to the global counterparty registry, with high-confidence matches linked automatically.
- DayZero also tracks how each name was set — automatically, by a pattern, by AI, by a rule, or typed by you.
- User-typed counterparties are preserved when names are re-resolved in bulk.
Matching payments
- Link as Payment ties a transaction to the invoice or bill it settles, recording an invoice or bill payment.
- A single transaction can be allocated across multiple bills; the allocations view reports how much has been applied and how much remains unallocated.
Accounting impact
- Categorizing a transaction posts a balanced journal entry: the bank/source account is one side and the chosen category ledger is the other.
- Because bank accounts are driven by the feed and reconciliation, you categorize against the opposing (expense/revenue) ledger — that opposing line is what bulk recategorization and the category filter act on.
Importing transactions
- Bring history in by uploading a CSV/Excel file, pasting text, or mapping columns.
- Preview validates the file and checks for duplicates before anything is created.
- The upload then builds transactions, journal entries, and an AI categorization pass in the background.
Start free and connect a bank account to see it in action.