[GH-ISSUE #557] [Feature] Implement feature to import "Category" #14468

Closed
opened 2026-04-14 17:12:38 -05:00 by GiteaMirror · 11 comments
Owner

Originally created by @rich-howell on GitHub (Jan 22, 2023).
Original GitHub issue: https://github.com/actualbudget/actual/issues/557

Discussed in https://github.com/actualbudget/actual/discussions/184

Originally posted by agichim May 6, 2022
Hi,

I'm running this locally and it's beautiful. Been using GNUCash so far, but I'm keen on trying Actual and would like to be able to import a Category column too when importing a .csv file.

Originally created by @rich-howell on GitHub (Jan 22, 2023). Original GitHub issue: https://github.com/actualbudget/actual/issues/557 ### Discussed in https://github.com/actualbudget/actual/discussions/184 <div type='discussions-op-text'> <sup>Originally posted by **agichim** May 6, 2022</sup> Hi, I'm running this locally and it's beautiful. Been using GNUCash so far, but I'm keen on trying Actual and would like to be able to import a Category column too when importing a .csv file. </div>
GiteaMirror added the needs votesfeaturehelp wantedimporters labels 2026-04-14 17:12:38 -05:00
Author
Owner

@github-actions[bot] commented on GitHub (May 1, 2023):

Thanks for sharing your idea!

This repository is now using lodash style issue management for enhancements. This means enhancement issues will now be closed instead of leaving them open. This doesn’t mean we don’t accept feature requests, though! We will consider implementing ones that receive many upvotes, and we welcome contributions for any feature requests marked as needing votes (just post a comment first so we can help you make a successful contribution).

The enhancement backlog can be found here: https://github.com/actualbudget/actual/issues?q=label%3A%22needs+votes%22+sort%3Areactions-%2B1-desc+

Don’t forget to upvote the top comment with 👍!

<!-- gh-comment-id:1530134353 --> @github-actions[bot] commented on GitHub (May 1, 2023): :sparkles: Thanks for sharing your idea! :sparkles: This repository is now using lodash style issue management for enhancements. This means enhancement issues will now be closed instead of leaving them open. This doesn’t mean we don’t accept feature requests, though! We will consider implementing ones that receive many upvotes, and we welcome contributions for any feature requests marked as needing votes (just post a comment first so we can help you make a successful contribution). The enhancement backlog can be found here: https://github.com/actualbudget/actual/issues?q=label%3A%22needs+votes%22+sort%3Areactions-%2B1-desc+ Don’t forget to upvote the top comment with 👍!
Author
Owner

@damianon commented on GitHub (Aug 20, 2023):

I would love to see this feature. Thinking of migrating from buxfer, but without automatically applying the category there's no way I'm going to re-categorize thousands of transactions 😅

<!-- gh-comment-id:1685228071 --> @damianon commented on GitHub (Aug 20, 2023): I would love to see this feature. Thinking of migrating from buxfer, but without automatically applying the category there's no way I'm going to re-categorize thousands of transactions 😅
Author
Owner

@JavaDogWebDesign commented on GitHub (Aug 31, 2023):

Although I manually updated 8000 transactions with proper categories after migrating from Financier, I am going to upvote this feature so future users will not have this problem.

The thing is that the categories MUST be created on the budget page prior to the import or force-create new categories upon importing (with new categories). If the category does not exist on the budget screen, then how will the importer know to label the transaction with the proper category - likely the software will have to auto-create the category.

Thankfully it's very easy to mass update/merge catagories if they're wrong.

<!-- gh-comment-id:1701060743 --> @JavaDogWebDesign commented on GitHub (Aug 31, 2023): Although I manually updated 8000 transactions with proper categories after migrating from Financier, I am going to upvote this feature so future users will not have this problem. The thing is that the categories MUST be created on the budget page prior to the import or force-create new categories upon importing (with new categories). If the category does not exist on the budget screen, then how will the importer know to label the transaction with the proper category - likely the software will have to auto-create the category. Thankfully it's very easy to mass update/merge catagories if they're wrong.
Author
Owner

@heyboots commented on GitHub (Oct 30, 2023):

I also really need this, I don't want to have to go through and re-categorize 6400+ register entries when I migrate over from Financier, and I don't currently have any other way to import my whole 10-year budget aside from .csv account by account.

<!-- gh-comment-id:1785699523 --> @heyboots commented on GitHub (Oct 30, 2023): I also really need this, I don't want to have to go through and re-categorize 6400+ register entries when I migrate over from Financier, and I don't currently have any other way to import my whole 10-year budget aside from .csv account by account.
Author
Owner

@youngcw commented on GitHub (Feb 2, 2024):

Update: You can import categories from csv now, but only categories that are already on the budget. It is still not possible to create new categories via an import.

<!-- gh-comment-id:1924701251 --> @youngcw commented on GitHub (Feb 2, 2024): Update: You can import categories from csv now, but only categories that are already on the budget. It is still not possible to create new categories via an import.
Author
Owner

@kriswdue commented on GitHub (Sep 15, 2024):

This is still needed.

Update: You can import categories from csv now, but only categories that are already on the budget. It is still not possible to create new categories via an import.

This feature is still very needed!!

<!-- gh-comment-id:2351767412 --> @kriswdue commented on GitHub (Sep 15, 2024): This is still needed. > Update: You can import categories from csv now, but only categories that are already on the budget. It is still not possible to create new categories via an import. This feature is still very needed!!
Author
Owner

@MrRickle commented on GitHub (Nov 13, 2024):

yes, I am using GnuCash, but would like to try AB, seems much nicer , but am not going to manually add all the categories.

<!-- gh-comment-id:2474886462 --> @MrRickle commented on GitHub (Nov 13, 2024): yes, I am using GnuCash, but would like to try AB, seems much nicer , but am not going to manually add all the categories.
Author
Owner

@mcalligator commented on GitHub (Apr 20, 2025):

Issue [Feature]: CSV Importer add missing categories #2226 requests the ability to auto-create Categories that are not already in the budget.

<!-- gh-comment-id:2817338570 --> @mcalligator commented on GitHub (Apr 20, 2025): Issue [[Feature]: CSV Importer add missing categories #2226](https://github.com/actualbudget/actual/issues/2226) requests the ability to auto-create Categories that are not already in the budget.
Author
Owner

@andersoal commented on GitHub (Apr 26, 2025):

Thinking about the feature, it appears that a simple solution would automatically create a group, something like Orphan and create all the categories that are not in the budget yet. After this, it is possible to reorganize/rename the categories in different groups.

For example, GNUCash export CSV with accounts on different levels separated with :, like Passive:Loan:Contract X

Category
- Bills
-- Energy
-- Internet
- Orphan
-- Passive:Loan:Contract X

Another feature related is allow to select imported category on Rules, today there is imported payee, so it would be possible to define rules to match the categories that are being imported.

The option to import/export rules will make it easier to write rules with help ChatGPT, Gemini #3591

<!-- gh-comment-id:2831690614 --> @andersoal commented on GitHub (Apr 26, 2025): Thinking about the feature, it appears that a simple solution would automatically create a group, something like `Orphan` and create all the categories that are not in the budget yet. After this, it is possible to reorganize/rename the categories in different groups. For example, GNUCash export CSV with accounts on different levels separated with `:`, like `Passive:Loan:Contract X` | Category | |---------------------------| | - Bills | | -- Energy | | -- Internet | | - Orphan | | -- Passive:Loan:Contract X | Another feature related is allow to select `imported category` on Rules, today there is `imported payee`, so it would be possible to define rules to match the categories that are being imported. The option to import/export rules will make it easier to write rules with help ChatGPT, Gemini #3591
Author
Owner

@balthanon commented on GitHub (Dec 29, 2025):

Not sure why this didn't come up when I searched these issues earlier, but I created a separate feature request in https://github.com/actualbudget/actual/issues/6511 that has some of my thoughts on this because I didn't spot it.

The last comment in here matches what I was thinking primarily-- basically create an import group that gets any categories that don't exist already and then we can use rules on those categories to move the transactions where we actually want them or just shift them into our own structure. I do like the "imported category" idea too-- that might be sufficient for actually ensuring the data isn't lost and better for rule based handling.

I think it would be useful to have a stand alone function for importing categories too, since that then allows people to create budget structures to help people get a quick start on budgeting with Actual Budget if they don't want to manually create everything themselves.


(Was interested in pulling it from quicken files too, but I just opened one up and apparently they don't bother including that (at least for the export I looked at). So that's not happening.)

<!-- gh-comment-id:3696757431 --> @balthanon commented on GitHub (Dec 29, 2025): Not sure why this didn't come up when I searched these issues earlier, but I created a separate feature request in https://github.com/actualbudget/actual/issues/6511 that has some of my thoughts on this because I didn't spot it. The last comment in here matches what I was thinking primarily-- basically create an import group that gets any categories that don't exist already and then we can use rules on those categories to move the transactions where we actually want them or just shift them into our own structure. I do like the "imported category" idea too-- that might be sufficient for actually ensuring the data isn't lost and better for rule based handling. I think it would be useful to have a stand alone function for importing categories too, since that then allows people to create budget structures to help people get a quick start on budgeting with Actual Budget if they don't want to manually create everything themselves. --- (Was interested in pulling it from quicken files too, but I just opened one up and apparently they don't bother including that (at least for the export I looked at). So that's not happening.)
Author
Owner

@x-rous commented on GitHub (Mar 28, 2026):

I implemented a mass editing and import/export tool for Actual Budget (Categories & Groups, Accounts, Payees, and Rules).

You can check it out here: Actual Bench, would happy to see this replicated inside Actual it self.

Features

Connection Management

  • Two-step connect flow: validate server credentials, then select from a list of available budgets
  • Save multiple server connections and switch between them with one click
  • Optional encryption password for end-to-end encrypted budgets
  • Remove saved connections individually
  • Per-connection query cache and staged data scoping

Mass Rules Management

  • Create, edit, and delete rules with a full condition/action builder
  • Three execution stages: pre, default, post
  • Conditions support AND / OR logic across fields: payee, category, account, amount, imported payee, and more
  • Operators include is, contains, matches, lt, gt, oneOf, and others
  • Merge multiple rules into one via a dedicated merge dialog
  • Filter the rules list by payee or category (links from Payees/Categories pages)
  • Resolved entity names displayed throughout (no raw IDs)
  • CSV import and export

Mass Accounts Management

  • Create, rename, and delete accounts
  • Toggle on-budget / off-budget status
  • Open and close accounts
  • Bulk select with bulk close, reopen, and delete
  • Filter by name, status (open/closed), and budget type
  • Sort by name, status, or budget type
  • Paste tab-separated data from Excel / Google Sheets
  • CSV import and export
  • Duplicate name detection

Mass Payees Management

  • Create, rename, and delete payees
  • Transfer payees (auto-generated for inter-account transfers) shown separately
  • Filter by name, type (regular / transfer), and whether a payee has associated rules
  • Rules count displayed per payee with a direct link to filtered rules view
  • Bulk delete
  • CSV import and export
  • Duplicate name detection

Mass Categories & Groups Management

  • Create and manage category groups (income or expense type)
  • Create categories within groups
  • Rename groups and categories inline
  • Toggle visibility (hidden / visible) per category or per group
  • Collapsible group rows with expand/collapse all shortcut
  • Filter by name, type, and visibility
  • Sort by name
  • CSV import and export with full group structure preserved
  • Duplicate group name prevention

Staged Editing

  • All changes (creates, updates, deletes) are held locally until explicitly saved
  • Colour-coded rows: green = new, amber = updated, strikethrough = deleted, red = validation error
  • Save all staged changes to the server in one action
  • Discard all staged changes to revert to server state
  • Full undo / redo history within a session

CSV Import / Export

  • Every entity page (Rules, Accounts, Payees, Categories) has Export and Import buttons
  • Exported files are UTF-8 CSV with BOM for Excel compatibility
  • Imported rows are staged, nothing is saved until you click Save
  • 5 MB file size limit with per-row validation and skip reporting
  • Sample CSV files included for testing with a fresh Actual Budget setup

Keyboard & Table UX

  • Inline cell editing triggered by double-click, Enter, or F2
  • Full keyboard navigation: arrow keys, Tab, Escape
  • Multi-select rows with checkboxes; select-all toggle
  • Fill-down selected cells across multiple rows
  • Bulk-add multiple empty rows at once

Navigation & Layout

  • Collapsible sidebar with links to all sections
  • Top bar shows active connection and Save / Discard controls
  • Toast notifications for success, error, and warning states
  • Entity counts shown in page headers
<!-- gh-comment-id:4148880325 --> @x-rous commented on GitHub (Mar 28, 2026): I implemented a mass editing and import/export tool for Actual Budget (Categories & Groups, Accounts, Payees, and Rules). You can check it out here: [Actual Bench](https://github.com/x-rous/actual-bench), would happy to see this replicated inside Actual it self. Features **Connection Management** - Two-step connect flow: validate server credentials, then select from a list of available budgets - Save multiple server connections and switch between them with one click - Optional encryption password for end-to-end encrypted budgets - Remove saved connections individually - Per-connection query cache and staged data scoping **Mass Rules Management** - Create, edit, and delete rules with a full condition/action builder - Three execution stages: pre, default, post - Conditions support AND / OR logic across fields: payee, category, account, amount, imported payee, and more - Operators include is, contains, matches, lt, gt, oneOf, and others - Merge multiple rules into one via a dedicated merge dialog - Filter the rules list by payee or category (links from Payees/Categories pages) - Resolved entity names displayed throughout (no raw IDs) - CSV import and export **Mass Accounts Management** - Create, rename, and delete accounts - Toggle on-budget / off-budget status - Open and close accounts - Bulk select with bulk close, reopen, and delete - Filter by name, status (open/closed), and budget type - Sort by name, status, or budget type - Paste tab-separated data from Excel / Google Sheets - CSV import and export - Duplicate name detection **Mass Payees Management** - Create, rename, and delete payees - Transfer payees (auto-generated for inter-account transfers) shown separately - Filter by name, type (regular / transfer), and whether a payee has associated rules - Rules count displayed per payee with a direct link to filtered rules view - Bulk delete - CSV import and export - Duplicate name detection **Mass Categories & Groups Management** - Create and manage category groups (income or expense type) - Create categories within groups - Rename groups and categories inline - Toggle visibility (hidden / visible) per category or per group - Collapsible group rows with expand/collapse all shortcut - Filter by name, type, and visibility - Sort by name - CSV import and export with full group structure preserved - Duplicate group name prevention **Staged Editing** - All changes (creates, updates, deletes) are held locally until explicitly saved - Colour-coded rows: green = new, amber = updated, strikethrough = deleted, red = validation error - Save all staged changes to the server in one action - Discard all staged changes to revert to server state - Full undo / redo history within a session **CSV Import / Export** - Every entity page (Rules, Accounts, Payees, Categories) has Export and Import buttons - Exported files are UTF-8 CSV with BOM for Excel compatibility - Imported rows are staged, nothing is saved until you click Save - 5 MB file size limit with per-row validation and skip reporting - Sample CSV files included for testing with a fresh Actual Budget setup **Keyboard & Table UX** - Inline cell editing triggered by double-click, Enter, or F2 - Full keyboard navigation: arrow keys, Tab, Escape - Multi-select rows with checkboxes; select-all toggle - Fill-down selected cells across multiple rows - Bulk-add multiple empty rows at once **Navigation & Layout** - Collapsible sidebar with links to all sections - Top bar shows active connection and Save / Discard controls - Toast notifications for success, error, and warning states - Entity counts shown in page headers
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/actual#14468