TactiBoard is a mobile app for statistical tracking of amateur and semi-professional football teams. It lets you record every match action in real time, automatically calculate individual player ratings, accumulate XP throughout the season and visualise team performance with detailed stats.
Designed for:
Key features:
When you open the app for the first time you will see 5 tabs at the bottom of the screen:
| Icon | Tab | Purpose |
|---|---|---|
| Users | Team | Manage teams and players |
| Lightning | Match | Record actions in real time |
| Bars | Summary | View current match statistics |
| Clock | History | Browse previous matches |
| Trophy | Achievements | Badges and progression |
Recommended first steps:
Tap the team name in the Team tab header to open the team selector, where you can switch the active team, create a new one, export or import.
Individual: Tap "+ Add player" and enter name, number, position (Goalkeeper / Defender / Midfielder / Forward) and whether they are a starter.
Quick add (multiple at once): Tap the list icon and write one player per line using the format NUMBER NAME.
In the Match tab, enter the opponent name, indicate home or away, and assign each player's status (Starter / Substitute / Not called up).
Tap Start to begin the stopwatch. You can pause at any time (half-time, interruptions). The timer resumes from where it was paused.
The action is saved with the exact match minute.
The 15 built-in action types:
| Action | Description |
|---|---|
| Goal | Goal scored |
| Shot | Shot on target (no goal) |
| Assist | Pass directly leading to a goal |
| Cross | Cross from the wing |
| Dribble | Beating an opponent 1v1 |
| Interception | Ball recovery |
| Foul | Foul committed |
| Corner | Corner kick |
| Free kick | Direct free kick in favour |
| Yellow card | Booking |
| Red card | Dismissal |
| Save | Goalkeeper stop |
| Offside | Offside position |
| Throw-in | Lateral throw |
| Goal kick | Kick from the goal area |
The pitch is divided into 6 zones (2 halves × 3 horizontal bands). Selecting the zone adds spatial context to every action and improves later analysis.
When the match ends, the system saves all data automatically. The match moves to History and the Summary updates with the final stats. You can share the report or publish it on the web with a shareable link.
Each player receives a rating from 1 to 10 calculated automatically based on actions recorded, minutes played and special bonuses.
| Colour | Range | Meaning |
|---|---|---|
| Gold | 8.0 – 10.0 | Excellent |
| Green | 6.5 – 7.9 | Good |
| Blue | 5.0 – 6.4 | Decent |
| Orange | 3.5 – 4.9 | Poor |
| Red | 1.0 – 3.4 | Very low |
| Highlight | Condition |
|---|---|
| Hat-trick | 3 or more goals in the match |
| Brace | 2 goals in the match |
| Great Saves | 3 or more saves |
| Defensive Wall | 3 or more interceptions |
| Dribble Master | 3 or more dribbles |
| Playmaker | 4 or more assists |
| Man of the Match | Best team rating (≥ 7.0, played ≥ 40% of match) |
The History tab shows all recorded matches in chronological order (most recent first). Each entry shows date, opponent, result and average team rating.
Each player accumulates XP (experience points) match by match. XP determines the player's level and rank:
| Rank | Description |
|---|---|
| Rookie | Starting level |
| Amateur | First steps |
| Semi-Pro | Some experience |
| Pro | Advanced level |
| Elite | High performance |
| Expert | Very experienced |
| Legend | Near the top |
| Icon | Maximum rank |
Achievements are grouped into categories: Goalscorer, Defender, Consistency, Playmaker and Special. They include milestones for goals, assists, minutes played, matches, and more.
| Rarity | Description |
|---|---|
| Common | Most accessible |
| Rare | Requires some effort |
| Epic | Hard to get |
| Legendary | Only for the best |
Some achievements are hidden until unlocked — the surprise is part of the game.
Tap any player's name to access their full profile:
From a player's profile you can see their performance against each opponent: win/draw/loss balance, actions recorded, average rating, matches played and minutes.
Configure how much XP each action awards: base XP per match, XP per 10 minutes played, XP per goal, assist, dribble, interception, save, cross and shot.
Configure the weights that affect the 1-10 rating calculation for each player, with multipliers independent of the XP ones.
If you change the scoring configuration, you can apply the new values to all matches in history with a single tap (Settings → Recalculate all ratings).
Switch the app language between Spanish, English, Dutch and German. The toggle is also available in the Team tab header.
The exported JSON includes team data, players, full match history and career stats per player.
| Feature | Free | Pro |
|---|---|---|
| Unlimited team and player management | ✓ | ✓ |
| Full match recording (15 actions) | ✓ | ✓ |
| Export/import teams as JSON | ✓ | ✓ |
| Live sharing with TactiBoard Web (parents & fans) | ✓ FREE | ✓ |
| Match history | — | ✓ |
| Achievement system (45+ badges) | — | ✓ |
| Advanced player statistics | — | ✓ |
| Stats vs rivals | — | ✓ |
| Custom XP & Rating weights | — | ✓ |
| Custom action types | — | ✓ |
| Individual player objectives | — | ✓ |
| Publish match summary on the web | — | ✓ |
To subscribe to Pro, tap any Pro feature — the subscription screen will open. Choose monthly or annual and complete the purchase via the App Store or Google Play.
To restore purchases after changing device, go to the paywall and tap Restore purchases.
No. Everything works offline. You only need a connection if you want to publish a match summary on the web to share a link.
Not automatically. Use the export/import JSON function to move data between devices.
Yes. The system is adaptable. You can create custom actions for specific metrics and adjust rating weights to suit your style of play.
Data is saved progressively. When you reopen the app, the match should be where you left it.
History data is read-only once saved. You can recalculate ratings with a new configuration (Pro), but individual actions cannot be edited retroactively.
Yes, via JSON export/import. Export the team, send the JSON via WhatsApp or email, and the recipient imports it in their app.
No limit, in both free and Pro versions. You can have up to 11 starters plus as many substitutes as you need.
All progression (XP, level, achievements, history) accumulates continuously. There is no separate season management in the current version.
TactiBoard is optimised for mobile in portrait orientation. iPad/tablet iOS is not officially supported in this version.
The TactiBoard Web Dashboard is a free browser platform for club managers and coaches — separate from the mobile app. It lets you analyse full season data, manage all your teams and players, add coaching notes and generate AI-powered player reports.
A single account covers all your club's teams. Already registered? Sign in at tactiboard.es/login.
When you publish a match on the web from the mobile app, data is linked to your club automatically — provided the same Club ID and Team ID are configured in the app. Go to Dashboard → Connect to view unlinked matches and assign them to the correct team manually.
The Dashboard home shows season-level KPIs:
Navigate to any team from Dashboard → Teams to see its roster, season stats and match history. Tap any player to access their full profile:
Add structured notes to any player from their profile or from the global Notes page. Available note types:
| Type | Use |
|---|---|
| Technical | Ball skills, passing quality, shooting technique |
| Tactical | Positioning, decision-making, reading of the game |
| Physical | Fitness, speed, strength, endurance |
| Behavioral | Attitude, discipline, team dynamics |
| Injury | Injury record and recovery notes |
| General | Any other observation |
The global Notes page lets you filter by type, team or player and search across your entire club.
The Analytics page shows trend charts for goals, assists and ratings over the season. Filter by team and season to compare periods or identify peaks and slumps in performance.
From any player's profile, tap Generate AI Report. TactiBoard sends the player's full season stats to Gemini AI and returns a structured report covering:
This section explains exactly how XP and the player rating are calculated each match. All parameters can be configured from Settings → Scoring (Pro).
XP = base_xp + floor(minutes / 10) × xp_per_10min + goals × xp_goal + dribbles × xp_dribble + interceptions × xp_interception + saves × xp_save + assists × xp_assist + crosses × xp_cross + shots × xp_shot + key_chances × xp_chance + errors × xp_error (negative) + Σ(custom_actions × their_xp) ± ipm_adjustment
The rating is built in layers on top of a base value (default 6.0):
Rating = base_rating (default 6.0)
+ participation_bonus
+ clean_sheet_bonus
+ victory_bonus
+ goals × rating_goal × context_mult
+ dribbles × rating_dribble × context_mult
+ interceptions × rating_interception × context_mult
+ saves × rating_save × context_mult
+ assists × rating_assist × context_mult
+ crosses × rating_cross × context_mult
+ shots × rating_shot × context_mult
+ shots_on_target × rating_sot
+ key_chances × rating_chance
+ errors × rating_error × context_mult
+ fouls × rating_foul
+ yellows × rating_yellow
+ reds × rating_red
+ Σ(custom_actions × their_rating)
+ goal_milestone_bonus
± ipm_adjustment
The final rating is rounded to 1 decimal and clamped between 1.0 and 10.0.
Based on the actual match duration (totalMinutes), not a fixed 90 minutes:
For goalkeepers and defenders who played ≥ 70% of the match:
| Goals conceded | Goalkeeper | Defender |
|---|---|---|
| 0 | +0.5 | +0.3 |
| 1 | +0.2 | +0.1 |
| 2 or more | +0 | +0 |
+0.1 for all players with time recorded when the team wins the match.
| Milestone | Bonus |
|---|---|
| Hat-trick (3+ goals) | +1.0 |
| Brace (2 goals) | +0.5 |
When enabled, each action is multiplied by the game situation at the moment it occurs.
Score state (goals and assists):
| Situation | Multiplier |
|---|---|
| Goal / assist while drawing | × 1.5 |
| Goal / assist while losing | × 1.8 |
| Goal / assist while winning by 3+ | × 0.7 |
Shot zone (goals only):
| Zone | Multiplier |
|---|---|
| Zones 1–2 (long range) | × 1.4 |
| Zones 3–4 (medium range) | × 1.15 |
| Zones 5–6 (close range) | × 1.0 |
Time of match:
| Moment | Multiplier |
|---|---|
| Last 10 minutes of match | × 1.3 |
| First 10 minutes | × 1.0 |
Defensive multipliers:
| Situation | Multiplier |
|---|---|
| Interception in defensive zone (≤ 2) | × 1.4 |
| Error in own half (zone ≤ 3) | × 1.5 |
IPM lets players with fewer minutes compete on rating with those who played longer, rewarding density of impact.
impact = baseRating − 6.0, IPM = impact / minutesratio = (IPM − mean) / (2 × std), clamped −1 to +1The highest-rated player gets MVP if both conditions are met:
| Achievement | Condition |
|---|---|
| Hat-trick | 3+ goals in the match |
| Brace | 2+ goals in the match |
| Clean Sheet | Goalkeeper, 0 goals conceded, ≥ 70% of match played |
| Assist King | 3+ assists in the match |
| Wall | 5+ interceptions in the match |
| Full Match | ≥ 85% of match duration played |
totalMinutes, not fixed to 90 min — works correctly in matches of any duration.Each custom action has two configurable values: xpValue (XP per occurrence) and ratingValue (rating points per occurrence). Custom actions also receive context multipliers when enabled.
ratingValue between 0.05 and 0.4. Set xpValue proportional to how often the action occurs in your matches. Use Recalculate in Settings after changing many parameters to rebuild all progressions.Have a question, suggestion or found a bug? Get in touch:
tactiboard@gmail.com