Help center

Bulk Updates

Filter a large expense set and change classifications, years, banks, or businesses in one operation.

Bulk Updates is a dedicated page for finding and editing many expenses at once. Use it when you need to fix or move records across many months, banks, or businesses — beyond what the in-page bulk actions in Manual Entry can do.

Same-bank rule: Every bulk action operates on a single bank account. If your selection spans more than one bank, the action is rejected with “All expenses must belong to the same bank.” Filter to one bank before selecting rows.


Open the page

Open Bulk Updates from the Entries section of the sidebar. The breadcrumb is Home → Entries → Bulk Updates. It’s a separate screen from Manual Entry, built specifically for cross-record work.


Step 1 — Filter down to the expenses you want

Every search starts with three required scope filters at the top of the page:

FilterWhat it sets
BusinessWhich client/business the expenses belong to.
BankWhich bank account the expenses came from.
YearThe tax year of the expenses.

The Search button stays disabled until all three are set.

Then narrow further with any combination of optional filters:

FilterWhat it matches
ProviderFree-text search against the vendor/merchant name.
MethodPayment method — ACH, Credit Card, Check, Cash, etc.
CategoryCurrent IRS Schedule C category. Pick Uncategorized to find rows that still need a category assigned.
DescriptionFree-text search against the expense description.
MonthA specific calendar month (January through December).
AmountCombine the amount with one of three operators — Greater than, Less than, or Equal to. Thousands separators are added automatically as you type.

Click Search to load the matching expenses. Results are paginated. The URL is updated as you filter, so you can bookmark or share a specific search.

Auto-search: If you arrive at the page with business, bank, and year already in the URL (e.g. from a saved bookmark), Bulk Updates runs the search automatically so you don’t have to click again. All three required scope filters must be present.


Step 2 — Select expenses

Use the checkboxes at the start of each row to select the expenses you want to act on. You can select rows individually or use shift-click to select a contiguous range at once.

Once you have rows selected, the bulk action button and the Delete button appear above the table.

Maximum selection: A single bulk action processes up to 1,000 rows. Run separate searches or split the action if you need more.


Step 3 — Pick a bulk action

Open the bulk action modal with the bulk button. At the top of the modal, choose one of four actions by clicking its tab:

Classify

Reassign every selected expense to a different IRS Schedule C category. This is the most common bulk action — useful for cleaning up after an import that was miscategorized.

Within the Common Classification section you can also:

  • Change the payment method (and, for credit cards or checks, the last-4 digits or check number).
  • Replace the provider — or tick Keep existing provider to leave each row’s provider untouched.
  • Apply a global description that’s sent to every row at once.
  • Edit the date, amount, or description per row in the Individual Item Details table.
  • Remove individual rows from the selection without closing the modal (each row has an × button).

Depreciation guard: You cannot reclassify a regular expense into depreciation (category ID 1), or a depreciation out of depreciation, through this modal. The server rejects it and returns the offending rows as skipped_items without changing them. Those edits touch a multi-year asset schedule and must go through the dedicated depreciation flow. Mixed methods: If your selection contains both categorized and uncategorized expenses (which use different method sets), a warning appears: “Your selection has categorized and uncategorized expenses. Select a method before proceeding.” Pick a single method to proceed.

Change Year

Move every selected expense to a different tax year. Simple-C shifts each expense’s date to keep its month and day but change its year — useful when transactions were imported under the wrong year.

  • For depreciation rows, the entire reference-year schedule is shifted along with the acquisition date so the multi-year cascade stays consistent.
  • Legacy depreciation rows (pre-migration, no asset link) can’t be shifted and are counted as skipped.

Reassign Bank

Move every selected expense to a different bank account within the same business. Pick a target bank from the dropdown — the current bank is excluded from the list.

  • Depreciation rows move cleanly: their asset/schedule has no bank linkage, so only the expense’s bank_id changes.
  • If you need to move expenses to a bank in a different business, use Reassign Business instead — it moves the expenses to a different business and one of its banks.

Reassign Business

Move every selected expense to a different business entirely. This action is only available to users with the Administrator or Admin Simple C role. If you don’t have either role, a lock icon and the message “This feature is only available for the company administrator.” appear in place of the form.

In this panel you pick two things:

  1. Target Business — search by name and pick the destination business from the dropdown.
  2. Target Bank — once a business is picked, the dropdown fills with that business’s banks. Choose the bank the expenses should land on.

Both regular expenses and depreciation rows are moved:

  • Regular expenses are re-stamped with the target business, office, and bank in a single update.
  • Depreciation rows keep their asset and reference-year schedule intact — they’re re-stamped to the target business, office, and bank via the dedicated depreciation action.
  • Legacy depreciation rows (pre-migration) can’t be moved and are reported as skipped.

Same company only: You can reassign between businesses within the same company — you cannot move expenses across different companies. The source and target business must share the same company.


Bulk delete

Aside from the four bulk actions, the table itself has a Delete button (trash icon). Select rows, click it, and confirm the prompt to remove the selected expenses.

Deleting a depreciation through Bulk Updates also cascades to its asset and full reference-year schedule, just like in Manual Entry:

  • The linked asset is deleted.
  • Every depreciation reference-year row is deleted.
  • Every expense row tied to those reference years is deleted.
  • The confirmation prompt tells you how many rows will be removed.

Legacy depreciation rows (no asset link) can’t be cascade-deleted and are reported as skipped with a reason.


What Bulk Updates cannot do

  • It does not let you move expenses across companiesReassign Business stays within the same company.
  • It does not let you edit free-text descriptions or change the payment method as standalone actions — those edits live inside the Classify action’s Common Classification and per-row panels.
  • It does not let you reclassify rows into or out of depreciation — use the dedicated depreciation flow for those changes.

Tips & troubleshooting

SituationRecommendation
You need to reclassify records across multiple banks at onceRun separate searches per bank. Bulk actions require every selected row to come from the same bank.
Some rows were skipped after Change Year or Reassign BusinessDepreciation rows can be skipped if their asset is locked or disposed, or if the new year falls outside their reference-year schedule. Try the edit individually or recreate the depreciation.
The Reassign Business action is greyed out / shows a lockOnly users with the Administrator or Admin Simple C role can reassign between businesses. Ask your administrator to perform the move.
”Maximum 1000 items allowed”Split your selection into batches of 1,000 or fewer and run the action again.
For lighter, in-context cleanupThe Bulk operations inside Manual Entry (bulk classify, bulk delete, move-to-income) are often faster when you’re already working in a month.
The page shows no results even after searchingConfirm the Business, Bank, and Year scope filters are all set. If any is missing, the search button stays disabled and no results load.