Hi,  I have read the manual and have some questions about ledger
features:

1 Periods.  In the accounting system I am used to, there is a concept
called a period.  A period is typically a number 1..13 which is the
month of the actual day of the transaction.  Period 13 is reserved for
end-of-year transactions.  When you create reports, you do it based on
periods.  Now, having a period called 13 means that reports for
december or january are not skewed based on special transactions such
as setting up an initial balance or end-of-year transactions happening
on the 31th of december.

Without periods, it seems that you would want to avoid having "real"
transactions happening on 1/1 and 31/12.

2 Closing periods.  When doing any sort of "external" reporting such
as returning a VAT report or even a end-of-year report, it is
important that it is impossible to add transactions to the affected
accounts at a later day.  Alternatively, adding a transaction that
changes the VAT report for example should give a warning that the VAT
report will have to be re-issued.

Now, what I am used to is that one can close periods in the accounting
system.  If one needs to change stuff in closed periods, one will  use
an open period instead.  I think this can be done in ledger by using
an effective date, but I can not find a way of "closing the books" in
ledger.

I think a very flexible way of closing the books would be to be able
to specify any report as an assertion.  Thus if some external
reporting is recorded as a pair (ledger command, textual output), then
for the accounts to be in sync with my external filings, I could check
that all such pairs match. Has anyone given thought to such a system?

3. Chart of accounts and taxes.  I am used to being able to specify
taxes in a chart of accounts.  For example, if I have something like:

2009/02/25 Pens and paper
   Expenses:OfficeSupplies $50.00
   Assets:Bank:Bank123

what I really want to happen is this:

2009/02/25 Pens and paper
   Expenses:Office Supplies  $40.00
   Assets:VAT Receivable     $10.00
   Assets:Bank:Bank123

for a product sold:

2009/02/25 Sold a xyyz to foobar
   Assets:AR:Foobar $500
   Revenue:XYYZ

what I want to happen is this:

2009/02/25 Sold a xyyz to foobar
   Assets:AR:Foobar $500
   Revenue:XYYZ -$400
   Liabilities:VAT Payable -$100

I am hoping that it is possible to fix this using automatic
transactions.  Something like:

; List all 25% VAT expense accounts
= /^Expenses:(OfficeSupplies|Rent|...)/
   Assets:VAT Receivable 0.25
   $account -0.25

; List all 25% VAT revenue accounts
= /^Revenue:(Product1|Consulting|XYYZ...)/
   Liabilities:VAT Payable 0.25
   $account -0.25

Does something like the above work?

A way to set up a chart of accounts with meta-data and setting up
automatic transactions based on meta-data matches seems cleaner as the
regexps above can become very complex unless tax codes are encoded
into the name of the account.  Does this make sense?

2 Year end report/Chart of account aliases.  I like the free-form
account names in ledger.  However, when interfacing with year end
reports, I need to  stick to the revenue service "chart of accounts".
Being able to move the whole balance of a set of accounts to another
set of accounts in a sort of report fashion seems like it would work.
Maybe someone has a better method, but it seems like I would have to
do:

2009/12/31  IRS year end report
   IRS:1001  (account_total("Assets:..."))
   Assets:... -(account_total("Assets:..."))
   ...
   IRS:7020 (account_total("/^Expenses:.*Interest/"))
   Expenses:7020 -(account_total("/^Expenses:.*Interest/"))
   ; The above account need to be created because I do not know how to
zero out the
   ; individual accounts matching the regexp.  The Expenses:* top
level account should
   ; have a zero balance though.
   ...
   IRS:Report

The above works, but another approach would be to have a view of the
chart of accounts where names of accounts could be renamed.  Maybe
there is a better way though.

Thanks,
Alexander

Reply via email to