Skip to content

Search operators

Spendle supports search operators for finding specific transactions in the transaction list.

Note: This document describes the search operators for the transaction search screen. Action rules (automatic categorization) use different operators — see Action rule operators at the bottom of this document.

Without an operator, a partial match search is performed (case-insensitive).

Syntax: searchterm

Examples:

  • decl → finds “decl”, “decl122024jansen”, “declaratie”, “mydeclaration”
  • albert → finds “Albert Heijn”, “albertstreet”, “Albertina”

Use: Ideal for quick, broad searches when the exact spelling is uncertain.


Search for a whole word, not as part of a larger word.

Syntax: ~searchterm

Examples:

  • ~decl → finds “decl” but NOT “decl122024jansen” or “declaratie”
  • ~ah → finds “AH” but NOT “Albert Heijn” or “ahoy”
  • ~12.50 → finds exactly “12.50” but NOT ”€ 12.50” or “112.50”

Use: When searching for a specific word or code without false positives.


The entire field must exactly match the search term.

Syntax: =searchterm

Examples:

  • =decl → finds only transactions where the memo field is exactly “decl”
  • =Albert Heijn → finds only exactly “Albert Heijn”, not “Albert Heijn Amsterdam”
  • =50 → finds only transactions where a field contains exactly “50” (not for amounts!)

Use: For very precise searches when the exact value is known.

Note: For amount filters use =50 (with a number); for text searches use =term (with text).


Find transactions where a field starts with the search term.

Syntax: ^searchterm

Examples:

  • ^albert → finds “Albert Heijn”, “Albertstraat” but NOT “De Albert”
  • ^NL → finds “NL12BANK0123”, “NL-Amsterdam” but NOT “SNL Bank”
  • ^2024 → finds “2024-01-15”, “20241501” but NOT “dec2024”

Use: Useful for finding transactions starting with a specific prefix, such as bank codes, years or brand names.


Find transactions where a field ends with the search term.

Syntax: searchterm$

Examples:

  • jansen$ → finds “decl122024jansen”, “J.Jansen” but NOT “jansen123”
  • BV$ → finds “Acme BV”, “Transport BV” but NOT “BV Nederland”
  • 2024$ → finds “dec2024”, “invoice-2024” but NOT “2024-01-15”

Use: Useful for finding transactions with specific suffixes such as company types (Ltd, Inc) or years at the end.


Exclude transactions that match the search term.

Syntax: -searchterm

Examples:

  • -albert → shows EVERYTHING except transactions containing “albert”
  • -~decl → shows everything except transactions containing the whole word “decl”
  • -^AH → shows everything except transactions starting with “AH”

Use: Filter out unwanted results from search results.

Combining: The - operator can be combined with other operators:

  • -~word → exclusion of whole word
  • -=exact → exclusion of exact match
  • -^start → exclusion of starts-with

Multiple words separated by spaces work as AND — all words must be present.

Examples:

  • albert heijn → finds transactions containing BOTH “albert” AND “heijn”
  • decl 2024 → finds transactions containing BOTH “decl” AND “2024”
  • ~ah amsterdam → finds transactions with the whole word “ah” AND “amsterdam”

Multiple search terms separated by commas work as OR — at least one must be present.

Examples:

  • albert,jumbo → finds transactions with “albert” OR “jumbo”
  • ~ah,~plus → finds transactions with the whole word “ah” OR “plus”
  • ^NL,^BE → finds transactions starting with “NL” OR “BE”

In addition to text operators, filtering by amount is also supported:

Syntax:

  • >50 → greater than 50
  • >=50 → greater than or equal to 50
  • <100 → less than 100
  • <=100 → less than or equal to 100
  • =50 → exactly 50 (note: for amounts, not text!)

Combining with text:

  • albert >50 → transactions with “albert” AND amount > 50
  • ~ah >=20 <=100 → whole word “ah” AND amount between 20 and 100

The search function searches the following fields:

  • Memo (note)
  • Description
  • Counterparty account
  • Relation
  • Category
  • Account
  • Group
  • Annotation
  • Transaction ID
  • Tag
  • Amount

Problem: Searching “AH” also returns results containing “ahoy”, “sahara”, etc.

Solution: ~ah

This finds only the whole word “AH”.


Problem: All large expenses are to be shown, except fixed costs.

Solution: >100 -rent -energy -water

This shows expenses above 100, but excludes rent, energy and water.


Problem: Searching for Dutch IBANs.

Solution: ^NL

This finds all transactions with fields starting with “NL”.


Problem: Finding expense claims from 2024.

Solution: decl 2024 or ^decl 2024$

The first finds all transactions with both words, the second is more specific.


Problem: All transactions are to be shown except supermarkets.

Solution: -albert -jumbo -aldi -lidl

Or with whole words: -~ah -~plus -~coop


  1. Start broad, then refine: Begin with a simple search term and add operators to narrow down.

  2. Combine smartly: Use ^ for the start and $ for the end in a single search term: ^decl2024$

  3. Exclusion is powerful: Use - to quickly filter out irrelevant results.

  4. Test operators: Try without an operator first, then with one to see the difference.

  5. Case-insensitive: All searches are case-insensitive, so AH, ah and Ah return the same results.

  6. Operators work everywhere: The operators work in all fields, not just in memo.


OperatorFunctionExampleFinds
(none)Partial matchdecl”decl”, “declaratie”, “decl123”
~Whole word~decl”decl” (not “declaratie”)
=Exact=declOnly exactly “decl”
^Starts with^albert”Albert Heijn”, “Albertstraat”
$Ends withjansen$”J.Jansen”, “decl-jansen”
-NOT / Exclusion-albertEverything except “albert”
(space)ANDdecl 2024Contains “decl” AND “2024”
,ORah,plusContains “ah” OR “plus”

Action rules (automatic categorization) use different matching logic than the transaction search screen. Below are the operators for action rules:

An action rule has multiple fields that can be filled in:

Fields in an action rule:

  • Memo — note field of the transaction
  • Description — description field of the transaction
  • Amount Min — minimum amount (separate field, not >50 syntax)
  • Amount Max — maximum amount (separate field, not <100 syntax)
  • Account — which account
  • Type — IN (income) or OUT (expenses)

How they combine:

  1. Memo and Description = OR logic

    • Memo only → must match the memo field
    • Description only → must match the description field
    • Both filled → either one must match (OR)
  2. Other fields = AND logic

    • Amount Min/Max, Account, Type
    • These must all match together with memo/description

Practical examples:

MemoDescriptionAmount MinAmount MaxMatches when…
decl*(empty)(empty)(empty)Memo starts with “decl”
(empty)ALBERT HEIJN(empty)(empty)Description contains “ALBERT HEIJN”
decl*ALBERT HEIJN(empty)(empty)Memo starts with “decl” OR description contains “ALBERT HEIJN”
decl*(empty)50(empty)Memo starts with “decl” AND amount ≥ 50
decl*ALBERT HEIJN50200(Memo starts with “decl” OR description contains “ALBERT HEIJN”) AND amount between 50–200
decl*(empty)50(empty) + Type: OUTMemo starts with “decl” AND amount ≥ 50 AND expense

Important note: In action rules, separate fields are used for amount filters (Min/Max), not the >50 or <100 syntax. That syntax only works in the transaction search screen.

Automatic smart matching:

  • Patterns >4 characters: substring match (finds anywhere in the text)
  • Patterns ≤4 characters: whole word match (prevents false positives like “BP” in “subpage”)

Examples:

  • decl (4 chars) → finds “decl” but NOT “decl072024” (whole word)
  • albert (6 chars) → finds “albert”, “albertheijn”, “Albertstraat” (substring)

Use * as a wildcard for flexible matching.

Syntax:

  • pattern* → starts with “pattern”
  • *pattern → ends with “pattern”
  • *pattern* → contains “pattern” (forces substring match)
  • pattern*2024 → starts with “pattern” and ends with “2024”

Examples:

  • decl* → finds “decl”, “decl072024Jansen”, “decl122024”, “declaratie”
  • *2024 → finds “decl2024”, “invoice2024”, “dec-2024”
  • *AH* → finds “AH”, “Albert Heijn”, “AHOY” (substring)
  • dec*2024 → finds “dec-2024”, “december2024”, “decl072024”

Use: Ideal for matching codes with variable suffixes such as “decl072024”, “decl122024”, etc.

Force whole word match regardless of length.

Syntax: =pattern

Examples:

  • =ah → finds “AH” but NOT “Albert Heijn” or “ahoy”
  • =2024 → finds “2024” but NOT “dec2024” or “20241215”

Exclude matches (veto).

Syntax: -pattern

Examples:

  • -private → does NOT match if “private” is present
  • -test → excludes test transactions

Use: Prevent a rule from being applied to certain transactions.

Match must be present (AND condition).

Syntax: +pattern

Examples:

  • albert,jumbo +supermarket → matches “albert” OR “jumbo”, but ONLY if “supermarket” is also present

Use: Add an extra condition to a rule.

Multiple patterns can be combined with commas (OR logic):

Examples:

  • decl*,declaratie → matches everything starting with “decl” OR containing “declaratie”
  • =ah,=plus,=coop → matches exact words “ah”, “plus” or “coop”
  • albert*,-test → starts with “albert” but NOT if “test” is present
  • *2024,*2023 → ends with “2024” or “2023”

OperatorFunctionExampleFinds
(none, >4 chars)Substring matchalbert”albert”, “albertheijn”
(none, ≤4 chars)Whole worddecl”decl” (not “decl2024”)
*Wildcarddecl*”decl”, “decl072024”, “declaratie”
=Exact word=ah”ah” (not “ahoy”)
-Exclusion / NOT-privateEverything except with “private”
+Required / AND+2024Must also contain “2024”
,ORah,plus”ah” OR “plus”

Difference between transaction search and action rules

Section titled “Difference between transaction search and action rules”
FeatureTransaction searchAction rules
PurposeQuickly find transactionsAutomatically categorize
Whole word~decldecl (≤4 chars) or =decl
Substringdecl (default)albert (>4 chars) or *decl*
Wildcarddecl*
Starts with^decldecl*
Ends withdecl$*decl
ANDspace+pattern
ORcommacomma
NOT-decl-decl

Key difference: Action rules use automatic smart matching (short patterns = whole words) and wildcards, while transaction search uses explicit operators.


  • Case-insensitive: All searches and rules are case-insensitive
  • Multiple fields: Operators work on all searchable fields
  • Backward compatible: Existing searches and rules continue to work
  • Combinable: Operators can be combined for complex queries
  • Performant: Efficient implementation with optimized regex for whole words and wildcards