How should I record invoices in foreign currency in GNUCash?
"The solution I've come up with is to keep income in CAD, and Accounts Receivable in USD.  Every time I post an invoice it prompts for the exchange rate. I don't know if this is ""correct"" but it seems to be preserving all of the information about the transactions and it makes sense to me.  I'm a programmer, not an accountant though so I'd still appreciate an answer from someone more familiar with this topic." It depends upon in how many currencies your business is denominated. If your business is solely dependent upon this one payer, it's best to start up a new set of books in USD.  All accounts should be translated from CAD from a date preceding the USD activity.  The CAD books should be closed, and all should be done with the new USD books. If your business will continue to use both USD & CAD, it's best to have two sets of books, one for USD and one for CAD.   Multi-currency books are a nightmare and should be avoided at all costs. Also, with the way you describe your situation, it appears as if you're also blending your household and business books.  This should also be avoided for best practices.
I haven't seen this answer, and I do not know the legality of it, as it could raise red flags as to money laundering, but about the only way to get around the exchange rate spreads and fees is to enter into transactions with a private acquaintance who has Euros and needs Dollars. The problem here is that you are taking on the settlement risk in the sense that you have to trust that they will deposit the euros into your French account when you deposit dollars into their US account. If you work this out with a relative or very close friend, then the risk should be minimal, however a more casual acquaintance may be more apt to walk away from the transaction and disappear with your Euros and your Dollars. Really the only other option would be to be compensated for services rendered in Euros, but that would have tax implications and the fees of an international tax attorney would probably outstrip any savings from Forex spreads and fees not paid. "GNUCash won't show 'Credit Card' type accounts in ""Process Payment"", as of v.2.6.1. A workaround is to create another  account of type A/Payable. Then, transfer the operations you want to pay via ""Process Payment"" to this new account. It should be visible now. A drawback is that you have split your current Credit Card debt, which makes it harder to track. Alternatively you may wish to only use this new account for all your credit card related expenses. Another alternative is processing payments for these purchases manually to keep the 'credit card' accounts consistent." This started as a comment but then really go too long so I am posting an answer: @yarun, I am also using GnuCash just like you as a non-accountant. But I think it really pays off to get to know more about accounting via GnuCash; it is so useful and you learn a lot about this hundreds of years old double entry system that all accountants know. So start learning about 5 main accounts and debits and credits, imho. It is far easier than one can think. Now the answer: even without balancing amounts exactly program is very useful as you still can track your monthly outgoings very well. Just make/adjust some reports and save their configurations (so you can re-run quickly when new data comes in) after you have classified your transactions properly. If I still did not know what some transactions were (happens a lot at first import) - I just put them under Expenses:Unaccounted Expenses - thus you will be able to see how much money went who knows where. If later you learn what those transactions were - you still can move them to the right account and you will be pleased that your reports show less unaccounted money. How many transactions to import at first - for me half a year or a year is quite enough; once you start tracking regularly you accumulate more date and this becomes a non-issue. Reflecting that personal finance is more about behaviour than maths and that it is more for the future where your overview of money is useful. Gnucash wil learn from import to import what transactions go where - so you could import say 1 or 3 month intervals to start with instead of a while year. No matter what - I still glance at every transaction on import and still sometimes petrol expense lands in grocery (because of the same seller). But to spot things like that you use reports and if one month is abnormal you can drill down to transactions and learn/correct things. Note that reports are easy to modify and you can save the report configurations with names you can remember. They are saved on the machine you do the accounting - not within the gnucash file. So if you open the file (or mysql database) on another computer you will miss your custom reports. You can transfer them, but it is a bit fiddly. Hence it makes sense to use gnucash on your laptop as that you probably will have around most often. Once you start entering transactions into GnuCash on the day or the week you incur the expense, you are getting more control and it is perhaps then you would need the balance to match the bank's balance. Then you can adjust the Equity:Opening Balances to manipulate the starting sums so that current balances match those of your bank. This is easy.  When you have entered transactions proactively (on the day or the week) and then later do an import from bank statement the transactions are matched automatically and then they are said to be reconciled (i.e. your manual entry gets matched by the entry from your statement.) So for beginning it is something like that. If any questions, feel free to ask. IMHO this is a process rather a one-off thing; I began once - got bored, but started again and now I find it immensely useful. "Amount is the closest single word.  ""Amount in dollars"" would be the easiest way to specify information you are requesting.  ""Amount and currency"" if you ware in an area using multiple currencies.  An accountant might be able to give you a more technical term, but it would be accountancy jargon.  Amount due, credit amount, debit amount, amount deposited, amount credited, amount withdrawn, or amount included.  If you're writing instructions and want to specify that the person following the instructions needs to indicate the currency, you'll probably have to simply state that requirement.   Based on US centric thinking, inside the US, money is dollars, dollars is money.  For US citizens outside the country, we would always tack on the currency.  100 dollars, or 100 Euro.  There is a segment of Americans who do not understand geography, and that other countries exist, and that they use different currencies, might not realize that other countries have currencies named dollars, and that USD means US Dollars.  So for U.S. citizens, be specific and clear. Bottom line, if this is written for US residents, and they need to specify the currency, you need to explicitly require them to ""List the amount and currency.""" How can I correctly account for having money in different currencies, without currency transfers or currency fluctuations ending up as gains or losses? In my view, your spreadsheet should be in multiple currencies. i.e. if you have gained some in specific currency, make a note of it in that specific currency. If you have spent something in a specific currency, then make a note accordingly. You can use an additional column for reporting this in a neutral currency say GBP. If you are transferring the money from account of one currency to account of another; change the balances as appropriate with the actual conversion rate. If you need this record keeping for tax purposes, then get a proper advise from accountant. "That's Imbalance-USD (or whatever your default currency is). This is the default ""uncategorized"" account. My question is, is it possible to get the ""unbalanced"" account to zero and eliminate it? Yes, it's possible to get this down to zero, and in fact desirable. Any transactions in there should be reviewed and fixed. You can delete it once you've emptied it, but it will be recreated the next time an unbalanced transaction is entered. Ideally, I figure it should autohide unless there's something in it, but it's a minor annoyance. Presumably you've imported a lot of data into what's known as a transaction account like checking, and it's all going to Imbalance, because it's double entry and it has to go somewhere. Open up the checking account and you'll see they're all going to Imbalance. You'll need to start creating expense, liability and income accounts to direct these into.  Once you've got your history all classified, data entry will be easier. Autocomplete will suggest transactions, and online transaction pull will try to guess which account a given transaction should match with based on that data." "I'm no accountant, but I think the way I'd want to approach this kind of thing in Gnucash would be to track it as an Asset, since it is. It sounds like your actual concern is that your tracked asset value isn't reflecting its current ""market"" value. Presumably because it's risky it's also illiquid, so you're not sure how much value it should have on your books. Your approach suggested here of having it as just as expense gives it a 0 value as an asset, but without tracking that there's something that you own. The two main approaches to tracking an investment in Gnucash are: Of course, both of these approaches do assume that you have some notion of your investment's ""current value"", which is what you're tracking. As the section on Estimating Valuation of the concepts guide says of valuing illiquid assets, ""There is no hard rule on this, and in fact different accountants may prefer to do this differently."" If you really think that the investment isn't worth anything at the moment, then I suppose you should track it at 0, but presumably you think it's worth something or you wouldn't have bought it, right? Even if it's just for your personal records, part of a regular (maybe annual?) review of your investments should include coming up with what you currently value that investment at (perhaps your best guess of what you could sell it for, assuming that you could find a willing buyer), and updating your records accordingly. Of course, if you need a valuation for a bank or for tax purposes or the like, they have more specific rules about how they are tracking what things are worth, but presumably you're trying to track your personal assets for your own reasons to get a handle on what you currently own. So, do that! Take the time to get a handle on the worth of what you currently own. And don't worry about getting the value wrong, just take your best guess, since you can always update it later when you learn new information about what your investment is worth." Unfortunately, there is no facility to do bulk transaction edits in GnuCash, so you are out of luck for your existing hundred. (I don't know whether there is a way to initially import a transaction as split.) However, once you have entered this split once, it can be used as a template for new transactions, using autocomplete or by entering it in the Scheduled Transaction Editor. Given your needs, GNUcash will do swimmingly. I've used it for the past 3 years and while it's a gradual learning process, it's been able to resolve most stuff I've thrown at it. Schedule bills and deposits in the calendar view so I can keep an eye on cash flow.  GNUcash has scheduled payments and receipts and reconcilation, should you need them. I prefer to keep enough float to cover monthly expenses in accounts rather than monitor potential shortfalls.   Track all my stock and mutual fund investments across numerous accounts. It pulls stock, mutual and bond quotes from lots of places, domestic and foreign. It can also pull transaction data from your brokers, if they support that.  I manually enter all my transactions so I can keep control of them. I just reconcile what I entered into Quicken based on the statements sent to me. I do not use Quicken's bill pay There's a reconciliation mode, but I don't use it personally. The purpose of reconcilation is less about catching bank errors and more about agreeing on the truth so that you don't incur bank fees. When I was doing this by hand I found I had a terrible data entry error rate, but on the other hand, the bayesian importer likes to mark gasoline purchases from the local grocery store as groceries rather than gas. I categorize all my expenditures for help come tax time. GNUcash has accounts, and you can mark expense accounts as tax related. It also generates certain tax forms for you if you need that. Not sure what all you're categorizing that's helpful at tax time though. I use numerous reports including. Net Worth tracking, Cash not is retirement funds and total retirement savings. Tons of reports, and the newest version supports SQL backends if you prefer that vs their reports. "I recently needed to compute a better balance that let us pick and choose what to include in the computed sum without losing information, so I revisited this topic and I'm pleased to say that I've found a solution that works (at least for our data - you may have transactions that this code doesn't recognize, but you can always modify it to match). My solution was written natively for MS SQL Server 2008 or later, it uses a scalar UDF, a VIEW, and a windowed aggregate (SUM OVER (ORDER BY ...) which means it should be almost-syntax compatible with PostgreSQL. MySQL does not support OVER but you can perform a running-sum using a variable with arithmetic addition directly in the SELECT clause. Create a database table with this schema (feel free to exclude columns you're not interested in, such as Option1Name): Create a UNIQUE index on TxnId - you could use it as a primary-key, I suppose. You might be tempted to create a Foreign-Key relationship between ReferenceTxnId and TxnId, however this will fail if you enforce it: we have many transactions where ReferenceTxnId points to a Transaction that doesn't exist. This is usually in the case of [Type] = 'Web Accept Payment Received' AND [Status] = 'Canceled'. We also have some TransactionId values longer than 17 characters: some TransactionIds start with ""U-"" - all pending money requests, I suspect this indicates the transaction is ""unfinished"". Re-download your entire PayPal History CSV files so that you have the latest retroactive updates. Import these CSV files into this PayPalHistory table. Do a simple test to see how bad PayPal's default data is: To find out where the differences are coming from, run this query: (The ORDER BY (...), RowId is to ensure consistent ordering when multiple transactions share the same timestamp) As you scroll through the results, you'll see how the naive SUM is thrown-off from the official PayPal-computed Balance column. So as you can see, the Net column value cannot always be trusted - what we need is to generate our own ""EffectiveNet"" value which is accurate - that is, the value is 0.00 for rows which do not affect the balance, instead of being what they are right now. The problem is, given a single row of data (such as any single row from the example table in my original Question) we have no way of inherently knowing what its ""EffectiveNet"" is. I have devised two functions to help solve this problem, the first function only looks at the ReferenceTxnId, Type and Status column values and generates accurate values for the vast majority of rows - indeed, in our dataset we only had one row for which this approach did not work. I recommend you try this one first and compare the running-sum value to ensure it works for your data: You can use this function in the query like so below, hopefully it should give you an accurate running-sum and balance figure at the end: 8. And here's the view that ties it all together: Used like so: I hope this helps anyone else wanting to do accurate bookkeeping with PayPal Transaction History files!" I'm using iBank on my Mac here and that definitely supports different currencies and is also supposed to be able to track investments (I haven't used it to track investments yet, hence the 'supposed to' caveat). "Gnucash is first and foremost just a general ledger system. It tracks money in accounts, and lets you make transactions to transfer money between the accounts, but it has no inherent concept of things like taxes. This gives you a large amount of flexibility to organize your account hierarchy the way you want, but also means that it sometimes can take a while to figure out what account hierarchy you want. The idea is that you keep track of where you get money from (the Income accounts), what you have as a result (the Asset accounts), and then track what you spent the money on (the Expense accounts). It sounds like you primarily think of expenses as each being for a particular property, so I think you want to use that as the basis of your hierarchy. You probably want something like this (obviously I'm making up the specifics): Now, when running transaction reports or income/expense reports, you can filter to the accounts (and subaccounts) of each property to get a report specific to that property. You mention that you also sometimes want to run a report on ""all gas expenses, regardless of property"", and that's a bit more annoying to do. You can run the report, and when selecting accounts you have to select all the Gas accounts individually. It sounds like you're really looking for a way to have each transaction classified in some kind of two-axis system, but the way a general ledger works is that it's just a tree, so you need to pick just one ""primary"" axis to organize your accounts by." "Since you did not treat the house as a QBU, you have to use USD as your functional currency.  To calculate capital gains, you need to calculate the USD value at the time of purchase using the exchange rate at the time of purchase and the USD value at the time of sale using the exchange rate at the time of sale.  The capital gain / loss is then the difference between the two.  This link describes it in more detail and provides some references: http://www.maximadvisors.com/2013/06/foreign-residence/ That link also discusses additional potential complications if you have a mortgage on the house. This link gives more detail on the court case referenced in the above link: http://www.uniset.ca/other/cs5/93F3d26.html The court cases references Rev. Rul 54-105.  This link from the IRS has some details from that (https://www.irs.gov/pub/irs-wd/0303021.pdf): Rev. Rul. 54-105, 1954-1 C.B. 12, states that for purposes of determining   gain, the basis and selling price of property acquired by a U.S. citizen living in a foreign country should be expressed in United States dollars at the rates of exchange prevailing as of the dates of purchase and sale of the property,   respectively. The text of this implies it is for U.S. citizen is living in a foreign country, but the court case makes it clear that it also applies in your scenario (house purchased while living abroad but now residing in the US): Appellants agree that the 453,374 pounds received for their residence should be translated into U.S. dollars at the $1.82 exchange rate prevailing at the date of sale. They argue, however, that the 343,147 pound adjusted cost basis of the residence, consisting of the 297,500 pound purchase price and the 45,647 pounds paid for capital improvements, likewise should be expressed in U.S. dollar terms as of the date of the sale. Appellants correctly state that, viewed “in the foreign currency in which it was transacted,” the purchase generated a 110,227 pound gain as of the date of the sale, which translates to approximately $200,000 at the $1.82 per pound exchange rate. ... However fair and reasonable their argument may be, it amounts to an untenable attempt to convert their “functional currency” from the U.S. dollar to the pound sterling. ... Under I.R.C. § 985(b)(1), use of a functional currency other than the U.S. dollar is restricted to qualified business units (""QBU""s). ... appellants correctly assert that their residence was purchased “for a pound-denominated value” while they were “living and working in a pound-denominated economy,” ... And since appellants concede that the purchase and sale of their residence was not carried out by a QBU, the district court properly rejected their plea to treat the pound as their functional currency." I would say when starting with Gnucash to start with the level of granularity you are comfortable with while sticking to the double entry bookkeeping practices. So going through each one: Refund for Parking Pass. Assuming you treat the Parking Pass as a sunk cost, i.e. an Expense account, its just a negative entry in the Expense account which turns into a positive one in your Bank account. Yes it may look weird, and if you don't like it you can always 'pay from Equity' the prior month, or your Bank Account if you're backfilling old statements. Selling physical items. If you sold it on eBay and the value is high enough you'll get tax forms indicating you've earned x. Even if its small or not done via eBay, treat it the same way and create a 'Personal Items/Goods' Income account to track all of it. So the money you get in your Bank account would have come from there. Found jacket money would be an Equity entry, either Opening Balances into Cash or Bank account. Remember you are treating Equity / Opening Balances as the state before you started recording every transaction so both the value going into Assets (Banks,Stock,Mutual Funds) and Liabilities (Mortgage, Student Debt, Credit Card Debt) originate from there. At every moving/yard/garage sale I have ever seen only cash is accepted. While the use of electronic payments is growing the big problem is that it is hard to verify the exchange at the time the goods are changing hands. Unless you have a card reader attached to your phone, you can't use a credit or debit card. Unless you can verify that they did transfer the money electronically why would you let them walk away with your stuff? If you knew them you could accept a check, but there are risks with the checks bouncing.