buckets / application

Buckets Desktop Application
https://www.budgetwithbuckets.com
185 stars 2 forks source link

Support multiple currencies #108

Open iffy opened 6 years ago

iffy commented 6 years ago

Imported from https://trello.com/c/BlGMvOTN

Limezy commented 6 years ago

A first step to support multiples currencies would be to allow off-budget accounts not to have the same currency as the one used by Buckets for budgeting.

Then, you could add a new transaction type, "off-budget transfer" on which we could choose :

By the way, would be nice to split "on" and "off" budgets on the account drop down list At the same time, this work would solve the "off budget" transfer bug #213

This is all I would need to consider having a full "multi-currency support" from Buckets.

Indeed, say I'm having bank accounts in two countries, A and B.

  1. I will make two Buckets budgets, one for A, one for B
  2. I will make one or several "Transfers to B" off-budget accounts in A
  3. I will make one or several "Transfers to A" off-budget accounts in B
  4. It will give me a very simple and comprehensive view of my money flows between both countries

Actually this is already what I do. However I need to do everything manually !

iffy commented 6 years ago

@Limezy thanks for this description (it's really helpful). I could perhaps even allow one budget file to modify another budget file. For instance, if I have my "My USD Budget.buckets" file open something like:

screen shot 2018-05-22 at 9 32 08 am

With this method, you wouldn't have to have off-budget accounts for each currency in your budget file, maybe?

Limezy commented 6 years ago

I could perhaps even allow one budget file to modify another budget file. For instance, if I have my "My USD Budget.buckets" file open something like:

This would precisely make my dreams come true ! 🍾

In fact, you could allow accounts from a Buckets file to be added as off-budget accounts in another Buckets file. This would make Buckets a very powerful multicurrency tool while keeping simple and sticking to its basic philosophy. No need to get deep into exchange rates, bank fees... We just have to manage two different currency-based budgets in parallel.

This could also be quite helpful for some families or couples that (for some reasons) want to keep their budgets separated, yet make transfers to eachother on a regular basis.

iffy commented 6 years ago

@Limezy in this scenario, if you link two budget files together, should I automatically add each of the other file's accounts as off-budget? Or make you choose which ones are added?

Limezy commented 6 years ago

I would say choose which ones are added. I can think of several accounts (like the Chinese AliPay virtual money) I will never use for international transfers.

josh929800 commented 4 years ago

I would like multi-currency support with the ability to budget every dollar. In YNAB we have 3 budgets setup USD (Our Primary Currency), NIS (Where we are living now), and Other (mostly for all the other currencies that we have Euros, Pounds, etc). We record each nonUSD transaction in the NIS or the other budget just to keep track of how much money we have left in each currency. We also convert it to USD and record it in our USD budget so that it will actually come out of our budget.

The way we calculate the exchange rate is overly simple we track how much primary currency did the secondary currency cost. If you exchanged 100 USD for 50 of any other currency no matter what happens to the exchange rate until you have spent that 50 it cost you 100 USD. Let's say I spend 25 of our secondary currency, for the purposes of the budget that transaction cost me 50 USD. You only have the possibility of realizing a difference in the exchange rate when converting back to the primary currency. For example, if I exchange our secondary currency 25 for 75 USD I would have received a positive adjustment of $25. If I exchange 25 for $25 I have a negative $25 adjustment. Just like stocks can go up or down you only realize the gain or loss when you sell the stock. This method works even if we exchange money from a secondary currency to another secondary currency because we are keeping track of how much in the primary currency that secondary and now new secondary currency has cost us. The budget looks at the primary currency column to determine how much to debit/credit a budget account.

The exchange rate is calculated when a transfer occurs from a budgeted account or could be entered manually at the current exchange rate if the income in the secondary currency. e.g. If I get paid in a new currency for services rendered and I choose not to transfer that income back into my primary currency for the purposes of budgeting that money I should pretend to convert it back to the primary currency for the sake of the budget. If I am pulling money out of the ATM from my primary currency into a secondary currency then I have a real exchange rate that is easily calculated by dividing the amount of secondary currency acquired by the amount of the primary currency transferred. As money is spent in the secondary currency it is divided by the exchange rate to get the amount it costs in the primary currency.

Account Currency Description Credit or Debit in primary currency Credit or Debit secondary currency Balance primary Balance secondary Exchange Rate: (Balance primary / Balance secondary)
Checking USD ATM -989.00 USD -989.00 USD 2000.00 USD 2000.00 USD 1
NIS Cash NIS ATM 989.00 USD 3400 NIS 989.00 USD 3400 NIS 3.4379
NIS Cash NIS Rent -872.63 USD -3000 NIS 116.35 USD 400 NIS 3.4379
Checking USD ATM -1003.00 USD -1003.00 USD 997.00 USD 997.00 USD 1
NIS Cash NIS ATM 1003.00 USD 3400 NIS 1119.35 USD 3800 NIS 3.3948
NIS Cash NIS Exchange -883.70 USD -3000 NIS 235.65 USD 800 NIS 3.3948
JOD Cash JOD Exchange 883.70 USD 608.47 JOD 883.70 USD 608.47 JOD 1.4523
Limezy commented 4 years ago

@Limezy thanks for this description (it's really helpful). I could perhaps even allow one budget file to modify another budget file. For instance, if I have my "My USD Budget.buckets" file open something like:

screen shot 2018-05-22 at 9 32 08 am

With this method, you wouldn't have to have off-budget accounts for each currency in your budget file, maybe?

Hi @iffy, I know you are very busy at the moment with all the future mobile companion apps to come ! However, any chance to see that feature coming ? Is it something complicated to implement ?

iffy commented 4 years ago

Hi @Limezy! It's not terribly complicated, but I think it will come after the mobile apps and #101 and #201

iffy commented 6 months ago

@josh929800 I know you posted on this nearly 5 years ago, so if you don't answer, I understand. But I'm hoping to add multiple currency support and your method for tracking things is very interesting to me. Where do you keep track of the exchange rate (the last column in your table)? Do you just keep it in a transaction note? Or in a separate app?

And @Limezy or anyone else:

My current thinking is to allow accounts and buckets to only accept transactions in a single currency (whatever that currency is). So when making, say, a "Food" bucket, I would have to specify that it's a USD bucket and then any deposits or withdrawals would only ever be USD. Same with a "Checking" account. If I set it up as a JPY account, then it would only ever hold JPY.

Does this match the reality of your life with multiple currencies?

For instance, do you spend money on food in multiple currencies? If so, would it be acceptable to have a bucket per currency?

This is a fake mockup, but would mixed currencies like this be ideal?

Screen Shot 2024-03-13 at 10 52 27 PM
Limezy commented 6 months ago

Wow, that's so great to see things coming back to life on this matter !

For instance, do you spend money on food in multiple currencies?

Yes. During 2 months in France I have food expenses in €, during 10 months in Thailand I have food expenses in THB

If so, would it be acceptable to have a bucket per currency?

Yes. Both markets realities, costs are very different, so it makes sense to keep everything separate. We could also imagine only one bucket, called "food", that has all food related transactions, but for which every computations would be having two results or more, one on each currency. So it would act as a single bucket when categorizing, but as two or three different buckets for the rest. I don't know if it's clear !

jmfitzmaurice commented 5 months ago

Restricting accounts and buckets to a single currency each makes perfect sense. The only time I want to combine them is when looking at net worth.

Hainesy commented 3 months ago

I get paid a salary in one currency, and I also get a "benefit" card each month in another currency. I spend these indiscriminately across budgets, so the bucket-per-currency solution would not help my situation much.

juanfsc commented 3 months ago

I sent an email recently without knowing this was open, I really hope this is available in the near future.

I like the idea of having buckets and accounts for a specific currency, although a way to keep them connected if needed would be to:

when dealing with conversions from currencies to other, seeing the average exchange rate would be great too.