I’m currently switching from ledger-cli to hledger and I am using the chance to clean up my old accounting data a bit at the same time. Up to now I have used the standard English accounting structure that is recommended by these tools with root accounts named Assets, Equity, Liabilities, Income and Expenses and tried to keep the names of all sub accounts in English.

This has proven to be quite cumbersome, because translating official expressions like Solidaritätszuschlag to English hides their real meaning and for others like Privathaftpflichtversicherung (personal liability insurance) the English expression is just not as well-known to me. Or let’s take the Austrian expression Abfertigung. This is a very specific concept for a funded pensions scheme in Austria. The term Abfertigung is not even used in Germany and unknown to Germans. dict.cc says that it can be translated as severance indemnity, but I doubt that after a year I’d understand what I meant by this.

Thus, I switched to a German accounting structure. In Germany, in double-entry accounting we have Aktiva and Passiva. Aktiva is everything you possess that’s of some value. Passiva describe from whom the money actually origins (own capital or debts). Thus, I have created the following three main accounts: aktiva (Assets), eigenkapital (Equity) and fremdkapital (Liabilities). To my understanding this should map well to both the double-entry accounting structure as I learnt it from a German text book as well as the way ledger is organized.

Additionally, we need profit and loss accounts. I called these ertrag (Income) and aufwand (Expenses).

Here is a short example with some basic accounts:

aktiva
  bargeld
  forderungen  ; e.g. Rent Deposit
  girokonto
  wertpapiere
eigenkapital
  anfangsbestand
fremdkapital
  verbindlichkeiten  ; e.g. Invoices still to be paid
  kreditkarte
ertrag
  gehalt
  zinsen
aufwand
  hobby
  lebensmittel
  telekommunikation
    handy
    internet

One problem with these names is that hledger cannot automatically deduce the type of the account, anymore. Account type is a concept unknown to ledger-cli, but it is very useful, because it allows hledger to create a profits and losses report as well as a balance sheet using the following commands:

hledger bs
hledger is

To make these commands work again we need to specify the account types explicitely. This can be done in the file .hledger.journal. A denotes an account as an assets account, L as a liability account, E as an equity account, R as a revenue account, X as an expenses account and C as a cash account.

account aktiva        ; type: A
account fremdkapital  ; type: L
account eigenkapital  ; type: E
account ertrag        ; type: R
account aufwand       ; type: X

account aktiva:bargeld    ; type: C
account aktiva:girokonto  ; type: C
I do not maintain a comments section. If you have any questions or comments regarding my posts, please do not hesitate to send me an e-mail to blog@stefan-koch.name.