You ask in plain words. The assistant turns your question into a filter in the language on this page, and Ceviche runs it. You don't need to learn it. It is here so you can see what the assistant can and can't express, and check that an answer covered what you meant: every answer carries the filter as Ceviche understood it, and you can ask the assistant to show it.
The basics
A filter is a list of key:value pairs and plain words, separated by spaces.
kind:transaction date:2026-Q3 vendor:"Harbor Legal LLP" amount:>=10000
- Every part must match. The example finds Q3 2026 bills from Harbor Legal LLP of $10,000 or more.
- Quote a value with spaces or commas:
vendor:"Harbor Legal LLP". - A comma means "any of" inside one key:
status:pending_approval,held. A comma inside quotes is part of the name. - A leading minus negates:
-has:attachmentmeans "with no attachment". - Plain words search the text of records: vendor names, reference numbers, descriptions, notes and names.
Every word has to appear. Quote a phrase:
"filing fees". - An empty filter means everything.
Keys
| Key | Values | Example |
|---|---|---|
kind: | transaction (bill), line, allocation (split), invoice, approval, adjustment, attachment, entity, vendor, project, deal, member, policy. Left out means every kind. | kind:transaction,line |
date: | A day, month, quarter or year, a range, or a comparison. Inclusive. See Dates. | date:2026-09 |
amount: | An amount, a comparison, a range, or "about". Compares the size of the amount, ignoring its sign. See Amounts. | amount:>=10000 |
sign: | credit (below zero: credit bills, refunds, credit lines) or charge (above zero). A 0.00 record is neither. | kind:line sign:credit |
entity: or fund: | A fund or other entity, by its short code or exact name. Matches records split to it. | fund:"Fund II" |
entity~: or fund~: | Part of an entity's name or short code. | kind:allocation fund~:"fund i" |
vendor: | A vendor's exact name or one of its aliases. | vendor:"Harbor Legal LLP" |
vendor~: | Part of a vendor name. | vendor~:harbor |
project: | A project's exact name or code. | project:"Annual Meeting 2026" |
project~: | Part of a project name. | kind:line project~:annual |
account: and account~: | An account on the line's coding, exact or in part. | account~:legal |
approver: | A team member who decided an approval, by name or email. | kind:approval approver:"Dana Reyes" |
status: | A status of that kind of record. See Records and statuses. | status:pending_approval |
currency: | A three-letter currency code. | currency:EUR |
related: | Everything linked to one record, in either direction. | related: followed by a record's ID |
has: | attachment, notes, approval, invoice, vendor, project, account, approver, date, currency | kind:transaction has:attachment |
sort: | date (the default), -date, amount, -amount. The whole match is sorted, then split into pages. | kind:transaction sort:-amount |
Exact names ignore capitals and extra spaces at either end. A vendor name that isn't on your vendor list still matches bills whose vendor text says it. If a name matches more than one fund, vendor or project, Ceviche refuses to guess and asks for the exact record instead. The assistant can always filter by a record's ID from your team's own lists, and prefers to.
Dates
| Write | Means |
|---|---|
date:2026-09-14 | That day |
date:2026-09 | September 2026 |
date:2026-Q3 | July 1 to September 30, 2026 |
date:2026 or date:FY2026 | Calendar year 2026 |
date:2026-04-01..2026-09-30 | That range, both ends included. Each end can be a day, month, quarter or year: date:2026-Q2..2026-Q3. |
date:>=2026-07-01 | On or after that day. Also >, <= and <. |
date:none | Records with no date |
Each kind filters on its own main date: a bill on its invoice date, a line or split on its bill's invoice date, an approval on the day it was opened. Records and statuses lists them all.
FY2026 is the calendar year. Ceviche doesn't store your fiscal year, so for a July-to-June year the assistant
needs the range: date:2025-07-01..2026-06-30.
Amounts
| Write | Means |
|---|---|
amount:12400 or amount:12400.00 | Exactly $12,400.00 |
amount:>=10000 | $10,000 or more. Also >, <= and <. |
amount:5000..20000 | Between $5,000 and $20,000, both included |
amount:~12400 | Within one cent of $12,400.00 |
Amounts compare size, so amount:250 finds a $250.00 charge and a $250.00 credit. To find credits, add
sign:credit: sign:credit amount:>=100 is credits of $100 or more.
Defaults the filter applies
- Voided bills are left out, with their lines and splits, unless the filter asks for
status:voided. - Every answer lists the defaults it applied, so the assistant can tell you what a total leaves out.
Example searches
| You ask | The assistant searches |
|---|---|
| Show me September's bills, biggest first | kind:transaction date:2026-09 sort:-amount |
| Which Harbor Legal bills have no receipt attached? | kind:transaction vendor:"Harbor Legal LLP" -has:attachment |
| What's waiting for approval, oldest first? | kind:approval status:open sort:date |
| Any refunds or credits this year? | kind:transaction,line sign:credit date:2026 |
| Which open fund invoices does Fund II have? | kind:invoice status:invoice_open fund:"Fund II" |
| Everything linked to this bill | related: and the bill's ID |
| Bills with no date on them | kind:transaction date:none |
When the filter is wrong
If the assistant writes a filter Ceviche can't read, such as an unknown key, a date like "2026-13", or an unclosed quote, Ceviche answers with what was wrong and what is valid, for example:
Unknown filter key "vendr". Did you mean "vendor:"?
(followed by the list of valid keys).
The assistant fixes the filter and tries again. You usually see none of this.