having arbitrary metadata property for transactions
I think having arbitrary metadata property for transactions will allow extending YNAB in ways that are currently not optional. For me, with this property It will be possible to support currency conversions an bypass the single currency thing. This is what I was planning:
- Create an application that scrape and import transactions of institutes that are not supported by direct import.
- Complete support for currency conversion:
- Automatically convert any transaction to the main currency with the relevant conversion rate.
- Handle transfers of converted transactions correctly.
Goal #2.2 - as explained in article Multiple Currencies:
When you reconcile the secondary currency account, get a currency conversion of the total bank balance and use that as the reconciliation figure. Use the memo notes you have made to mark the items as cleared and check they match your bank.
To achieve this we need to have the original amount stored on the transaction. Otherwise it will be impossible to find which transactions were paid as part of the transaction.
Currently we can use only the import_id and memo properties but both of them are not suitable (as the user can change the memo property and for the import_id property it should include the amount as shown to the user). So basically we are missing a property that will hold the original amount and the original currency.
Primary currency = USD
Transaction A -> 7 ILS (converted to 2 USD with 3.5 conversion rate)
Transaction B -> 12 ILS (converted to 3 USD with 4 conversion Rate)
Transaction C -> 37 ILS (converted to 10 USD with 3.7 conversion Rate)
Transfer of 57 ILS to that account can be recognized only if we traverse on the existing transactions and find that the sum of A + B + C is 57 in the original amount and from that figure the fluctuations in the currency conversion rates
The other goals can be achieved with the existing API:
Goal #1 - this can be achieved with the existing API support
Goal #2.1 - this can be achieve by adjusting the transaction amount property. To let the user know what happens we will add a memo including the original amount and the conversion rate
I hope that I managed to simplify the idea
What do you think?
Eran - you've definitely given this some thought. Nice! We don't currently have plans to introduce a metadata field for transactions but, as you mentioned, the memo field could be used for this purpose. Also, there is this project that does currency conversion that you might want to take a look at: Multi-currency for YNABReply