PyCon: Everybody Pays

May 25th, 2011 § 11 comments

Pre­am­ble

There’s been some recent dis­cus­sion about DjangoCon(.eu | .us) and whether or not speak­ers should have to pay for admis­sion as well — see Chris Wanstrath’s (of Github) tweets (here and here) and this Con­vore thread for exam­ples. Obvi­ously, as PyCon is the “big dog” so to speak for Python con­fer­ences, every­one looks to “us” for a model to work from, or how we man­age things. I’ve seen a lot of poop slung towards the Djan­go­Con orga­niz­ers, mainly due to a lack of know­ing “why” cer­tain poli­cies (such as “Every­one Pays”) exist for Djan­go­Con, PyCon, and other conferences.

As co-chair and pro­gram com­mit­tee chair last year, and pro­gram com­mit­tee chair the year before, and now chair for the next two years — I fig­ured it might be good to take a moment to explain the ratio­nale behind PyCon’s approach — as well as some sta­tis­tics about the bud­get. I’m not going to state that this pol­icy is per­fect; nor that it won’t be changed; I also will not release the bud­get pub­licly — I don’t think giv­ing every­one a spread­sheet with­out the con­text of the hun­dreds of man hours of work that go into it is use­ful, at all.

Impor­tant Note: PyCon is orga­nized and man­aged by the Python Soft­ware Foun­da­tion — this means that, as part of being a 501c3 char­ity, some of the finan­cials from past PyCon is avail­able as part of pub­licly acces­si­ble finan­cial doc­u­ments of the foun­da­tion. You can find those on the PSF’s site.

The same rea­son­ing may not apply to a con­fer­ence that is orga­nized by a com­mer­cial entity or is done for profit. OSCON is a com­mer­cial con­fer­ence, so hav­ing speak­ers get in free is gen­er­ally expected. DjangoCon.us is in the mid­dle — it is orga­nized for profit by a com­mer­cial entity, but it also con­tributes heav­ily back to the Django Soft­ware Foun­da­tion. DjangoCon.eu is man­aged dif­fer­ently as well.

Pol­icy and Finan­cial Aid

First, what is the “pol­icy” — well, first, it’s not a pol­icy per-se; it’s part pol­icy, and part tra­di­tion. The pol­icy is “Every­one pays for a ticket” — atten­dees, tuto­r­ial pre­sen­ters, orga­niz­ers (mean­ing: all vol­un­teers, includ­ing the chair) and spon­sors — every­one pays their way. Yes, this means Van and myself both paid for our own tick­ets to attend. Every­one is treated as equal — spon­sors get free admis­sions as part of con­fer­ence spon­sor­ship pack­ages, and keynote speak­ers may be pro­vided with either com­pen­sa­tion or admis­sion depend­ing on the nego­ti­ated deal (some keynote speak­ers cost money, for example).

Now; an inter­est­ing aspect of this is that PyCon, as a con­fer­ence, offers a very gen­er­ous finan­cial aid pro­gram — this means that some atten­dees, speak­ers, tuto­r­ial pre­sen­ters, etc have some, or in rare cases, all of their expenses such as flight, hotel and admis­sion pro­vided to them from the PyCon bud­get. PyCon goes out of it’s way to encour­age peo­ple to apply for finan­cial aid — even if we can’t cover all of your expenses, we will give you free admis­sion based on need. The FA appli­ca­tion process is sim­ple, and straight­for­ward. It’s also very lib­eral — the only caveat is that speak­ers at the con­fer­ence “get bumped to the top” of the appli­ca­tions so that we don’t lose a good talk because of finan­cial need. We also don’t ban any­one from apply­ing (for exam­ple, I needed assis­tance in 2010 even as the PC chair).

We use the FA bud­get to not only help the “nor­mal” atten­dees of the con­fer­ence, we also keep an eye towards diver­sity — for exam­ple in 2010 we had a spe­cific grant pro­gram (funded by Google) for women to attend PyCon — which they did in amaz­ing num­bers! We also try to help more peo­ple with less money than less peo­ple with more money — we want to spread assis­tance out as much as pos­si­ble. This is why FA requires room-sharing at the con­fer­ence hotel, this is why we may only cover part of a given applicant’s costs — we want to help more peo­ple.

As you can guess — since finan­cial aid is a part of the bud­get, we allo­cate a set amount of money to this — but, with­out a solid bud­get (mean­ing, admis­sion ticket sales, spon­sor­ships, etc) we can’t have it — it’s actu­ally a dice roll. We can guess at how much FA we can carve out of the bud­get at the start of the process, and we will award that amount — but that means if we have low atten­dance, don’t book enough rooms, or our cater­ing costs spike, or lack spon­sors, the con­fer­ence can lose not insignif­i­cant amounts of money help­ing peo­ple. The rub being, you don’t know for sure if this will hap­pen until the con­fer­ence actu­ally hap­pens.

So, how does “every­body pays” play into this? In two ways. First, it helps hedge our risk, insti­tu­tion­ally speak­ing. PyCon had a good/bad year in 2009 — good for the atten­dees, but hor­ren­dously bad finan­cially. We made var­i­ous com­mit­ments in 2008 just as the mar­kets were peak­ing, and we lost a lot of money when every­thing went south. Since then, it has been our bud­get pol­icy to make sure that our rev­enues will cover our hard costs even if there is a 15% dip in atten­dance and a 35% dip in sponsorship.

Sec­ond, you may have guessed that the “every­body pays” pol­icy allows us to pad the finan­cial aid bud­get. This has the direct ben­e­fit of bring­ing more peo­ple to the con­fer­ence, increas­ing the diver­sity of peo­ple attend­ing, get­ting a larger pro­por­tion of the com­mu­nity together, etc.

I’m happy to say, that on most years, we very hap­pily break our finan­cial aid bud­get — mean­ing, if we have a pos­i­tive out­look, we will gladly over­spend on finan­cial aid and take less “profit ” for the con­fer­ence. The point of the con­fer­ence is the com­mu­nity, it’s not about the con­fer­ence! We help the com­mu­nity as much as we can by help­ing to cover the costs of peo­ple who would not oth­er­wise be able to attend.

His­tory and Tradition

Once you start orga­niz­ing a con­fer­ence you start to rapidly real­ize how costly things can get — and if you don’t have spon­sors with giant bags of money, or the con­fer­ence is not being run for profit (such as OSCON), you can quickly get into trou­ble if you don’t have a pol­icy in place that will ensure finan­cial viability. PyCon came from very small, hum­ble begin­nings but has grown year over year con­sis­tently — main­tain­ing the “every­one helps, and every­one pays” tra­di­tion orig­i­nally set forth.

It is my under­stand­ing that the policy/tradition has as much to do with finan­cials as it does with “the feel”. No one is treated spe­cially, we — mean­ing the com­mu­nity — put together the con­fer­ence, we are tak­ing the finan­cial risk that comes with it. We are in it together, and that means “every­one helps, and every­one pays” — it is the most equi­table solu­tion that helps us main­tain fair­ness and the flavor/feel of the con­fer­ence. When you real­ize that even Guido has to buy a ticket (even if it was paid for by Google) or that Van Lind­berg had to buy one — it sud­denly makes you real­ize that all of us truly believe in the spirit of “we are all in this”.

Speak­ers; as a an addi­tional guide­line, while always pay­ing for a ticket; always pay at the dis­counted early bird rate no mat­ter when they reg­is­ter. So yes, we do dis­count them, but no more than any­one else who reg­is­ters within the early bird window.

As an aside, the “every­body helps” is also part of what makes PyCon spe­cial. When peo­ple come to other con­fer­ences, they fre­quently come expect­ing to be cod­dled and catered to. When peo­ple come to PyCon, we hope they come expect­ing to con­tribute. Hav­ing every­body con­tribut­ing is at the core of the best parts of PyCon — from stuff­ing bags, to light­ning talks, to the won­der­ful Test­ing in Python BOF.

Hard Costs, Stats and Risk

So what makes up a PyCon bud­get? Well — Van cov­ered some of it in his won­der­ful “Behind the Scenes” post for PyCon 2011 — but in more detailed terms of per­cent­ages of the total costs for the budget:

  • Cater­ing (Food, bev­er­ages): 54%
  • Net­work­ing: 5%
  • Audio/Visual and Video Record­ing: 13%
  • Pay­ments to Tuto­r­ial Instruc­tors: 6%
  • Misc/PR/Sponsors and Admin­is­tra­tion: 16%
  • Swag: 2%
  • Finan­cial Aid: 4%

Cater­ing, plus Finan­cial Aid and video record­ing is 70% of the bud­get alone. The total value “spent” for finan­cial aid alone well exceeds 50,000$ We spend a mas­sive amount of money for audio/visual and the video record­ing mak­ing all of the talks avail­able on the web (see the python miro com­mu­nity). Tens of thou­sands of dol­lars spent on networking.

We could forgo feed­ing peo­ple — but with a con­fer­ence that runs from 8am to 6pm for 5 days, that would suck — and peo­ple need­ing to leave to get food would be dis­rup­tive and ruin the flow. We could forgo record­ing the videos. We could do a lot of things to cut back and lower the bud­get num­bers so we could give more away (such as comp’ing speaker tick­ets), but that doesn’t make the risk and costs from the hotel go away.

  • Aver­age Rev­enue per attendee: ~$300
  • Aver­age Cost per attendee: ~$465

In total — these costs (for 2011) came to well over 600,000$ — that’s right. Over half a mil­lion dol­lars in hard costs for a con­fer­ence of 1,380 Python­istas. Much of the pay­ments, guar­an­tees, deposits, etc have to be put down up front of the actual con­fer­ence with no guar­an­tee that we will make our spon­sor­ship or attendee num­bers. That means, in the case of PyCon — the Python Soft­ware Foun­da­tion fronts poten­tially hun­dreds of thou­sands of dol­lars in pay­ments and risk. We also expect these to climb with the move of the con­fer­ence to Santa Clara.

Con­fer­ences are unknowns — you put up a lot of time, energy and money — lots of money — and you hope you hit cer­tain num­bers. For exam­ple, you make a con­tract with the hotel that says “we will have X num­ber of peo­ple book X num­ber of rooms nights” — if you don’t meet those num­bers? The hotel penal­izes you a stun­ning amount of money. You make a con­tact for cater­ing — say­ing that you will serve X num­ber of meals — and if you don’t hit that? You get penal­ized. You put a lot of faith in mak­ing num­bers on:

  • Spon­sors — with­out cor­po­rate spon­sors, we sim­ply could not exist (at this scale), period.
  • Attendee Num­bers — You expect X num­ber of atten­dees, bro­ken up into “cor­po­rate, indi­vid­ual and Y” rates — cor­po­rate rate tick­ets are where you make the bulk of reg­is­tra­tion rates.
  • Hotel Rooms — if you don’t hit your con­tracted num­bers, you will take a bath

Do you know what hap­pens if, for some rea­son — say an eco­nomic down­turn — you don’t make those num­bers? Your con­fer­ence loses over $230,000, pos­si­bly more. That 230k num­ber? Right around the amount PyCon 2009 lost, rep­re­sent­ing a mas­sive finan­cial loss for the Python Soft­ware Foun­da­tion. Yes, you try to mit­i­gate the risks by care­ful plan­ning — if you’re lucky, you get some insur­ance to cover some of the poten­tial losses. PyCon is actu­ally really lucky in all of this — we’ve grown enough that we get to lever­age economies of scale with the con­tracts we deal with. Small con­fer­ences? Not so much — they get harder in the face of fail­ure, and they don’t have the bar­gain­ing power we have..

It’s a del­i­cate bal­anc­ing act, requir­ing care­ful plan­ning and a lot of work to drive atten­dance and spon­sor­ship — nego­ti­a­tions with Hotels, Cater­ing, Unions, are all things that have to go right in order to make a con­fer­ence that even stands a chance of not los­ing you mas­sive amounts of money. In the case of PyCon — a mas­sive loss of money (such as 2009) could cause the foun­da­tion to go bank­rupt and dis­solve. As it is, the foun­da­tion, already spar­tan in spend­ing cut back even fur­ther to pro­tect itself which rep­re­sents a net neg­a­tive for the Python Community.

Where does the profit go?

Alright — I’ve out­lined the phi­los­o­phy, the scale and the risk. Now, you’re prob­a­bly ask­ing where, if we have it, does any profit from the con­fer­ence go? Easy — straight back into the community.

What­ever profit — really, money left over, goes to cover the ini­tial costs/risks for PyCon the next year, and the years after — it also goes to the Python Soft­ware Foun­da­tion that in turn, rein­vests that money into the com­mu­nity (see the foun­da­tion blog).

Hav­ing a healthy pos­i­tive mar­gin also means we can increase things such as the finan­cial aid bud­get for the next year, allow­ing even more Python devel­op­ers to attend.

Why not run a bud­get that aims for 0$ +/-?!

Because, that is sim­ply insane — you can aim for min­i­mal profit by rein­vest­ing into things such as finan­cial aid, or other perks for the atten­dees but only after you have guar­an­teed you’re going to make your num­bers — see the issue? At best, you bud­get is a highly refined series of edu­cated guesses. At worst? Some­one goes bank­rupt — at smaller con­fer­ences such as DjangoCon.eu, where some costs and con­tracts are secured by an indi­vid­ual and their credit card?

That per­son goes broke, because the enti­ties you signed con­tracts with will get their money.

So, you never, ever aim for a loss, but you also don’t aim for extract­ing “max­i­mum value” from con­fer­ence atten­dees. You aim, you plan, and you hope to pro­vide the best value and expe­ri­ence to atten­dees and spon­sors — you do this through a lot of hard work and sweat. You make sure atten­dees walk away rav­ing about the con­fer­ence, you make sure you gen­er­ate the max­i­mum return on invest­ment for the com­mu­nity.

In Clos­ing

His­tor­i­cally, PyCon has never been aimed at “extract­ing money” from the com­mu­nity — it could be run a lot more prof­itably. We could increase ticket rates, reduce FA and walk around in Nascar-esque suits with spon­sor logos on them — there’s lots of things that could be done to make PyCon a mas­sive profit cen­ter for the PSF. We don’t though — why? Because, that defeats the pur­pose of a com­mu­nity con­fer­ence, put together by and for the community.

We take what money we end up with and we spon­sor the sprints at PyCon itself, we hold the lan­guage and vir­tual machine sum­mits. The PSF rein­vests it into the Python com­mu­nity as a whole (see the sprints project, for exam­ple, or the 10,000$ check we gave to PyPy). The money is given out in the forms of devel­oper grants, hold­ing sprints, pro­vid­ing spon­sor­ship to smaller Python con­fer­ences all over the world, out­reach and edu­ca­tion ini­tia­tives, etc. No one gets a shiny new car or any­thing — money that comes from the com­mu­nity con­fer­ence goes back into the com­mu­nity. You can see how much goes where if you peruse the PSF res­o­lu­tions page.

PyCon is begin­ning to also out­strip the abil­ity for a small group of vol­un­teers to put together — more and more we’ve had to bring on com­mer­cial enti­ties (whom we have to pay) to assist in orga­niz­ing or doing spe­cific things (such as reg­is­tra­tion, or web­site devel­op­ment). I fully expect PyCon 2012/2013 to quickly hit the atten­dance cap mean­ing we’re going to have more scal­ing issues and higher costs — this is a fun­da­men­tally good thing — PyCon, it is felt, can sus­tain it’s cur­rent feel and qual­ity up to a max­i­mum of 1500–2000 attendees.

We do not have the inten­tion of rais­ing that cap.

Instead, we — as the foun­da­tion — intend on encour­ag­ing smaller more regional con­fer­ences such as PyOhio to grow — PyCon will con­tinue to be the “big dog” so to speak — but it being the big dog will allow us to fur­ther cul­ti­vate and pol­lenate the entire Python com­mu­nity and ecosystem.

Given all of that — as the PyCon chair for the next two years — and being rel­a­tively com­fort­able that we will again, put on a highly suc­cess­ful con­fer­ence — I am explor­ing the idea of steeply dis­count­ing the cost of tick­ets for speak­ers. I feel that not only is the con­fer­ence viable once again, but that the speak­ers do help make the con­fer­ence what it is — last year we had over 200 talk and tuto­r­ial sub­mis­sions. All of those speak­ers sub­mit­ted talks know­ing that they would have to pay for a ticket to attend — but given the pos­i­tive out­look, I’m com­fort­able in think­ing that we will be able to pro­vide accepted speak­ers with a dis­count to thank them for their talk.

It’s all about com­mu­nity, and rein­vest­ing in it in the right places, at the right times, and man­ag­ing your risk. The risks putting on a con­fer­ence — even a small one (espe­cially a small one) are mas­sive, but the returns — espe­cially when you’re stand­ing on a stage in front of 1380 fel­low Python hack­ers hand­ing a big card­board check to a fan­tas­tic project?

Well, the returns are well worth it.

 

  • http://mike.pirnat.com/ Mike Pir­nat

    On behalf of the PyOhio folks who haven’t seen this yet, thanks for the nice shout-out. :-)

  • Chris

    Great expla­na­tion, and one of the things I’ve always loved about PyCon, and IPC before it, was the egal­i­tar­ian spirit of every­one there. It’s still one of the best “big” open source conferences.

  • Jack Diederich

    Does PyCon really charge speak­ers the early bird rate no mat­ter when they reg­is­ter?  News to me, and also not a great idea.  PyConUK did that a few years ago when I was speak­ing and there was a series of pan­icked emails “Holy Shit! why aren’t any of the speaker’s registered!”

  • http://jessenoller.com jnoller

    I don’t get the “not a good idea” and “news to me” part — this has been this
    way for sev­eral years. Are you dis­agree­ing with the dis­count, or the fact we
    allow speak­ers to get it past early bird cut off?

  • http://twitter.com/g_c_c geremy con­dra

    I like the NASCAR suits idea, let’s do that next year ;)

  • http://twitter.com/g_c_c geremy con­dra

    As a per­son plan­ning on sub­mit­ting at least one talk for next year I really, really hope that speaker tick­ets don’t get dis­counted auto­mat­i­cally. I’m rea­son­ably well-paid and can pretty eas­ily eat a $400 cost once a year, but I got this job at a PyCon I couldn’t have attended with­out finan­cial aid. I’d rather pay dou­ble than know that I cut some­body else out.

    (reposted from Buzz)

  • http://www.justcramer.com David Cramer

    I actu­ally didn’t know about that either, but that’s prob­a­bly because I tend to jump on early bird rates

  • http://twitter.com/jzcoder John Z

    As far as regional Python con­fer­ences go, check out PyTexas.  There was a con­fer­ence last year and ten­ta­tive plans are for another one in Sep­tem­ber.
    http://pytexas.org/VenueInfo2011

  • Anony­mous

    Dude. Great write up as usual, thank you!

  • http://twitter.com/holdenweb Steve Holden

    Noth­ing to stop you mak­ing an addi­tional dona­tion as you reg­is­ter, though.

  • http://twitter.com/puredanger Alex Miller

    Very well said, espe­cially the parts about risk.  I run the Strange Loop con­fer­ence and while we struc­ture the con­fer­ence bud­get some­waht dif­fer­ently, there are many similarities.

What's this?

You are currently reading PyCon: Everybody Pays at jessenoller.com.

meta

  • Categories

  • Recent Posts