financial-transparency.html 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412
  1. <html>
  2. <head>
  3. <title>Financial transparency: where your money goes with MediaGoblin</title>
  4. <meta name="date" contents="2014-04-16 10:10" />
  5. <meta name="author" contents="Christopher Allan Webber" />
  6. <meta name="tags" contents="mediagoblin, campaign, finances, transparency" />
  7. </head>
  8. <body>
  9. <p>
  10. As you very well may know, we are currently running a
  11. <a href="/pages/campaign.html">campaign for federation and privacy</a>.
  12. The campaign ends Friday, and we're
  13. <a href="/news/almost-there.html">close to meeting our second milestone</a>.
  14. Anything you can do to help us out seriously helps a lot.
  15. </p>
  16. <p class="blog_image">
  17. <a href="/pages/campaign.html"
  18. ><img src="/blog_images/to_the_people-banner.png"
  19. alt="To the people!" /></a>
  20. </p>
  21. <p>
  22. But you may wonder... where does your money go? How is your money
  23. used? Well, good news! We're revealing our full finances, and I'm
  24. giving a full breakdown of how we spent the money we raised in our
  25. last campaign. I hope by the end of this post you'll both be well
  26. informed about how your money goes to use, and also agree that as in
  27. terms of output from your donation, donating to MediaGoblin is a great
  28. use of your money!
  29. </p>
  30. <p>
  31. So, first of all, <a href="/files/finances/gmg_campaign.ldgr">here's the file</a>.
  32. (<b>Update:</b> this file is waived into the public domain under
  33. <a href="http://creativecommons.org/publicdomain/zero/1.0/">CC0 1.0</a>,
  34. so feel free to use/modify as you see fit!)
  35. It's plaintext, so you can open this in any text editor, but it's
  36. specifically formatted as a <a href="http://ledger-cli.org/">ledger file</a>.
  37. (We're using some metadata in there which requires using git master as
  38. ledger 3 has not been released yet, though if you remove the lines
  39. that look like comments embedded in the entries, they should work fine
  40. on ledger 2.) Note, this is <i>not</i> the official record of
  41. MediaGoblin's expenses/income. The FSF maintains their own books of
  42. MediaGoblin... it just so happens that in order to make sure that I am
  43. planning things correctly, I currently duplicate their efforts. The
  44. file you're getting here is thus my own records. It may not be
  45. following standard accounting practices... this is mostly for my
  46. planning purposes. :)
  47. </p>
  48. <p>
  49. Also note that for simplicity's sake, the file I've given gives only
  50. the money raised during last year's campaign and after, <i>prior</i> to
  51. this year's campaign starting.
  52. </p>
  53. <p>
  54. Okay! All that said, let's get on to the finances, right? Let's run
  55. a quick command to get the full balance::
  56. </p>
  57. <p><pre>
  58. $ ledger -f gmg_campaign.ldgr bal
  59. $1177.10 Assets:FSF account
  60. $50250.90 Expenses
  61. $3899.46 Campaign
  62. $200.00 Advertisement
  63. $440.00 Graphic design
  64. $3259.46 Rewards
  65. $479.48 Figurines
  66. $83.03 Postcards
  67. $752.07 Shipping
  68. $1620.70 Shirts
  69. $324.18 Stickers
  70. $40231.36 Development
  71. $30481.36 Chris Webber
  72. $4500.00 Natalie Foust-Pilcher
  73. $5250.00 OPW
  74. $5142.80 FSF administration
  75. $977.28 Travel
  76. $560.45 Chris Webber
  77. $416.83 Jessica Tallon
  78. $-51428.00 Income
  79. $-5000.00 Directed grants
  80. $-46428.00 General donations
  81. --------------------
  82. 0
  83. </pre></p>
  84. <p>
  85. Wow, okay! That's a lot of data. Maybe... too much data? If you
  86. aren't familiar with double entry accounting or with the ledger
  87. command line accounting tool, that might look confusing. Don't worry,
  88. we can break this down step by step.
  89. </p>
  90. <p>
  91. Let's start with income::
  92. </p>
  93. <p><pre>
  94. $ ledger -f gmg_campaign.ldgr bal ^Income
  95. $-51428.00 Income
  96. $-5000.00 Directed grants
  97. $-46428.00 General donations
  98. --------------------
  99. $-51428.00
  100. </pre></p>
  101. <p>
  102. Why is the income negative? Don't worry, that's normal in double
  103. entry accounting, if confusing to newcomers. In double entry
  104. accounting, money is never "lost"... it always comes from and goes to
  105. someplace. Hence income is negative... the money we're getting is
  106. moving initially from these accounts, but since they start at 0, they
  107. show up as negative. If it helps, forget there was ever a negative
  108. sign there.
  109. </p>
  110. <p>
  111. As you can see, there are two sub-accounts under income. There's
  112. $5000 that we received for a specific grant... this grant is currently
  113. in progress and being completed by Natalie Foust-Pilcher. I'll get to
  114. that later. The rest of the money ($46428) we got in is labeled
  115. "general donations"... this is money we received in the campaign that
  116. is more flexible. Note that I don't keep track of each individual
  117. donation transaction in the file... the FSF does that. I'm just
  118. mirroring the data I'm pulling down from them.
  119. </p>
  120. <p>
  121. Okay, so that's the money we got. Where did it go? Let's look at our
  122. assets (money we have) and expenses (money we spent). For
  123. simplicity's sake, we'll keep the data we have restricted to one level
  124. deep:
  125. </p>
  126. <p><pre>
  127. $ ledger -f gmg_campaign.ldgr bal ^Assets ^Expenses --depth=2
  128. $1177.10 Assets:FSF account
  129. $50250.90 Expenses
  130. $3899.46 Campaign
  131. $40231.36 Development
  132. $5142.80 FSF administration
  133. $977.28 Travel
  134. --------------------
  135. $51428.00
  136. </pre></p>
  137. <p>
  138. (You'll notice the combined amount here is the same number as the
  139. income we looked at above, but positive!)
  140. </p>
  141. <p>
  142. Okay, keeping this at a 2-level-deep structure... this is easy to
  143. read. As you can see, we've still got $1177.10 in our account at the
  144. FSF as a safety buffer, and we've spent $50250.90 of that.
  145. </p>
  146. <p>
  147. That might not be easy to really get a grasp on just looking at in
  148. text form, so let's see where that money currently is, in pie chart form:
  149. </p>
  150. <p class="centered">
  151. <img src="/blog_images/mediagoblin_expense_breakdown.png"
  152. alt="MediaGoblin expense breakdown">
  153. </p>
  154. <p>
  155. Okay! Now that's a bit easier to read. From the chart it's easy to
  156. see that the vast majority of money went toward development itself.
  157. Actually, if you combine this with travel (ie, reimbursement for
  158. myself and another contributor speaking about MediaGoblin or
  159. participating in MediaGoblin hackfests), that's over 80% of the budget
  160. right there directly to the most important part of the
  161. project... developing the project itself! (We'll come back to the
  162. development section in a moment... but first let's get the smaller
  163. slices of the chart out of the way.)
  164. </p>
  165. <p>
  166. As mentioned above, the 2.3% in the "unspent / available section" is
  167. the bit we still have in the bank at the FSF. Keep in mind that this
  168. is before our current fundraising... we had a small amount left in the
  169. bank; not terribly much, but enough to keep a buffer.
  170. </p>
  171. <p>
  172. Next up there's the 10% "FSF administration" portion of the expenses.
  173. The <a href="http://fsf.org/">Free Software Foundation</a> is our fiscal
  174. sponsor... they handle a number of things for us, including running
  175. the infrastructure portion of the campaign. If we had gone with a
  176. proprietary crowdfunding system, we may have seen similarly a 5% slice
  177. going into the crowdfunding platform hosting overhead. However, as
  178. fiscal sponsor the FSF does much more for us than just hosting funding
  179. infrastructure; they also help handle employment contracting, sending
  180. out tax forms, having financial stewardship that ensures that the
  181. money will be used in a way that's in alignment with their mission,
  182. tax deductability of donations, processing Bitcoin donations, and
  183. promotion of the project. Other things too that I'm missing, I'm
  184. sure. So, 10% seems like a big percentage possibly, but they're doing
  185. a lot for us (including basically handling our human resources
  186. overhead), and if you consider that this money goes to a nonprofit
  187. that supports free software... not bad!
  188. </p>
  189. <p>
  190. So the last of the not-directly-development-related slices is the
  191. campaign expenses themselves. Let's focus on those details right now,
  192. shall we?
  193. </p>
  194. <p><pre>
  195. $ ledger -f gmg_campaign.ldgr bal Campaign
  196. $3899.46 Expenses:Campaign
  197. $200.00 Advertisement
  198. $440.00 Graphic design
  199. $3259.46 Rewards
  200. $479.48 Figurines
  201. $83.03 Postcards
  202. $752.07 Shipping
  203. $1620.70 Shirts
  204. $324.18 Stickers
  205. --------------------
  206. $3899.46
  207. </pre></p>
  208. <p>
  209. So, the campaign expenses were 7.6% of the above budget. Of that, the
  210. vast majority of the campaign-related clearly went towards the rewards
  211. themselves (83.6% of the campaign expenses, but just 6.3% of the
  212. actual entire budget). This actually is not bad... I once heard it
  213. said that "many crowdfunding people lose their shirts over sending out
  214. shirts", and that thankfully isn't the case here... the vast majority
  215. of the money we brought into the project got to go into advancing the
  216. project itself. It is a big chunk, but not so big as to take away
  217. from the project. But yes, you can see that if you'd prefer to not
  218. get the goodies that will increase your impact, but at the cost margin
  219. here accepting a reward is still perfectly okay if you'd like to do
  220. that! (And we can't blame you, we do have some
  221. <a href="/pages/campaign.html">cool rewards</a>.) Shipping did factor in
  222. hugely, especially international shipping, which is
  223. very expensive these days... as long as you add to your donation when
  224. selecting a reward for international shipping though, that should be
  225. okay.
  226. </p>
  227. <p>
  228. Aside from that, we did put in $200 as an experiment on advertising
  229. the campaign on Reddit last year... though we've gotten a <i>lot</i> of our
  230. donors from Reddit, I'm afraid I can't say that was cost effective for
  231. us (oh well, I guess it's paying back a bit for all the publicity we
  232. get from Redditors), and it was only 0.4% of the budget, and a lesson
  233. learned. We also paid longtime MediaGoblin contributor and original
  234. lead graphic designer of the project Jef van Schendel to do some
  235. design for last year's campaign, which thankfully we were able to
  236. reuse a good portion of for this year's campaign. Given all that Jef
  237. has done for the project, we were more than happy to pay him a bit for
  238. this help.
  239. </p>
  240. <p>
  241. As for travel, mostly I consider this rolled in with the development
  242. section, but oh well, we'll give it its own paragraph anyway. The
  243. $560.45 was from a bit of traveling I did promoting MediaGoblin, and
  244. the $416.83 was from Jessica Tallon (our Outreach Program for Women
  245. participant and
  246. <a href="/news/pump-api-progress.html">lead on our federation work</a>) joining
  247. us at our
  248. <a href="https://www.fsf.org/blogs/community/global-celebration-for-the-gnu-systems-30th-anniversary">GNU 30th hackathon</a>.
  249. This reimbursement also fulfilled a travel grant requirement for
  250. our Outreach Program for Women participation.
  251. </p>
  252. <p>
  253. Okay, that's all the smaller slices out of the way. On to the big
  254. one: development! Note, in this case I don't mean the nonprofit line
  255. of "development" which is to say "fundraising" but rather "putting
  256. money into the actual development of the project"
  257. (whether code or <a href="/news/non-coders-revolution.html">non-code contributions</a>).
  258. Anyway:
  259. </p>
  260. <p><pre>
  261. $ ledger -f gmg_campaign.ldgr bal development
  262. $40231.36 Expenses:Development
  263. $30481.36 Chris Webber
  264. $4500.00 Natalie Foust-Pilcher
  265. $5250.00 OPW
  266. --------------------
  267. $40231.36
  268. </pre></p>
  269. <p>
  270. So you may remember earlier when I mentioned that we had a "directed
  271. grant" as a $5000 source of income. With 10% going to the FSF, the
  272. remaining $4500 goes straight to development... this work is being
  273. picked up by Natalie Foust-Pilcher, who is working on this now.
  274. (Actually, since the work is still in progress, not all of it has been
  275. yet paid, but for the version of the ledger file I am putting up, it's
  276. easier to just account for it as paid than to try to explain some sort of
  277. <a href="http://en.wikipedia.org/wiki/Accrual_accounting">accrual accounting</a>
  278. transactions or something equally smart.) The project is to improve
  279. MediaGoblin's metadata support and make MediaGoblin more for academic
  280. environments and archival institutions. Pretty cool!
  281. </p>
  282. <p>
  283. $5250 goes to our participation in
  284. <a href="https://gnome.org/opw/">Outreach Program for Women</a>.
  285. Last year we had an incredible summer with
  286. <a href="/news/summer-of-awesome.html">six great internships (four of them women) between Google Summer of Code and Outreach Program for Women</a>.
  287. </p>
  288. <p>
  289. There are few things we've done that I am more proud of in
  290. MediaGoblin; not only was the output great (this lead to a whole
  291. <a href="/news/mediagoblin-0.5.0-goblin-force.html">slew of awesome features in 0.5.0</a>,
  292. helped kickstart <a href="/news/pump-api-progress.html">our federation work</a>,
  293. introduced us to community member Natalie Foust-Pilcher who is now
  294. doing work on our present MediaGoblin-for-archival/academic-institutions,
  295. and allowed us to have a massively cost-effective increase in our
  296. development productivity, while also expanding our community), I also
  297. think it was <a href="/news/opw-gsoc-2013.html">a morally important thing to do</a>.
  298. It did have a personal cost for me... the money spent on Outreach
  299. Program for Women effectively came out of my paycheck. But the return
  300. on that investment was so great, both productivity-wise and
  301. community-wise, that I'm confident in that decision.
  302. </p>
  303. <p>
  304. So, speaking of my paycheck, let's get to that last item of the
  305. budget, which is by far the biggest item, at 59.2% of the budget.
  306. $30481.36 of the money we raised went to me, which paid me to do a
  307. whole multitude of things: I was lead developer and primary architect
  308. of the project, I did lots of code review, I did a bunch of
  309. administrative work, I oversaw all those internships both mentoring
  310. and meta-mentoring... I wore a lot of hats. I worked hard, taking
  311. very very few days off. (Most weeks were 60 hour weeks, and aside from
  312. a few family gatherings around holidays and a couple of sick days, I
  313. did not even take weekends off really.) If you consider the over a
  314. year's worth of dedicated work I put into the project, and then you
  315. actually factor in the time it's taken to do each of these fundraising
  316. campaigns, that money was my income for day to day work for a year and
  317. a half's worth of work. That puts my income from this project at only
  318. about 20k USD per year. That's not a lot of money for anyone in the
  319. United States (yes, I am spending my own savings to do this), and as a
  320. programmer, especially with the experience I've accrued at this time,
  321. I could be making a <i>lot</i> more for a <i>lot</i> less work
  322. and <i>much</i> less stress. So why do it?
  323. </p>
  324. <p>
  325. I believe in MediaGoblin, and the work we are trying to do here. Both
  326. the software itself, but more than that: the things it stands for of
  327. user freedom. We are at a critical time, where many people are paying
  328. lip service to the ideas of network freedom, but the actual amount of
  329. dedicated work going into it is very low. I think we're at a real
  330. crossroads right now... on the one hand, people are aware of issues of
  331. network freedom, but on the other hand, that's because things
  332. are <i>really bad</i> right now. There's a better internet out there
  333. that we want. But someone has to build it. If not us, who? I
  334. believe we have the right community, the right skills, and we are well
  335. positioned in MediaGoblin to make a real and actual difference.
  336. </p>
  337. <p>
  338. And we are making a difference. Just look at what the last year has
  339. brought us: we
  340. <a href="/news/mediagoblin-0.3.2-goblinverse.html">got</a>
  341. <a href="/news/mediagoblin-0.3.3-pixel-party.html">out</a>
  342. <a href="/news/mediagoblin-0.4.0-hall-of-the-archivist.html">five</a>
  343. <a href="/news/mediagoblin-0.5.0-goblin-force.html">major</a>
  344. <a href="/news/mediagoblin-0.6.0-lore-of-the-admin.html">releases</a>,
  345. six major projects across those
  346. summer internships, not to mention that work on federation has
  347. actually begun and is moving forward. And you got me working on the
  348. project, at a heavily, heavily discounted price. I'm going to say:
  349. dollar for dollar on network freedom development, I don't think you
  350. can actually get a better deal than the one you are getting here.
  351. </p>
  352. <p>
  353. If any or all of that resonates with you, I'm going to ask:
  354. <a href="/pages/campaign.html">please, please donate</a>. We're working hard
  355. to reach our second funding milestone, and we're actually
  356. <a href="/news/almost-there.html">very close</a> when you
  357. factor in the current
  358. <a href="/news/passed-first-milestone-and-10k-matching.html">10k matching grant</a>.
  359. </p>
  360. <p>
  361. We work hard to make good use of any money you donate (and, as you
  362. see, even helping you know how that money is used).
  363. <a href="/pages/campaign.html">Anything you can give helps a lot.</a>
  364. </p>
  365. <p class="centered">
  366. <a href="/pages/campaign.html"
  367. ><img src="/blog_images/goblin_force_badge-campaign.png"
  368. alt="goblin force badge for campaign"></a>
  369. </p>
  370. </body>
  371. </html>