mirror of
https://github.com/actualbudget/actual.git
synced 2026-05-06 20:15:33 -05:00
[GH-ISSUE #810] [Feature] Number format, multiple accounts on the same CSV, currencies, others #14551
Closed
opened 2026-04-14 17:19:30 -05:00 by GiteaMirror
·
5 comments
No Branch/Tag Specified
master
claude/hide-default-categories-1cwBZ
matiss/crdt-source-loading
matiss/crdt-protobuf
release/26.5.0
claude/update-issue-template-ykMNn
claude/fix-issue-7667-DPXi3
cursor/formula-feedback-improvements-4223
cursor/resolve-pr-7449-ee11
claude/fix-typescript-build-error-JPtZ5
jfdoming/api-tokens-part-3
jfdoming/api-tokens-part-2
jfdoming/api-tokens-part-1
claude/speed-up-vrt-workflow-ZAyI5
claude/crdt-version-auto-publish-Ph1BH
copilot/add-repository-configs-to-packages
worktree-compressed-drifting-ritchie
worktree-mellow-strolling-dawn
matiss/browser-api
claude/api-consumer-verification-kfz1K
feature/enable-banking
cursor/transaction-table-rewrite-f077
pr-7454
claude/fix-issue-7410-LLLQ4
release/v100.0.0
revert-7350-trim-deps
revert-7220-sankey-report
revert-7242-fix/split-parent-update-corruption
revert-7281-generate-icons
claude/electron-to-tauri-migration-LjBN8
worktree-remotion
release/vv26.4.0-pre
claude/browser-compatible-api-QbhHh
claude/improve-cli-transactions-waTUY
claude/publish-react-native-ios-j8qoT
js-proxy
claude/fix-flaky-ci-job-5gDdz
react-query-rules
react-query-useSchedules
claude/nightly-theme-validation-scan-DzOGD
claude/debug-simplefin-error-ZuKzB
matiss/desktop-client-subpath-imports
claude/fix-simplefin-ssrf-T31gX
claude/release-notes-validation-X7rvR
add-claude-github-actions-1772738270730
cursor/sync-performance-notification-9899
react-query-prefs
matiss/chunked-sync-and-progress-ux
v26.2.1
copilot/sub-pr-6880
fix-react-query-clear-on-close-budget
copilot/sub-pr-6140
feat/auto-note
feat/scoped-bank-sync
cursor/desktop-transactions-react-table-1d0c
fix-exhaustive-deps-App
copilot/fix-find-replace-bug
release/v26.2.0-pre
matiss/browser-tests
mobile-fix-drag-and-drop-across-groups
budget-table-v2
PayeeAutocomplete2
pglite
bugfix/plugins/fix-plugins-sw
feat/plugins/plugins-core-package
prerelease
matiss/unicode-minus-fix
cursor/fix-actual-github-issue-6206-gemini-3-pro-preview-9c37
TransactionFormPage
cursor/implement-mortgage-and-loan-account-type-78ca
tests-update-fill-with-pressSequentially
mobile/link-modal
deps/25.11
cursor/fix-update-vrt-apply-ci-job-dispatch-b324
sync-server-plugins
cursor/propose-patch-for-github-issue-5680-2a18
fix/compiler-preserve-inner-dollar-escapes
cursor/analyze-actual-budget-issue-and-propose-fix-5b70
coderabbitai/docstrings/0c070e5
cursor/add-wip-prefix-and-comment-to-prs-d78d
jfdoming/08-21-auto-focus-on-navigate-in-all-browsers
show-totals-on-mobile-budget-banners
allow-child-transactions-make-transfer
mobile-calculator-keyboard
payee-geolocation
enhance/restore_scroll_position
dm-fix-second-click-on-mobile-new-transaction-2
scrollToLocationBudget
alert-autofix-38
tsconfig-composite
mobile-fix-uncategorized-transactions-on-tracking-budgets
server-budget-handlers
fix-sql-injection-in-cleanup-template
non-chrome-draggable-workaround
mobile-budget-page-swipe-navigation
ts-db-all
stable
dark-theme-with-brand-colors
fix-mobile-delete-group
ts-db-select
UnderKoen/reconcile-context-menu
master-before-server-merge
v25.2.1
ts-runQuery
rename-redux-hooks
UnderKoen/3557-persist-state-in-history
remove-redux-CLOSE_BUDGET
fix-exhaustive-deps-errors-FinancesApp
redux-toolkit-createSlice-backup
accounts-function-component
ts-useSplitsExpanded
loot-core-server-package
useTransactios-in-TransactionEdit
react-aria-input
move-redux-to-desktop-client
QueryState-type
fix-themes-applied-late
mobile-vrts
revert-3295-spendingCardFix
react-aria-button-4
split-payee-on-mobile
twk3/pin-apis-crdt
notes-tag-autocomplete
ts-LoadBackup
dnd-kit
package-upgrades
v26.5.0
v26.4.0
v26.3.0
v26.2.1
v26.2.0
v26.1.0
v25.12.0
v25.11.0
v25.10.0
v25.9.0
v25.8.0
v25.7.1
v25.7.0
v25.6.1
v25.6.0
v25.5.0
v25.4.0
v25.3.1
v25.3.0
v25.2.1
v25.2.0
v25.1.0
v24.12.0
v24.11.0
v24.10.1
v24.10.0
v24.9.0
v24.8.0
v24.7.0
v24.6.0
v24.5.0
v24.4.0
v24.3.0
v24.2.0
v24.1.0
v23.12.0
v23.11.0
v23.10.0
v23.9.0
v23.8.1
v23.8.0
v23.7.2
v23.7.1
v23.7.0
v23.6.0
v23.5.0
v23.4.2
v23.4.1
v23.4.0
v23.3.2
v23.3.0
v23.2.9
v23.2.5
v23.1.12
v22.12.9
Labels
Clear labels
AI generated
API
bank sync
budgeting
bug
can’t replicate
dependencies
docker
documentation
electron
experimental feature
feature
feedback
goal templates
good first issue
help wanted
importers
maintenance
needs info
needs testing
needs triage
needs votes
openid
payees
pull-request
regression
reports
responsive
rules
schedules
server
✨ merged
split transactions
tech debt
theme
transaction import
transaction reconciliation
transactions
translations
upstream
user interface
✅ approved
wontfix
Mirrored from GitHub Pull Request
Milestone
No items
No Milestone
Projects
Clear projects
No project
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: github-starred/actual#14551
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @joaociocca on GitHub (Mar 24, 2023).
Original GitHub issue: https://github.com/actualbudget/actual/issues/810
Verified feature request does not already exist?
💻
Pitch: what problem are you trying to solve?
From what I'm seeing, I'm coming from two scenarios never before imagined for Actual:
,for decimals and.for thousands and up, along with our currency (Brazilian Real) being shown as R$)From 1, I noticed a couple improvements for the CSV importer:
a. map an "Accounts" field to import each transaction on their respective account (since Actual already supports multiple accounts, it's all a matter of adding it's mapping to the importer, I'd guess)
b. allow using
\tand other characters as the CSV separator (maybe automatically identify which character is being used to separate (single? double?) quotes, and suggest that to be used for importing the file)c. (this is where 2 comes in) correctly read values from different currency formats (a field with a value of
R$1652,29will currently be read by Actual as29- which I find really curious, because I just noticed that I have already set Actual to use the decimal comma, so both my current budget and inputting a new transaction already use decimal comma)d. add Group/Category import (I see Actual's budget already has groups + categories, so they'd just need to be supported on the importer itself)
e. support for UTF8 and emoji in all text fields (from what I'm seeing at the import preview screen, an emoji like 🔴 or ⚡will currently be ignored - I see they are already supported on Actual's transaction notes, but they don't seem to be read from the CSV)
f. allow outflow to be read from absolute values (YNAB, for instance, exports an outflow as
R$1652,29instead of-R$1652,29or(R$1652,29))For 3 I haven't had issues currently because I wasn't really tracking my foreign accounts on YNAB, but I did take a look at a competitor (Money Manager Ex) and that one allows it, and I really liked that option, along with showing exchange rates (which a button click will query somewhere on the internet and update - sounds like a nice addition too)
Describe your ideal solution to this problem
I think I already did problem + ideal solutions up there, np?
Teaching and learning
I think most of my suggestions affect the import CSV function, so it'd mainly be used by new users
@j-f1 commented on GitHub (Mar 24, 2023):
Thanks for all the feedback! I think I’ve addressed all of your points below, but definitely let me know if I’m missing anything:
,and;. Do you have any other possible separators?R$1652,29should already work correctly, the underlying code grabs everything after the last.or,along with everything before that separator, then remove everything besides digits, then parses the number. Can you share the exact value from the CSV that is failing to parse?@joaociocca commented on GitHub (Mar 24, 2023):
R$1652,29and outflow ofR$1652,29enclosed in double quotes. The only manual change I've made to the CSV was changing tabs into commas.UTF-8 with BOM, same it shows for the original Register TSV file.R$1652,29example above) - it'll show Outflow preview as 0 and... AH I KNOW WHAT HAPPENS NOW! It's probably an error because the importer must not be isolating the fields in quotes!Original YNAB CSV, with tabs:

Adjusted file with commas:

Actual CSV importer preview:

So it's spliting in commas... and because YNAB exports with tabs, and not commas, it won't use double quotes to delimit the values field - and that, for dealing with the original file, wouldn't be any trouble!
But when I replace tabs with commas, there are no quotes to isolate value fields' commas from the separating commas, and then Actual will read the
,29from Outflow as the Inflow field... but this does not explain why Outflow isn't being read from the remainingR$1652value?but yeah, I think that covers it all. Off to sleep, tomorrow I'll check the json transformer and attempt to import again, thanks for that tip! <3
@j-f1 commented on GitHub (Mar 24, 2023):
It doesn’t apply any filtering if it can’t detect a comma or period in the currency amount, so it doesn’t know how to handle the
R$part. We should change that!@joaociocca commented on GitHub (Mar 24, 2023):
Considering there's the actual (tumdumts) nYNAB importer, I don't really see an issue there - specially considering that thinking about it now, well rested, after sleeping on it, feels to me like it's YNAB who did the CSV wrong - value fields should be value only, shouldn't contain strings, specially if the currency itself isn't used... and if the currency is used, it stops being a value and becomes a string, and so should be quoted.
But I guess that simply implementing the tab delimiter should be enough to clear this issue...
Moving on, I got to import my json and start using Actual... but it feels really weird for it to consider everything as executed, despite having scheduled transactions. The lack of a separator between past/today transactions and scheduled ones is also confusing. We have to really pay attention and look at the date to understand what is future scheduled transactions. And the accounts value already considers scheduled transactions as if they affected the balance today.
I think it's easier to show:
(edits)
Also, it seems ESC doesn't deselect when the date field is selected?
Oh! I just saw the schedule section and I love it! I do have a couple of suggestions for it, though. The option of "repeat until X" or "Repeat X times" (here in Brazil we have the... how do I put it? Cultural thing? of splitting a payment along several months, so it'd be really useful). And another would be to adequate dates when the scheduled date ends up being on weekends, moving them to the previous (Friday) or next (Monday) workday.
At least here, there's legal stuff about when a bill is due X date and X is a weekend or banking holiday, it automatically gets extended to the next workday.
OHHHHH this gave me another idea: add a calendar option where users can point, or import, banking holidays, to extend on that function!
Adding the notes field on the schedule would be nice too hehe or maybe allow the schedules to have a name, and then use that name as the note on the transaction!
When editing a schedule, I can tab via keyboard all the way to date. But when activating date to change when it starts, the next tab still goes to "Repeats" checkbox, instead of moving to the "Starts" date.
@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=is%3Aissue+label%3A%22needs+votes%22+sort%3Areactions-%2B1-desc
Don’t forget to upvote the top comment with 👍!