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.

What if we have a budget item (event) that has expenses in multiple quarters?

In Fedora we budget our events and items by the quarter in which they are expected to occur. In general, our budget items are small enough that it won’t change anything. Exceptions are large events like Flock. Doing this lets us make one budget entry for something like an event instead of having to make guesses about how much of the expense will fall in each quarter.

The goal of the budget is to make sure you have roughly allocated your expenses to occur in equal parts year round. There will definitely be exceptions as some things just naturally bunch up and some quarters are low on events/items. However, it should all roughly even out. Therefore we don’t need to worry about budgeting the exact costs in each quarter as long as the quarter where the item happens is accurate.

If we think about an event that will occur during Q3, we consider, from a budget perspective that all costs related to the event will occur in Q3. If we want to see when they really occurred we can look at the date of the associated transactions. This is kind of split brain, but doing it this way prevents us from having to budget the same event in two quarters or leave long non-machine parseable comments.

What are the best practices or best ideas for Ambassador Regions?

The budget is here to help everyone plan both the regions and the council. Therefore, it is helpful to think of the budget as your "notes about the future." Specifically, it is a good idea to immediately put things into the budget when they are approved. This way you can see reports of how much money you have left to allocate. When spending happens you’ll be able to see if the budgets were accurate and if there is any overage or underspend.

Here is an example, Using LATAM and some ficticious numbers:

~ every 2 years
    ; Budget
    LATAM:Unallocated     $12000
    LATAM:Q1             -$4000
    LATAM:Q2             -$4000
    LATAM:Q3             -$4000
    LATAM:Q4             -$4000

The entry above divides the LATAM budget into quarterly budgets. Each quarter is broken down as follows

~ every 2 years
    ; Budget
    LATAM:Q1                                             $4000
    LATAM:Q1:UNSACC LinuxPlaya                          -$606
    LATAM:Q1:Cs50xni                                    -$1020
    LATAM:Q1:Flisol                                     -$750
    LATAM:Q1:CryptoRave                                 -$0 ; event cancelled
    LATAM:Q1:SASO Conf                                  -$1000 ; we usually do this - not yet approved
    LATAM:Q1:Unallocated                                        ; Leave blank it will calculate automatically

Here we have broken down a single budget quarter. Three events have been voted on and approved by the LATAM ambassadors. These are UNSACC LinuxPlaya, Cs50xni, and Flisol.

CryptoRave was originally approved (or considered) but then the event got canceled or we decided not to participate. Leaving the note here like this makes it easy to remember the event in the future or in next year’s planning.

SASO Conf is an event that LATAM has traditionally done. When the yearly planning was done a tentative $1000 was going to be used for this event. This event isn’t approved yet and hasn’t got a LATAM sponsor. It exists in this entry as a planning reminder. If the LATAM ambassadors start to run out of money making decisions on these kinds of events can help make decision about what trade-offs to make or whether to ask for more money.