* Eric Abrahamsen <[email protected]> [2014-05-19 09:59]:
> ~ Monthly
>     ; Payee: Tax Dodgers, Inc
>     Assets:Merchants:5231                       7000 RMB ; regular salary part
>     Assets:Receivable                           3000 RMB ; receipts
>     Income:Salary

Is this just an example or something you actually use?  I'm asking
becaue I don't understand this transactions.  Why would
Assets:Receivable go up every month?  Also, what it
Assets:Merchants:5231?  Surely, if you're paid monthly, your bank
account would go up, and not some Assets:Merchants account.

> After a few weeks I have 1920.90 RMB in my virtual receipt account, and
> I hand them in (but they haven't paid me the reimbursement yet):
> 
> 05/04 ! Tax Dodgers, Inc
>     * (Assets:Receipts)  = 0 RMB
>     Assets:Merchants:5231                    1920.90 RMB
>     Assets:Receivable
> 
> When the reimbursement comes through I clear the whole transaction, and
> add an aux date.

This whole approach looks a bit complicated and fragile to me.  I'll
explain the workflow I use.  I'm not sure it's better, but it works
for me:

1) When I spend something while on a business trip, I do not book it
as an expense.  I don't think that would be correct since I'm
effectively just lending money to my employer until I'm reimbursed.
So it's an asset.  I called it Assets:Reimbursable:XXX (XXX for my
employer).

2014-05-10 * Taxi
    Assets:Reimbursable:XXX   $20
    Assets:Cash

2) Then I enter expenses into my employer's expensive reports and
generate an expense report.  I use the data from the expense report to
generate ledger transactions.  They look like this:

2014-05-15=2014-05-10 * Reimbursement: Taxi
    Assets:Receivable:XXX      $20
    Assets:Reimbursable:XXX   -$20

; This is an allowance (e.g. a per diem)
2014-05-14=2014-05-10 * Subsistence
    Assets:Receivable:XXX       $5
    Income:Allowances:Incidentals

I use the date of the expense report as the date and the date of the
expense as the effective date.  This is a bit of a hack, but allows me
to use
  ledger --effective --sort d reg reimbur
to match expenses and reimbursements (if doesn't go to 0 at the end of
each day, I either forgot to expense something or to tag an expense).

I essentially convert Assets:Reimbursable to Assets:Receivable.  When
I submit my expense report, I'm just awaiting payment from my
employer.

This allows me to differentiate between things I still need to put
into the expense system and payments I'm awaiting.

3) I get paid by my employer:

2014-05-19 * Reimbursement for XXXX
    Assets:Checking:Bank        $25
    Assets:Receivable:XXX      -$25

I use tags to track expenses that relate to one particular trip /
expense report.  Initially, I just tag it with the directory name I
use to store receipt (e.g. 2014-03-21-boston-libreplanet) but later I
add a tag for the number of the expense report.

I think this workflow follows a logical approach: when you spend
money, you have an asset that can be reimbursed (Assets:Reimbursable).
When you do an expensive report, it becomes a receivable
(Assets:Receivable).  And finally, this receivable goes away when you
get paid.

Now I understand that it might be slightly different if I were a
contractor rather than an employee.  In that case, I can see an
argument for booking these expenses a actual Expenses: rather than
Assets:Reimbursable.  (After all, they are expenses for your business
regardless of whether you get reimbused or not.)

You could tag with them with your client, and then use
  ledger reg Expenses: tag client
to get a list in order to bill them.  This would just be income and
not a reimbursement as with a true employee.

I believe this approach should work for most people.  Now in your
case, we need to be slightly more creative.  It sounds as if got paid
$40 if you had a receipt for $40, even though you only spent $20 (no
need to confirm).  I have one idea how to handle this.  It's not
currently supported by ledger, but it's a feature that I realized a
few days ago would be useful.

It would be nice if ledger would allow you to run 'reg' or 'bal' on
tags.  In order words, you could have:

05/15 * Taxi
    ; Receipt:: 40 RMB
    Expenses:Transportation                       23 RMB
    Assets:Cash

05/15 * BHG
    ; Receipt:: 154 RMB
    Expenses:Food:Supermarket                    154 RMB
    Assets:Bank

and then do:

  ledger reg --account=tag('Receipt')

or to generate an invoice for your employer:

  ledger bal -p "this month" --account=tag('Receipt')

This doesn't work at the moment, but I'll file a feature request:
http://bugs.ledger-cli.org/show_bug.cgi?id=1042
[Now that I filed this bug, it seems like what I'm asking for is a
virtual account. ;-)  But I want the tag to remain _outside_ the
accounting system whereas a virtual account is part of your accounts.]

I have a use case for this: I track points I receive when I stay in a
hotel.  In addition to points, the number of nights stayed count
towards lifetime status.  This isn't something I track in ledger
(since it's not really an asset), so I just put it in a comment.
However, it would be nice to do:
  ledger reg --account=tag('Nights')
to get the total number of nights I've achieved.

-- 
Martin Michlmayr
http://www.cyrius.com/

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"Ledger" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to