Software for the voice coding and analysis of volleyball matches

Volleyball Code
Coach Handbook

Everything the app does, from the first roster to the last export — including the full barème a coach speaks into the microphone.

Edition September 2026 volleyballcode.com English · Français

This handbook is the complete reference for Volleyball Code. Read it end to end once and you will know every word the app listens for, every symbol it stores, and every number it hands back. If you only have five minutes before a match, read 3.3 The barème — that one table is the app.

Print this

Use the ⤓ Download PDF button at the top of the page (or your browser's Print → Save as PDF). The handbook is laid out for A4 with chapters starting on fresh pages, so the printed copy reads like a manual rather than a web page.

Chapter 1

1. Before you start

1.1 What Volleyball Code is

Volleyball Code turns what a coach already says out loud into a coded match. You speak the rally — "Team A number 9 serve continue, Team B number 2 reception perfect, Team B number 14 attack point" — and the app transcribes it, corrects the transcript, splits it into individual actions, shows you what it understood, and only then commits it. Committing updates the score, rotates the correct team, and files every touch against the right player.

The result, at the end of a match, is the same data a statistician with a laptop would have produced: a full play-by-play, per-player skill lines, side-out and break-point percentages by rotation, and an attack map. The difference is that you got it while coaching, with your eyes on the court.

1.2 What you need

ItemRequirement
DeviceAny phone, tablet or laptop. A phone in a pocket with a wired or Bluetooth headset is the most common bench setup.
BrowserA current Chrome, Edge, Safari or Firefox. Android users can also install the app from the Play Store.
MicrophoneAny. A headset microphone close to your mouth beats a good phone microphone across a loud gym every time.
ConnectionVoice coding needs the internet — speech is transcribed on a server. Your match data is saved to the device first, so a dropped connection never loses a rally.
AccountA free account. Matches are stored on the device and synced to your account so they survive a lost phone.

1.3 Creating an account

Open volleyballcode.com and sign up with an email address or with Google. There is no credit card at any point in the free plan. Once you are in, you land on the Dashboard, which is where every match begins and ends.

1.4 Plans and limits

The free plan is a real plan, not a demo — it codes a full match by voice with live scoring, rotations and team statistics.

 FreeProClub
Matches per month1UnlimitedUnlimited
Voice coding75 min / month5 h / month (≈ 4 matches)Unlimited
Live score & rotationYesYesYes
Team KPI cardsYesYesYes
Per-player & rotation tablesYesYes
Attack zonesYesYes
Season analyticsYesYes
CSV & PDF exportYesYes
Cloud syncYesYesYes

Voice minutes count recording time only: the microphone sitting idle between rallies costs nothing. Cloud sync is on every plan on purpose — it is how the app saves anything at all, not a feature to withhold. Current prices are on the pricing page.

Chapter 2

2. Setting up a match

Setup is three screens: teams, rosters, starting rotations. Done once for a team, it is reusable for the whole season.

2.1 The dashboard

The dashboard lists your matches, newest first, and holds the New Match button. If you left a match unfinished, a resume banner appears at the top — see 4.6. A match card shows the two team names, the set scores and the date; tapping it opens that match's statistics.

2.2 Team names

Name both sides. Team A is always your team (the "home" side in every table and export) and Team B is the opponent. You can speak either the letter or the name during the match — "Team A", or "Eagles" if that is what you called them — but the letters are what the microphone hears most reliably in a loud gym.

2.3 Rosters

Add each player with a shirt number, a name and a role. Two rules are enforced before a match can start:

  • At least 6 players per team. Fewer than six cannot fill a rotation.
  • No duplicate numbers within a team. Two number 9s make every action ambiguous. The two teams may of course both have a number 9.
RoleMeaningWhy the app cares
OHOutside hitterAttacks are credited to zone 4 after the post-serve switch
OPPOppositeAttacks are credited to zone 2 (zone 4 when the setter is in P1)
MBMiddle blockerStays in zone 3 in every rotation
SSetterDrives the setter-position badge and the rotation numbering
LLiberoTracked in reception and dig, never in attack zones
DSDefensive specialistFalls back to the literal court slot

Roles are optional, but without them the attack map can only report the literal P1–P6 slot a player stood in, which reads as nonsense to a coach: an outside hitter rotationally in P2 still runs left and hits zone 4.

Faster entry. The 📋 Paste / edit as text button swaps the player list for a text box, one player per line, in the form 9 - Player Name - OH. Paste a roster out of a spreadsheet or a team chat and it is done in one action. 💾 Save to My Teams keeps the roster for the next match so you never type it twice.

2.4 The starting rotation

The last setup screen asks where each player starts, P1 through P6. P1 is the serving position (back right) and the numbering runs against the direction of rotation: P1 → P6 → P5 → P4 → P3 → P2.

Set this correctly and you never think about rotation again: the app rotates the receiving team automatically on every side-out, for both teams, for the rest of the match.

2.5 Starting

Choose which team serves first, then start. The app validates both rosters, assigns the match an ID, and opens the coding screen. From this moment the match is live and every action is saved as you go.

Chapter 3

3. The Volleyball Code code

This is the chapter that matters. Everything else in the app is a consequence of what you say here.

3.1 One action, four slots

Every action is a short sentence with four slots, always in the same order:

Team Ateam number 9player attackskill pointresult

Shorter forms all parse — Team A 9 attack point, A 9 attack point, or your own team name in place of the letter. The full form is simply the one the microphone hears most reliably. The order never changes: team, number, skill, result.

3.2 The seven skills

A skill is the type of contact. There are seven, and each accepts several natural words so you can speak the way you already speak on the bench.

SkillLetterSay any of
ServeSserve · serving · service
ReceptionRreception · receive · pass
SetEset
AttackAattack · spike · hit
BlockBblock
DigDdig · defense · defence
Free ballFfree ball · freeball · free

Three of these are terminal skills — serve, attack and block. They are the only ones that can win a rally outright, which is what 3.3 is about. Reception, set, dig and free ball keep the ball alive; they can lose a rally through an error, but they can never win one.

Two extra words are accepted with no skill at all: net and touch. "Team A 9 net touch" is recorded as an error and gives the point away, which is exactly what it does on the court.

3.3 The barème

The result is how that contact ended. Volleyball Code uses the FIVB / Data Volley scale — the barème — which has five rungs and one symbol per rung. The symbol is the only thing the scoring engine reads. Whatever word you spoke, in whichever language, it resolves to one of these five characters and nothing else travels any further.

SymbolRungSayWhat it does
#Perfect / point wonpoint · perfectOn serve, attack or block: point for that team. On reception, set, dig or free ball: a great ball, rally continues.
+PositivepositiveGood contact, team in control. Rally continues, no point.
!In playcontinueOrdinary contact, ball stayed up. Rally continues, no point.
-PoorpoorBad contact but still alive. Rally continues, no point.
=ErrorerrorPoint for the other team, whatever the skill was.

Five words cover a whole match: point, positive, continue, poor, error. A coach holding five words calls a rally faster than one choosing between twenty — which is why the app teaches these and quietly accepts the rest (see 6.1).

"Perfect" and "point" are the same call. They are one rung (#) spoken two ways. What changes between them is the skill, not the outcome: on a serve, an attack or a block, # wins the rally; on a reception, a set or a dig, # means a great ball and play goes on. You never have to decide which word is "allowed" — say whichever comes out, the app resolves it from the skill.

3.4 The barème, skill by skill

The same five symbols read differently depending on what was hit. This is the table to keep on the bench.

 #+!-=
ServeAce — pointTough serve, opponent strugglingServe in, rally onEasy serve, free pass for themServe error — point against
ReceptionPerfect pass, all options openGood passPassed, ball is upPoor pass, one option leftShanked or aced — point against
SetPerfect ball to the hitterGood setSet deliveredPoor set, hitter in troubleBall handling / double — point against
AttackKill — pointHard attack, opponent scramblingAttack in playRoll shot returned easilyOut, net, or stuffed — point against
BlockStuff block — pointBlock touch, ball controlledBlock touch, rally onBlock touch, ball deflected badlyBlock error / net — point against
DigPerfect dig, counter-attack onGood digBall dug upPoor dig, free ball backNot dug — point against
Free ballPerfect free ballGood free ballFree ball sent overPoor free ballFree ball error — point against
The one habit worth building

A stuff block is spoken from the blocker's side. Say "Team B 9 block point" — block is a skill, not a result. The app infers the attack that was stopped and files it against the attacking team as Blocked, so their attack efficiency drops as it should. Coaches coming from other systems reach for "attack blocked" out of habit; that still parses and still gives the point away correctly, but it credits no blocker.

3.5 Chaining a whole rally

You do not stop after every contact. Call the entire rally in one breath and the app splits it into separate actions — a new action starts wherever a team is named again.

"Team A number 9 serve continue, Team B number 2 reception perfect, Team B number 14 attack point."

Three touches recorded, the point given to Team B, Team B rotated, all before the next whistle. Words like then, after that and next also separate actions if you prefer to speak that way.

You are never obliged to code every touch. Code only what you will look at afterwards. The one action you should always call is the one that ends the rally, because that is the only one that moves the scoreboard.

3.6 What the app fills in for you

Two touches are so mechanically implied by another that the app records them itself, so your totals stay honest without you having to say more. They appear in the confirm box marked as team actions, with no player number attached.

You sayThe app also recordsWhy
Serve # (ace)Opponent reception =An ace is by definition a failed reception
Serve +Opponent reception -A tough serve that stayed up means a poor pass
Serve -Opponent reception +An easy serve means a comfortable pass
Serve !Opponent reception !Counts the reception without inflating the positivity %
Block # (stuff)Opponent attack = BlockedOtherwise a stuffed attack would vanish from their attempts and their efficiency would improve every time they were blocked

A serve = generates nothing: nobody received it. And if you spoke the reception yourself in the same rally, yours wins — the app never doubles up on a touch you called. Both inferences can be switched off in Profile if you prefer to code every touch by hand.

3.7 Typing a code instead of speaking it

Under the scoreboard there is a text field. Anything you can say, you can type — useful when the gym is too loud, when your voice is gone, or when you are correcting something after the fact. The typed form is compact and positional:

[team]-[skill letter][player number][symbol]
TypedMeans
H-A9#Team A (home), attack, number 9, kill — point to Team A
A-R12+Team B (away), reception, number 12, positive
H-S4=Team A, serve, number 4, error — point to Team B
TB B7#Team B, block, number 7, stuff block — point to Team B
A9!Team A assumed, attack, number 9, in play

The team prefix accepts H, HOME, TA or TEAM A for your side and A, AWAY, TB or TEAM B for the opponent, with or without the dash. Leave it off entirely and your team is assumed. Leave the symbol off and the action is recorded as ! — in play. Press Enter to commit; typed codes skip the confirm step, because you already saw what you typed, and they get the same automatic reception and attack inference as spoken ones.

Chapter 4

4. Coding a live match

4.1 The coding screen

One screen holds everything you need during play: the scoreboard with the serving indicator, both courts showing who is standing where, the live transcript, the code field, and the running play-by-play. The How to speak button opens a one-screen summary of chapter 3 at any time — it reads its words out of the parser itself, so it can never advertise something the app would reject.

The Volleyball Code coding screen during a live match

4.2 Record, confirm, commit

The loop is three steps and never changes:

  1. Record. Tap the microphone. The transcript appears live as you speak, so you can see the app is hearing you.
  2. Confirm. When you finish the rally, the app shows what it understood as a short list — team, number, skill, result, one row per action. Glance at it. A wrong jersey number is fixed in one tap.
  3. Commit. Confirm, and the score, the rotation and every statistic update together. Discard, and nothing happened.

Nothing reaches your statistics until you confirm. That step is why voice coding stays accurate in a gym loud enough that you have to shout.

The app knows a rally is over when it hears a terminal word — point, error, ace, kill, out, blocked, rally over and their relatives. If you trail off without one, it keeps listening; say "point" or "error" and it closes the rally immediately.

4.3 Scoring and rotation

The whole scoring rule fits in three lines:

  • # on a serve, attack or block → point to the team that made the contact.
  • = on anything → point to the other team.
  • Everything else → no point, rally continues.

When a point goes to the team that was not serving, that is a side-out: the app rotates them one position and hands them the serve, exactly as the referee would. You will see a "↻ Side-out: … rotated" confirmation and both courts redraw. Because the rotation is derived from the score rather than tracked by hand, it cannot drift out of step over five sets.

4.4 Corrections

SituationWhat to do
The last action was wrongUndo — reverses the action, the point and the rotation together
A point was scored off the ball (card, net touch you missed)The +1 button on that team's scoreboard
The score is right but the count driftedThe −1 button
The court does not match reality after a substitutionThe manual rotate arrow on that team
The app misheard a jersey numberFix it in the confirm box before committing, or undo and type the code

4.5 Ending a set and a match

End Set closes the set, banks the score, and resets both teams to their starting rotation for the next one. Repeat until the match is decided, then end the match. A completed match moves off the dashboard's resume banner and into your match list, where its statistics are permanent.

4.6 Resuming an unfinished match

If a phone dies, a browser is closed, or a match is interrupted, nothing is lost. The dashboard shows a resume banner for the unfinished match; open it and you are back exactly where you stopped — same score, same rotation, same play-by-play. Match data is written to the device first and synced to your account after, so neither a flat battery nor a dead gym Wi-Fi can cost you a set.

Chapter 5

5. Reading your statistics

Open a match from the dashboard to see its statistics. Every number below is computed from the actions you coded — nothing is estimated.

The Volleyball Code statistics screen

5.1 The KPI cards

Six numbers at the top, the ones a coach argues about at half-time.

CardHow it is calculatedWhat it tells you
Side-Out %Rallies won when receiving ÷ rallies receivedThe single most predictive number in volleyball. Below 50% you lose; above 65% you are hard to beat.
Attack Efficiency(kills − errors − blocked) ÷ total attacksAttacking quality net of mistakes. Ranges from −100% to +100%; 30%+ is a strong match.
Reception QualityPositive receptions (# and +) ÷ total receptionsWhether your setter had options. The breakdown under the number shows the full spread: # / + / − / error / neutral.
Break Point %Rallies won when serving ÷ rallies servedYour ability to score in a row. This is what turns a close set.
Total ErrorsAll = actions, broken down by skillPoints you handed over. Compare with the opponent's total before blaming the attack.
Serve ErrorsServe = count, with aces alongsideThe aggression trade-off, in one line.

5.2 The player table

One row per player, with the skill blocks a coach expects:

BlockColumns
AttackK (kills) · E (errors) · B (blocked) · TOT · EFF%
Reception# · + · − · ERR · NEU · TOT · POS%
ServeACE · E · TOT
BlockPT (stuff blocks) · E
DigOK · E · TOT
PointsTotal points the player scored directly

Both teams are listed. Because you code the opponent with the same sentence, you finish every match with a scouting line on the team you just played.

5.3 Rotation performance

The same match, broken down by the six rotations, with tabs for side-out, break point, points and skills. This is where a season's real problem usually hides: one rotation siding out at 38% while the other five sit above 60% is worth more to a coach than any individual statistic.

5.4 The attack map

Where the ball was actually hit from — outside, middle, right, pipe and bic — by share and efficiency, for your team and the opponent. The app reads the rotation at the moment of each attack and applies the post-serve switch, so an outside hitter rotationally in P2 is correctly credited to zone 4 rather than to the slot they happened to start in.

5.5 Season mode

Switch statistics from a single match to the season and everything above aggregates across every match you have coded: KPI trends match by match, player totals, rotation performance over time, and zone drift. Your team is always normalised onto the same side, so a match where you were listed second does not contaminate the totals.

5.6 Getting the data out

ExportWhat you get
PDF match reportA printable report: score by set, KPI summary, full player table, rotation performance. Opens in a new window ready to print.
CSVEvery action as a row, for your own spreadsheet or a federation's template.
Share linkA read-only web link to the match report. No login for whoever opens it — send it to a club director or a parents' group and it just opens.
Chapter 6

6. Reference tables

6.1 Every accepted word — English

The sheet in the app teaches one word per rung. These are all the words that also work, kept accepted so a coach who learned a different vocabulary mid-season is never told their word is wrong.

Resolves toSay any of
# Perfect / pointpoint · perfect · excellent · kill · ace
+ Positivepositive · good · great
! In playcontinue · neutral · ok · okay · average
- Poorpoor · negative · bad
= Errorerror · mistake · failed · miss · out · fault · blocked
Serveserve · serving · service
Receptionreception · receive · pass
Setset
Attackattack · spike · hit
Blockblock
Digdig · defense · defence
Free ballfree ball · freeball · free
Error (no skill)net · touch · net touch
Team Ateam a · A · home · your team's name
Team Bteam b · B · away · the opponent's name
Action separatorthen · after that · next

6.2 Every accepted word — French

Volleyball Code codes in French as well as English. The screen language and the spoken language are separate settings — a coach can speak French to an English interface. Set the spoken language in Profile; the choice is stamped onto the match when it starts.

Resolves toSay any of
# Parfait / pointpoint · parfait · ace · gagnant
+ Positifpositif · bon
! En jeucontinue · neutre · moyen · correct
- Faiblefaible · négatif · mauvais
= Fautefaute · erreur · dehors · out · raté · manqué · bloqué
Serveservice
Receptionréception
Setpasse
Attackattaque
Blockcontre
Digdéfense
Free ballballe facile · freeball
Error (no skill)filet · touche
Action separatorpuis · ensuite · après
Two rules for French coaches

Say réception for a reception, never passe. In French volleyball la passe is the set. If passe also meant reception, every set in the match would be filed as a reception and your side-out numbers would be meaningless.

Say bloqué, not contré, if you call a stuff from the attacker's side. Speech recognition returns accents unreliably, and an unaccented contre is the block skill itself. Better still: call it from the blocker's side — "Équipe B 9 contre point".

6.3 Symbols and letters at a glance

SymbolMeaningLetterSkill
#Perfect / point wonSServe
+PositiveRReception
!In playESet
-PoorAAttack
=ErrorBBlock
  DDig
  FFree ball
Chapter 7

7. Troubleshooting

SymptomCause and fix
The transcript stays emptyThe browser has not been granted microphone access, or another app is holding the microphone. Check the permission prompt, close other recording apps, reload.
The rally never closesThe app is waiting for a terminal word. Say point or error to close it.
The wrong jersey number is picked upSay "number nine" rather than just "nine" — the keyword tells the app a jersey number follows. Fix it in the confirm box before committing.
Team A and Team B get swappedSingle letters are the hardest thing for a microphone in a gym. Say "Team A" in full, or use your team names.
An action is filed against the wrong teamEach action must start with the team. Without it, the action attaches to the previous one.
The score is right but a rotation is wrongUse the manual rotate arrow on that team. The score is not touched.
Attack efficiency looks too goodStuff blocks against you are only counted if the block was coded. Code the opponent's blocks — see 3.6.
The match disappearedIt has not. Check the resume banner on the dashboard, and that you are signed into the same account.
Voice stops mid-matchYou may have reached your monthly voice allowance. The code field keeps working — see 3.7 — and the pricing page shows your options.

Where to go next

Short, illustrated walkthroughs of each step live in the tutorials. The statistics guide explains what the numbers mean in volleyball terms rather than app terms. Anything not covered here: contact us.

Code your next match by voice

Set the roster, press record, and speak the rally. Volleyball Code keeps the score, the rotations and the statistics. Start free, no card.

Start free →

Volleyball Code Coach Handbook · Edition September 2026 · volleyballcode.com/handbook