How it works
The part where we show our work.
Most expense tools won't tell you how they categorize things. Something happens in a black box, a category appears, and if it's wrong — good luck figuring out why.
We'd rather just show you. Here's exactly what happens from the moment a receipt hits your inbox to the moment it lands in your dashboard.
Two AIs. One receipt.
When a receipt arrives — by Gmail auto-capture, email forward, or direct upload — it goes through two separate AI models back to back.
The first one is fast and focused. It reads the raw email or document and pulls out the basics: vendor name, amount, date, and whatever description exists. This layer runs on every receipt the moment it arrives. It's optimized for speed, not depth.
The second one is more rigorous. It takes what the first model found, checks it against a database of known vendors and their typical expense types, and maps everything to the right Schedule C line. This is the layer that knows Adobe Creative Cloud belongs in Office Expense, a Stripe payment belongs in Commissions and Fees, and a software subscription belongs in Office Expense.
What happens when we're not sure
Not every receipt is clean. Sometimes the vendor is ambiguous. Sometimes the amount is missing. Sometimes a charge could reasonably be personal or business — a restaurant, a rideshare, a supply store run.
When confidence drops below our threshold, the receipt goes to your Action Items queue instead of being filed automatically. You see it, you make the call in one tap, and it's done.
We never auto-file something we're not confident about. We never drop a receipt because we couldn't figure it out. Every receipt that comes in has exactly one destination — your dashboard, either filed automatically or waiting in the queue.
What we know about vendors
xpensli ships with a database of known vendors — the ones that show up in self-employed inboxes constantly. Adobe, Stripe, Google Workspace, AWS, Vercel, GitHub, Zoom, Notion, Figma. We know what they are, we know what Schedule C line they map to, and we file them automatically without asking.
For vendors we don't recognize, we fall back to the description and amount to make an educated guess. If we're not confident, it goes to review.
You can also build your own rules. An allowlist for vendors you always want captured. A blocklist for vendors you never do — your personal grocery store, your streaming subscriptions, anything that shouldn't be in the mix.
The more you use it, the better it gets
xpensli pays attention to how you work. Vendors you see every month get recognized faster. Categories you've set before get applied again. The gray areas you've already decided on don't come back to bother you.
You put in a little work upfront. The system does more of it over time. That's the trade.
A few things you should know
xpensli maps receipts to Schedule C categories — that's the job. Whether a specific expense is actually deductible for your situation is a conversation for your CPA, not your receipt tracker.
Your Gmail connection is read-only. We can't send, delete, or modify anything in your inbox — ever. You can disconnect in two clicks anytime.
And every receipt that comes in gets handled. If we can process it automatically, we do. If we're not confident, it goes to your review queue. Nothing gets dropped.
Have a question about how categorization works? The FAQ covers the most common ones.