mirror of
https://github.com/actualbudget/actual.git
synced 2026-07-16 07:04:23 -05:00
[GH-ISSUE #810] [Feature] Number format, multiple accounts on the same CSV, currencies, others #49433
Closed
opened 2026-04-30 10:52:27 -05:00 by GiteaMirror
·
5 comments
No Branch/Tag Specified
master
dependabot/npm_and_yarn/npm_and_yarn-cd62b4b37a
api-browser-custom-data-dir
tabedzki/feat/replacing-month-picker-with-day-picker
delay-initial-sync-until-loaded
jfdoming/mobile-app-build
cross-version-sync-compat
jfdoming/api-tokens-part-1
jfdoming/api-tokens-part-2
jfdoming/api-tokens-part-3
jfdoming/mobile-app-updates
claude/budget-version-migration-compat-151jlr
claude/worker-error-serialization-9iqtl7
claude/react-table-library-research-afx83z
claude/issue-8401-regression-test-9nw9l3
jfdoming/mobile-app-foundation-part-1
jfdoming/mobile-app-scaffold
release
ai-fix-cleanup-def-8290
claude/relaxed-shannon-jusywa
claude/fervent-keller-s6f2fq
claude/determined-feynman-st1y9z
claude/wizardly-einstein-vi2wce
claude/sweet-albattani-7nseio
feat/bank-sync-per-budget-file
claude/affectionate-cannon-y0kc82
claude/dependabot-findings-m9pgmb
claude/mac-app-ios-publish-zjs1lz
claude/vigilant-tesla-aiiyos
depot-migrate-secrets-1781296330308
claude/quirky-cerf-v5qck7
claude/animation-removal-alternative-2etfh1
claude/netlify-preview-comments-consolidate-9XPYa
osc/7391-error-boundaries-reports
claude/pensive-dijkstra-7DYui
claude/server-app-version-mismatch-HTCGv
claude/pr-8027-review-feedback-mELuO
claude/zealous-wozniak-e5pO0
claude/intelligent-heisenberg-BSHJq
claude/translation-download-refactor-jFRsO
claude/mobile-performance-ideas-G9PAO
claude/github-issue-7988-5A5ly
blacksmith-migration-ff70d2d
claude/great-mayer-KRvOk
claude/react-native-ios-compilation-fcJh5
claude/serene-goldberg-58xv0
claude/kind-euler-LVG3K
release-automation/edge-nightly
7710-bundle-migrations
claude/fix-docker-build-error-WMfed
claude/llm-compatible-release-notes-t20Nr
7710-tests-tdd
cursor/transaction-table-rewrite-f077
claude/plan-ci-secure-context-OtEe1
claude/fix-issue-7667-DPXi3
cursor/resolve-pr-7449-ee11
claude/fix-typescript-build-error-JPtZ5
copilot/add-repository-configs-to-packages
worktree-compressed-drifting-ritchie
claude/api-consumer-verification-kfz1K
pr-7454
claude/fix-issue-7410-LLLQ4
revert-7281-generate-icons
react-query-useSchedules
copilot/sub-pr-6140
package-upgrades
v26.7.0
v26.6.0
v26.5.2
v26.5.1
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
tech-support
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#49433
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 👍!