How Our Saturday Futsal Group Stopped Arguing About Teams - SquadBalance Blog - Laravel
Back to Blog

How Our Saturday Futsal Group Stopped Arguing About Teams

GregorFebruary 22, 20268 min read
futsalteam-balancingfounder-story

Every Saturday evening, ten grown men stand in a school gymnasium, nobody wanting to be the one selecting the teams, hoping someone else will volunteer, so we can start playing. This went on for years.

Everyone pointing at each other to pick teams

I'm Gregor, and this is the story of how I built this product to resolve this annoying part before each game.

The Friday Routine

It starts on Friday. I post a poll in our Viber group: "Who's in for tomorrow?" Then I wait. Some guys respond immediately. Others leave me hanging until Saturday afternoon. A few say "maybe" which, if you've ever organized anything, is the most useless response.

I need a minimum of eight to make a game worth playing. Ten or more is the sweet spot — two teams of five, maybe 2 subs, awesome, proper futsal. If fewer than ten respond by Saturday morning, I start texting people individually. "Hey, we're short. You free?" It's like being a recruiter, except nobody's getting paid and the office is my sofa.

Most of the time we get our numbers. Fifteen core guys, give or take. We've been playing together for 10+ years — some of us are average, some better, and some of us just really enjoy running around for ninety minutes. That part works fine.

The part that doesn't work? Everything that happens when we actually show up.

Twenty Minutes of Nothing

Picture this. Saturday evening, 18:00, everyone's at the venue. We've got the court booked for two hours. And for the first twenty minutes, nobody plays. People are kicking the ball around, stretching, chatting. It looks like a warm-up but it's actually a standoff. Nobody wants to be the one who says "right, I'll pick teams."

Twenty minutes of standing around while game time burns away

Why? Because picking teams is an annoying job.

If you volunteer, suddenly you're the guy who has to rank everyone in his head, live, in front of the group. You pick your mates first and people notice. You pick the best players first and the last few guys standing there know exactly what that means. Either way, someone's unhappy.

So instead, we'd waste time negotiating. "You pick." "No, you pick." "Let's just play a rock-paper-scissors-like game to decide who picks." So now we're playing a game to decide who gets to do the thing nobody wants to do. Brilliant.

The Picking Problem

Eventually, someone caves. And that's usually me, the organizer. Or on a rare occasion, two guys get pressured into being captains. They flip a coin, the winner picks first, and off we go.

Except that the teams are almost never balanced.

Here's the thing about picking teams on the spot: the captains are biased. They pick their friends. They pick based on who they think is good, which is just one person's opinion. They forget that Marko is actually solid in goal but terrible outfield, so they put him in defence and wonder why they're leaking goals.

One team dominates. The score ends up 22-9 or something lopsided. The losing side stops trying by halftime. The winning side gets bored. Nobody has fun. We came here to play competitive, equal, and fun futsal.

And then there's the part nobody talks about: being picked last. We're all adults, we all pretend it doesn't matter. But standing there while everyone else gets chosen, watching the captains scan past you — it doesn't feel great. It's a small thing, but it adds up over months and years.

My First Fix (That Didn't Quite Work)

I'm an IT person, so naturally I tried to solve this with technology. My first approach was crude but effective: I'd copy-paste the list of confirmed players from our Viber chat into an AI prompt. Then I'd define some constraints — we have two proper goalkeepers, trying to split them across teams — and ask it to generate balanced squads.

For the balancing to work, I needed skill ratings. So I scored everyone myself. One through ten, based on what I'd observed over years of playing together. Fed that in, got teams out. It worked. Sort of.

The problem was obvious once I thought about it: all the ratings came from me. My opinion. My biases. I might think Luka is a six because he's quiet and doesn't showboat, but the guys who actually play against him every week might rate him an eight. I'm one data point. That's not enough.

Single-rater bias is real. My mental model of who's good at futsal was built on my own limited perspective. I'm not watching every play. I'm not tracking everyone's performance objectively. I'm just a guy with opinions.

I needed more raters.

What If Everyone Rated Everyone?

This is where the idea started. What if all fifteen guys in our group rated each other? Anonymously, so nobody holds back. No awkward conversations, no hurt feelings. Just honest assessments.

Think about it: if twelve people rate you, that average is going to be far more accurate than one person's guess. The outliers cancel out. The biases smooth over. What you're left with is something close to a genuine consensus on each player's skill level.

So I built it. Nothing fancy at first — just the core concept. Everyone gets a link. They rate each player on a simple scale. Nobody sees who rated whom. The averages stay hidden from players by default (as the admin, I'm the only one who sees them). And those averages feed directly into a team generator.

The generator is position-aware too. It knows our two goalkeepers should be split between teams, not stacked on the same side. It knows to distribute skill evenly across both squads so neither team runs away with it.

That's how SquadBalance was born. Out of frustration with the twenty minutes of wasted time every Saturday.

Solving the Other Headache

Once I had the rating and balancing piece working, I realized there was another annoyance I could kill: the attendance management.

Every week, I was copying names from Viber, figuring out who confirmed, who declined, who said "maybe" (again — useless). So I added polls directly into SquadBalance. Now I share one link in the Viber group. Guys tap "I'm in" or "I'm out." Done.

When I go to generate teams, the players who confirmed attendance are already preselected. I can tweak it if someone messages me last-minute — "Hey, Milan can't make it but Jure is coming" — but the baseline is already there. No copy-pasting. No cross-referencing chat messages.

Saturday Evening, After

Here's what Saturday looks like now. I generate the teams one hour before our game. Post them in the group. We show up, do a quick warm-up, and start playing. The whole pre-game circus — the awkward standing around, the "you pick / no you pick" dance — gone.

And the games? They're close. We're talking one or two goal differences. Matches that stay competitive until the final minute. Both sides pushing, both sides feeling like they've got a chance. That's the whole point of recreational sport — you want it tight, you want it exciting, you want to leave feeling like the result could've gone either way.

The rating part turned out to have a fun side effect too. People actually enjoy doing it. There's a bit of a gamification element to it — some guys are curious about their score and ask me to share it. Others prefer not to know. As the admin, I decide what to share. But the act of rating itself? People get into it. It sparks conversations. "I gave you a seven, by the way." "A seven?! I scored eight goals last week!"

It's become part of the group's culture now.

The Bigger Picture

I built SquadBalance for my Saturday futsal group, but the problem isn't unique to us. Every recreational team sport has this issue. Football, basketball, ultimate, volleyball — anywhere a group of friends shows up and needs to split into fair teams. The same dynamics play out. Nobody wants to pick. The picks are biased. The games are lopsided. People stop having fun.

It doesn't have to be that way. Anonymous peer ratings give you accurate skill data. Position-aware balancing gives you fair teams. Integrated polls give you clean attendance tracking. (If you're curious how different methods compare, here's a breakdown of five fair methods for splitting teams.) Put it together and you skip straight to the part everyone actually came for: playing.

If any of this sounds familiar — if you're the one organizing the group, doing the herding, handling the complaints about unbalanced teams — give SquadBalance a try. It's free to get started. Set up your squad, invite your players to rate each other, and let the algorithm do the picking so nobody has to.

Your Saturdays deserve better than twenty minutes of standing around.

Try SquadBalance — It's free

Create balanced teams for your next game in seconds.