Programme

Soccer scorekeeping for iPad.

Programme is a scorebook for recording soccer matches live from the sideline. Track the match as it happens, review the record, and export game and season statistics.

View on GitHub Explore Programme ↓

Programme running on an iPad. The match screen shows Ninety Six 1, Dixie 0, with 16:13 left in the first half. The on-field lineup runs down the left with jersey numbers and minutes, the pitch and shot map sit in the centre, and the action palette is on the right: Goal, Shot on Goal, Shot, Save, Corner, Steal, Substitution, Penalty Kick, Yellow Card and Red Card.

Live scoring

Record matches live.

Goals, shots, saves, cards, fouls, offsides, corners, and substitutions are recorded from the same match screen.

Match Ninety Six vs Dixie

Ninety Six 1 – 0 Dixie

16:13

1st halfRunning

Shots
6
Shots on goal
3
Corners
2
Saves
2

Undo is a single tap and never asks for confirmation. The order of the palette does not change during a match.

Lineups

Lineups and substitutions

See who is on the field and who is available from the bench. Record substitutions at the match time they happened, including goalkeeper changes.

On the field 11/11

  • 1WhitfieldGK63'
  • 2Odom63'
  • 3Boyd63'
  • 4Pruitt63'
  • 5Alvarez63'
  • 6Kinard63'
  • 7Williams1A63'
  • 9Carter1G63'
  • 10Sanders63'
  • 12Ridgeway28'
  • 11TrotterComing off63'

Bench 9

  • 8MabryComing on
  • 13Ferrer
  • 14Hollis
  • 15Nance
  • 16Ellison
  • 17Fowler
  • 18Vaughn
  • 22BrannonGK
  • 24Lanier

Substitution At 16:22 · 2nd

Tap players on the left to come off, and on the right to come on.

Make Substitution

Several players can be swapped at one timestamp. If the goalkeeper is coming off, Programme asks who takes the gloves before it commits.

Statistics

Statistics from the match record

Programme calculates team, player, and goalkeeper statistics from the events recorded during the match. Edit or remove an event and the affected statistics are recalculated automatically.

Event Events are the source of truth

31:22

Goal

#9

Carter · assist #7 Williams · 1st half

Derived Including this event

Score
1–00–0
Goals · #9
10
Shots · #9
32
Shots on goal · #9
21
Points · #9
20

A goal is a shot outcome, so removing it removes the shot and the shot on goal with it. Points are goals × 2 + assists. These are this match’s values for #9 Carter.

Shot locations

Record shots on the pitch.

Add a shot location with touch or Apple Pencil. Programme uses different marker shapes for goals, shots on target, shots off target, blocks, and woodwork.

  • Goal
  • On target
  • Off target
  • Blocked
  • Woodwork

Attacking left to right. The pitch is drawn to real proportions, and the map stays readable with Differentiate Without Colour turned on because shape carries the outcome.

Match review

Review the match before finalizing it.

Programme collects unresolved players, lineup problems, incomplete periods, and other items that still need attention in one place.

Items that need review do not interrupt live scoring.

Needs review 2 open

  • Unidentified player Shot · 41:08 Review
  • Lineup 10 of 11 players Review
  • Score reconciled Goals allowed match the score Complete

A shot recorded without a jersey number counts toward team totals immediately and waits here for a player. Assigning one revises the original event rather than adding a second.

Season

Season statistics

Finalized matches contribute to player totals, goalkeeper statistics, team results, and tracking coverage for the season.

Record
12-4-2
Goals For
41
Goals Against
18
Shutouts
6
Matches
18

Players

PlayerGPGSMINGAPTSSHSOG
9 Carter18181284146346133
11 Trotter18161147115274826
7 Williams17171246512223114
10 Sanders1814102064162915
8 Mabry181813113713229
6 Kinard1612902157146

Goalkeeping

GoalkeeperGPMINSVGASV%GAASHO
1 Whitfield1511367114.8350.995
22 Brannon5304174.8101.051.5

A clean sheet split between two goalkeepers is recorded as a shared shutout, so season totals never overstate either one.

Tracking

Tracking coverage

Programme distinguishes between a statistic recorded as zero and a category that was not tracked for that match. Season totals and exports keep the same distinction.

This season

  • Goals18 / 18
  • Assists18 / 18
  • Shots18 / 18
  • Goalkeeping18 / 18
  • Corner Kicks14 / 18
  • Shot Locations9 / 18
  • Steals6 / 18

One match

Goals
0
Shots
7
Corner Kicks
3
Steals
—

— Not tracked in this match

A season total only counts the matches that were tracking the category, and an untracked cell in a CSV export is left blank rather than written as zero.

Export

Export match and season statistics

Create a PDF stat sheet, box score CSV, season totals CSV, Programme archive, or MaxPreps entry summary from the same match record.

Stat Sheet

PDF

A printable scorebook page with the box score and timeline.

Box Score

CSV

One row per player per match.

Season Totals

CSV

Totals per player, with the matches that tracked each category.

Programme Archive

.programme

Events, roster, configuration and revision history.

MaxPreps

Entry Summary

Players in jersey order, using MaxPreps' stat names and column order.

Programme creates the MaxPreps entry summary for manual entry in Team Admin. It does not connect to MaxPreps or upload to it.

Recovery

Match recovery

Programme keeps a recovery journal while a match is being scored so recent changes can be recovered separately from the normal saved match data.

Scoring needs no account, no network and no server.

Programme

Soccer scorekeeping for iPad.

View on GitHub ↗