15

Sometimes people make mistakes. The checkout process at stores often involves manual data entry which is error prone. For example, as a customer I could be charged $49.99 for a product priced $49.49.

It's often not worth it to try to recover these tiny differences. However, they cause transactions to become unbalanced in ledger:

2021-09-07 * Store
    Expenses       $  49.49
    Credit Card    $ -49.99

I think it's important to record the fact that an error occurred. Adjusting the real value of the product to reflect the mistake would cause this information to be lost.

How do I properly account for this in ledger?

Chris W. Rea
  • 31,577
  • 16
  • 101
  • 188
Matheus Moreira
  • 448
  • 3
  • 17
  • 9
    Why was my question closed? It's about resolving a small accounting discrepancy after buying an item on a store. Doesn't get any more personal than that. – Matheus Moreira Sep 07 '21 at 22:05
  • 12
    There's also the fact that "Use of software for managing one's finances." is literally listed on this site's help page as an on-topic question example. – Matheus Moreira Sep 07 '21 at 22:14
  • 5
    Agreed, the question seems compliant with the site's topic ? "- Use of software for managing one's finances. (Not recommendations, just questions regarding specific software)". Similar questions have been on topic in the past, eg https://money.stackexchange.com/questions/tagged/ledger-cli – Simon Michael Sep 08 '21 at 02:38
  • 4
    You may be qualified to work at the US Treasury Department. They prepare 'consolidated' financial statements for the US (federal) government, that is, combining all of the departments and agencies, which per accounting standards requires 'eliminating' (removing from the reported amounts) 'intragovernmental' items (between two components). These eliminations should match exactly between the components, but they don't; every year Treasury reports $billions of unmatched items. You might help fix this :-) – dave_thompson_085 Sep 08 '21 at 05:49
  • 9
    If the clerk rang up $49.99, your receipt shows $49.99, and you did not contest this then the product costed $49.99. Why call it an error, maybe it's "negotiation failure". Maybe the fifty cents was a credit card processing fee; lots of places have started adding these. There is a local pizza shop which I frequent and they'll say something like "$11.39, please" and when I take out my credit card they'll say "Oh wait, $12.67 please". Had I shown my credit card first then they would have said "$12.67" and I would have been none the wiser. – MonkeyZeus Sep 08 '21 at 12:26
  • 2
    @MonkeyZeus It _is_ an error. The store's own computer showed the correct value. In this case the error was introduced when the employee typed the amount into the credit card terminal. Maybe they were used to typing `.99` all the time? It's not a big deal to me, but _something_ happened here and I think it's important to record that fact. – Matheus Moreira Sep 08 '21 at 12:44
  • Some answers and comments seem to be discussing this from the customer side. But your question seems more related to handling this from the store's end of things. Are you concerned about how the store's ledger should be managed, or the customer's? – Michael Richardson Sep 08 '21 at 14:04
  • 1
    @MichaelRichardson I am the customer. I just wanted a clean way to record this event in my personal files. Ledger examples are really hard to come by online. One day this will show up in search results for anyone with the same use case. It would be nice to see more answers with alternative solutions as well. – Matheus Moreira Sep 08 '21 at 14:39
  • 1
    @MonkeyZeus If I buy something from you for $5, I hand you a $10 note and you hand me back a $50 note, but neither of us noticed immediately, would you call that a "negotiating failure" that I managed to "convince" you to give me $40 to take a product off your hands, or would you call it an error? Or how about if you accidentally ring up a $500 product for $5? Even if it were a processing fee, it would be an "error" in the sense that there was a failure in communication if the customer doesn't know that at the end of the transaction. If the price is mislabelled, that would also be an error. – NotThatGuy Sep 08 '21 at 16:18
  • 1
    @MatheusMoreira I didn't know about ledger and I'm curious how it compares to GNUcash or other accounting software. – hojusaram Sep 09 '21 at 07:08
  • 1
    @hojusaram Welcome! Ledger is an accounting program that uses the double entry method just like GNUcash. Unlike most other software, there is no graphical interface. Transactions are written into a simple plain text file. The code in my question and answer are examples of valid ledger transactions. When `ledger` is run against the text file, it reads all the data and produces very detailed reports. Here are some resources if you'd like to know more: https://www.ledger-cli.org/ https://plaintextaccounting.org/ https://devhints.io/ledger – Matheus Moreira Sep 09 '21 at 08:17
  • 3
    "Sometimes people make mistakes." I neverr have. – Paul D. Waite Sep 09 '21 at 10:32
  • 1
    @MatheusMoreira _"It is an error."_ MonkeyZeus is saying that in your ledger, an error is indistinguishable from an intentional price change. It only records what you paid, not what you _thought_ you were paying. – Flater Sep 09 '21 at 12:48
  • @NotThatGuy _"would you call that a "negotiating failure" that I managed to "convince" you to give me $40 to take a product off your hands, or would you call it an error?"_ I would say that after the transaction, there is $40 more in my wallet, and it'd be correct to label that transaction as belonging to "the purchase of this thingamajig". What was on the store's price tag really doesn't matter to the ledger. Nowhere do you record what the price tag said. The ledger is only interested in the _actual_ movement of money, not what people expected or thought. – Flater Sep 09 '21 at 12:51
  • @Flater Yes, you're correct that `ledger` only cares about the movement of money. However, it offers unlimited flexibility in how to describe those movements. The account tree can be as simple or as complex as the user desires. It's certainly possible to simply ignore all this. It's also possible to record that a only a certain amount of money was supposed to have been moved and that another amount was moved by mistake. I don't see the harm in doing the latter. – Matheus Moreira Sep 09 '21 at 13:01
  • @Flater I was simply saying that it would, by definition, have been an error for that to have (accidentally) happened in the transaction. How you record that transaction, and whether one might care about the reason why the transaction happened as it did, is distinct from that. – NotThatGuy Sep 09 '21 at 13:08
  • 1
    @MatheusMoreira: With fine-grained power comes fine-grained responsibility. Have you, and do you intend to, record every discount you get separately as well? So if you pay $20 for a 3-for-the-price-of-2 deal, do you intend to record $30 as the purchase price? What if another shop charges $15 for one of the items, and you buy one there too? How are you going to define a product's price, if not by the money that you paid for said product? And if the unit price is different from one purchase to the next, how does your ledger account for "true value" instead of money paid? – Flater Sep 09 '21 at 13:10
  • 1
    @MatheusMoreira: In other words, it's not that you _can't_ do what you want to do, but be careful about the can of worms you're trying to open here, because it leads to you needing to create separate records for actual money movement and a product's "true value", and the latter is insanely hard to define in a free market. – Flater Sep 09 '21 at 13:13
  • @Flater Maybe we're thinking too hard about this. In this case, I know the real price and I know I was overcharged by mistake. I only noticed the mistake because I recorded the true price in ledger before paying and got an error when I tried to reconcile with my credit card records. I'll think about other situations when they arise. – Matheus Moreira Sep 09 '21 at 13:15
  • 1
    @Flater Another example. When I go to a restaurant, I record the prices of each item I order. This authoritative information is available on the menu. After I started accounting for this, I discovered I am always _undercharged_ in one specific restaurant. Turns out the manager really likes me because I'm a loyal customer, so he started rounding down all prices to the lowest integer just for me. Gave me a really nice feeling! – Matheus Moreira Sep 09 '21 at 13:29
  • I admit that I know nothing about ledger-cli. But in normal double entry accounting the usual solution is to keep an account like "Rounding adjustments" or similar. Can't you just do the same here? Yep, I read below now that you did practically that, with another name. – Gábor Sep 09 '21 at 14:20
  • @Gábor Yes, I did not know "adjustments" was the proper term. An `Adjustments` account seems very useful. We can further break it down into all possible reasons for adjustments. In this case, `Adjustments:Human Error`. – Matheus Moreira Sep 09 '21 at 15:58

3 Answers3

33

Does it matter?

In this case you were charged $49.99. Your card record shows $49.99. Your account entries show $49.99. You really did pay $49.99 in expenses, so "expenses" should show $49.99.

If you record the expense as the price you paid, rather than what you thought it was worth, the account will never become unbalanced and you will be satisfying all normal and legal accounting practices, which are concerned only with what you actually paid. Recording errors is not necessary, and is entirely a matter of personal preference. In some cases recording the 'value' rather than the price paid could be a problem. If you were charged $5 for a $500 item, your records need to clearly show that you actually paid $5, not $500.

The fact that it was "worth" $49.49 is irrelevant. Things change their "worth" all the time as prices fluctuate. If you got it on sale for $48.99 would you record $49.49 as expenses and $0.50 as "sale discount"?

Adjusting the real value of the product to reflect the mistake isn't a viable option.

Yes it is. No accounting audit is going to care about a discrepancy like this, even a much larger one.

Unless you specifically wish to keep track of such errors for some reason, ignore them.

DJClayworth
  • 31,694
  • 7
  • 84
  • 113
  • 3
    It matters to me. I like recording these details. Your sale example is also interesting to me. By recording that information, I could generate reports such as how much money I've saved by buying products on sale. Really neat. – Matheus Moreira Sep 07 '21 at 17:28
  • 13
    If it matters to you, keep a separate record. Just have your own list of errors: "2021-09-07 * Store overcharged by $0.50" – DJClayworth Sep 07 '21 at 19:39
  • That's exactly what I did, with an `Errors` account. – Matheus Moreira Sep 07 '21 at 21:35
  • 3
    Please. Sales are not key to the answer, so let's not argue about their nature. – DJClayworth Sep 08 '21 at 17:52
  • 1
    "how much money I've saved" or how much (extra) overcharging you've managed to avoid – Caleth Sep 09 '21 at 08:56
  • @MatheusMoreira: Quite often, the sale price is the MSRP, and the "list" price is a made-up number that nobody has ever paid. – Kevin Sep 09 '21 at 23:33
  • "Please. Sales are not key to the answer, so let's not argue about their nature." You mentioned sales as an example... – Matheus Moreira Sep 10 '21 at 12:43
  • Yes. I mentioned them merely as an example. Please don't go off on a tangent and argue about them. – DJClayworth Sep 10 '21 at 13:03
  • Okay, let's get back on topic. Your answer contains a lot of commentary but it doesn't actually answer the question. "Unless you specifically wish to keep track of such errors for some reason, ignore them." I do, that's why I asked how to do it properly. If you know of a better way, include it in your answer. – Matheus Moreira Sep 10 '21 at 13:09
  • This is totally dismissive to the question and not a suitable answer. How to reconcile cash and record cash over/short in a ledger is a basic bookkeeping/accounting question with rules for how it should be handled; none of which are "Does it matter? ignore them." – Luck Sep 16 '21 at 21:50
  • I'm not saying "ignore the rules". The rules do not require that errors like this be accounted for. That's why I believe it doesn't matter. – DJClayworth Sep 17 '21 at 02:39
  • 2
    This answer reads as a frame challenge - I'm new to this stack, but it is a common thing to happen in some other stacks – Juliana Karasawa Souza Sep 17 '21 at 08:57
15

I created an Errors account that can be used to absorb the remainders of transactions.

2021-09-07 * Store
    Expenses       $  49.49
    Credit Card    $ -49.99
    Errors

Any remainder will be added to the Errors account and the transaction will be balanced.

Simon Michael correctly points out that this account will absorb even large values, creating opportunities for a typing mistake to go unnoticed. To avoid this pitfall, the overcharged amount should be specified explicitly:

2021-09-07 * Store
    Expenses       $  49.49
    Credit Card    $ -49.99
    Errors         $   0.50

It is now possible to track how much money has been lost due to human error:

ledger balance Errors

It is even possible to figure out where the errors are coming from:

ledger register Errors --related
Matheus Moreira
  • 448
  • 3
  • 17
  • 1
    What decision point would actually be impacted by collecting this information? This does not seem worth the time to implement. – Grade 'Eh' Bacon Sep 07 '21 at 17:50
  • 10
    Why does it matter whether it's worth it? I never asked whether it was worth it. The fact is I _wanted_ to do it and I figured out how. Ledger documentation is scarce enough as it is. Just thought I'd contribute some knowledge, Q&A style. I've done this many times before but this is the first time I get responses like this. – Matheus Moreira Sep 07 '21 at 21:30
  • 24
    Fully accurate book-keeping is valued by some, for their own reasons. Why be so dismissive ? – Simon Michael Sep 08 '21 at 02:22
  • 3
    @MatheusMoreira, that's good but quite lenient, ie it would not give an error if you made a typo like $4949. Here's a stricter version: 2021-09-07 * Store Expenses $ 49.49 Expenses:Overcharge $ 0.50 Credit Card $ -49.99 Or if the overcharge is discovered some time later and you don't like retroactively changing your entries, it could be: 2021-09-07 * Store Expenses $ 49.99 Credit Card $ -49.99 2021-09-10 * Store refund for overcharge Expenses $ -0.50 Credit Card $ 0.50 – Simon Michael Sep 08 '21 at 02:26
  • Grade, I see you deleted some comments. It looks more reasonable now, thanks! – Simon Michael Sep 08 '21 at 20:43
  • 1
    The accounting term for general discrepancies is "adjustment". So I would use that instead of "errors", personally. Also, I wouldn't maintain a separate account for them, as that implies you expect there to be many transactions of this type. Your software should ideally be able to filter txns of type "Adjustment" or however you choose to record it. – Lawnmower Man Sep 08 '21 at 22:25
  • 2
    @LawnmowerMan what's wrong with an account with a few transactions in it? Especially something like "errors" that's clearly separate from every other account. (If it was "new lawnmower purchases" then you could combine it with something like "equipment" but "errors" does not seem combinable) – user253751 Sep 09 '21 at 10:32
  • @user253751 there's nothing "wrong" with it. For personal finance, you can organize your data however you like. I think a separate account is useful whenever you want to see the current balance or you have statements against which you can reconcile the account. I would be surprised if the "errors balance" is something you regularly need to access, and I'm pretty sure nobody can give you a statement of errors that you can use to reconcile it. Yet, you need additional transfer transactions to move amounts between the accounts. So I feel the cost is greater than the benefit. YMMV – Lawnmower Man Sep 09 '21 at 19:08
3

The way you record it depends on how you want to (or are required to) report the transaction. Here are a few possible scenarios:

  • You are paying for the item out of your own pocket and will get reimbursed by your employer. If you consider it your own fault for not noticing the error at the shop, you will be effectively reducing your own petty cash by absorbing the difference. You put in the 2 (unbalanced) entries and record the balancing 50c difference against your petty cash account. You might try to get a refund or store credit which, if successful, you’d record it as a reversal of the petty cash entry.

  • You buy the item for your own company and can’t get a refund. The company might absorb the difference as a business expense. The item cost you $49.99 because that’s what you tacitly agreed with at the till. So you record both entries as $49.99.

  • You can only claim $49.49 as an expense in your tax return. You enter both (unbalanced) entries, and record the remaining 50c against an undeductible expense. When tax time comes around, you don’t claim any of your undeductible expenses.

The principle is that you first decide what the price legally is. The bookkeeping then follows suit.

Disclaimer: I am not an accountant and this answer is not financial advice. You should consult a suitable professional regarding whichever alternative you pick, especially if the actual numbers are a lot bigger or if there are penalties for getting it wrong.

Lawrence
  • 9,217
  • 4
  • 19
  • 25