• Pricing
  • FAQ
  • Guide
  • API Docs
Try the demo Loading demo...

Guide

Ask ChatGPT Ask Claude
  • Your Tags
    • Choosing the Tags That Apply
    • Required vs Optional Groups
    • Managing Groups and Tags
  • Remember Selections
  • Tag Rule Sets
  • Omitting Transactions
  • Splitting Transactions
  • Effective Spend Date
  • Add Transactions
  • Filtering the Dashboard
  • Choosing Which Groups Appear in the Dashboard
  • Budget Rules
  • Itemizing a Transaction
  • Custom Fields
  • Making Icons and Assigning Them to Tags
  • Queries
  • Importing a CSV
  • API Keys
  • AI agents with MCP

Your Tags

Every workspace starts with default tags for everyday spending, people, travel, holidays, and more. Customize its groups and tags freely, and replace personal examples like Olivia or Japan 2025 with your own people and trips.

Tag groups describe independent aspects of a purchase: what it was, who it was for, and its context. Each transaction also has a separate discretion level: Required (the default), Optional; worth it, or Optional; regret it. Use it to see, for example, how much of your Dining Out spending was optional.

  • $120 at Nordstrom for family Christmas gifts: Optional; worth it, with Gifts (Misc.), Family (Spent For), Daily Life (Context), and Christmas (Holidays).
  • $45 Amazon household order while in Italy: Required, with Supplies (Home), Myself (Spent For), and Daily Life (Context).
  • $60 ramen dinner on vacation in Japan: Optional; worth it, with Dining Out (Food & Drink), Myself (Spent For), Vacation (Context), and Japan 2025 (Trips).

These separate groups keep household orders out of trip costs and gifts separate from your own spending. Combine them to answer precise questions, such as how much you spent dining in Japan or buying holiday gifts for family.

Choosing the Tags That Apply

Select every tag that meaningfully describes a purchase. Within a purpose group, choose the most specific tag based on the item, not the merchant. For example, using the default tags, a yoga mat could be Health & Fitness → Fitness Gear, a pan could be Home → Housewares & Appliances, and a book could be Media & Technology → Books & News. If you keep the default tags, use Apparel & Goods → Other only when no purpose-specific tag fits. One Amazon order can have several tags.

For example, a group such as Special Spend Types can add context with tags like Subscription for recurring subscriptions, One-off Splurge for exceptional one-time indulgences, or Emergency for urgent, necessary, unplanned spending.

Required vs Optional Groups

Two groups are required by default:

  • Spent For: who the purchase was for, defaulting to Myself.
  • Context: the situation it belonged to, defaulting to Daily Life.

Change only the exceptions when tagging. You can rename these groups, edit their tags and defaults, or make them optional.

Managing Groups and Tags

Create, rename, reorder, archive, and delete groups and tags on the Tags page.

  • Editing a tag updates it on past transactions too.
  • Deleting a tag removes it from all transactions and can change analytics; the transactions stay.
  • Archiving hides a tag or group from tagging but preserves it in past analytics—useful for completed trips.

Before deleting, the dialog shows how many transactions are affected and how many will become Untagged, or confirms that nothing is affected.

Remember Selections

For repeat purchases, check Remember selections above the date button or press R while reviewing a card. Choose a matching scope from the select or press Shift+R to cycle:

  • Merchant & amount (default): matches the merchant, currency, and exact original amount. Saves the custom transaction title, discretion, tags, items, and custom fields except Date, File, and Image.
  • Merchant: matches the merchant and currency at any amount. Saves the same selections except items.

Click Mark tagged to save. Defaults belong to the workspace; an exact-amount default takes priority over a merchant-wide one. Switching an exact default to Merchant replaces it; switching a merchant-wide default to Merchant & amount creates an amount-specific exception. Matching transactions share the checkbox setting.

Saved selections prefill when a matching transaction first appears in Untagged, preserving existing annotations, dates, bookmarks, and splits. Review it and click Mark tagged to finish.

To update defaults, adjust a matching transaction and save with Remember selections checked. On Tagged or Omitted transactions, enter Edit mode first, including to use R. Save changes saves checkbox and scope changes even without other edits; Cancel discards them. Saving items or custom fields on a tagged transaction also updates existing defaults unless a checkbox change is pending.

Changing the merchant, original amount, or currency switches to that combination’s setting and leaves the old defaults intact. To remove a default, uncheck the box and click Mark tagged or Save changes. Previously tagged transactions stay unchanged; removing an exact-amount default reveals any merchant-wide default.

Access defaults through the remembered_selections SQL table or /api/remembered-selections API. Rows store merchant, original amount in cents (null for merchant-wide defaults), and currency separately. The API supports listing, upserting, editing, and deleting; workspace viewers have read access.

Tag Rule Sets

A tag rule set is a saved set of conditions you can reuse in budgets and filters. Create one on the Tag Rules page.

  • Inside a set: all conditions must match (AND). A Vacation Dining set could require Dining Out and Vacation. Only purchases with both tags match.
  • When choosing sets: any set can match (OR). Choose Vacation Dining and Family Gifts to include either kind of spending.

Choose up to five sets in Budgets, Search Table, or Dashboard. Choose none to skip filtering by tags. Other filters still apply.

Each condition checks one tag group; use each group only once per set. Editing a set updates everywhere it is used. Duplicate it first if you want a separate version.

Omitting Transactions

Omitting a transaction excludes it from spending analytics and budgets. Use it for money movement that isn’t real spending: transfers between your own accounts, reimbursements, refunds, and credit card payments already tracked on the card itself. Splitting and omitting often pair up. For example, a $200 concert ticket for you and a friend who’s paying you back splits into two $100 halves, and you omit the half they cover so only your own $100 counts.

Restoring returns a transaction to Untagged with its tags intact. Manually added transactions can be deleted outright; bank-synced ones can only be omitted, keeping your bank record complete.

Splitting Transactions

Split a transaction when parts of a purchase need different tags. For a $500 Costco charge, keep $400 of groceries on the parent and create a $100 clothing child. Each gets its own tags, and their amounts must total the original charge.

You can also split by recipient or reimbursement: divide a $180 Target purchase into $90 for Myself, $45 for Family, and $45 for Friends. For a $96 shared dinner, keep your $48 and omit your friend’s $48 after they repay you.

Undo a split from the parent or any child. Splitting a tagged transaction preserves the parent’s tags. Split Inheritance in Preferences controls whether children inherit discretion, tags, items, and custom fields; by default, they inherit only discretion.

Effective Spend Date

Every transaction counts toward a single day of spending, defaulting to the bank authorization date when available, otherwise the settled date. Change it when the money really counted on a different day, for example a deposit paid weeks before the trip, or a bill you think of as last month’s. Budgets, the dashboard, and SQL queries all follow the effective date, not the raw bank date, so this is the lever for putting spending in the period where it belongs.

Add Transactions

Add a transaction manually when it won’t show up in your bank, such as cash spending, gift card usage, Venmo balance spending, or a payment you want to track before it appears in your feed. Manually added transactions behave like other transactions for tagging, itemizing, splitting, custom fields, budgets, dashboards, and queries.

Unlike bank-synced transactions, manually added transactions can be deleted outright. Bank-synced transactions stay tied to the bank record and can only be omitted from spending analytics and budgets.

Filtering the Dashboard

“Filter transactions” in the toolbar narrows what every chart counts without touching your tags. It sets the date range, limits to specific bank accounts, chooses whether pending transactions count, and filters transactions with up to five reusable tag rule sets. Spending that matches any selected set is included. Choose none to skip filtering by tags; the other filters still apply. For example, if you use tags such as Vacation or Family, create rule sets for vacation spending or gifts for family to focus the dashboard on that slice.

Choosing Which Groups Appear in the Dashboard

Chart groups in the dashboard toolbar chooses which groups appear in charts. In the default setup, Spent For, Context, Special Spend Types, Holidays, and Trips start unchecked because they usually work better as filters. Hidden groups remain available for tagging and searching; you can show them anytime.

Filter transactions chooses which transactions count; Chart groups chooses their breakdowns. For example, if you use a Food & Drink group and a Vacation tag, combine these controls to break down food spending on vacation.

Budget Rules

Set a spending limit for a day, week, month, year, or all time. Periods follow calendar boundaries: weeks run Sunday–Saturday, and months and years follow the calendar. A budget created mid-period includes earlier spending in that period and resets at the next boundary.

Current-period progress shows spending so far. Pace projections appear once enough of the period has been tracked for a reliable estimate. Open a budget to see its hit/miss history.

With no tag rule sets selected, a budget tracks all tagged spending. Choose up to five sets to include spending that matches any of them. Separate bank-account and discretion filters can narrow it further.

Itemizing a Transaction

Attach line items to a transaction to record what you actually bought, receipt-style, without splitting it. Prices are optional and don’t need to add up to the total. Itemized entries are purely informational and don’t affect analytics, so reach for them when all transaction items fit under the same tag selection.

Custom Fields

Define up to 10 typed fields per workspace (Short text, URL, Long text, Number, Date, Checkbox, File, Image), available on every transaction. For example: a reference number, a “reimbursed?” flag, an attached receipt. Notes is the built-in Long text field every workspace starts with; like other fields, you can rename, require, archive, or delete it, but its type is fixed.

Fields are informational (analytics are driven by tags) but fully queryable in the SQL editor. Archiving a field keeps every saved value and is reversible anytime; deleting erases them permanently.

Making Icons and Assigning Them to Tags

Give any tag its own icon. Icons are generated in the Icons page from a text prompt, and you can optionally upload a subject reference image to guide the result. Icons are assets you can use across workspaces, and any icon available in a workspace can be assigned to any tag in that workspace. Assign an icon to a tag from the Tags page.

Queries

The Queries page lets you run SQL against your workspace’s analytics database. Use it when the dashboard is too broad and you want an exact answer, like “how much did I spend on dining while on vacation?”, “what gifts did I buy for family this year?”, or “which reimbursable work purchases are still missing receipts?”

Queries can use transactions, tags, itemized entries, custom fields, budgets, and dates. You can write SQL directly, ask Dollar Diary to draft a read-only query from a plain-English prompt, save useful queries, and export results for spreadsheets or deeper analysis.

Importing a CSV

Upload a bank or spreadsheet CSV on the Imports page, or download its template. Files need a header row, date, description, and amount, with a limit of 1,000 transactions and 10 MB.

  • Description becomes the raw description unless a separate raw-description column exists. A lone merchant or payee column can supply both description and merchant. A name or title column also needs a merchant or raw-description column.
  • Dates accept ISO (2025-03-14) and common regional formats such as 03/14/2025 or 14.03.2025.
  • Amounts accept currency symbols, thousands separators, parentheses, and minus signs. Every row is imported as spending.
  • Optional columns include discretion (Required, Optional; worth it, or Optional; regret it), authorized date, currency, and state. Blank optional cells are skipped; invalid values stop the import. Use state = omitted to exclude transfers or refunds from spending analytics and budgets.
  • External ID is an optional, stable transaction identifier from your source. Use externalId, external_id, or External ID as the header. Values are case-sensitive, trimmed, and limited to 255 characters; blank cells have no ID-based duplicate protection. Reusing an external ID within the file or against an existing manual/imported transaction in the same workspace rejects the whole import with a row number. Duplicates are not skipped or updated. A plain id column is ignored; rename it to externalId if it identifies the source transaction.

To apply tags, name a column after a tag group (such as Food & Drink) and fill cells with existing tag names (such as Cafe). Set state to tagged to skip review, supplying a tag for every required group. Unknown tags or missing required groups stop the import with a row number. If your workspace has required custom fields, import rows untagged and complete them in the app.

Imports are all or nothing. An invalid row stops the file with its row number and reason; fix or remove it and upload again. Cancellation or failure removes all rows created by that run, making it safe to retry.

Follow progress or cancel from the Imports history table while you keep working. Closing or reloading the page does not complete the import; reloading shows its recorded status. Stalled runs are marked failed and their rows removed. Every run records its outcome.

Importing a previously used filename raises a duplicate warning if that run’s transactions still exist. Remove a finished import from history to delete all transactions it created. Imported transactions otherwise behave like manual ones: you can tag, split, itemize, or delete them.

External IDs protect against overlapping or renamed CSV files when the same transactions carry the same IDs. Dates, descriptions, and amounts are not used to detect duplicates. Bank-synced transactions have separate identity handling, so continue to exclude spending your connected banks already sync.

API Keys

API keys let external tools and scripts access a workspace without using your browser session. Use them for automations like importing transactions, syncing spreadsheets, running saved SQL queries, building custom dashboards, or connecting AI assistants to your spending data.

Each key is scoped to one workspace and can be limited to read, create, update, and delete permissions. Workspace owners can also let a key view their subscription details and current AI usage. Read access is always included, so a key cannot be write-only. Creating keys requires an active subscription, and each API operation documents any additional subscription gate it enforces.

Choose 30, 90, or 365 days when creating a key, or choose Never for a key without an expiry date. The default is 90 days. The full secret is shown only once when you create the key, so store it immediately. You can rename, change scopes, or revoke keys from the API Keys page.

AI agents with MCP

Dollar Diary is also a remote Model Context Protocol server. Add https://www.dollardiary.com/mcp to any MCP client that supports Streamable HTTP, then configure an Authorization header with Bearer <your-api-key>.

The agent can search and inspect the full API contract, read or change workspace data, upload files, and run read-only SQL. Dollar Diary does not create a separate permission system for MCP: the key’s workspace, stored scopes, owner grant, subscription gates, expiry, rate limits, and audit attribution all stay in force. Removing the member who created a key, or that member leaving the workspace, automatically revokes their active keys. Demotion does not revoke keys; their stored scopes continue to determine access. A workspace editor can revoke a key at any time. A read-only key gives an agent read-only access; enable create, update, or delete only when you want the agent to have those powers.

Keep the key in your MCP client’s secret or environment-variable store, not in a prompt or project file. Clients that only support OAuth login cannot connect with a Dollar Diary API key yet.

© 2026 Dollar Diary. All rights reserved. Based in California.

Product

DemoFeaturesPricingFAQGuideMCP OverviewAPI Docs

Learn

Discretion levelsThe power of tagsCustomize your tagsPersonal finance with SQLShared spending

Meta

Brand Assetssecurity.txtrobots.txtllms.txtopenapi.yamlsitemap.xml

Legal

Privacy PolicyTerms of ServiceSubprocessors
Icons by Tabler Merchant logos partially fetched via logo.dev Discretion animations by hammadh (CC BY 4.0) UI primitives via shadcn-svelte, thanks to Hunter Johnston
For questions, please reach out via support@dollardiary.com