As you very well may know, we are currently running a
campaign for federation and privacy.
The campaign ends Friday, and we're
close to meeting our second milestone.
Anything you can do to help us out seriously helps a lot.
But you may wonder... where does your money go? How is your money
used? Well, good news! We're revealing our full finances, and I'm
giving a full breakdown of how we spent the money we raised in our
last campaign. I hope by the end of this post you'll both be well
informed about how your money goes to use, and also agree that as in
terms of output from your donation, donating to MediaGoblin is a great
use of your money!
So, first of all, here's the file.
(Update: this file is waived into the public domain under
CC0 1.0,
so feel free to use/modify as you see fit!)
It's plaintext, so you can open this in any text editor, but it's
specifically formatted as a ledger file.
(We're using some metadata in there which requires using git master as
ledger 3 has not been released yet, though if you remove the lines
that look like comments embedded in the entries, they should work fine
on ledger 2.) Note, this is not the official record of
MediaGoblin's expenses/income. The FSF maintains their own books of
MediaGoblin... it just so happens that in order to make sure that I am
planning things correctly, I currently duplicate their efforts. The
file you're getting here is thus my own records. It may not be
following standard accounting practices... this is mostly for my
planning purposes. :)
Also note that for simplicity's sake, the file I've given gives only
the money raised during last year's campaign and after, prior to
this year's campaign starting.
Okay! All that said, let's get on to the finances, right? Let's run
a quick command to get the full balance::
$ ledger -f gmg_campaign.ldgr bal
$1177.10 Assets:FSF account
$50250.90 Expenses
$3899.46 Campaign
$200.00 Advertisement
$440.00 Graphic design
$3259.46 Rewards
$479.48 Figurines
$83.03 Postcards
$752.07 Shipping
$1620.70 Shirts
$324.18 Stickers
$40231.36 Development
$30481.36 Chris Webber
$4500.00 Natalie Foust-Pilcher
$5250.00 OPW
$5142.80 FSF administration
$977.28 Travel
$560.45 Chris Webber
$416.83 Jessica Tallon
$-51428.00 Income
$-5000.00 Directed grants
$-46428.00 General donations
--------------------
0
Wow, okay! That's a lot of data. Maybe... too much data? If you
aren't familiar with double entry accounting or with the ledger
command line accounting tool, that might look confusing. Don't worry,
we can break this down step by step.
Let's start with income::
$ ledger -f gmg_campaign.ldgr bal ^Income
$-51428.00 Income
$-5000.00 Directed grants
$-46428.00 General donations
--------------------
$-51428.00
Why is the income negative? Don't worry, that's normal in double
entry accounting, if confusing to newcomers. In double entry
accounting, money is never "lost"... it always comes from and goes to
someplace. Hence income is negative... the money we're getting is
moving initially from these accounts, but since they start at 0, they
show up as negative. If it helps, forget there was ever a negative
sign there.
As you can see, there are two sub-accounts under income. There's
$5000 that we received for a specific grant... this grant is currently
in progress and being completed by Natalie Foust-Pilcher. I'll get to
that later. The rest of the money ($46428) we got in is labeled
"general donations"... this is money we received in the campaign that
is more flexible. Note that I don't keep track of each individual
donation transaction in the file... the FSF does that. I'm just
mirroring the data I'm pulling down from them.
Okay, so that's the money we got. Where did it go? Let's look at our
assets (money we have) and expenses (money we spent). For
simplicity's sake, we'll keep the data we have restricted to one level
deep:
$ ledger -f gmg_campaign.ldgr bal ^Assets ^Expenses --depth=2
$1177.10 Assets:FSF account
$50250.90 Expenses
$3899.46 Campaign
$40231.36 Development
$5142.80 FSF administration
$977.28 Travel
--------------------
$51428.00
(You'll notice the combined amount here is the same number as the
income we looked at above, but positive!)
Okay, keeping this at a 2-level-deep structure... this is easy to
read. As you can see, we've still got $1177.10 in our account at the
FSF as a safety buffer, and we've spent $50250.90 of that.
That might not be easy to really get a grasp on just looking at in
text form, so let's see where that money currently is, in pie chart form:
Okay! Now that's a bit easier to read. From the chart it's easy to
see that the vast majority of money went toward development itself.
Actually, if you combine this with travel (ie, reimbursement for
myself and another contributor speaking about MediaGoblin or
participating in MediaGoblin hackfests), that's over 80% of the budget
right there directly to the most important part of the
project... developing the project itself! (We'll come back to the
development section in a moment... but first let's get the smaller
slices of the chart out of the way.)
As mentioned above, the 2.3% in the "unspent / available section" is
the bit we still have in the bank at the FSF. Keep in mind that this
is before our current fundraising... we had a small amount left in the
bank; not terribly much, but enough to keep a buffer.
Next up there's the 10% "FSF administration" portion of the expenses.
The Free Software Foundation is our fiscal
sponsor... they handle a number of things for us, including running
the infrastructure portion of the campaign. If we had gone with a
proprietary crowdfunding system, we may have seen similarly a 5% slice
going into the crowdfunding platform hosting overhead. However, as
fiscal sponsor the FSF does much more for us than just hosting funding
infrastructure; they also help handle employment contracting, sending
out tax forms, having financial stewardship that ensures that the
money will be used in a way that's in alignment with their mission,
tax deductability of donations, processing Bitcoin donations, and
promotion of the project. Other things too that I'm missing, I'm
sure. So, 10% seems like a big percentage possibly, but they're doing
a lot for us (including basically handling our human resources
overhead), and if you consider that this money goes to a nonprofit
that supports free software... not bad!
So the last of the not-directly-development-related slices is the
campaign expenses themselves. Let's focus on those details right now,
shall we?
$ ledger -f gmg_campaign.ldgr bal Campaign
$3899.46 Expenses:Campaign
$200.00 Advertisement
$440.00 Graphic design
$3259.46 Rewards
$479.48 Figurines
$83.03 Postcards
$752.07 Shipping
$1620.70 Shirts
$324.18 Stickers
--------------------
$3899.46
So, the campaign expenses were 7.6% of the above budget. Of that, the
vast majority of the campaign-related clearly went towards the rewards
themselves (83.6% of the campaign expenses, but just 6.3% of the
actual entire budget). This actually is not bad... I once heard it
said that "many crowdfunding people lose their shirts over sending out
shirts", and that thankfully isn't the case here... the vast majority
of the money we brought into the project got to go into advancing the
project itself. It is a big chunk, but not so big as to take away
from the project. But yes, you can see that if you'd prefer to not
get the goodies that will increase your impact, but at the cost margin
here accepting a reward is still perfectly okay if you'd like to do
that! (And we can't blame you, we do have some
cool rewards.) Shipping did factor in
hugely, especially international shipping, which is
very expensive these days... as long as you add to your donation when
selecting a reward for international shipping though, that should be
okay.
Aside from that, we did put in $200 as an experiment on advertising
the campaign on Reddit last year... though we've gotten a lot of our
donors from Reddit, I'm afraid I can't say that was cost effective for
us (oh well, I guess it's paying back a bit for all the publicity we
get from Redditors), and it was only 0.4% of the budget, and a lesson
learned. We also paid longtime MediaGoblin contributor and original
lead graphic designer of the project Jef van Schendel to do some
design for last year's campaign, which thankfully we were able to
reuse a good portion of for this year's campaign. Given all that Jef
has done for the project, we were more than happy to pay him a bit for
this help.
As for travel, mostly I consider this rolled in with the development
section, but oh well, we'll give it its own paragraph anyway. The
$560.45 was from a bit of traveling I did promoting MediaGoblin, and
the $416.83 was from Jessica Tallon (our Outreach Program for Women
participant and
lead on our federation work) joining
us at our
GNU 30th hackathon.
This reimbursement also fulfilled a travel grant requirement for
our Outreach Program for Women participation.
Okay, that's all the smaller slices out of the way. On to the big
one: development! Note, in this case I don't mean the nonprofit line
of "development" which is to say "fundraising" but rather "putting
money into the actual development of the project"
(whether code or non-code contributions).
Anyway:
$ ledger -f gmg_campaign.ldgr bal development
$40231.36 Expenses:Development
$30481.36 Chris Webber
$4500.00 Natalie Foust-Pilcher
$5250.00 OPW
--------------------
$40231.36
So you may remember earlier when I mentioned that we had a "directed
grant" as a $5000 source of income. With 10% going to the FSF, the
remaining $4500 goes straight to development... this work is being
picked up by Natalie Foust-Pilcher, who is working on this now.
(Actually, since the work is still in progress, not all of it has been
yet paid, but for the version of the ledger file I am putting up, it's
easier to just account for it as paid than to try to explain some sort of
accrual accounting
transactions or something equally smart.) The project is to improve
MediaGoblin's metadata support and make MediaGoblin more for academic
environments and archival institutions. Pretty cool!
$5250 goes to our participation in
Outreach Program for Women.
Last year we had an incredible summer with
six great internships (four of them women) between Google Summer of Code and Outreach Program for Women.
There are few things we've done that I am more proud of in
MediaGoblin; not only was the output great (this lead to a whole
slew of awesome features in 0.5.0,
helped kickstart our federation work,
introduced us to community member Natalie Foust-Pilcher who is now
doing work on our present MediaGoblin-for-archival/academic-institutions,
and allowed us to have a massively cost-effective increase in our
development productivity, while also expanding our community), I also
think it was a morally important thing to do.
It did have a personal cost for me... the money spent on Outreach
Program for Women effectively came out of my paycheck. But the return
on that investment was so great, both productivity-wise and
community-wise, that I'm confident in that decision.
So, speaking of my paycheck, let's get to that last item of the
budget, which is by far the biggest item, at 59.2% of the budget.
$30481.36 of the money we raised went to me, which paid me to do a
whole multitude of things: I was lead developer and primary architect
of the project, I did lots of code review, I did a bunch of
administrative work, I oversaw all those internships both mentoring
and meta-mentoring... I wore a lot of hats. I worked hard, taking
very very few days off. (Most weeks were 60 hour weeks, and aside from
a few family gatherings around holidays and a couple of sick days, I
did not even take weekends off really.) If you consider the over a
year's worth of dedicated work I put into the project, and then you
actually factor in the time it's taken to do each of these fundraising
campaigns, that money was my income for day to day work for a year and
a half's worth of work. That puts my income from this project at only
about 20k USD per year. That's not a lot of money for anyone in the
United States (yes, I am spending my own savings to do this), and as a
programmer, especially with the experience I've accrued at this time,
I could be making a lot more for a lot less work
and much less stress. So why do it?
I believe in MediaGoblin, and the work we are trying to do here. Both
the software itself, but more than that: the things it stands for of
user freedom. We are at a critical time, where many people are paying
lip service to the ideas of network freedom, but the actual amount of
dedicated work going into it is very low. I think we're at a real
crossroads right now... on the one hand, people are aware of issues of
network freedom, but on the other hand, that's because things
are really bad right now. There's a better internet out there
that we want. But someone has to build it. If not us, who? I
believe we have the right community, the right skills, and we are well
positioned in MediaGoblin to make a real and actual difference.
And we are making a difference. Just look at what the last year has
brought us: we
got
out
five
major
releases,
six major projects across those
summer internships, not to mention that work on federation has
actually begun and is moving forward. And you got me working on the
project, at a heavily, heavily discounted price. I'm going to say:
dollar for dollar on network freedom development, I don't think you
can actually get a better deal than the one you are getting here.
If any or all of that resonates with you, I'm going to ask:
please, please donate. We're working hard
to reach our second funding milestone, and we're actually
very close when you
factor in the current
10k matching grant.
We work hard to make good use of any money you donate (and, as you
see, even helping you know how that money is used).
Anything you can give helps a lot.