You may find the Entries FAQ and the General FAQ useful.

How are budgets configured in the system?

Ledger has a concept called a Periodic Transaction that is used to create a budget. Because ledger doesn’t understand fiscal years, ours look a little different than most examples, but they function the same way. We use these periodic transactions to allocate money to different uses.

In the Fedora project we manage our transactions a little bit differently. Normally you would budget your expenses. For example, you might think that you will spend $500 on rent and $300 on food in a month. In Fedora, we treat our budgets like credit cards (or checking accounts or current accounts). We then budget how much money we plan to spend out of each budget. All of this means that we budget negative numbers because we are planning to spend a certain amount of money. We do this because we know we want to spend no more than a certain amount of money on some activity, such as Flock, however we don’t decide at the beginning of the year how much we will spend on, for example, Lodging.

This example shows how the council allocated the total Fedora Public Budget to various activities in FY17.

~ every 2 years                         (1)
    ; 2016/03/01   Opening Balance      (2)
    APAC Budget      -$11,500.00        (3)
    EMEA Budget      -$21,650.00        (3)
    LATAM Budget     -$11,950.00        (3)
    NA Budget        -$29,400.00        (3)
    FUDCon LATAM     -$10,000.00        (3)
    FUDCon APAC      -$15,000.00        (3)
    Flock            -$75,000.00        (3)
    FADs Budget      -$15,000.00        (3)
    D&I              -$6,500.00         (3)
    Annual Budget     $196,000          (4)
1 This line is fixed. Copy it exactly.
2 Comments are awesome!
3 This is a budget allocation. This line indicates that the project will budget a certain amount of spending for a specific area.
4 This is the total annual public budget. Remember every transaction has to add up to $0. This is one is not an exception.

In some cases this is the end of the budget allocation. For example, there is no sub-budgeting done for Flock. We plan and execute that event as a single unit. In other cases, for example in the Ambassador Regions, the money is divided into two or more layers or sub-budgeting.

How do sub-budgets work?

Ambassador Regions are required to allocate their money into four quarters. This is to help with managing our spending rate. Some other areas of the project, for example FADs, are also often sub-budgeted, but not necessarily by quarter.

Sub-budgeting is pretty simple. It can be done in the file used by the specific area. Here is an example of how the NA budget my get broken down by quarter:

~ every 2 years
    ; Budget
    NA Budget                                         $29400
    NA:Q1                                            -$7350
    NA:Q2                                            -$7350
    NA:Q3                                            -$7350
    NA:Q4                                            -$7350

It works the same way as the council budget in the previous question. Notice that the order of the lines didn’t matter. Here they wrote the positive number first because it made sense to that region to think, "we had this money and we split it up like this." Again, everything adds to $0.

This can even be split further. Here is what an optional quarterly event budget might look like. This time the example is from EMEA.

~ every 2 years
    EMEA Q1                                             $4753.00
    EMEA:Q1:Mozilla & Fedora Activity Day              -$48
    EMEA:Q1:PyCon SK                                   -$242
    EMEA:Q1:Open Source Weekend                        -$30
    EMEA:Q1:Chemnitzer Linuxtage 2016                  -$787
    EMEA:Q1:3D Expo                                    -$73
    EMEA:Q1:Linux Wochen Vienna                        -$303
    EMEA:Q1:Fosscom 2016                               -$242
    EMEA:Q1:DORS-CLUC 2016                             -$424
    EMEA:Q1:OSCAL 2016                                 -$484
    EMEA:Q1:Swag                                       -$1817
    EMEA:Q1:Postage                                    -$303

What if something gets budgeted and then we change our mind?

There are two ways to fix this. Option 1, which is preferred, is to create another periodic transaction to change the budget. For example:

; Budget Transfers on 2016-05-17
; Approved in Meeting Minutes: https://github.com/fedora-infra/mote/foo/bar/baz
~ every 2 years
    EMEA:Q1:Open Source Weekend                         $30 ; event was cancelled
    EMEA:Q1:3D Expo                                     $23 ; We had extra money left
    EMEA:Q3:nullCon                                    -$53

In this case $53 was moved from events in Quarter 1 to an event in Quarter 3. The comments make everything extra clear.

The other option is to just edit the budget entries. This is less preferred as it means you would have to go through the file’s history to discover there had been a change.