Home  /  Blog

From the workbench

Tax Deduction Finder: How SpendifiAI Scans Your Bank Data

A tax deduction finder reads your spending and your situation and tells you which deductions and credits you probably qualify for, before tax season instead of during it. SpendifiAI’s finder checks a catalog of 69 deductions and credits three ways: it scans your bank transactions, matches your financial profile against eligibility rules, and asks short questions about the rest. It shipped on 20 March 2026 together with Plaid bank statement imports and a six-step onboarding pipeline that runs the whole analysis the moment you connect a bank.

69deductions and credits in the catalogsix categories, including new for 2026
3ways to find themtransactions, profile rules, questions
6onboarding pipeline stepssync to reconcile, no empty dashboard
19failing tests fixed169 tests and 608 assertions passing

All of this is one commit, 1f08a56, in the public SpendifiAI repository: 48 files and 4,955 lines added. The numbers in this post come from that code. For what SpendifiAI is as a whole, start with the SpendifiAI overview.

What Is a Tax Deduction Finder?

Most people find deductions by memory in April: a home office, a few subscriptions, maybe the mileage. A finder turns that around. It starts from a fixed list of what the tax code allows and works backwards through your records to see which items apply. The value is in the list being complete and the search being boring and thorough, which is exactly the work people skip.

The catalog: 69 deductions and credits

The finder’s knowledge lives in a seeded table, not in a prompt. Each entry has a name, a category, keywords to look for in transactions, eligibility rules and, where it applies, a maximum amount. The categories break down like this:

Bar chart: SpendifiAI tax deduction catalog of 69 items — Schedule C 19, credits 14, lesser-known 13, above-the-line 10, itemized 7, new for 2026 6
The deduction catalog by category. Schedule C business expenses are the largest group because freelancers are the users most likely to miss them.
Category Count Examples from the catalog
Schedule C (business) 19 Home office, vehicle and mileage, business meals (50%), software and SaaS subscriptions, contract labor, Section 179 equipment
Tax credits 14 Child tax credit, child and dependent care, EITC, American Opportunity, energy efficient home improvement, electric vehicle credits
Lesser-known 13 Work clothes and uniforms, job search expenses, tax preparation fees, foster care expenses, hobby loss offset
Above-the-line 10 Student loan interest, HSA and traditional IRA contributions, self-employed health insurance, educator expenses
Itemized 7 Medical and dental, state and local taxes, mortgage interest, charitable contributions
New for 2026 6 Senior additional deduction, tip income, overtime pay, auto loan interest, charitable deduction for standard-deduction filers

How Does SpendifiAI Find Tax Deductions?

TaxDeductionFinderService runs three detection modes, and each one is designed not to overwrite the others.

Mode 1: scanning bank transactions

For each deduction that has keywords, the finder searches the merchant names and descriptions of your transactions for the tax year and totals what matches. A confidence score starts at 0.5 and rises 0.05 per matching transaction, capped at 0.95, so one coffee-shop charge never looks as certain as fifty. Rates the tax code applies are applied here too: business meals are estimated at 50% of the total, following IRS Publication 463.

Mode 2: matching your financial profile

Some deductions never appear as a transaction. Eligibility for them depends on who you are: employment type, whether you are self-employed, whether you work from home, and your filing status. The profile matcher checks those rules, and it deliberately skips anything the transaction scan already found or that you have already decided on.

Mode 3: a short questionnaire

What neither mode can settle becomes a question, served five at a time. Answer yes and the deduction becomes eligible; then you can claim it with the actual amount. Nothing is claimed on your behalf.

The finder suggests; you decide

Every result is a candidate with a confidence score, never a filing. You confirm, dismiss or claim each one, and your decision is never overwritten by a later scan.

Finding deductions by hand

the April scramble

Starting point
What you remember
Coverage
The deductions you have heard of
Business meals
Often claimed at 100%
Credits
Usually found by your preparer, if at all
When
After the year is over

SpendifiAI deduction finder

commit 1f08a56

Starting point
A catalog of 69 items
Coverage
Transactions, profile rules and questions
Business meals
Estimated at 50%
Credits
14 checked against your profile
When
Continuously, as transactions sync
A pen resting on 2019 tax forms and a mileage log book
Photo by Olga DeLawrence on Unsplash

Is this an AI tax deduction finder?

Not in the part that picks deductions, and that is deliberate. The transaction scan matches each deduction’s keywords against merchant names and transaction descriptions; the profile check and the questionnaire are plain rules. No model decides what you can deduct. AI does the messy work elsewhere in SpendifiAI, turning bank transactions into clean spending categories, and the onboarding pipeline runs it right before the finder. Deduction logic should be something you can read and audit, not a guess.

Where Found Deductions Go Next

A deduction you found but cannot hand to your preparer is not worth much. The finder sits inside SpendifiAI’s Tax Center, which was built in February and already did the export side of the job.

The Tax Center and Schedule C mapping

The Tax Center groups deductible spending into expandable categories, each mapped to its Schedule C line, and lets you drill down to the individual transactions and receipt line items behind every total. When the drill-down was built, a subtle bug surfaced: PostgreSQL returned sums as strings, and the browser concatenated them instead of adding them. The fix casts every total to a number on the server.

Exports for you and your accountant

Exports come as a spreadsheet and a PDF tax report. The PDF opens with an IRS form quick reference listing every Schedule C field from line 8 to line 30 and the Schedule A fields, with amounts, including the $0 lines, so you know exactly what goes in every box. Accountants linked to your account can download the same export, named with your name, from their client list.

The Tax Center’s category totals depend on SpendifiAI’s AI categorization, which decides how sure it is before it acts:

Categorization confidence What SpendifiAI does
0.85 or higher Categorizes the transaction silently
0.60 to 0.85 Categorizes it and flags it for your review
0.40 to 0.60 Asks you a question before categorizing
Below 0.40 Marks it unknown

So the export totals rest on a model with a person in the loop whenever it is unsure, and the deduction finder rests on rules you can read. The two meet in the Tax Center.

Plaid Bank Statements: Importing Further Back

SpendifiAI already synced transactions through Plaid. The catch, which the Connect page spells out, is that the initial transaction sync covers about 90 days. A tax year is 365. That gap is the reason this release adds Plaid Statements: the official PDF statements from the bank, fetched through the same connection.

The DownloadPlaidStatements job lists the statements available for your checking and savings accounts, downloads each PDF, parses it, checks every transaction against what is already in your account, imports only the ones that are new, then hands them to categorization. A panel on the Connect page lets you pick a date range and “import further back”.

Not every bank offers statements through Plaid

The job only processes depository accounts, and the pipeline treats statements as optional: if a bank does not support them, onboarding carries on without them. Manual statement upload remains for everything else.

How the Onboarding Pipeline Works

An empty dashboard is where finance apps lose people. The new onboarding page has four stages (connect bank, connect email, a quick profile, then processing) and the processing stage runs ProcessOnboardingPipeline, a queued job with a fixed order:

  1. Sync bank transactions Pull every connected account through Plaid.
  2. Request statements Ask Plaid to refresh statements for the longer history; the download happens when the webhook fires.
  3. Scan email for receipts Process order emails from any connected inbox.
  4. Categorize with AI Run every pending transaction through categorization.
  5. Detect subscriptions Find recurring charges.
  6. Reconcile orders Match receipts to bank charges, then fire an onboarding-complete event that sends a notification with the results.

The profile you fill in during onboarding is the same profile the deduction finder’s second mode reads, so by the time processing finishes there is data for all three modes to work on.

Pile of receipts, one says not valid for travel
Photo by Duskfall Crew on Unsplash

Fixing 19 Failing Tests

The same commit fixed every test that had been failing before it, 19 in all, leaving 169 tests and 608 assertions passing. Several fixes were real bugs the tests had been reporting:

  • Deductions showed as “Deduction #N” instead of their names and descriptions.
  • Profile-matched deductions came back as $0; they now take their estimate from the catalog’s maximum amount.
  • An enum comparison bug in the dashboard’s subscription status check.
  • A route model binding clash, fixed by renaming {provider} to {emailProvider}.
  • Gmail token refresh failures now mark the connection as errored, and scheduled email sync skips inactive connections.

New tests came with the new code: feature tests for the deduction finder, Plaid statements and onboarding. By the v2.0 milestone eleven days later the suite had grown to 225 tests.

SpendifiAI

Source code for SpendifiAI, the AI-powered personal finance platform.

Frequently Asked Questions

What is a tax deduction finder?

It is a tool that compares your spending and personal situation against a list of deductions and credits the tax code allows, and flags the ones you likely qualify for. SpendifiAI’s version checks 69 items using your bank transactions, your profile and a short questionnaire.

Can AI find tax deductions automatically?

AI is good at the messy part: turning merchant names into clean categories. The deduction decision itself is better as readable rules. SpendifiAI uses AI to categorize transactions, then rule-based matching to suggest deductions you confirm yourself.

How far back can Plaid get bank transactions?

SpendifiAI’s initial Plaid transaction sync covers about 90 days. To reach a full tax year it also imports official bank statements through Plaid Statements, where the bank supports it, and removes duplicates before importing.

What are Plaid bank statements?

Plaid Statements is a Plaid product that retrieves the PDF statements a bank issues for an account. SpendifiAI downloads them, parses the transactions and imports only the ones it does not already have.

Are business meals 100% deductible?

Generally no. Most business meals are 50% deductible under current IRS rules, which is why SpendifiAI estimates them at half the matched total. Check IRS Publication 463 or your tax professional for exceptions.

Does SpendifiAI file my taxes?

No. It finds and organizes deductions, then exports them for you or your accountant. Direct IRS e-filing is explicitly out of scope in the project’s own requirements.

Building on bank data?

I built SpendifiAI’s Plaid pipeline, AI categorization and deduction engine, and the code is public. If your product needs to turn transactions into decisions, the first conversation is free.

Start the conversation