Stockade FC in 2017 — The “Open Source Soccer” Approach to Creating a Killer Second Season

Dennis Crowley
Published in
33 min readMay 19, 2017


A Continuation of our Quest to Build a Break-Even D4 Soccer Club in the Hudson Valley, NY

Before we start, let me clarify real quick:

“So, you bought a soccer team?”

I’ve heard this at least 100 times since the Stockade FC story started in late 2015. I make sure to correct folks every time: “I didn’t buy a club. We built one. From scratch.”

Long story short: In summer 2015 we got the idea to build a semi-pro soccer team in the Hudson Valley (two hours north of NYC). We officially announced our team would be joining the NPSL (D4, US Soccer Pyramid) in November 2015 and we kicked off our inaugural season in May 2016. Our 2017 season started two weeks ago (May 6, 2017).

Stockade 2016 – Photo by Tim Hetrick (l Iove this shot!)

A few hours before our first-ever match (May 5, 2016), I published a manifesto of sorts — a breakdown of why we decided to build a club from scratch, and what we hoped to accomplish by doing so in five years time. At the end of this first season, I wrote a second post disclosing all the financial of the club and just about every piece of data the club generated. Both blog posts brought a ton of attention to our club and the story behind it. I’ve heard our approach described as “startup soccer” and I’ve heard our transparency called “open-source soccer”. I really dig both of these terms and I want to continue telling our story and progress and vision through similar blog posts. My plan is to try to keep this rhythm of two-posts-a-year going strong — one pre-season setup and one post-season wrap-up. My goal is to make the idea of starting/owning a lower-level soccer club in your hometown no different, riskier or crazier than, say, owning a local retail store or coffee & muffin shop.

So with that, let’s kick off our club’s first post of 2017. I divided this post into four main parts:

  1. 2016 Financial Recap. A quick but final recap of our 2016 finances since some numbers changed since my post in Oct (merchandise sales, holidays).
  2. 2017 Operational Tactics. Some thoughts on what we’re doing differently in 2017 to build on all that we accomplished in 2016.
  3. 2017 Financials. A look at our 2017 pre-season expenses and a detailed breakdown of the single-game numbers from our 2017 home opener.
  4. “Where are we going with all this?” Some thoughts on the US Soccer Pyramid, specifically some crazy thoughts to how to build a better system.

Okay, ready? Let’s go!


Yes, I know, I wrote a super long blog post about this just a few months ago. The problem with that write-up was that I wrote it in October (when there was still 3 months left in the year… including the holidays). So here’s a look at the updated math below. (For what it’s worth, I decided to write this as a new post instead of editing my original post because I want all these writings to be a record of how our thinking about our club and our accounting methods / strategies changed over time.)

Operating Expenses:                   $85,933
Merchandise Expenses: $50,194
Total Expenses: $136,127
Total Revenue: $99,328
Loss after Expenses: -$36,799*
Excess Merch Inventory: $12,000 (approx retail value)
Total Loss (minus excess inventory): -$24,799*
* these costs exclude the one-time “expansion fee” of ~$15,000 and fees for identity/logo/branding

We were 18% away from breaking even. This is the number I have my eye to beat in 2017.

These numbers above are broken down in more detail below. For even more details on each / any of these items, see the original 2016 Financial Recap.

Fields $16,250
Coaches/Trainers $15,620
Gear / Equipment $15,338
Travel & Hotel $10,615
Marketing $10,717
Game Day Expenses $8,783
Admin/Insurance/Fees $7,610
Streaming $1,000
Player Payroll $0
Mgmt / Staff $0
Total Operating Expenses $85,933
T-shirts/Hats (online shop) $16,427
T-shirts (game day merch table) $12,574
Replica Jerseys $11,571
Hats/Hoodies (game day merch table) $4,564
Warehouse costs (Shipping & Inventory) $3,096
Scarves $1,240
Online store costs (Shopify) $722
Total Expenses $50,194
Sponsors Revenue $10,600 (11%)
Tickets Revenue $32,425 (33%)
Concessions Revenue $0 (0%)
Merchandise Revenue (pre-Oct 4, 2016) $50,647 (56%)
Merchandise Revenue (post-Oct 4, 2016) $5,155
*minus 2017 season tix sales
Approx Small Bills Left Over from 2016 $500
Total Revenue $99,327 (100%)

In hindsight, I’m not a big fan of the accounting structure we used for 2016 (especially mixing “game-day expenses” with “merchandise expenses” – it was unrealistic that we’d sell *every piece of merchandise* our first season). Starting with this 2017 season, I’m going to try to break things out as “Operating Costs” and “Merchandise Costs”.

The goal is to get Operating Costs (aka: how much it costs to assemble a team and play a full season) as close to break-even as possible. Merchandise Costs should be fully offset by Merchandise Revenue, and excess Merchandise Revenue should then be used to pay off any debt incurred left by Operating Costs. If you’re lucky, there’s money left over to invest in youth programs. stadium improvements, or even acquiring players.

That was a dense paragraph. If it didn’t make sense on first read, please read it again. I’m starting to think those last three sentences are the secret sauce for how to make this work.


With a short season (10 weeks) comes a long offseason. After the recap I posted in October, we spent a lot of time thinking about what we wanted to do to improve the experience in 2017 for both players and fans. Here’s a few high-level notes about what we’re going to switch up this season (with some bonus insight as we already have one home game under our belt).

FAN SURVEY: One of the first things we did to prep for 2017 was to create a survey (via Google Forms) and blast it out to our email list (~1500 people). We had about ~175 people answer some 20 questions about what they liked and didn’t like about 2016 and share some ideas for how we could improve in 2017. A lot of the changes you’ll read about below came directly from feedback that fans gave us when completing this survey.

PLAYER/STAFF SURVEY: We did the same with our players and coaching staff too. We asked folks to rate everything (gear quality, post-game meals, away-game transport, training facilities, locker rooms, schedule, etc.) This was also very helpful and directly resulted in changes for 2017. Both surveys also give us a benchmark for measuring ourselves from one season to the next (“is the quality of the club improving year over year” style).

SCHEDULE: Last year we played 16 games in 10 weeks which was just too much. We had a handful of weeks with back-to-back games (and a stretch where we played 3 matches in 10 days). Towards the end of the season, it was taking longer for our guys to recover and people started getting hurt. This year, with the addition of a few new teams in our Northeast region, we all decided to split our conference (“Atlantic”) into two conferences: “Atlantic White” and “Atlantic Blue” (we’re in “Atlantic White” btw). With this change, we went from 16 matches in 10 weeks to 12 matches in 10 weeks. This will be much easier on the guys… although going from 8 home games to 6 home games will most likely adversely affect ticket and merchandise revenue.

And btw, you should come check out one of our matches! You can find our 2017 schedule here. And for folks in NYC, don’t miss our match in Downtown Brooklyn (vs. the. Brooklyn Italians) on Sat June 17!

Saturday, June 17 @7 PM – LIU Brooklyn, 1 University Plz
Subway: 2/3/4/5 to Nevins St or A/C/F to Jay St — Metrotech

GAME TIMES: Last year we scheduled all of our home games for a 2pm start. This was designed so that our home matches would link up the weekend farmer’s market in uptown Kingston. The problem with this plan was that at 2pm the sun was HOT — beating down on the fans and the players (turf temperature exceed 100 degrees for some games). I took note last year at what time the sun started to set behind the stands (a little after 4pm) which guided our decision to switch our 2017 start times to 5pm. Our intent is now to push fans from the stadium into uptown Kingston’s bars and restaurants after the match (vs. last year’s approach of pulling them from the Farmer’s Market into the stadium). If the weather cooperates and the rain holds off, I think this will lead to overall bigger attendance numbers (951 was our attendance record last year, with 755 being the average across 8 matches). We also think the later start time will make it easier on parents whose kids play in weekend youth soccer programs. By the way, one of my big goals for our 2017 season is to host a home match with 1000 fans in the stands.

TRYOUTS: Our system this year was similar to that from last year — 5 tryouts total, 3 of which were closed/invite-only, and 2 that were open to anyone who registered in advance (and open to fans to watch). We held these open-tryouts to (a) find any talent that we didn’t scout and therefore didn’t invite to a closed-tryout and (b) to have a pre-season event for fans that would help get people excited about the upcoming season, help sell season tickets, etc.

Everything worked well this year, with the exception of the *freezing cold weather* we experienced during our open-tryouts. The weather killed all of our “pre-season awareness” goals (very few fans wanted to sit in 20 degree weather to watch a tryout) and so next year we’ll probably move our open-tryouts to the latest possible weekend to maximize our odds against the weather.

Total players seen: 130
Total players at closed tryouts: 47
Total players at open tryouts: 83
Total players from open tryouts who made initial roster: 10 (12%)
Starting roster size: 33 players
Starting roster average age: 25.8 years
# College Players on starting roster: 6 (18%)
# Players from Hudson Valley: 29 (88%)
Total players seen: 215
Total players at closed tryouts: 83
Total players at open tryouts: 132
Total players from open tryouts who made callback: 10 (8%)
Total players from open tryouts who made initial roster: 0
Starting roster size: 33 players
Starting roster average age: 23.3 years
# College Players on starting roster: 13 (39%)
# Players Returning from 2016 Squad: 14 (42%)
# Players from Hudson Valley: 17 (51%)

A few other quick notes on tryouts: We took fewer players from the open-tryouts this year because our scouting staff (Dan Hoffay and Nick Hoffay) did such a fantastic job getting the highest quality players into our “invite only” tryouts. Our closed tryouts were also more crowded as we had better access to college players this year seeing that our program was established and had a reputation for being well run (aka: coaches wanted to send their top players to us this year vs. coaches being skeptical about a brand new program with no track record in 2016).

PLAYER DEVELOPMENT — NPSL COMBINE: One of the great things the NPSL offer players in the off-season is the ability to participate in the “NPSL Player Showcase” (think: All Star Game attended by D1/D2/D3 scouts). Teams have the ability to nominate players and we were lucky enough to have two of our top players get an invite: Matel Anasta (Mid/Def) and Matt Koziol (Mid). The league covered the cost of the event (housing, food, gear) and each team picks up the travel costs for getting players out there (flights). It was a huge honor to send two of our guys to the combine just after our first season. They represented our team and the league well and I hope we get to do this again next year It’s also been a great “reputation builder” for us to be able to say “if you play well for Stockade FC, we’ll give you chances to get seen by scouts on a national stage”. That said….

Matel Anasta (Mid/Def) and Matt Koziol (Mid) represented Stockade FC in the 2017 NPSL Player Showcasein LA

PLAYER DEVELOPMENT — GOING PRO: At the end of last season, Stockade FC midfielder Dylan Williams signed a professional contract with Launceston City FC in Australia (Launceston City FC plays in the NPL Tasmania league which is in the 2nd division of the Australian soccer pyramid). Dylan was an incredibly talented player before he came to Stockade FC, but it still gives me a great sense of pride to know that one of our guys was able to use our club as a stepping stone to make that jump from amateur to pro. (And btw, he’s crushing it over in Australia).

PLAYER DEVELOPMENT — OFF-SEASON / RESERVE TEAM: A lot of the guys from the 2016 squad wanted to continue playing together in the off-season, so we put together an Off-Season Squad (“Oranje 1777”) and entered it into a local Hudson Valley league called the EDSL. (I picked up the tab — about $2500 for the league fees, referee fees, and kits). Having the off-season / reserve team has been good, but it’s both time consuming and stressful for the player-managers running the team (like most regional leagues, it’s been challenge to get a good crew of guys to show up every week). Special shoutout to Nick von Egypt for doing a fantastic job running and managing the team. And while I’d like to continue with our off-season team, we’re 50/50 on whether we’ll keep it going after the 2017 season due to the coordination and recruiting efforts required.

PLAYER DEVELOPMENT — YOUTH ORGANIZATION: We have a long-term plan to build a free-to-play youth soccer organization (and field a Stockade FC team in 2025 full of kids who played for us when they were 10 years old!). I wanted to group this under “Player Development”, but I’m actually going to talk about it in more detail below.

SEASON TICKETS: Season Tickets worked great for us last year — they gave us (a) guaranteed ticket revenue for every match, (b) an opportunity to connect fans with local businesses (“show your Season Ticket for 10% off!” + map in Game Day program), and (c) they help ease congestion at the ticket window and gate. Last year we sold one type of season ticket for $40 each. This season, even with 6 home games instead of 8 games, we decided to keep the price the same (mostly for consistency… and the promise that season tickets will also work for playoff matches, god-willing). The big change this year (and a suggestion that came from our fan survey!) is that we now offer ADULT and YOUTH season tickets (12 and under). Adult season tickets are black ($40) and Youth season tickets are white ($25). I am very pleased with how many season tickets we sold.

2016 Season Ticket Sales:   <unknown>   (...but estimated at 120)*
2017 Season Ticket Sales: Adult: 179
Youth: 55
Total: 234 (2x what we sold in 2016!)**
* Sadly I don’t have the exact number of Season Tickets sold last year — I really did a lousy job keeping track. We sold 78 online and prob ~40 at meetups and on game day, so let’s call it 120.** Also worth noting that Season Tickets in 2016 didn’t go on sale until the end of March when I finalized the schedule (one month before the season). This year, I didn’t wait for the final schedule before selling tickets so I was able to have them for sale in early December (six months before the season… aka: “they make a great stocking stuffers!”)
Our 2017 season tickets — black for “Adult” ($40) and white for “Youth 12 and under” ($25)

Sidenote, but great story worth sharing: Right before Christmas, my buddy Don Steele emailed me telling me he wanted to buy 4 season tickets that he didn’t want for himself -– instead he wanted me to give them to local non-profit organizations or families in need. Great idea! And long story short, we ended up getting in touch with three great local community organizations — YMCA of Kingston and Ulster County, Boys & Girls Clubs of Ulster County, and The Hodge Center of Kingston — and gifting each of them 25 “youth” season tickets and 2 “adult” season tickets. So my buddy Don’s “4 ticket generosity” actually turned into *75 youth tickets and 6 adult tickets* which are now being used to bring kids to the stadium and introduce them to the sport. Nice work Don! And thanks for the nudge! (ps: just to clarify, these “giveaway” tickets were *not* counted as “sold” and therefore are not included in the “season ticket sold” figures listed above).

SPONSORS / KITS: Last year we spent about $20,000 on kits (jerseys & shorts & warmups for both players and fans). To keep costs down for 2017 (and to leverage the excess merchandise inventory we were left with after 2016) we decided to keep the jerseys the same. Part of the reason this worked out was because our amazing sponsors (Trailways NY, Dragon Season, Radio Woodstock) all wanted to re-up as sponsors for 2017. Thank you!

The one big change we made was that we eliminated the Foursquare-sponsored “Training Kit” for 2017. They sold well online, but the third-kit with a different sponsor was confusing and felt a little disconnected. For 2018, we’re already toying with the idea of bringing a Training Kit sponsor back, but we’ll probably do something where we combine the Streaming Sponsorship and the Training Kit Sponsorship to make it feel a little more connected to the club and the experience. (btw, Foursquare is still a sideline banner sponsor and is “powering” the map of uptown Kingston you’ll find in the game day programs)

Page 3 of our 2017 game day programs (we ran the similar map in 2016 game day programs)

To counter the revenue lost from not having a Training Kit sponsor, we sold more sideline banners this year (four new sponsors @ $1500/ad = $6000 total). We are also experimenting with “activation tents” this season ($1500/match), both as a value-add to existing sponsors and as a way to try to bring new sponsors in. Stay tuned for more on that.

MERCHANDISE: Last year we spent about $50,000 on merchandise, and made about $55,000 selling it — you’d expect these numbers to be a lot higher, but we have a lot of excess inventory left over from 2016 (approx $12k retail value). That’s puts us at around a ~35% blended margin on swag which is okay for our first season, but there’s plenty of room for improvement (I’ve heard of some teams getting margins above 50%). For 2017, I need to do a better job tracking margins per item (and per order, considering orders vary w/ quantities ordered) so we can deliberately optimize.

Last year we also kept inventory pretty simple — t-shirts, jerseys, caps, scarves, stickers. This year, we added a lot more items: water bottles ($20), lanyards ($8), pins ($5), mini balls ($15), training tops (which at $30/each will be a much a cheaper option to the $60 “Training Kits” of last year).

Oh, and the highlight of our off-season merchandise story? Alejandro Bedoya rolling into US Men’s National Team camp wearing a Stockade FC cap! Thanks for the support, Ale!

SQUARE REGISTER: Maybe the biggest operational change for us this season is that we started using Square (the iPad Point of Sale system — Disclaimer: I am an investor/shareholder in Square) and we committed to having all of our cash and credit card transactions run through it this season. That means that everywhere we accept payment at the stadium (merch table and ticket booth) we use Square to track cash and credit transactions as well as track merchandise inventory and ticket sales. This already is a HUGE game changer — esp when it comes down to tracking, say, “What % of tickets sold were ‘youth’ tickets?”, or “How many Women’s Medium t-shirts did we sell?” Believe it or not, we tracked all of this *by hand* last year (pen and paper). The reason we didn’t use Square in 2016 is because our Fiscal Sponsorship partner (aka: the partner that allows us to run operate as a 501(c)(3) without having our own dedicated 501(c)(3) status) required that we use their existing PayPalHere setup (and so we tracked credit on iPad/PayPal and cash by hand). For 2017, they thankfully make an exception and decided to let us us Square. (thank you!)

Quick advice to any other teams reading this: If you are using Square or PayPal or whatever, run both your cash *and* credit transactions thru it. Even if you don’t have the fancy iPad connected cash drawer, just use the system to treat both cash + credit transactions as equal.

For as much as I am loving Square, the one thing that still drives me nuts is that I can’t easily manage multiple inventories. So for example, my dining room is fill of boxes of t-shirts and hats (that’s our “local warehouse”) and every home game I take 5 Tupperware containers full of swag from my house to the game (that’s our “game day merch store”). Square allows me to keep inventory of both what’s in my dining room and what’s in my car, but it *does not* allow me to easily move an item from one inventory to another (“I took 2 Men’s Large from the dining room and moved them to the Tupperware in my car”). Anyway, nitpicky… Square is 100x better than what we were doing last year, though it’s not perfect yet.

STREAMING: Our friends at Moonfarmer in Kingston (digital studio/creative shop) did an amazing job getting our streaming efforts off the ground last year. They wrote an amazing blog post about the “hows and whys” last year, and I’m sure they’ll do another update at the end of this season. (thank you, Kale Kaposhilin & Dan Stone!).

The big news for this season is that we are going to stream all our matches (both home and away) though Facebook Live (instead of YouTube, which we used last season). We tried this already for our first home match and the numbers were *much* bigger:

2016 YouTube Streams  
avg ~500 viewers/game (avg across 14 matches)
2017 Facebook Streams
6804 “Total Views” (one match, May 6)
2900 “10 Second Views”
0:40 “Avg Watch Time”
954 “Post Engagement”

To be honest, I’m not sure which of these Facebook numbers to really pay attention to. And the numbers do feel inflated to me — most likely because of auto-play in the Facebook Newsfeed — but it’s hard to deny how powerful Facebook’s giant audience can be in terms of promoting our matches. Our plan is to stick w/ Facebook this entire season and see how high we can get these numbers.

Here’s a look at our Facebook stream from our May 6th home opener vs. Hartford City FC:

Another nice surprise for 2017 — Smithfield Hall in NYC (one of the best soccer bars in the city!) has decided to be our official Supporters Bar, showing the streams of both our home & away matches on the TVs placed all throughout the bar (they’re using a Roku running the Facebook app to do so). For our first home match the turnout was, well, small… but hey let’s try it again and see how we do! Thanks to Craig Wood for setting this up and hit up the NYC Supporters Group if you want to join them to watch a match in NYC.

CONCESSIONS: When we didn’t break even last year (even with great attendance & merchandise numbers), I started talking to other teams about what additional revenue sources they rely on. Turns out, a lot of the teams that are seeing success have access to either concessions revenue (% cut of what’s sold) or parking revenue (% cut of parking fees). At our stadium (Dietz Stadium in Kingston) we have access to neither. The stadium is 50% owned by the city and 50% owned by the school, all parking is first-come-first-serve, and the concessions bar at the stadium is subcontracted out to a third-party and protected by an exclusivity clause.

I spent some time in the off-season trying to get the exclusivity clause altered for the 2017 without luck (aka: making phone calls and attending meetings at City Hall). However, in the last few weeks our local neighborhood brewery, Keegan Ales, was able to secure a food and beer permit ($40) that allows them to operate just off of stadium property (about 50 yards away from the ticket booth). We tried this out for our home opener — Keegan Ales teamed up with local sandwich shop Joe Beez, set up a tent just off the stadium property and sold beers, snacks and sandwiches. I didn’t have much time to check it out in person (so much to do during the home opener!) but it looks like they had a good crowd, people loved it, and the folks at Keegan Ales have committed to doing it again at our next home match. (There’s a bit of controversy about this in town which you can read about in the local paper. I’ll keep y’all posted on how it works out.)

Tommy Keegan (owner of the brewery) volunteered to share 15% of the proceeds the pre-game tent generates back to the club — ”Stockade brings the crowd, we bring the sandwiches”. While I don’t think this will be a huge revenue driver this season, it helps us test whether fans appreciate alternative concessions options at the stadium, whether additional vendors can help drive additional attendance, and maybe most importantly, whether fans would behave with access to beer so close to the stadium (spoiler alert: they did). It’s also worth noting that the food & drink tent opened about 2 hours before the game, closed down about 10 mins before kickoff, remained closed for the first half, reopened for halftime, closed again for the second half, and then re-opened after the game.

Semi-related to concessions: Last year we were buying cases of bottled water every game (6 to 8 cases/24-packs per match). It felt so wasteful that we made it one of our 2017 goals to not buy any bottled water. We’re now using those orange 5-gallon jugs (x6 = 2x locker rooms, 2x sidelines, 1 for refs, 1 for fans… hey, free water!) and it’s working great with much less waste (and cheaper too).

FIELDS — We’re using the same stadium (Dietz Stadium in Kingston, NY) and same practice fields (Our Lady of Lourdes High School in LaGrange, NY) that we used last year. Last year, fields were our single greatest expense ($16,250). This year, fields will be our single greatest expense. The long-term play here has to be that we find our own practice facility that can used by our first team, our reserve team, and our youth academy teams (more info on that below). If anyone has any ideas, leads, or suggestions on how to do this in the mid-Hudson Valley area, please reach out.

VOLUNTEERS / STAFF — Our volunteer team is back in force for 2017. It’s hard to even remember the beginning of last season when we were all crossing our fingers that our volunteers would show up, especially compared to this year where our organization runs like a well-oiled machine. The biggest difference so far in 2017 has been having a volunteer network already in place during the off-season, which made (a) strategizing about goals and enhancements for 2017 much easier (we have a “Stockade FC” Slack room organized into ~15 channels we all use to keep in touch) and (b) having people in place means we can delegate responsibilities months ahead of time, which is a huge advantage. And btw, it’s always important for me to stress that our entire club is volunteer-driven — setup, tickets, merchandise, streaming, announcing, emcees, stats, DJs, game day programs, social media, etc. A huge thank you to all our volunteers because, without you, none of this would be possible.

YOUTH ORG: One of the things our entire volunteer staff is passionate about is getting the hundreds of kids who come to our matches week after week fired up about soccer, fired up about the idea of starting to play, and fired up about the idea of continuing to play (and maybe even giving up football or baseball and making soccer their primary sport). Based off the survey data from last year, I think we’re off to a good start:

As part of this mission, we’re starting to dream a little bigger about offering a free-to-play youth academy — where proceeds from merchandise and ticket revenue each season will be set aside to either (a) run our own free youth academy or (b) offer scholarships to local pay-to-play youth academies. We are still working out the details, but the plan is to spin up our first version of this next year (summer 2018). To kick off our fundraising, we have two “special edition” Stockade FC t-shirts — one in Japanese and one in Arabic. All of the proceeds from these shirts will go directly to funding this youth academy (estimated cost for year one = $7500 for 60 kids X 20 weeks in 2018 = we’ll need to sell 350 tshirts at $30 over next 18 months). These shirts are now for sale online ($30 each) and also will be for sale at our home games this season:

All proceeds from these Stockade FC “international” tees go towards funding our Youth Academy efforts in 2018 and beyond. Buy online at:

Backstory behind the translated Stockade FC crests: Soccer is the biggest sport in the world, and one of our long term goals with the academy is to use the sport as a mechanism to expose kids to global geography, global economics, and global politics. (Imagine a school curriculum that uses the countries & teams in PlayStation’s FIFA17 as props to explain and encourage global consciousness across a wide variety of subjects. BTW, this thesis was loosely inspired by a coffee I had with freestyler Frankie Flo and this tweet & this thread, btw). We made a small batch of Japanese t-shirts in 2016 after someone in Japan bought a Stockade tee from our online store (“we’re huge in Japan!”). We chose Arabic for 2017 based the current political climate and the fact that Kingston is the type of city that embodies that spirit of “wherever you’re from, you’re welcome here”.

WOMEN’S TEAM — Nothing to announce yet, but building a Stockade FC women’s team in the Hudson Valley continues to be one of the requests we hear most often from our fans. We need to get our club to break-even on the operational cost side before we can take on another challenge (figuring out the “fields” issue above will be a big piece of the puzzle), but when the time is right, we’ll most likely look to the WPSL (the D2 of women’s soccer, just below the D1 NWSL)


While my recap of last year’s financials focused on the entire season, I figured it may be helpful to share a deep-dive on a single game. But before we do that, let’s look at 2017’s pre-season expenses first. Please remember these numbers are very much incomplete — we know from last year that all sorts of last minute purchases will pop up during the season:

Additional Kits / WarmUps for Players $4,000
Player Development — Reserve Team $2,664
Player Development — NPSL Combine Travel $904
Infrastructure (Square POS, Step & Repeat) $954
OPERATING EXPENSES (2017 season, so far)
Fields (full season, tryouts + training too) $13,900
Staff (Coaches, Trainers) $10,840
League Fees $5,250
Marketing (Stickers, Flyers, Tickets) $1,751
Training Jerseys for players (which they’ll keep) $1,214
Home Game #1 (vs. Hartford City FC) $1,049
MERCHANDISE EXPENSES (2017 season, so far)
T-shirts $5,945
Water Bottles $3,599
Replica Jerseys $3,000
Training Tops $1,427
Lanyards $1,124
Hats $804
Mini Balls $795
Pins $538
Scarves $556

Okay now that we’ve laid that out, let’s also look at the numbers from a single home game (our May 6, 2017 home opener vs. Hartford City FC).

By the end of the season, I’d like to be able to show a worksheet like the one below for every one of our home matches. My goal would be to show “each home game costs us $X to produce and generates $Y revenues for the club”. This insight would then allow us to model how many home games we’d need to play in a season for our club to simply break even. From there, we can start to think about how many additional home games we’d need in a single season to be able to cover the cost of additional investments in the club (player development, stadium improvements, etc). There’s been some conversations at the league level about a longer season (and which teams would opt-in to participate), and having this data will help us make a decision about whether we should try to host more matches, and if so, what is the optimal number of matches to host.

Anyway, let’s take a look:

Saturday May 6, 2017 - 5pm
Weather: 55 degrees and raining ☔️
Season Tix 126 25.8%
Game Day Tix 363 74.2%
Adults 241 62.1%
Kids — No Discount 23 5.9%
Kids — Discount 81 20.9%
Group Rate Adults 0 0.0%
Group Rate Kids 0 0.0%
Comp / Family 43 11.1%
Digital / Eventbrite 15
Total Attendance 489STREAMING VIA FACEBOOK LIVE (total stats from 24 hours after match)
“Total Views on Facebook” 6,804 (75% from “shares”)
“10-Second Views” 2,900
“Unique Viewers” 600
“Minutes Viewed” 10,480 (174.7 hours)
“Post Engagement” 954
“Avg Watch Time” 0:40“
Peak Live Viewers” 112
Comments 169
Shares 51
Tickets $2,207
Digital Tix / Eventbrite $105
Pro-Reated Season Tix $1,423 (234 season tix sold / 6 games)
Total Ticket Revenue $3,734
Of ticket & merch revenue….
Cash $1,985 44.5%
Credit $2,477 55.5%
Bank (small bills) $160 ($80 x 2 in $5s & $1s)
Refs Fees $300
Refs Travel $110
Field Fee $300
Pizza + Tip $210 x12 pies
Ice $0 (leftover from friendly)
Programs @ Staples $54 x600
Tickets @ Staples $25 x1000
Autograph Sheets @ Staples $0 (weren't ready in time!)
Target (cups, etc) $50
Total Operating Costs $1,209

So there’s the breakdown of the raw numbers. If we take our estimated Operational Costs from 2017 so far ($34,004) and divide it by 6 home matches, that means our Operational Costs per game are $5,667/match:

Operational Costs for 2017 / 6 matches $       5,667/match (avg)
Operational Costs for Home Game #1 $1,209
Total Operation Costs for Home Game #1 $6,876
Ticket Revenue for Home Game #1 $3,735
Merchandise Revenue @ ~35% Margin $789
Total Revenue for Home Game #1 $4524
Total Loss for Home Game #1 -$2352

… so that’s how it looks with 489 fans in the stands (aka: “not break even”). I’m excited to run these numbers again when we have 700 or 800 fans back in the stands (and when it’s not raining! ☔️). Again, the Square + iPad is what gives me the ability to run these numbers very easily and quickly after each match (vs. last year when I had to ask our fiscal sponsor partner to generate custom reports out of PayPal)

Rainy weather = modest attendance. Here’s 489 in the stands for our 2017 home opener vs. Hartford City FC. Photo by Leanne Keator @ Ride the Tide Photography

I don’t have a ton of insight / analysis to share on this just yet — ask me again at the end of the season. I’m sharing now because I think these numbers may be helpful for other teams to benchmark themselves on. I also think this worksheet template is something other teams may find helpful in general (and I’d encourage other NPSL teams to use this or something similar. Hey, it’ll be fun to compare at the end of the season!)


The other two questions I get all the time from folks: “why are you putting so much effort into this small town club?” and “what do you hope comes from all this?” Great questions!

I wrote a lot about this in my original manifesto, and I’ll try not to repeat the same arguments, but I really believe in the idea that anyone should be able to start a club from scratch in a small market like Kingston, NY, invest in the club and the community and the infrastructure and the players, and if that club is successful, they should be able to fight their way to the top of the US Soccer Pyramid.

As we know, the pyramid is currently closed, meaning teams don’t move from D2 to D1 unless they pay the D1 “cover charge” of ~$100M. Teams don’t move from D3 to D2 unless they pay the D2 “cover charge” of ~$10M. This is broken for a bunch of reasons, but instead of talking about how broken it is, let’s talk about how to build a better system.

I think you can make a strong argument that without a system of promotion and relegation, there is no need for any “Divisions” besides D1. I mean, what do you get for paying $10M to get into D2? Are you getting a shot at D1? No. Are you getting a cut of some huge broadcast deal? No. Are you getting the prestige of being better than D3? Maybe? But do fans even know the difference?

The same was true of D3 vs. D4 (before D3 got a pass to move up to D2… apologies for how confusing this all is!) A year ago, if you were choosing between spending $2M to enter a club in D3 league vs. $15,000 to enter a club in a D4 league, what benefit do you get from choosing D3? Are you getting a shot at D2? No. Are you getting a cut of some huge broadcast deal? No. Are you getting the prestige of being better than D4? Maybe? But do fans even know the difference?

My point is that without movement between divisions, there’s no point in divisions. (Note: the leagues in these divisions – and the teams in those leagues – play an vital role in the US soccer ecosystem. It’s the part where “my division is better than your division” that is broken.) So for the rest of this post, let’s forget about the teams and leagues that exist in these locked-up divisions. And instead let’s look at our league, the NPSL (D4), as a model for how an alternate system could emerge.

The NPSL is a national league with 96 teams spread across 4 regions (Northeast, Midwest, West and South) and 14 conferences. The league works because it’s hyper-regional, which keep travel costs low for teams. The league works because it has a short season, which keeps costs low, and gives teams the flexibility to use either college players, amateur players, or pro players. The league works because it has a modest start-up fee (~$15,000) and a modest yearly league fee (~$5250). The NPSL gives community leaders, entrepreneurs, etc. a chance to build a profitable (and therefore sustainable) lower-level soccer club — one that could conceivably operate forever if run properly. This is what we are trying to build with Stockade FC and our open and transparent approach to problem solving the club in public. I want to be able to show what a profitable and sustainable soccer club looks like in a tiny market (Kingston = 19,000 people) and I want to show people how they can build one from scratch (ahem, presuming that we actually figure out how to do it).

But why even bother to show people how to build D4 clubs from scratch, especially when so many folks say, “but who cares about D4?” Those people are partially right. Many people don’t know about our league. Most don’t know anything about the ~100 teams that make up league. There’s no promotion to D3. There’s no broadcast deal. There’s no streaming rights. There’s no sponsorship revenue to be shared by the teams. BUT… what would have to happen for our league and our teams to get those things? What would the league have to look like to command a broadcast deal or streaming revenue that would lead to larger audiences and larger sponsorship dollars? How do we generate revenue that could then be shared back with the teams in the form of prize money or travel subsidies? Well, first we’re going to need an audience…

Okay then, but how big an audience? It’s tricky to measure the current size of the NPSL’s “total audience” or “total reach” now — not all teams track attendance, not all teams report attendance if they do track it, not all teams are streaming their matches. But what if we could solve for all that?

I’m only using the NPSL as an example here as it’s the league I know best, but feel free to swap in whatever lower-level league you follow. Now let’s imagine that we all agree that a D4 league’s audience is “relevant” when its audience is, say, 1/4 the size of MLS’ audience in the USA today. Okay then. So let’s build that. But that’s crazy, right? Or is it?

Let’s do the math:

MLS in 2016
Number of Teams 20
Home Games Played per Team 17
Number of Total Home Games Played 340 **
Average TV viewers per match 276,689 *
Average attendance per match 21,692 **
Total number of viewers in 2016 94,074,260
Total game-day attendance in 2016 7,345,265

These numbers are big and daunting. But a D4 league with 100 teams has something the MLS does not — a large geographic footprint that is currently operating across 100 local markets in the US. A lot of these markets are smaller markets with smaller teams; smaller teams that have a greater chance at being sustainable and profitable. What if we took advantage of this unique feature of this D4 league and imagined a league not with 100 teams, but with 500 teams (!!!):

D4 in Year 2022
Number of Teams: 500 (2016 NPSL = 84 teams)
Avg Home Games Played/Team 8 (2016 NPSL = ~6 games/team)
Number of Total Home Games Played 4000
Est avg stream viewers/match 5000
Est avg attendance/match 1000
Total number of viewers in 2022 20,000,000 (21% of MLS 2016)
Total game-day attendance in 2022 4,000,000 (54% of MLS 2016)

Is 500 teams crazy? Right now, yes. But could a league grow into something of this size? Can a single league even support this many teams? Are there even this many markets in the USA where you could pull at least 1000 fans into a stadium and another 5000 to watch online? In a country with 320,000,000 people… why not?

And if we spent some time putting together a real five or ten-year plan for how to get from 100 teams to 500 teams, and combined it with an “instruction manual” or sorts to help teams build an audience of 1000 fans per game with another 5000 fans watching online. Imagine the league as not just development league for players, but was also a development league for ownership groups.

With that many teams and with that much ambition, you could probably set up “tiers” that exist exclusively within D4. (think: “Pyramid within a pyramid” — all teams live within D4 where the “expansion” fees are approachable and where the USSF guidelines for minimum net-worth, market sizes and stadium capacity don’t apply.) With multiple tiers within a single division, you could “promote” a team from one tier to the next without charging a “cover charge”. You could relegate from one tier to the next without losing the “cover charge”. Some tiers could have longer seasons. Some tiers may have more professional players than amateur players. Some tiers could have higher yearly league fees. Some tiers would require teams to travel longer distances. Some tiers could be eligible to earn a bigger cut of sponsorship and streaming revenue. The point is that a single “division” with multiple tiers enables the ability for teams to seamlessly move within it (something that currently seems nearly impossible to enable with the existing D3/D2/D1 system).

Let’s go back to streaming revenue for a minute and let’s take a look at what a league of this size may be able to command. Let’s use the most recent MLS broadcast deal as a foundation:

MLS TV DEAL (2015–2022)   $90,000,000/year*      x 8yrs on ESPN/Fox/Univision)      *   
94,074,260 total viewers in 2016
$0.96/viewer (per year)

And based off these numbers, let’s look at how a 500-team D4 league could compare:

D4 IN YEAR 2022Total viewers             20,000,000 (500 teams * 5000/viewers game)-----Value per viewer #1       $0.25/viewer
(75% discount from D1, because, hey D4!)*
Total value of audience $5,000,000
(to be used for ops, mktg, prize money)
Value per viewer #2 $0.50/viewer
(50% discount from D1, because, hey D4!)**
Total value of audience $10,000,000
(to be used for ops, mktg, prize money)
* assumes a D1 viewer is worth 3x a D4 viewer
** assumes a D1 viewer is worth 2x a D4 viewer

Now there’s a lot of assumptions here — most notably I’m imagine that this D4 league may never cut a broadcast TV deal and instead becomes one of the first leagues to go all-in on streaming as the primary source of distribution (aka: this league’s streaming strategy would look less like ESPN and more like Twitch TV). And, of course, I’m assuming that the streams are of high enough quality that people love to watch online.)

I’m also making an assumption that “quality of play” is not the primary driver of fan support or audience size. No one is going to make the argument that today’s D4 teams regularly have a shot at beating MLS teams. (If this was the case, you’d see more D4 teams going further in the US Open Cup year after year — although we did see a D4 over D2 win this week!). That said, there are certainly fans in the USA that care much more about their local MLS team in the US than a Premiere League team in the UK that is playing at a much higher level. Those fans care more about their MLS team because their MLS team is their local team. Proximity matters — and with with 22 teams in MLS, that type of thinking applies to those 22 local markets. But why can’t that same logic apply to a D4 league with 500 teams? You could argue that people are likely to care as much (if not more!) about their local D4 club than some MLS team that is 100–200 miles away, even if the level of play is lower. We’re certainly seeing this in Kingston with both casual and die-hard fans.

Assumptions aside, if this league could generate enough revenue, and if the cut of shared revenue or prize money was big enough, maybe you’d get teams that currently exist in other parts of the pyramid to actually make the jump *down* to D4 — where it’s cheaper (choose a tier that allows your club to be profitable), where it’s more interesting (with teams being promoted and relegated up and down these tiers every match matters), and where there’s a larger and continuously growing audience fueled by the passion for both sport and community on a much more local level than what a 22-team MLS league, an 8-team NASL league, or a 30-team USL league can offer.

Sidenote: I have nothing against MLS. I appreciate all the league has done for the sport. I enjoy going to both NYCFC and RBNY matches. But I do think that the existing US Soccer pyramid is broken and I believe it’s designed in such a way that it forces every other league (NASL and USL) to “play the same game” as MLS. By that I mean: all three leagues are all trying to do the same thing — 20–30 teams, largest markets possible, grab whatever broadcast TV deal you can get. It’s an obvious strategy and it’s currently working well for MLS. I believe that if we (the fans!) want to see change in the US Soccer Pyramid, then we (the ownership groups!) have to “play a different game” than MLS — small markets instead of big markets, a 500 team league instead of a 20–30 team leagues, streaming over broadcast, merit based promotion through open tiers, financial rewards for success, financial rewards incentivizing investment in local soccer). In sum, we shouldn’t focus our energy on the idea of entirely disrupting MLS, but rather on creating a world where it’s possible that a critical mass of soccer fans in the USA care more about a D4 league than MLS.

So, yes, this is a little crazy. For any of this to work, we’re going to need more clubs, more players, more fans. To the folks building clubs, we need to be working more closely together, sharing what we learn, and recruiting others to do the same. And so this is where I get back to work building our club, Stockade FC and doing as much as we can to share everything we’re learning along the way in the hope of helping others get started too. After all, these 400 other clubs aren’t gonna build themselves.

Thanks for reading! I appreciate any comments below, or hit me up on Twitter @dens



Dennis Crowley

I like to build things (Founder @Foursquare 📱, @StockadeFC ⚽️, Dodgeball 📟). Husband to @Chelsa & dad to 👧🏼❄️ & 👶🏼🚀 I enjoy snowboards, soccer & hot dogs