Content in need of updating
The content below has been moved from the old DebConf wiki (wiki.debconf.org) as part of the Outreachy internship application process Oct 2019.
The bulk of the content is five years old and needs more updating to current processes and DebConf accounting practices.
Remove this note when done.
Accounting is an important aspect of the DebConf, it deals with tracking expenses and income, past and future. Its knowledge could be used to produce budget reports (?Budgeting page), but that is usually done before accounting comes into play. The accounting team is not yet involved in authorization or actual money movement, though we can probably help you figure out how to do that.
Past/current ledgers can be found here:
Current balances can also be found on corresponding previous budget ledger on salsa.
Reimbursement: For reimbursement purposes open a ticket at email@example.com (SPI), or send an email to firstname.lastname@example.org (Debian France) with relevant details, if you are using the Debian CH you can also send an email to email@example.com
For anything relating to budget, send an email to firstname.lastname@example.org
For each transaction, what we need to know is:
- Description / what it's for
- Amount and currency
- Who it is from and who it is to. (example: to: the ISP. from: my bank account)
Examples of things to send us:
- You bought something and need to be reimbursed.
- An invoice is paid.
- Someone is paying debconf in cash on-site.
- Any other cash transactions.
- Money is transferred overseas.
- We are using your bank account to transfer money, and you got a deposit, you spent something, and so on.
- Anything involving money!
- Anything in the past involving money that we don't know about.
All accounting for DebConf is found in the corresponding salsa repo https://salsa.debian.org/debconf-team/public/data/dcxx/tree/master/budget. It uses ledger, a command-line double-entry accounting program.
accounts.inc: a list of all the accounts used
commodities.inc: a description of the commodities used
forex.db: exchange rates
budget.ledger: the conference budget
expenses.ledger: all expenses should be tracked there
incomes.ledger: all incomes should be tracked there
journal.ledger: meta ledger file that includes other relevant files
wrapper: a more sensible way to call ledger
ledger-fx-rates: fetches exchange rates from the European Central Bank
All expenses should be backed by invoices and be kept in the invoices directory. The invoices should:
be classified in directories by accounts start by yyyymmdd_
have a short but descriptive name
- ├── childcare
- │ └── 20170812_childcare.pdf
- │ └── 20170817_music_show.pdf
- ├── roomboard
- │ └── accommodation
- │ ├── 20170810_hotel_universel_first_deposit.jpg
- │ ├── 20170816_hotel_balance.pdf
- │ └── 20170821_red_cross_rental.pdf
- └── videoteam
- ├── 20170614_kyles_ticket.pdf
DebConf has two types of accounting - cash and accrual. It is true that cash is what counts as income and not all registered attendees might be present, so we record only attendee payments that enter our bank accounts as income as these will help keep our records clean. Similarly, other expenses are considered expenses when money actually moves, not when it is authorized. Some things, like sponsor income, in some years, is tracked in an accrual kind of way (assets:receivable:sponsor). Other fixed, non-adjustable things (mainly reimbursements) can be listed as such when they are known, instead of when money moves. Mixing systems may not be ideal, but this might work better for DebConf.
How it works
so basically This section isn't important except if you want to join the accounting team.
The ledger is a double-entry general ledger. It can be examined with the ledger program (in Debian) or hledger program (available since 2011). These programs can generate all types of useful reports, and are scripted to do so at the links above. The ledger manual, in particular, is a good introduction to double-entry accounting. ledger-dcNN is designed to be public. If you want to add something to it, here are sample entries:
2019/03/19 Name tags expenses:infra 99,80 BRL assets:spi 150 USD
2011/03/19 SPI->FFIS transfer assets:spi 1000 USD assets:ffis 790 EUR expenses:exchangefee 10 USD
hledger add provides a nice tab-completing interface to appending new transactions. Note that euros are "EUR", not "€", due to a unicode bug in some vty library.
The attendee payments and sponsor payments are kept as sub-accounts in spreadsheets. This allows the ledger itself to be public. Occasionally, the income:attendee and income:sponsors accounts are updated in the ledger from the spreadsheets.
The assets: accounts list current assets. SPI, Debian France and Debian CH balances (as seen online) should match the ledger balances at all times. Run a "ledger bal" command after any update involving these and make sure that it matches the amount in the bank view.
Anything dealing with attendee-payments, travel sponsorship, or sponsors should also be recorded in the spreadsheets in debconf-team. The spreadsheets should include names, dates that match with here, and total balances should always reconcile. Run "ledger bal" after updating these and make sure the ledger matches the total balances in the respective "actual amounts" (as opposed to future) columns of the respective spreadsheets.
If someone is due a reimbursement, record it in liabilities:<nickname>.
receivable: can be used to record money due us. Attendee payments are generally *not* worth putting under receivable, since they are too fluid. Half the expected paying attendees will happen not come/not pay, and we don't want to have to be keeping things that crazy up to date in the ledger.
Ledger can take comments starting with ";". Make all information as clear as possible, so anyone will understand at a glance.
This section will be updated with more information as procedures are developed.