[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[Debconf-team] Budget approval based on ledger (was: Budget PDF snapshots)



also sprach martin f krafft <madduck@debconf.org> [2015-05-07 21:46 +0200]:
> There's already an overview page designed to produce a quick-n-easy
> PDF for the salient information. I don't think it makes sense to
> just distill everything from the current file into a PDF. What would
> help is knowing what information you'd want in such a snapshot.
> 
>   - the overview?
>   - the detailed expense listing?
>   - what else?

Having given this quite a bit of thought in the last few weeks,
here's a proposal which I believe is a good way forward:

The planing/preparation/design of the budget should be done using
whatever tool seems most appropriate. As much as I hate
GUI-based tools and spreadsheets and while they make it difficult to
quickly inspect things or investigate changes over time, I have not
found a better tool.

However, for budget approval, I propose that the numbers be entered
into ledger (which we already use for accounting;
http://ledger-cli.org/3.0/doc/ledger3.html), using so-called virtual
postings, e.g.

  2015-02-28 * Load budget
    (budget:fees:registration)    25 EUR
    (budget:outreach:press)     1000 EUR
    (budget:swag:tshirts)       5600 EUR
    […]

A "budget" would then be such a stanza with a line for every expense
category.

Whenever the budget is amended, the ledger will be updated, so as to
keep track of changes as they get approved. For instance, if a month
later, we decided to extend the registration fees budget, one would
write:

  2015-03-28 * Extend registration budget
    ; msgid:<foobar@example.org>  (a comment with a message ID…)
    (budget:fees:registration)  25 EUR

and the 25 EUR would be added to the already budgeted 25 EUR (see
above).

At any point in time, the ledger tool can be used to query all such
postings, as well as get totals for the individual accounts. And
it's text-based, in Git, which should allow for all other kinds of
analysis/processing.

This approach has the benefit of later allowing us to book expenses
directly against budget, e.g. (using our first actual expense as example)

  2014-06-24 * (2014-06-24-0001) Notary charges for registration
    expenses:non-profit:other                              20,00 EUR
    liabilities:members                                   -23,80 EUR
    assets:vat_deductable_19p:non-profit                    3,80 EUR
    (budget:fees:registration)                            -23,80 EUR

Henceforth, the budget:fees:registration account would show the
balance, allowing for all kinds of queries and alarms:

% ./wrapper bal \^budget
26,20 EUR  budget:fees:registration
[…]

% ./wrapper reg \^budget
2015-02-28 Load budget                     (budget:fees:registration)   25,00 EUR  25,00 EUR
2015-03-28 Extend registration budget      (budget:fees:registration)   25,00 EUR  50,00 EUR
2014-06-24 Notary charges for registration (budget:fees:registration)  -23,80 EUR  26,20 EUR



How does this sound? I'll be importing the latest approved budget
into ledger one of these days, because it'll be useful to me.
If this is a process you'd be willing to try going forward, then we
could use this process for the next budget approval(s).

-- 
 .''`.   martin f. krafft <madduck@debconf.org> @martinkrafft
: :'  :  DebConf orga team
`. `'`
  `-  DebConf15: Heidelberg, Germany: http://debconf15.debconf.org
      DebConf16: Cape Town: https://wiki.debconf.org/wiki/DebConf16

Attachment: digital_signature_gpg.asc
Description: Digital signature (see http://martin-krafft.net/gpg/sig-policy/999bbcc4/current)


Reply to: