Skip to main content
Help Center

Categorizing Expenses

Understand CRA categories, auto-classification, and how to make manual corrections.

CRA T1 General Categories

ExpenseFlow aligns its categories directly with the T2125 (Statement of Business or Professional Activities), the form self-employed individuals attach to their T1 return. This means your expense totals map directly to the lines on your tax form with no re-sorting required.

Advertising

Marketing campaigns, website costs, promotional materials, SEO services

Meals & Entertainment

Business meals and client entertainment (50% deductible)

Bad Debts

Uncollectible invoices previously reported as income

Insurance

Professional liability, E&O, commercial general liability premiums

Interest & Bank Charges

Loan interest, bank service fees, merchant processing fees

Business Tax, Fees, Licenses & Memberships

Municipal business licences, professional dues, trade certifications, memberships

Office Expenses

Stationery, printer supplies, software subscriptions, small equipment

Professional Fees

Accounting, legal, and other professional services

Rent

Office rent, co-working space, storage

Repairs & Maintenance

Equipment repairs, maintenance services

Salaries & Wages

Employee compensation and contractor payments

Travel

Flights, hotels, transportation for business travel

Telephone & Utilities

Phone, internet, and utility bills (business portion)

Motor Vehicle Expenses

Fuel, insurance, maintenance for business vehicle use

Home Office Expenses

Prorated rent, utilities, insurance, and maintenance for your home workspace (T2125 Part 7, Line 9945)

Internal Transfer

Transfers between your own accounts. Excluded from expense totals.

Personal (Non-Deductible)

Personal expenses tracked but excluded from your tax reports

Income (Non-Expense)

Revenue deposits — tracked separately from expenses

Other Expenses

Miscellaneous business expenses or uncategorized transactions

Manual Categorization

To change a transaction's category, click the category dropdown in the transaction row and select the correct category. Changes are saved immediately. You can also select multiple transactions using the checkboxes and use the bulk action bar to categorize them all at once, which is useful after uploading a new statement.

Marking Personal Expenses

If a transaction is personal and not business-related, categorize it as Personal (Non-Deductible). Personal transactions are tracked in your database but are excluded from your deductible expense totals and do not appear in your tax export by default. You can choose to include them when exporting if you want a full transaction record.

Internal Transfers

Use Internal Transfer for transactions that move money between your own accounts. Common examples include paying your business credit card from your chequing account, or moving funds between a savings account and your operating account. Internal transfers are excluded from your deductible expense totals and have no HST calculated, because they represent balance movements rather than actual spending.


How the Classification Algorithm Works

ExpenseFlow uses a two-layer approach to categorize your transactions automatically. Understanding how this works helps you know exactly what data leaves your device and what stays local.

Layer 1: Keyword Rules

When you upload a statement, a set of keyword rules runs on the server. These rules match common Canadian merchant names and transaction descriptions to the appropriate CRA category. For example, a transaction containing "SHELL" or "PETRO-CANADA" is categorized as Motor Vehicle Expenses. "TIM HORTONS" or "MCDONALD" becomes Meals and Entertainment. "BELL" or "ROGERS" becomes Telephone and Utilities.

These rules are maintained by the ExpenseFlow team and improve over time as we encounter new merchant patterns.

Layer 2: Browser-Side Naive Bayes Classifier

When you are on the Transactions page, a Naive Bayes machine learning classifier runs entirely inside your browser. It analyzes transaction descriptions and suggests the most likely category based on patterns it has learned from your corrections.

Every time you manually correct a category, the classifier learns from that correction in real time. Within the same session, subsequent transactions with similar descriptions will receive better suggestions immediately.

This model runs entirely in your browser. The trained model is stored in your browser's local storage. It is never transmitted to ExpenseFlow's servers.

Shared Pattern Learning

When you manually correct a transaction's category, ExpenseFlow records an anonymized pattern. This pattern consists of a normalized version of the transaction description (stripped of amounts, dates, and personal identifiers) mapped to the category you selected.

These anonymized patterns are shared across all users to warm-start the browser classifier. The next time you open the Transactions page, the classifier downloads the most recent shared patterns and uses them to make better suggestions from the first transaction you review.

What is shared: normalized text patterns and category labels only. What is never shared: transaction amounts, dates, your account information, or any personally identifiable data.

Your Privacy

Your actual transaction data, including amounts, dates, descriptions, and category assignments, is stored securely in your account on ExpenseFlow's servers in Canada. Only you can see your transactions. The anonymized patterns shared for classifier improvement contain no financial amounts or personally identifiable information.

Your personal browser-side classifier model is stored in your browser's local storage. You can reset it at any time by clearing your browser's site data for ExpenseFlow. This will not affect your transaction data, only the locally trained model.