# TeamOppy Sports — Full Content
---
> This file contains all TeamOppy blog posts and documentation in plain text for LLM ingestion.
---
> See https://teamoppy.com/llms.txt for a structured index.
---
URL: https://teamoppy.com/blog/01-welcome
# Welcome to TeamOppy Sports
Welcome to TeamOppy Sports - Performance Analysis software.
## Performance Analysis
Performance Analysis is an essential component in modern day team and individual sports. It is the function of analysing the performance of a team and individual players and providing insights to players and coaches. Feedback can be provided in real-time or post-game. It can take the form of detailed reports, statistical data, visual graphics, video clips and more. Analysis can be used to record and monitor the progress of a player or team as well as the opposition team.
## TeamOppy Sports
TeamOppy Sports provides software applications to assist the Performance Analysis process. The core app [Tagger](https://tagger.teamoppy.com) is a Progressive Web Applications. This means that it can be accessed from a modern browser(e.g. Chrome) but also can be installed on your device and can run in offline mode (not connected to the internet). This is compatible with most devices.
### Tagger
Tagger is an event tagging application that allows analysts to tag events that occur in a game (e.g. Shot from play, Possession, etc...). Tagger can be used for tagging during live games and also for post-game video tagging. It comes with a built-in Dashboard which provides real-time summary data, charts, position maps and insights. [Read More](/blog/02-tagger)
---
URL: https://teamoppy.com/blog/02-tagger
# Introducing Tagger
Tagger is an Event Tagging application with a built in Dashboard. It can be used for live game tagging or for post game video tagging. Tagger accelerates the event tagging and analysis process.
## What is it?
Tagger is an Event Tagging and Analysis application with a built in Dashboard. It can be used for live game tagging or for post game video tagging. Tagger accelerates the event tagging and analysis process.
You can be up and running within seconds of launching the application. Just create a New Game, fill in your team details, choose your sport (or create your own one), start the timer and begin tagging. For full functionality Sign Up for an account.
## Tagging Engine
The tagging engine allows you to tag by player or by team. Simply click on the player button or an event button. Click on the event labels if applicable. Select the event positions and/or linked event positions where applicable to gather x,y data. The event is captured and added to the event table. The Dashboard will be automatically updated.
## Live or Video Tagging
Tagger can be used for live game tagging (i.e. no video) or post game video tagging. For video tagging simply add your video source in the game details (YouTube url, Vimeo url or Local File), use the video controls to go to the start of the game, pause the video and set your Timer to be in sync with the video. The timer will then tick along with the video and pause with the video etc...
When events are tagged, then the video time of the event will also be tracked allowing you to view a clip of each event that is tagged in the Event Viewer. You can open the event viewer from various places - in the events table, position maps, etc...
You can also sync your live tagged data with your video source post game to automatically generate clips of the game events.
## Dashboard
Tagger has a built in Dashboard which is customisable and displays a number of items which give a picture of the game:
- Summary totals including the score.
- Timeline, Bar, Pie and Donut Charts.
- Position Maps showing x, y positions for events.
- Insights into passages of play focusing on outcomes.
## Player Tables
You can get more granular into the the data by viewing the Player Tables to see totals per individual player. This is customisable - you can add new columns to existing tables or create brand new tables.
## Customise
Pretty much everything in Tagger is customisable. Go to the Configuration page to configure everything including:
- General details such as number of players per team, number of minutes per half
- Playing Area Graphics
- Playing Area Zones
- Events
- Scores
- Totals
- Timeline Graphs
- Charts
- Position Maps
- Player Tables
- Passages of play
## Share
Tagger generates a JSON (data) file with game and configuration data. This can be easily shared by sending directly to team members who can import into the app or it can be shared by generating a direct link to the JSON file on Google Drive.
### Example
[Kilkenny versus Limerick - 2022 All-Ireland Hurling Final](https://tagger.teamoppy.com/?game=https://drive.google.com/file/d/12yRCO1l0XiLJkCq74YOULoCior3Mp2PW/view?usp=sharing).
[Kilkenny versus Limerick - 2023 All-Ireland Hurling Final](https://tagger.teamoppy.com?gdid=1Me-_pyj4nFYi0RcqSVY9rKu1DQuRJrbV).
## Progressive Web Application
A progressive web application (PWA), commonly known as a progressive web app, is a type of application software delivered through the web, built using common web technologies including HTML, CSS, JavaScript, and WebAssembly. It is intended to work on any platform with a standards-compliant browser, including desktop and mobile devices.
### Installable
Tagger is installable which means it can run in a standalone window instead of a browser tab. It's launchable from the user's home screen, dock, taskbar, or shelf. It's possible to search for them on a device and jump between them with the app switcher, making them feel like part of the device they're installed on.
### Offline mode
Tagger can run in offline mode (i.e. no internet connection) or online mode. To access all functionality in offline mode, ensure that you are logged into Tagger before going offline.
## Thanks
A word of thanks to all the volunteers who helped to test Tagger, providing very positive feedback and also making some really good suggestions for new features which will be worked on in the coming months.
## Get Started
Click here to get started - [Tagger](https://tagger.teamoppy.com)
---
URL: https://teamoppy.com/blog/06-tagger-release-notes
# Tagger Release Notes
This page outlines the latest updates, enhancements, and fixes delivered in the Tagger application. Entries are listed newest first.
## Sep 30, 2026
These changes are available in the Tagger Web application and in version **v0.0.84** of the Tagger Desktop application.
| Area | What's new |
| --- | --- |
| **Audio in video exports** | Exports can now keep the original audio instead of always being silent, and it is off until you ask for it. **Include audio** in the Studio export options, **Include audio from the original video** when exporting an Analytics 360 playlist, and **Include audio from playlist clips** when exporting a deck to video. Audio is normalised to 128 kbps stereo so every clip can be joined into a single track, and it pauses while a drawing overlay is held on screen so it stays in step with the picture. See [Exporting a Playlist](/docs/tagger/analytics360/playlists#exporting-a-playlist). |
| **Swap Sides** | The **Swap Sides** shortcut is back in the app bar on tablet and larger devices, performing the same job as the **Swap Sides** button in the **Tag Windows** dialog. The dialog button is labelled with the arrangement it will produce - **Swap Sides (Team A left)** or **Swap Sides (Team A right)**. A new **Auto Swap Position Map Sides** preference, on by default, also turns position maps that show team ends so their ends match the new sides, and a new game starts those maps at 0°. Turn the preference off to rotate those maps by hand with the rotation control. See [Preferences](/docs/tagger/02a.preferences) and [Tag Windows](/docs/tagger/tag-windows). |
| **Events and timeline on smaller screens** | The events list is now a flat event log - one surface, hairline dividers between rows, and a period, clock and team colour rail on the left - with an overflow menu on each row to view or edit the event. The timeline is never squeezed below a readable width and scrolls sideways behind a frozen event label column, the rows can be dragged to pan it, and the filter row wraps so the Sync Mode control no longer overlaps it. |
| **Playlist export** | Clip file names are generated as soon as the export dialog opens, so exporting a second playlist no longer produces blank file names. |
| **Playlists** | If a playlist refers to an event that no longer exists, the reference is now kept and reported rather than quietly dropped, and deleting events that a playlist uses lists the affected playlists before you continue. |
| **Game details** | A player renamed in the lineup editor now shows the new name straight away in the Team A / Team B lineup table when that player is linked to a squad record. |
| **Settings** | The video and export settings that Tagger remembers between sessions are now stored correctly, so your choices - including the new audio option - survive a reload. |
## Sep 19, 2026
These changes are available in **v0.0.76** of the Tagger Desktop application. Windows installs update through the Microsoft Store, the macOS app offers the update in the bottom right of the window, and the web app shows a **New Version Available** prompt the next time you open it.
| Area | What's new |
| --- | --- |
| **Timer** | The live timer and the video timer have both been rebuilt. They now share one set of controls and one period model, while each mode keeps the presentation that suits it - Video Analysis Mode still carries the video transport controls and a guidance line alongside the clock. The period number is derived from the game rather than chosen, **Start** and **End** buttons open and close each period, and in Video Analysis Mode the clock follows the video as you scrub. Period lengths and extra time are set in the timer's settings menu beside the clock, and the separate play/pause quick buttons have been removed. See [Live tagging without video](/docs/tagger/live-tagging-without-video). |
| **Sync Mode** | Sync Mode has been rebuilt as a guided three-step panel: pick the event, move the video to that moment, then review and apply. Step 2 adds nudge buttons for fine adjustment and locks the position in place until you re-position it. The summary shows which events will move and by how much before you apply, and an **Undo** is offered afterwards. See [Synchronize Video](/docs/tagger/synchronize-video). |
| **Panel swapping** | **Swap Sides** has moved from the app bar into the **Tag Windows** dialog, and the button now names the arrangement it will produce: **Swap Sides (Team A left)** or **Swap Sides (Team A right)**. Swapping sides changes the event and player button panels only - it does not flip or mirror the position maps. See [Tag Windows](/docs/tagger/tag-windows). |
| **Position map rotation** | Rotation is now a per-graphic control above the position map while you are tagging, offering **0°**, **90°**, **180°** and **270°**. It replaces the automatic portrait rotation, and it is the only setting that changes the orientation of a graphic. Rotation is held per graphic on the device you are using, and positions are saved in the graphic's own orientation, so rotating a map never changes your data. See [Rotating a Position Map](/docs/tagger/live-tagging-without-video#rotating-a-position-map). |
| **Studio - Text** | Text overlays in the Studio are now multiline, and the text panel has been expanded with font family, font size, line height, bold, italic, underline, alignment and letter spacing. Text can also sit on an auto-sized background box with its own colour, corner radius, padding, wrapping and opacity. |
| **Studio - Timeline** | The timeline has been rebuilt on a canvas, and periods are now derived from the events you have tagged rather than from a separate config series. Event rows show a team colour dot, and tooltips follow the cursor so you can identify an event before you click it. See [The Timeline](/docs/tagger/studio/timeline). |
| **Reports - PDF export** | Reports can be exported as a **PDF** from Tagger Desktop, for printing or for sharing with readers who do not have Tagger. **Export PDF** opens the page setup - page size, orientation, margins, title page, background colours and page numbers - and then a print preview that shows the report as pages, with the page breaks and the footer the PDF will have. The optional **title page** carries the competition, both teams with their logos, the final score, the date and the venue. Text stays searchable and selectable, and embedded videos are exported as a thumbnail with a link to the video. Portrait is the default orientation and the page setup is remembered. Exporting requires the Analyst Elite or Analyst 360 package. See [Game Reports](/docs/tagger/reports/reports). |
| **Tagger layout** | The desktop navigation collapses into a narrow icon rail, giving the tagging area more room, and uses a temporary drawer on smaller screens. |
| **Tagging view** | Event buttons now carry a team colour dot in place of the coloured left border. |
| **Game details** | The wizard has been restructured into a centred panel, with Team A and Team B lineups as separate steps, the team logos shown inline, improved date entry and validation, and lineups that can be sorted by player number. |
| **Preferences** | The Preferences view has been redesigned around tabs. See [Preferences](/docs/tagger/02a.preferences). |
| **Profile** | The profile drawer has been redesigned around an identity block, with a more compact theme switcher. |
| **Reports** | Report designer cards use a flatter, bordered style. |
## Aug 19, 2026
| Area | What's new |
| --- | --- |
| **Playlist export** | Export now asks how accurately clips should be cut. **Quick** is fast but cuts land on the nearest keyframes, so a little extra leading footage may be included. **Accurate** re-encodes for frame-accurate boundaries. |
| **Playlist and deck export** | Video sources are validated before an export begins, so a missing file is reported up front rather than the export failing part-way through. |
| **Analytics 360 - Explorer** | Filter for events that contain drawings with the new **Has Drawings** column, and add selected rows to a playlist in bulk. |
| **Analytics 360 - Games** | Games can be loaded incrementally - added to an existing analytics load without rebuilding it - with a preview of the impact before it is applied. |
| **Analytics 360 - Viz** | Position map legends can be expanded or collapsed, and slide slots can carry their own filters. |
| **Events table** | An event row can be clicked to play that event in the video from its recorded time. |
## Jul 26, 2026
| Area | What's new |
| --- | --- |
| **Analyst 360** | A new **Analyst 360** subscription tier is available, with its own permissions and feature access. Contact your TeamOppy account manager to add it to your account. |
| **Configuration** | Deleting a configuration item now checks whether it is still in use and tells you where it is referenced, instead of allowing the delete and leaving a broken reference behind. This covers events, labels, zones, playing areas, position maps, charts, totals, comparison tables, info cards, event sources, metric highlights and progressions, passages, links and accelerators. |
| **Data** | The database can now be backed up and restored. **Backup Database** and **Restore Database** are on the **System Info** screen in Tagger Desktop, writing and reading a `.taggerdb` file to your file system or cloud workspace. |
## Jun 26, 2026
| Area | What's new |
| --- | --- |
| **Analytics 360 - Decks** | Decks gained a title slide layout, slide background and text colour controls, alignment and size options for slide content, and a slideshow mode for presenting. |
| **Analytics 360 - Decks** | Decks can be exported to video. |
| **Analytics 360 - Measures and Metrics** | Measures and metrics can be attributed to players, so results can be broken down by player. |
| **Analytics 360 - Viz** | KPI cards can be customised with a display style, prefix, suffix and number of decimal places. |
| **Analytics 360** | Measures and visualizations can be copied, and multiple items can be deleted in bulk. |
## May 04, 2026
### Introducing Analytics 360
Analytics 360 is a new performance analysis module that takes your tagged games beyond single-match review. Load games into a pipeline, then cleanse, explore, measure, visualise and present season-wide analysis in one workspace.
It is organised into ten tabs that follow the analysis pipeline:
| Tab | Purpose |
| --- | --- |
| **Home** | A summary of the loaded games, pipeline progress and quick links. |
| **Games** | Select and load games into the analytics pipeline. |
| **Cleanse** | Standardise teams, players and event labels, and manage cleanse rules before analysis. |
| **Explorer** | Query every tagged event across the loaded games, with filters and links to clips. |
| **Playlists** | Curate clips from a single game or across the whole season. |
| **Measures** | Define reusable event-count measures. |
| **Metrics** | Build calculated metrics with an expression editor. |
| **Viz** | Design KPI cards, charts, tables and position maps. |
| **Dashboards** | Arrange visualizations into dashboards for different audiences. |
| **Decks** | Build slide presentations that combine visualizations, clips and commentary. |
Analytics 360 is available in **Tagger Desktop** and requires the **Analytics 360** package. See [Analytics 360](/docs/tagger/analytics360/introduction) for full details.
## Apr 19, 2026
### Video Utilities
Tagger Desktop now includes a set of video utilities covering the whole footage lifecycle, so you no longer need third-party software for common jobs. They are available from the navigation rail.
| Tool | Purpose |
| --- | --- |
| **Live Capture** | Stream from a connected camera, or from an RTSP feed, and serve the footage over a local HLS network in real time. This enables tagging and recording at the same time, with the stream available to other devices on the network. |
| **HLS to MP4** | Convert a recorded HLS stream, or any remote `.m3u8` playlist, into a single, portable MP4 file. |
| **Trim & Copy** | Extract one or more segments from a video file and export them as a single merged output. Ideal for isolating individual periods, removing dead time, or preparing highlight clips. |
| **Merge Videos** | Combine multiple video files into one continuous output. |
These tools are available in the desktop application only. See [Video Utilities](/docs/tagger/videoutils/introduction) for details.
## Mar 16, 2026
### Studio - Enhanced Drawing Tools
We have improved the Studio drawing experience for line, arrow, curved arrow, and polygon objects by previewing each shape as the cursor moves after the first click. We have also refined FreeHand drawing to reduce jagged edges.
### Studio - Custom Playlist Sorting
You can now sort clips in custom playlists. This is available in two places:
- In the custom playlists list, select the Actions icon, choose Sort Events, then drag and drop clips into the required order.
- In the Custom Playlist create/edit form, click the Sort icon in the Playlist Events section, then drag and drop clips into order.
### Studio - Create Custom Playlist from the "Add to Custom Playlist" dialog
In Studio, when adding a clip via the Add to Custom Playlist option, you can now create a new playlist directly from that dialog using the New Playlist button.
### Studio - Clips with Drawings
We have added a Search Drawings toggle in the Clips section of Studio, allowing you to quickly find clips that include drawings.
### Studio - Event Comments added to export
Event comments are now included in exported clips when present. This is enabled by default and can be turned off in Advanced Options on the Export screen.
### Passage Maps
Passage map position markers now display player numbers.
## Feb 21, 2026
### Multi-video mode
Multi-video mode has been enhanced. Analyst Elite users can now add up to four camera angles in Game video details.
The Tagger view, Studio view, and Event Viewer popup now allow all four angles to be shown simultaneously or viewed individually.
Note: In Studio, drawing tools are available only in single-view mode.
### Tagger Rooms
Tagger Rooms has been updated to cache room member emails on the Room page for faster access. In addition, when the room leader performs a room reset, members now receive a confirmation popup before the game is cleared on their device, reducing the risk of accidental deletions.
### Gaelic Games Configuration Templates
The Gaelic Football and Hurling configuration templates have been enhanced. Import the latest versions from the Configuration Catalog to access the updates below.
#### Gaelic Football
The main update is to turnover tracking. Instead of using Turnover Won for both teams, we removed Turnover Won for the Opposition team and introduced Turnover Lost for the home team, including player and position tracking. Dashboard components have been updated accordingly.
An additional event tag for Unforced Errors has also been added and is now available in the Comparison Table and Donut Chart.
We have also added two Tag Windows by default, in addition to the main window, to support multi-user tagging and allow analysts to focus on specific event types.
#### Hurling
The Hurling configuration includes two main updates. As with Gaelic Football, Turnover Lost has been added to the home team and Turnover Won has been removed for the Opposition team. An Unforced Error event has also been added.
In addition, events for Short Puckout Outcomes are now available. These provide extra buttons to help analyze short puckouts during the game. The intended workflow is to tag a Clean take for the puckout, then tag the relevant outcome button (Possession past midfield or Possession turned over).
Passages of Play configurations have also been added to track these outcomes, and Passage Maps are now available for custom dashboards.
## Jan 07, 2026
### Image Library
We have added a dedicated Image Library connected to each user's Cloud Workspace, allowing images such as logos and crests to be uploaded, managed, and added to dashboards and reports.
See [here](/docs/tagger/cloud-workspace-images) for more details.
### Dashboard Designer
Dashboard Designer has been redesigned with improved component selection, enhanced layout options, and drag-and-drop placement.
### Major tech stack upgrade
We have upgraded the underlying Tagger technology stack. While this change is largely behind the scenes, it provides a stronger foundation for future enhancements.
### Enhanced the Light Theme option
The Light Theme preference has been improved with a cleaner, higher-contrast gray background.
## June 29, 2025
### Cloud Workspace - Google Drive
Cloud Workspace now includes Google Drive integration. Users can choose either OneDrive or Google Drive.
Note: Workspace sharing is currently not available for Google Drive.
See [here](/docs/tagger/cloud-workspace) for more details.
## June 27, 2025
### Tagger Window - Video Size
You can now adjust the Video Player size in the Video Analysis Tagger view via Preferences.
## May 06, 2025
### Tagger Studio Upgrade
We have upgraded Tagger Video Studio.
Built on the latest web technologies, the upgraded Tagger Studio includes the key features of Studio Plus desktop, including drawing tools, timeline graph, matrix, and automatic and custom playlists. Playlist export performance has also been significantly improved. Additional functionality includes queued playlist exports and support for merging overlapping clips.
See [here](/docs/tagger/studio/studio-introduction) for more details.
## Feb 25, 2025
### Cloud Workspaces
Cloud Workspaces can now be created to store games, squads, and configurations in the cloud. This allows data to be accessed across devices and shared with team staff or players.
Cloud Workspace integrates with OneDrive to provide a clear folder structure for storing and accessing files.
See [here](/docs/tagger/cloud-workspace) for more details.
## Jan 16, 2025
### Metric Progressions
Metric Progressions are similar to Metric Highlights, but display key metrics as a progressive list on your dashboard.
See [here](/docs/tagger/configuration/metric-highlights) for more details.
## Jan 10, 2025
### Metric Highlights
We have added a new configurable component called Metric Highlights for custom dashboards. It provides a simple and effective way to emphasize key metrics.
You can set custom colors, apply team colors, or use conditional traffic-light colors, alongside multiple shape options.
See [here](/docs/tagger/configuration/metric-highlights) for more details.
### Login and registration
A new single sign-on solution is now available across all apps and is fully integrated with the Accounts Portal.
### Video Timer
The Video Analysis layout has been redesigned, with the Video Timer moved below the video and the Events Table expanded at the bottom of the page.
### Theme Preferences
A new TeamOppy theme preference has been added and is now set as the default.
## Mar 21, 2024
### Formula Sets
In the initial release of Formula Sets we provided the ability to display the results in Info Cards & Comparison Tables. We have now provided the ability to add formula set results to Totals Charts & Custom Tables.
### Event Matrix
The Event Matrix is a new view of data to automatically generate a matrix count of event, labels and players for each team. In a future release we will make this interactive to provide a click into count option to display the event clips.
:video-player{videoId="IyKX7m6m02s"}
### Custom Tables
The Totals Tables have been rebranded as Custom Tables.
### Data Consolidation
All Data views (Event Log, Matrix & Custom Tables) are now consolidated in one Data page view.
## Mar 13, 2024
This is a significant release introducing two major features: Formula Sets and Multi-Video Source.
### Formula Sets
Formula Sets provide a powerful way to perform complex calculations within Tagger. In this first phase, Formula Sets can be added to Info Cards and Comparison Tables, with support for additional areas planned in future phases.
For details on formula sets check out the documentation [here](/docs/tagger/configuration/total-configuration)
### Multi Video Sources
Users can now add a second video source in Game Details. Once added, you can toggle between both videos in Tagger, Studio, and Event Viewer.
Note: Tagger assumes both videos are synchronized. This is standard for many camera systems. If your sources are not in sync, use third-party software to synchronize them before use in Tagger.
This is a major addition for teams capturing a second angle. Please contact us if you experience any issues.
## Feb 13, 2024
### Capture Event Time Duration
You can now capture Event Time Duration for events such as Possession.
For details on this feature please review the documentation [here](/docs/tagger/capture-event-time-duration)
### Quick Links
On larger devices (laptops/desktops), quick links have been added to the Tagger header for faster navigation.
### Studio layout
The Studio layout has been refined to make better use of available screen space.
## Feb 07, 2024
### Event Charts
The Event Charts configuration screen has been refactored to improve usability. The new workflow guides users step by step through chart creation and then presents a chart preview.
## Jan 24, 2024
### Game Details Stepper
When creating a game or editing existing game details, a new stepper layout now guides users through the process and improves overall usability.
### FIX: CSV download - special characters
In the Events table, certain special characters in notes previously caused CSV downloads to fail. This has now been resolved.
### CHANGE: Keep Player Active flag
We identified an anomaly for linked events. Previously, if the Event To entry was the primary event (visible in the main tagging window) and Keep Player Active was enabled, the Event From instance could inherit the same player incorrectly. This has been changed so Keep Player Active now applies only in the From -> To direction. This behavior is more consistent and easier to manage. If you want both linked event instances to use the same player, enable Keep Player Active on the Event From event in configuration.
Affected Configuration Catalog templates have been updated accordingly, specifically for Shot and outcome events in Gaelic Football, Hurling, and Lacrosse. Users should either re-import affected configurations from the Configuration Catalog or manually review custom configurations where Keep Player Active is enabled on linked events.
## Jan 19, 2024
### Manager Mode Playing Numbers
In Manager Mode, you can now reduce the number of players on a team during a game. This supports competitions that require reduced player numbers during extra time.
See [here](/docs/tagger/managermode/modify-onfield-numbers) for more details.
## Jan 15, 2024
### Rotation Management
Manager Mode now includes two rotation management options. Rotations are configured in your Squad and displayed in the Manager Mode Tagger window during live games. See details and video [here](/docs/tagger/managermode/rotations)
Squad Management also now includes the ability to set your starting team in advance of a game.
### Timer countdown
By popular request, the timer can now be displayed in countdown mode instead of count-up mode. This can be configured in Sport Configuration General settings or directly in the Tagger window by selecting Timer Display - use countdown.
### Configuration Management
Previously, all available configurations were imported into the app by default. As Sport Configurations expanded, configuration management required improvement. To optimize performance and simplify management, users can now import configurations from the Configuration Catalog. This reduces memory usage by keeping only relevant configurations in the app. Configurations can be imported from the Configuration screen or during game creation via a new Import button in the Sport Configuration dropdown.
Configurations that are no longer needed can also be deleted.
Previously, importing a game could overwrite an existing configuration with the same ID, requiring users to re-import their primary configuration before creating new games. Now, when a game is imported, the associated configuration is imported with a temporary ID. When the game is cleared, the temporary configuration is also removed. This keeps configuration management clean and avoids unnecessary re-imports.
We have also improved messaging around local data management for configurations, squads, and games to help prevent data loss.
### Lacrosse Configuration
A new Lacrosse Sport Configuration is now available in the Config Catalog. Please contact us with feedback or suggested improvements.
### User Profile Management
User registration and profile management have moved to the new Accounts Portal, which also includes organization setup.
### Cloud Storage
Although not yet publicly available, we have made strong progress on our cloud data solution and are preparing several features for release. Stay tuned for announcements in the coming weeks.
## Nov 3, 2023
### Passage of Play Maps
Passage of Play Maps are a major addition to Tagger. They help visualize event sequences within a passage of play and identify game patterns. For example, in Gaelic games, analysts can assess whether scores originated directly from a puckout/kickout or from a turnover.
These maps are configured using your defined Passages. You can also add static event positions, typically for events where positional data is not captured (for example, puckout or kickout origin points).
Updated Hurling and Gaelic Football configurations are now available (perform Configuration -> Reset to get the latest versions).
Passage of Play Maps are not available in the Standard Dashboard, but can be added to custom dashboards via Dashboard Designer.
See more [here](/docs/tagger/08-insights-passages-of-play)
### Totals based Charts
Until now, Tagger charts could only be based on events (plus linked events where applicable). We have now added a new set of chart options based on configured Totals:
- Bar Charts
- Stacked Bar Charts
- Pyramid/Funnel Charts
- Radial Charts
These charts are more powerful and flexible than event-based charts, allowing multiple totals to be displayed in a single chart. Bar and Stacked Bar charts can also show either full-game totals or a breakdown by game period.
Total-based charts are not available in the Standard Dashboard, but can be added to custom dashboards in Dashboard Designer. An Analyst Plus account is required to create them.
See more [here](/docs/tagger/07-totals-based-charts)
### Video Studio Export Settings
You can now set a bitrate in Video Studio export settings. This affects both output quality and exported file size.
### Strict Label Ordering in CSV export
Users can now enable strict label ordering when viewing and exporting events. Labels are displayed/exported in the exact order defined in the Events Configuration table, ensuring consistent exports.
### Team Formations and Subs List in Dashboard Designer
A read-only view of Team Formation and Substitutions can now be added to custom dashboards. This is particularly useful with Tagger Rooms when coaches need to monitor current player game-time status alongside other game components.
### Dashboard Designer - Map Rotations
All maps can now be rotated by 90, 180, or 270 degrees, providing greater flexibility when displaying position and passage maps.
### Default Tagger View
You can now set a default Tagger view in Sport Configuration (Configuration -> General). When a new game is created, Preferences will automatically apply this default view.
### Date Input field
The date input field in Game Details has been improved for a better user experience.
### FIXES:
- Fixed an issue affecting moving opposition team players up/down in Game Details.
- Fixed playing area graphic updates when changing graphics in Zone Configuration.
- Fixed an overlapping column button issue in Dashboard Designer that blocked button access.
- Fixed a syncing loop issue in Tagger Rooms when used with Hockey Manager Mode.
## Sept 14, 2023
### Import XML Timelines
XML Timeline import is now available in Tagger. This supports workflows where data is collected in XML format from other tools and then processed, analyzed, or shared in Tagger.
This feature is currently in Beta mode.
Read more [here](/docs/tagger/xml/07-xml-import)
## Sept 1, 2023
### Event & Player Shortcuts
Keyboard shortcuts for event and player buttons are now available and fully configurable. In Sport Configuration, open Keyboard Shortcuts to manually assign shortcuts or use the auto-generate function. For standard configurations with many combinations of players, events, and labels, auto-generate is especially useful.
Video Player shortcuts (introduced previously) are also listed in Keyboard Shortcuts Configuration, but are not editable.
Read more [here](/docs/tagger/configuration/12-shortcuts-configuration)
## Custom Playlists
Custom playlists are a major addition to Video Studio functionality. Users can filter tagged events, add selected events to a playlist, and save. Saved playlists are available in the custom playlists table for viewing and/or export to video.
While users can still click labels in the Events timeline to create quick playlists, custom playlists provide greater flexibility for analysts to curate key clips.
Check out the video [here](/docs/tagger/studio/01-studio-introduction)
## Event Configuration Visualiser
As part of ongoing UX improvements, we have introduced the Events Configuration Visualiser. This provides a graphical overview of event configurations, including events, labels, key settings (for example, whether player or x/y position selection is required), and links between related events.
In Sport Configuration, open Events and then the Overview section to display your configuration. If configuration changes are made, use Refresh to update the view.
The visualiser is a valuable addition to the configuration workflow.
Check out the video [here](/docs/tagger/configuration/05b-event-config-visualiser)
## July 28, 2023
### Video Keyboard Shortcuts
When using the video player in the Tagger window, you can use the following keyboard shortcuts:
| Key | Description |
|----------|-----------------------|
| 0 to 9 | Seek from 0 to 90% respectively |
| space | Toggle play/pause |
| K | Toggle play/pause |
| Left Arrow | Seek backward by the seekTime option |
| Right Arrow | Seek forward by the seekTime option |
| Up Arrow | Increase volume |
| Down Arrow | Decrease volume |
| M | Toggle mute |
| F | Toggle fullscreen |
### Playlist Export
Playlists can now be exported to video directly from Studio. Click Export above the playlist, then click Start on the Export screen to begin recording and export automatically on completion. Settings allow you to control whether clip details/tags are shown and how long they are displayed for each clip.
This is part of the Analyst Plus subscription plan.
Note: export functionality of clips and playlists is available only for Local video files.
### Updated Video Analysis Mode
We have modified the Video Analysis Mode view to provide a better fit of the player and event buttons on the screen. We have also made the Player buttons optional. This can be set in the Preferences page.
## July 03, 2023
### XML Download - Real Time option
We have introduced a new option for downloading the XML of the game. The Real Time option is the continuous time from the start of the game until the end of the game. e.g. the start of the game is 0:00 - if the first quarter lasts 15:30 and there is 2 minutes of a break until the next quarter then the start of the 2nd quarter is 17:30. This is only available on new games going forward.
Why is this important? It allows analysts/managers/coaches to simply download the XML and import into 3rd party tools without having to do any video synching in Tagger first. During tournaments when time is of the essense, this helps to streamline the process.
In addition to the above, the user now also has the ability to download a specific period of the game and optionally prepend the team name to the event code.
### Standard Dashboard changes
We have made a change to the standard dashboard to help with navigation between charts and position maps in particular. Instead of using a carousel type component, we have changed it to use tabs. This allows analysts to quickly navigate to the specific chart or map that they want to review.
### Position Maps
On single event position maps, you can now elect to use the color of a label for that event on the position map.
## June 26, 2023
This update adds the new Hurling Lite configuration. This is a light-weight configuration for Hurling. This is ideal for anyone getting started with performance analysis to tag core events from the game.
Check out the video [here](https://youtu.be/ElrcVJz9FOY)
## June 07, 2023
This marked a major release of Tagger with a number of advanced features as well as the introduction of new subscription packages.
### Tagger Rooms
Tagger Rooms is a new feature that allows multiple analysts to tag events in a game, and those events are streamed to the coach/manager on the sideline for real-time analysis. This means that coaches can get immediate data-generated feedback on what is happening on the field and make instant decisions based on the data they receive.
Read more [here](/blog/13-tagger-rooms)
### Dashboard Designer
Dashboard Designer is a powerful tool that allows analysts to create custom dashboards using a grid layout made up of rows and columns, with a range of customizable components, including charts, graphs, position maps, tables and more.
With Dashboard Designer, users can easily customize their dashboard to fit their specific needs and preferences. This means that they can focus on the metrics that matter most to them and gain valuable insights into their performance.
Read more [here](/blog/14-tagger-dashboard-designer)
### Video Studio and Clip Viewer
The first feature is a Video Studio that allows analysts to add graphics and text to tagged clips, while the second feature is the Clip Viewer, which provides a horizontal timeline of events that users can click on to view the clips.
Read more [here](/blog/15-tagger-video-studio)
## May 08, 2023
This update documents the following changes:
- Enhanced Manager Mode user experience
- Player Position configuration
- Totals Tables
### Enhanced Manager Mode user experience
Based on user feedback Manager Mode has been enhanced. See [Tagger - Manager Mode](/blog/11-tagger-manager-mode) for latest details.
### Player Position configuration
Define player positions in configuration for a consistent assignment to players.
### Totals Tables
An enhanced totalling view has been created with drill down feature into the summary totals which provide a breakdown of the totals by periods, positions and by players. This is configurable in the Configuration page under Total Tables.
## Mar 30, 2023
This update documents the following changes:
- Tagger Technology Stack Upgrade
- Enhanced Guided Tagger Flow
- New Install Button
- New look menu options
- New look configuration page
- Continuous Timer under main Timer
- Dark and Light Theme options
### Tagger Technology Stack Upgrade
The underlying technology stack has been upgraded to the very latest versions. This provides better performance, stability and lays the foundation for future innovations.
### Enhanced Guided Tagger Flow
The tagging engine is much zippier now thanks to the latest technology and a restructuring of the code. The process is now also much smoother with a new pop-out window which aligns to the right hand side of the screen. This means that for video tagging you have full view of the video at all times when tagging (using Video Analysis mode). The app also guides you through the available options to select based on the Event Configuration in a more intuitive way.
### New Install Button
There is a new install button on the main welcome page. On Windows and Android devices this will trigger the installation process. On iOS devices you will be directed to the manual instructions for installing (which is also very straight forward - same as before).
### New look menu options
The left hand navigation bar has a new layout.
### New look configuration page
A new look configuration page provides a more desciption view of the Configuration options in Tagger.
### Continuous Timer under main Timer
The continous timer (previously hidden) is now visible underneath the main Timer in Manager Mode.
### Dark and Light Theme options
Tagger can now be viewed in a Light mode instead of the classic Dark mode by updating the preferences.
## Mar 9, 2023
This update documents the following changes:
- Ability to change button sizes
- FIX: Adjust height on graphics for display on Tablet devices
- FIX: Timer refactoring to prevent time lag
### Ability to change button sizes
Users now have the option of changing the size of the Player and Event buttons to suit their device and configuration. This can be done in the Preferences page with the addition of 2 new dropdowns for Player Button Size and Event Button Size.
### FIX: Adjust height on graphics for display on Tablet devices
For graphics with heights greater than the height of the device they are using, the graphics will now be scaled down accordingly.
### FIX: Timer refactoring to prevent time lag
It was reported that on some older devices with low processing power that users noticed a lag in the Timer. The Timer functionality has now been refactored to always be synched up correctly.
## Mar 7, 2023
This update documents the following changes:
- New Teams setup functionality
- Video Analysis mode
- Live Manager Mode
### New Teams setup functionality
A new "Teams" page accessible from the main menu has now been added. This allows users to add one or more teams, setting default values for the team name, team colors and sport configuration as well as configuring a squad of players. When creating a new game, users can now select their default team which will populate the team name, default colors and sport config from the pre-defined team. In the team selection, users can now quickly select their team using player dropdowns from their squad.
### Video Analysis mode
This is a new Tagger view which can be set in the Preferences page. It is a more optimised view for tagging video with the video player to the top left of the screen, events table underneath. On the right side of the screen will be the player and event buttons along with a prominent timer. This is currently only available on larger devices (large tablets, labtops, etc...)
### Live Manager Mode
Manager Mode was developed in collaboration with expert coaches, managers and analysts from the world of Hockey (relevant for many other sports also). The purpose of this feature is to support Coaches and Managers in particular during live games to manage rolling substitutions and on-field positional switches, monitor cards and countdowns, track players game time, throw alerts when specialist type players like a Flicker or Trapper are not on the field of play, change formations during the game and to display Quick Totals (basic counts of things like Shots and Penalty Corners).
The Manager Mode feature was designed and optimised in particular for Tablet and larger devices (Standard mode is available for mobile devices).
See here for more details - [Tagger - Manager Mode](/blog/11-tagger-manager-mode)
## Jan 19, 2023
This update documents the following changes:
- New Sign Up and Subscription functionality
- New Data Model
- New Info Cards object for Dashboard
- Player game Time Tracker
- Synchronize data with video
- Default Player Event functionality
- XML Download
- Edit Event Instance
### New Sign Up and Subscription functionality
New sign up and sign in functionality has been added. A 60 day trial is in place after sign up. Basic subscription plan is available to subscribe to.
Limited functionality in free mode (3 primary event buttons, 3 event accelerators).
### New Data Model
Instead of Event, Event Type and Event Outcome, we now have Event, Event Labels (multiple) and Event Links.
What this means is that you can now add multiple descriptive items to an Event in the form of an Event Label. For example a Shot event could have a label to specify the shot was from Open Play or Free Kick and also a label to specify if the player used his right foot or left foot - this is all configurable.
Event Links essentially replace the Event Outcome. So instead of a Shot Event having an Event Outcome of Goal or Off Target, these are now separate Events that are linked together via the Event Links. And means that you can also add labels to the outcome Event if you like. The user experience should be pretty much the same as before.
Also introduced Event Accelerators. These are essentially shortcuts to tag multiple events and labels using the one button. This would mean extra buttons on the screen but less clicks when tagging.
To use the new data model, go to the Preferences screen from the left hand menu. Then at the bottom change the data model version from v1 to v2. Shortly v2 will be the only option and v1 will be removed.
For existing games, when you import these into the app, they will automatically get converted to the v2 format and you should be able to see all your charts, position maps, totals, etc... as normal. Similarly if you import an existing saved Configuration this will also get migrated to the new data model.
### New Info Cards object for Dashboard
Info cards are a new way of displaying event info broken down by periods.
### Player game Time Tracker
The player time tracker functionality tracks the total time a player is on the pitch as well as the current shift time. Also tracks the current off time for subsitutes.
### Synchronize data with video
After doing live tagging you can now add your video source and synchronize the tagged events with the video.
### Default Player Event functionality
There is an option now on the Tagger page to select a "Default" event. When a "Default" event has been selected then everytime a user clicks on a Player button then that "Default" event instance will be created.
### XML Download
There is now the ability to download the event data in XML format compatible with industry standard.
### Edit Event Instance
You can now edit an event instance that was tagged, instead of having to delete and re-tag.
## Dec 02, 2022
This update documents the following changes:
- Live tagging window
- Game Periods configuration
- Export event instances to Clipper file
- Lead and Lag times configuration
- Turn Dashboard carousal cycle off by default
- Zone Configuration - Polygon zone shape
- FIX: Position Map filter and search bug fixes
- FIX: xy data not getting downloaded to csv
- FIX: Bar charts - inconsistent results when multiple event types selected
### Live tagging window
In live tagging mode (i.e. no video) the team based events will be displayed in the center of the screen. This removes a click by not having to hit the team tag button first to access the team based events.
### Game Periods configuration
Any number of game periods and extra time periods can now by specified. Allows greater flexibilty for different sports.
### Export event instances to Clipper file
In the Events Data page there is now an option to export the event instances to a Playlist file that can be directly imported into the Clipper app for advanced clip editing.
### Lead and Lag times configuration
It is now possible to specify Lead and Lag times in the Event Configuration. When viewing clips of event instances, the video timeframe slider will be set to the lead and lag times specified in the event configuration.
If none set then it will use the system default lead and lag times of -10 to 5.
### Turn Dashboard carousal cycle off by default
Previously the default was an automatic cycle of the carousals in the Dashboard. This is not switched off by default but can switched on again per user preference.
### Zone Configuration - Polygon zone shape
It is now possible to configure 3 and 4 sided (for now) Polygon zones.
### FIX: Position Map filter and search bug fixes
Fixed position map configuration filters. Position maps recognize event type and outcome filters set in the configuration.
Fixed player search in Dashboard Position Maps.
### FIX: xy data not getting downloaded to csv
In the Events Data page the xy co-ordinates were not getting downloaded as part of the csv. This is now fixed.
### FIX: Bar charts - inconsistent results when multiple event types selected
The bar charts were showing inconsistent results when multiple event types were selected. This is now fixed.
---
URL: https://teamoppy.com/blog/12-wimbledon-partnership
# TeamOppy Sports Announces Partnership with Wimbledon Hockey Club
TeamOppy Sports and Wimbledon Hockey Club join forces
## TeamOppy Sports Announces Partnership with Wimbledon Hockey Club
TeamOppy Sports, an emerging provider of Sports Performance Analysis software, is pleased to announce its partnership with Wimbledon Hockey Club. This partnership will see TeamOppy's cutting-edge software being used by the club's managers, coaches and analysts to enhance their performance on the field.
The partnership between TeamOppy Sports and Wimbledon Hockey Club represents a significant milestone for both organizations. TeamOppy Sports is committed to helping athletes, coaches, analysts and managers reach their full potential by providing them with the tools and insights they need to improve their performance. Wimbledon Hockey Club, on the other hand, is one of the most well-respected clubs in the sport of field hockey, with a long history of producing top-level players.
With this partnership, Wimbledon Hockey Club will have access to TeamOppy's advanced Sports Performance Analysis software, which uses cutting-edge technology to provide detailed insights into team and player performance. Coaches will be able to analyze and monitor team and individual player performances, identify areas for improvement which will drive training plans to help players reach their full potential. Meanwhile, managers will be able to leverage the Live Manager Mode in Tagger, a game-changing feature that allows for in-game management of substitutions, switches, cards, and other important decisions. Adding a video source post game will then auto-generate video clips and playlists for the team.
In addition to the Live Manager Mode in Tagger, TeamOppy Sports offers several other advanced features that will benefit Wimbledon Hockey Club. Tagger Rooms, for instance, enables multi-analyst live sharing, allowing multiple analysts and coaches/managers to collaborate in real-time, enhancing their ability to analyze performance. Video Studio, on the other hand, provides a tool for adding graphics and text to video footage, making it easier to communicate insights to coaches and players. Finally, the Dashboard Designer enables custom dashboards, providing a way to view the most important information in one place, and giving coaches and managers more flexibility to design their own reporting and analytics.
Commenting on the partnership, Jimmy Culnane, Director of Hockey with Wimbledon Hockey Club said, "We are thrilled to be partnering with TeamOppy Sports. Their software is cutting-edge, and we believe that it will be a game-changer for our coaches and managers. The Live Manager Mode in Tagger is particularly exciting, as it will allow our managers to make more informed decisions during games, based on real-time data. We are also excited about the other advanced features that TeamOppy Sports offers, such as Tagger Rooms, Video Studio, and the Dashboard Designer, which we believe will enhance our ability to analyze team and player performance and make data-driven decisions."
The partnership between TeamOppy Sports and Wimbledon Hockey Club represents an exciting development. Peter from TeamOppy commented, "We are thrilled to partner with Wimbledon. We will be collaborating with Wimbledon to develop additional features which will not only benefit Wimbledon but the wider TeamOppy user base. We look forward to seeing the impact this partnership will have on the club's future success."
---
URL: https://teamoppy.com/blog/13-tagger-rooms
# Tagger Rooms
TeamOppy Sports App Launches Tagger Rooms - A Game-Changing Feature for Realtime Analysis
## Tagger Rooms
TeamOppy Sports Tagger has been a game-changer for managers, coaches, analysts, and players alike, allowing them to analyze game footage and make informed decisions. With the launch of Tagger Rooms, the app is taking analysis to the next level.
Tagger Rooms is a new feature that allows multiple analysts to tag events in a game, and those events are streamed to the coach/manager on the sideline for real-time analysis. This means that coaches can get immediate data-generated feedback on what is happening on the field and make instant decisions based on the data they receive.
:video-player{videoId="vfg4skzD9MA"}
### How Tagger Rooms Works
The lead analyst creates a room along with a room passcode. The lead will then add members (emails) to the room who can then join the room using the passcode which is supplied by the lead analyst. Multiple analysts can work together in real-time, increasing the speed, volume, and accuracy of analysis. Analysts can tag events by simply clicking on the relevant buttons in the app. The events are then streamed to the coach's device, where they can see the information in real-time.
But here's a unique feature: Tagger Rooms can be accessed and utilized from anywhere. It uses cloud technology which only requires an internet connection. Analysts no longer need to be physically present at the game venue or in the same location as the coach or manager. They can contribute to real-time analysis remotely, whether they are at home (with live video) or physically at the game. This flexibility is a game-changer, enabling teams to leverage the expertise of analysts regardless of their physical location.
Imagine a scenario where the lead analyst is working from the comfort of their home, while the rest of the analysts are scattered across different parts of the world. Footage of the game is streamed via YouTube or some other platform. Through Tagger Rooms, they can collaborate seamlessly, tagging events and providing insights as the game unfolds. The coach or manager on the sideline receives this real-time analysis directly on their device, allowing them to stay informed and make critical decisions on the spot.
This remote accessibility of Tagger Rooms opens up a world of possibilities. It eliminates the constraints of physical proximity and provides teams with the opportunity to assemble a truly global team of analysts, bringing together diverse perspectives and expertise. Moreover, it allows analysts to work in an environment where they can focus and immerse themselves in the game footage without distractions.
### Access to Tagger Rooms
Stay tuned this week as we announce our new package structure with access to the Dashboard Designer tool. If you would like to trial Tagger Rooms please contact us at info@teamoppy.com
### Prerequisites
The only prerequisite for using Tagger Rooms is an internet connection. There are many options to get internet connectivity at a sports ground, for example using a mobile phone hotspot or a 4G mobile router.
## Finally
Tagger Rooms is a transformative feature that will revolutionize the way coaches analyze games in real-time. With the ability to tag and share events in real-time, coaches can make informed decisions that will have a significant impact on their team's performance. Analysts can contribute to the analysis from anywhere, allowing for greater flexibility and a broader range of expertise. If you haven't done so already, install the TeamOppy Sports Tagger app and start using Tagger Rooms today! Experience the power of real-time analysis, no matter where you are, and take your team's performance to new heights!
---
URL: https://teamoppy.com/blog/14-tagger-dashboard-designer
# Tagger - Dashboard Designer
TeamOppy Sports Announces the latest advanced feature in Tagger - Dashboard Designer
## Introducing Dashboard Designer: The Latest Addition to Tagger
At TeamOppy, we're excited to announce the launch of the Dashboard Designer, the newest addition to our sports app Tagger. Dashboard Designer is a powerful tool that allows analysts to create custom dashboards using a grid layout made up of rows and columns, with a range of customizable components, including charts, graphs, position maps, tables and more.
With Dashboard Designer, users can easily customize their dashboard to fit their specific needs and preferences. This means that they can focus on the metrics that matter most to them and gain valuable insights into their performance.
:video-player{videoId="lTLsrm2RSVE"}
## Key Features
Here are just a few of the key features of Dashboard Designer:
- Customizable Components: Dashboard Designer offers a range of customizable components, including charts, graphs, position maps, tables and more, that can be added to the dashboard grid layout using rows and columns. Users can easily adjust the size and position of the components, and edit their settings.
- User-Friendly Interface: Dashboard Designer has a user-friendly interface that makes it easy for users to create and customize their dashboards. Users can quickly add new components, adjust their settings, and arrange them within the grid layout.
- Data Integration: Dashboard Designer seamlessly integrates with Tagger's data sources, allowing users to access all of their performance data in one place. This means that they can easily create custom dashboards that provide a comprehensive view of their performance.
- Sharing and Collaboration: Dashboard Designer allows users to share their custom dashboards with others on their team. This means that analysts can collaborate and share insights with managers, coaches, players, and other stakeholders.
### Grid Layout
The Dashboard Designer uses a Grid Layout made up of rows and columns to organise the Dashboard components. Think of a row as a container for columns and think of a column as a container for components or other rows. A column can range in size from 1 to 12. A column of size 12 will span the entire width of a row.
### Preview
The Dashboard Designer has a Preview option to allow users to Preview what the Dashboard would look like. We would recommend building Dashboards on an existing game for a better previewing experience.
### Dashboard
When you have completed building your Dashboard it will be available in the Dashboards dropdown in the main Dashboard page - users who are viewing the Dashboards can quickly switch between Dashboards. There are no limits to how many Dashboards can be created.
### Configuration
The Dashboard Designer is available as part of the Sport Configuration. When you share a game (which also contains it's configuration) then the Dashboards will also be shared.
### Access
Stay tuned next week as we announce our new package structure with access to the Dashboard Designer tool.
## Take Your Performance Analysis to the Next Level
We believe that Dashboard Designer will be a game-changer for analysts who want to take their performance analysis to the next level. By providing a customizable, user-friendly tool that seamlessly integrates with Tagger's data sources, Dashboard Designer allows users to gain valuable insights into their performance and make data-driven decisions.
We're excited to see how our users will use Dashboard Designer to improve their performance and achieve their goals!
---
URL: https://teamoppy.com/blog/15-tagger-video-studio
# Video Studio & Clip Player
TeamOppy Sports App Launches the Video Studio & Clip Player - Game-Changing Features for Video Analysis in Tagger
## TeamOppy Sports Announces new Video Analysis Features
The TeamOppy Sports app Tagger has just released two new features that are set to take the app to another level. The first feature is a Video Studio that allows analysts to add graphics and text to tagged clips, while the second feature is the Clip Viewer, which provides a horizontal timeline of events that users can click on to view the clips. Let's take a closer look at each of these exciting new additions.
:video-player{videoId="-IC_oVZR_Cw"}
### Video Studio: Adding Graphics and Text to Tagged Clips
The Video Studio feature in Tagger allows analysts to add graphics and text to their tagged clips. This is a powerful tool that can help to provide more context and detail to clips, and make them more informative and engaging. With Video Studio, analysts can now add arrows, circles, text boxes, and more to their clips, giving viewers a better understanding of what is happening on the field or court.
For example, an analyst could use the Video Studio to draw an arrow pointing to a player who made an impressive play, or to highlight a specific area of the field where an important event took place. They could also use the feature to add text boxes with statistics or other relevant information, such as the name of the player who made the play, or the score at the time of the clip.
### The Clip Viewer: Timeline Matrix of Events
The second new feature in Tagger is the Clip Viewer, which provides a timeline of events that users can click on to view the clip. With this feature, users can easily find and watch specific clips based on the team or player they are interested in, or by clicking on specific events in the timeline.
The timeline displays a range of events that occurred during the game or match, such as goals, fouls, and other key plays. Users can simply click on the event they want to watch, and the clip will automatically start playing. This makes it easy to find and watch the most important moments of the game, without having to search through hours of footage.
The Clip Viewer also includes a search function that allows users to find specific clips based on the team or player they are interested in. This is particularly useful for sports analysts who need to quickly find specific clips for their reports or presentations.
There are a number of views available in the timeline - Events view, Linked Events view, Players view & Player Time Tracker view. The Player Time Tracker view is the perfect accompaniment with Hockey Manager Mode as it gives a complete timeline of each players on-field involvement.
### Playlist Generation: The Cherry on Top
One particularly cool feature of the Clip Viewer is the ability to click on an event label to automatically generate a playlist of all those events. This feature is particularly useful for analysts who need to review a large number of clips in a short amount of time, as it allows them to quickly generate a playlist of relevant clips without having to manually search for each one.
### Access to the Video Studio
Stay tuned this week as we announce our new package structure with access to the Video Studio tool.
The great news is though that the Clip Viewer is available on all packages!!
### Finally
Overall, the new Video Studio and Clip Viewer features in Tagger are powerful tools that will make life easier for sports analysts, managers, coaches and players alike. With the ability to add graphics and text to tagged clips, and a timeline of events that users can easily navigate, Tagger is quickly becoming a go-to tool for analysts.
---
URL: https://teamoppy.com/blog/17-tagger-totals
# Taggers Totalling Functionality
Advanced insights with Tagger's totalling functionality: count totals, calculated totals, and presentation formats.
## Introduction
Tagger includes robust totalling functionality for advanced performance analysis. A core capability is the ability to calculate both count totals and calculated totals, giving analysts greater flexibility when interpreting match data.
In this post, we explore how calculated totals unlock deeper insights and how Tagger's presentation formats, including the Totals page, Comparison Tables, and Info Cards, improve the clarity and communication of key metrics.
## Operands: Enabling Deeper Analysis
Tagger's calculated totals are built on operands, the core inputs used in each formula. While many examples focus on individual players, operands are equally valuable for team-level analysis.
For example, to evaluate defensive output, you can combine count totals for successful tackles, interceptions, and clearances. The resulting total provides a clear view of the team's overall defensive contribution.
## Operators: Expanding Analysis Capabilities
To support flexible analysis, Tagger provides operators (+, -, *, /, %) for calculated totals. Selecting the right operator allows users to model different performance questions with precision.
In the defensive example above, using the plus operator to combine tackles, interceptions, and clearances gives a cumulative measure of defensive activity. Similar logic can be applied to build custom metrics across phases of play.
## Presentation Formats: Enhancing Visualization and Comprehension
Tagger offers multiple presentation formats for count and calculated totals, helping users interpret data quickly and accurately.
### Totals Page
The Totals page provides an organized, comprehensive view of count totals and calculated totals. It acts as a central workspace for exploring accumulated data across time periods, players, and positions. This holistic view supports faster, evidence-based decision making.
### Comparison Tables
Comparison Tables provide side-by-side views of count totals and calculated totals for each team. This format makes it easier to evaluate relative strengths, identify performance gaps, and track trends over time.
### Info Cards
Info Cards deliver concise, visually clear summaries of totals. They present overall values alongside period-based breakdowns (for example, halves, quarters, or custom intervals), making trend identification faster during live or post-match review.
### Dashboard: The Hub for Insights
The Totals page, Comparison Tables, and Info Cards are all integrated into Tagger's dashboard, a centralized hub for analysis. Users can customize layouts and prioritize the visuals most relevant to their workflow, creating a practical, insight-focused environment.
## Final Thoughts
Tagger's calculated totals make it possible to apply meaningful operations to both count totals and calculated totals, helping analysts examine player performance, team dynamics, and match trends in greater depth.
Together, the Totals page, Comparison Tables, and Info Cards provide a strong presentation layer for that analysis. These formats improve clarity, support faster interpretation, and help teams turn raw totals into actionable insight.
---
URL: https://teamoppy.com/blog/18-subscription-plans
# Subscription Plans
Introducing TeamOppy Sports Tagger's New Subscription Plans - Empowering Your Analytics Journey
## Introduction
In the ever-evolving landscape of sports analytics, emerging platforms like TeamOppy Sports Tagger are making significant strides to revolutionize the way we understand and analyze sports performance. TeamOppy Sports Tagger is excited to announce its new subscription plans, designed to cater to various user needs and empower a deeper understanding of the game. Whether you're a passionate hockey manager, an aspiring analyst, or a seasoned professional, TeamOppy Sports Tagger's Analyst, Analyst Plus and Analyst Elite plans offer a comprehensive suite of features to elevate your analytics experience. Let's explore the details of each plan and discover how they can propel your sports analysis to new heights.
## Analyst Plan: Unleash the Full Potential
For users seeking an enhanced analytics experience, the Analyst plan offers a wealth of features to take your analysis to the next level. Enjoy unlimited event tagging options, with event links & event accelerators, empowering you to capture every intricate detail of the game. Interactive charts and position maps provide powerful visual representations of data, enabling you to identify patterns and extract actionable insights. With the Analyst plan, you can explore the breadth of TeamOppy Sports Tagger's capabilities and unlock the true potential of your analysis.
## Analyst Plus Plan: The Next Level
The Analyst Plus plan is TeamOppy Sports Tagger's next level offering, catering to professionals and seasoned analysts who demand maximum flexibility and customization. The Dashboard Designer feature allows you to tailor your analytics dashboards to match your specific requirements, ensuring an intuitive and personalized experience. Moreover, the Video Studio feature enables you to integrate video analysis directly into your workflows, introducing a new dimension to your sports analytics endeavors.
## Analyst Elite Plan: The Ultimate Toolkit
The Analyst Elite plan includes the ability to create a Tagger Room, facilitating collaboration with teammates, stakeholders, and clients, thereby fostering seamless communication and shared insights. The Analyst Elite plan empowers you to build an analytics environment that perfectly aligns with your needs, enabling unparalleled performance analysis.
## Compare Plans
Check out our Pricing and Plans page here for details and a comparison of all the plans - [Pricing & Plans](/pricing)
## Finally
TeamOppy Sports Tagger's new subscription plans offer a range of options tailored to different user requirements, providing an enhanced sports analytics experience. As an emerging platform, TeamOppy Sports Tagger is dedicated to pushing the boundaries of sports analysis, empowering users to unravel the intricacies of sports performance. Whether you're a hockey manager looking to optimize team strategies or an analyst aiming to uncover the hidden insights within the data, TeamOppy Sports Tagger equips you with the tools necessary to excel in the world of sports analytics. Embrace the power of TeamOppy Sports Tagger's subscription plans and embark on a journey that will elevate your understanding of sports performance.
---
URL: https://teamoppy.com/blog/19-england-nag
# England U18 NAGs - Hockey Manager Mode
A catch-up with Thomas Elliott, Head of Performance Analysis for England NAGs hockey teams.
## England U18 NAGs & Tagger - Hockey Manager Mode
Over the past several months, England U18 NAGs have been using Tagger, specifically the Hockey Manager Mode feature, leading into the recent European U18 competitions. We spoke with Thomas Elliott, who leads Performance Analysis for England NAGs, to hear his perspective on using Tagger.
"Tagger Hockey Manager Mode played a vital role for us at this year's European U18 Championships in Krefeld. Throughout the competition, it enabled us to manage player minutes and rotations effectively while also generating an XML immediately post-match that integrated with our existing analysis workflows."
"In-game, Tagger Hockey Manager Mode allowed us to accurately track player minutes on and off the pitch, and helped us manage cards and stoppages in play. It also highlighted when we did not have players on the field to fulfill specific roles related to PCA and PCD, a powerful feature not normally found in other applications."
"The customisable nature of Tagger's Hockey Manager Mode allowed us to configure the pitch, players, and manager window exactly as required. The Hudl Sportscode-compatible XML saved valuable post-match time when creating clips and tracking player on-pitch instances. Throughout and after the tournament, feedback and feature suggestions were quickly actioned by Peter and integrated into the app."
Peter from TeamOppy Sports commented: "It has been a pleasure working with Tom and his colleagues in the England NAGs setup. We look forward to continuing this collaboration as we develop more cutting-edge features."
---
URL: https://teamoppy.com/blog/20-qa-efoweraker
# Q & A with Elliot Foweraker
Read about Elliot Fowerakers (Director of Hockey at Malvern College) experiences with Tagger
## Introducing Elliot Foweraker
Elliot Foweraker is the current Director of Hockey at Malvern College. Elliot was one of the very first adopters of TeamOppy Sports Tagger. We caught up with Elliot to get his thoughts.
#### Can you tell us a bit about your own background and current role(s) with Hockey Wales and Malvern College?
I have recently started as Director of Hockey at Malvern College, after being at Taunton School for 8 years and I was previously the U18 Head Girls coach and senior assistant with Hockey wales.
#### You have been using Tagger for a number of months now. Can you describe how you use Tagger? For example, do you mainly use it for live game tagging or post game video tagging?
Tagger is a great tool for coaches and managers to support game day and post match analysis. It is accessible and easy to use for people of all levels of knowledge. We have used for both in game analysis and sub management as well as analysis and also post game analysis. We used Tagger at the recent European Championships in Swansea this summer.
#### What are some of the key events that you like to capture during or after the game and what insights do you get from the data that you capture?
We like to look at structures, so particularly dead ball events like ball starts from various locations, mainly from a 16 hit out or from high line attacking areas to give us some good detail for both on ball and off ball work. Additionally it is great for 25 and circle entries allowing us to work on both sides of attacking and defending this.
#### Do you use these insights mainly to help with decision making during a game or do you find it more beneficial post-game to determine things that need to be worked on ahead of the next game?
I think a combination, its important to educate players on what actually happened post match to help them improve and develop but also from in game to see what the stats actually say helping give a truer reflection on what is actually happening in the game.
#### How has the experience been with Tagger? What feature(s) do you like most about Tagger?
I think once your set up it is such a simple process to use, it gives great details without too much effort, its great to be multi platform and web based and it allows for great versatility at competitions.
#### Overall, what are the key benefits of Tagger for you and the team?
Having used other similar software for years I think the affordability of such a powerful tool is unrivalled, it is also the fact it can be used online, shared and supports a range of exports it has helped no end across the board.
---
URL: https://teamoppy.com/blog/qa-seansweeney
# Q & A with Sean Sweeney
Q & A with Sean Sweeney - Performance Analyst with Gaelic football team Red Hughs of Donegal
## Introducing Sean Sweeney
Sean Sweeney has been a stalwart of the Red Hughs club for many years both as a player and part of management teams since his retirement from playing. In 2023 Sean was the Lead Performance Analyst for their senior football team. We were in contact with Sean at the start of the year and introduced him to Tagger. We worked with Sean to help get him set up and also incorporated some changes that Sean suggested to help with his workflow. Now that the season has come to a close we caught up with Sean to review how things went.
#### Can you tell us a bit about yourself Sean, your background in analysis and role with Red Hughs this year?
I played with the Red Hughs senior team for over 20 years. In 2019 we won the Ulster Junior title, which was a great achievement for a small club like ours. After I retired, I was asked to help with the analysis side of things. I had picked up a few bits and pieces on performance analysis over the years, especially during our run in Ulster. I was always interested in video editing, and I work in IT as well, so I found the technology part of the role quite enjoyable.
#### You have been using Tagger for a while now. Can you describe how you use Tagger? For example, do you mainly use it for live game tagging or post-game video analysis, or both?
I mainly use Tagger for live game tagging. I created a config file at the start of the season which had all the events I wanted to tag during the games. I also adjusted the dashboards so that I could present it as a quick summary at half time. Once the game was over, I was able to send the stats as a direct link to the management team.
#### What are some of the key events that you and your management team like to capture during or after the game and what insights do you get from the data that you capture?
Because we used Tagger mainly for live tagging, we kept it simple. The three main events we agreed to track were kickouts, turnovers and shots. I also liked to keep track of the shot and score source, both for our team and the opposition.
#### Do you use these insights mainly to help with decision making during a game or do you find it more beneficial post-game to determine things that need to be worked on ahead of the next game?
While the dashboard summary and event counts did give the manager the facts and figures for half time team talks, we found the most benefit in using the Tagger data in post-game analysis. We had a set of KPI targets which we wanted to meet for each game, and by analysing the Tagger data after the game, we were able to highlight a particular area of weakness which we could work on in training prior to the next game.
#### How has the experience been with Tagger? What feature(s) do you like most about Tagger?
I have enjoyed using Tagger this season. The iPad app performed reliably, and any issues I did have were quickly resolved by Peter. I liked that it was so configurable, and I could use the config files interchangeably depending on my needs. It did take a bit of work to create a config file that I was happy with, but Peter already had a GAA template created and I was able to work from that to create a personalized config file. There are other applications on the market which cost a lot more for the level of functionality that Tagger provides.
I used the Live Manager Mode during live game tagging, as it gave more detail at a glance. I also liked how I was able to send the live game stats to the management team via a direct link almost immediately after the game.
#### Overall, what are the key benefits of Tagger for you and the team?
- Configurable
- Reliable
- Cost-efficient
- Excellent customer support
#### Final Comment by Peter from TeamOppy
Many thanks to Sean for his contribution to this blog and his invaluable feedback throughout the year. Sean has indicated he may be taking a break from team involvement for the coming year but I'm pretty sure he'll be pulled back in again pretty soon (you're never out Sean!!!).
---
URL: https://teamoppy.com/blog/qa-jeromegordon
# Catch up with Jerome Gordon
Catch up with Jerome Gordon - Performance Analyst with Down GAA club St Johns
## Introducing Jerome Gordon
Jerome Gordon has worn many hats down through the years with Down club St Johns between playing and coaching and as recently as last year Jerome was the clubs PRO. He has also for a number of years performed the role of Performance Analyst for the club. This year they had great success, winning the league with the senior mens team. We are delighted to catch up with Jerome to get his thoughts on the year gone by.
#### Can you tell us a bit about yourself Jerome, your background in analysis and role with St Johns this year?
I have been the current Statistical analyst with my own club both senior mens and ladies for the past five years and have been involved in juvenile coaching since 2012.
#### You have been using Tagger for a while now. Can you describe how you use Tagger? For example, do you mainly use it for live game tagging or post-game video analysis, or both?
Tagger is a great multifunctional application. We use it for both in game analysis and post-game analysis. It gives us Great insight during a live game but also used for Player’s postgame to see any individual stat and clips.
#### What are some of the key events that you and your management team like to capture during or after the game and what insights do you get from the data that you capture?
So, some of the KPI or key performance indicators that we capture are unforced errors; these are just how many times we give the ball away. This in turn shows us where these are happening by who and what time they are done at and if a score has been made by the opposition by a direct unforced error.
#### Do you use these insights mainly to help with decision making during a game or do you find it more beneficial post-game to determine things that need to be worked on ahead of the next game?
I would say it’s a combination of both in-game and post-game. As a management team we feel it is important to educate our players so we can improve and develop as a team.
#### How has the experience been with Tagger? What feature(s) do you like most about Tagger?
My experience has been phenomenal. The one feature I really love is the video studio. I can upload my stats and game video and it will automatically clip the game. This is a great feature for management and players to look at specific KPI.
#### Overall, what are the key benefits of Tagger for you and the team?
The software used by tagger is second to none with its online database sharing files and statistics has never been easier. Both players and management can use information gathered during live games but also compare it to previous games.
#### Final Comment by Peter from TeamOppy
Many thanks to Jerome for his contribution to this blog. Jerome was one of the first users of TeamOppy going back to the early days of the original dropbox app and has been brilliant in providing feedback throughout the last couple of years as the software has evolved. We wish Jerome and St Johns all the best going forward to the future.
---
URL: https://teamoppy.com/blog/qa-davefoley
# Q & A with Dave Foley
Tagger Review with Dave Foley - Cratloe, University of Limerick & Ardscoil Ris Performance Analyst
## Introducing Dave Foley
When Tagger was first launched back in late 2022, a call was put out on social media looking for volunteers to help test the functionality. Dave Foley was one of the first guys who volunteered to help. His feedback and help has been invaluable. Dave, a Cratloe clubman, has been using Tagger with a number of teams in the last year. We caught up with Dave to review the year and to get an insight into his processes.
#### Can you tell us a bit about yourself, your background in analysis and current roles with Cratloe/UL GAA?
I started off my analysis journey with the famed hurling academy Ardscoil Ris in Limerick, winning the u18.5 A Harty Cup in my first year involved in 2018. That same year I became involved with my own club Cratloes Senior hurling team, reaching back-to-back county finals in 2018 and 2019. I began my studies in the University of Limerick in 2021 and with that found myself involved in both the Fresher 1 and 2 Hurling Teams, winning the league and championship double with both teams that year and subsequently retaining the Fresher 1 League and Fresher 2 Championship the following year. I was also involved in the u16.5 Dean Ryan Hurling win with Ardscoil Ris in 2022, a team I am still currently involved in, along with continuing my involvement in both UL and Cratloe teams.
#### You have been using Tagger for a while now. Can you describe how you use Tagger? How it fits into your analysis workflow? For example, do you mainly use it for live game tagging or post-game video analysis or both?
I have been fortunate enough to be using Tagger since 2022 when I contacted Peter as he was first starting up, and I haven’t looked back since. I found previously that most software’s were extremely
basic and limited, so the versatility and ease of use of Tagger has been invaluable. Me personally, I tend to look at extreme basics when live tagging, I identify with management teams what we feel is
key information we need on matchday and I subsequently format Tagger to suit the needs of a particular management team or opponent. Where I find the real benefit of Tagger is doing post-game
analysis, each player is left with its own individual stats and clips, and management teams benefit from the clear and well laid out graphs and shot charts for a clear post-game picture. A personal
favourite feature of mine is the fully interactive shot and puck-out maps, the ability to view on a map specific area of success/failure with such ease is invaluable.
#### What are some of the key events that you and your management team like to capture during or after the game and what insights do you get from the data (and/or video) that you capture? How do you share with management and team?
Hurling has become such a possession-based game, a team’s ability to keep possession when they have it and their ability to turn it over when they don’t go a long way in determining a team’s performance and the result of a game. Management teams I am involved with tend to set a target (usually a half time and full-time target) of turnovers and tends to be a good indicator of the intensity the team operates at. Having the data location based allows us to pin-point where in certain areas of the field we may be struggling/gaining the upper hand. The puck out is also an area where, to a certain extent, a team can control the outcome of the set play. As mentioned above, the interactive maps put Tagger in a league of its own. Along with being able to pinpoint certain areas, the interactive maps can lead to the discovery of patterns/habits of certain players that may not have been discovered otherwise.
#### Do you use these insights mainly to help with decision making during a game or do you find it more beneficial post-game to determine things that need to be worked on ahead of the next game?
Personally, I would see the main benefits of Tagger in the post-game analysis. I would use Tagger during a game to track a teams puck outs, shooting, turnovers and frees, and depending on a
management teams’ preference or a certain opposition, a certain area can be looked at. I would also use Tagger to analyse potential opposition before we may face them. It gives incredible detail, a
feature I also found beneficial was the puck out specific insights that tagger gives, giving you certain trends and results depending on the distance of a puck out that the opposition might have. The detail
that Tagger produces gives any team the upper hand.
#### How has the experience been with Tagger? What feature(s) do you like most about Tagger?
The transition to Tagger has been a game-changer for my analysis. Every area is covered, and no stone is left unturned. As I mentioned previously, the interactive shot/puck out maps are a personal
favourite feature of mine, but also the recent addition of the export function for specific clips is a superb update. Feedback from teams I have been involved with is also extremely positive, and the
Google Drive share feature is my preferred method and all management teams have commented on the ease of access and the clarity of data, The amount of data that Tagger produces is so vast, it’s an
achievement in itself to present it in such a clear and easy to process manner.
#### Final Comment by Peter from TeamOppy
Many thanks to Dave for his contribution to both the initial testing of Tagger and also to this blog. Dave is a highly regarded Analyst and will have a busy year ahead again in 2024. We wish Dave and his teams the best of luck for 2024 and beyond.
---
URL: https://teamoppy.com/blog/2023-year-in-review
# 2023 - a significant year for TeamOppy
Farewell to 2023 and a look forward to 2024
## 2023 - a significant year for TeamOppy
As we bid farewell to 2023, it's the perfect time to reminisce about the milestones we've achieved at TeamOppy and eagerly anticipate the adventures that lie ahead in the coming year. This year has been nothing short of transformative for us – from welcoming our inaugural subscribers to forging key partnerships and introducing major enhancements to our platform.
## Early beginnings
If this is your first-time hearing about TeamOppy then let me paint the backdrop of the story. What is it? In a nutshell it is a Performance Analysis platform for game event data collection, live player management, video analysis and reporting with some really unique features. Originating in 2020, the journey began with my involvement with the management of my local hurling team. Utilizing an app for Gaelic Games, we tracked various Key Performance Indicators (KPIs) during games. When the pandemic struck, lockdown provided the opportunity to delve into the data. Drawing on my IT background, I crafted a web app to visualise the data in charts and position maps. This evolved with a customisable tagging engine and dashboard added. After a number of iterations, [Tagger](https://tagger.teamoppy.com/) was officially unveiled in October 2022 and saw its first subscribers earlier this year.
## Major features added
When conceiving Tagger, we prioritized versatility – it had to cater to a multitude of sports, operate both online and offline, with or without video, and be accessible on all devices, all while remaining affordable to all. Tagger's evolution is user-driven, shaped by those who use it.
### Hockey Manager Mode
A prime example of a user driven feature is [Hockey Manager Mode](https://youtu.be/0wrgZ2OWIxM?si=_az-tMIVWr3qVX7k). When I first got in touch with [Jimmy Culnane](https://www.linkedin.com/in/jimmy-culnane-4353a21ab/) (Director of Hockey with Wimbledon HC, and assistant coach with Scotland WNT), one of the first questions he asked was could it handle substitutions and could it produce an XML.
From that conversation we collaborated to develop Hockey Manager Mode, a powerful feature in Tagger that allows managers and coaches to manage their in-game rotations. With Timers on each player and sub to show their current time on the field (off the field in the case of the sub) and their total playing time, managers/coaches are able to make quick decisions as to who are the next players to roll on/off. Cards can be added to players with sin-bin countdowns. Formations can be changed to reflect the game. In Hockey it is vital to have key specialist role players on the field of play at all times. Using specialized role alerts, it ensures key players are on the field when needed. It also includes some Key events to capture.
To cap it all off, post-game you can add the game video to Tagger and sync it up with the event data to allow players to review all their game time and the key events that occurred in the game. Alternatively, the XML of the game can be downloaded and ingested into other apps for further processing and distribution.
This feature has proven to be a top-class addition and has been successfully trialled by international sides such as the England NAG group under [Tom Elliot](https://www.linkedin.com/in/thomas-elliott11/) and most recently the US Womens National Team led by David Passmore, Hannah Jaussen and team.
### Other Key features
Other Key Features that were developed during the year include the [Dashboard Designer](https://youtu.be/PQVzlrC0Cpo?si=tdu_ATOC4ZDIhEtT) tool which is a powerful tool for creating custom Dashboards to supplement the Standard Dashboard layout that Tagger provides.
The [Video Studio](https://youtu.be/-IC_oVZR_Cw) allows users to add graphics and text to video clips, create automatic and custom playlists, and provides the ability to export the clips and playlists to video files. Some of what you see were suggestions that came from the [Steven Gerrard Academy](https://www.linkedin.com/company/stevengerrardacademy/), in particular [Andy Marshall](https://www.linkedin.com/in/andy-marshall-45a064107/) (Lead Sports Scientist) who has provided amazing feedback throughout the year. Event shortcuts are another feature developed in collaboration with Andy.
[Tagger Rooms](https://youtu.be/vfg4skzD9MA) is an Elite level feature, this allows multiple analysts to tag live on the same game from the side of the pitch or from the comfort of their living room (with a live YouTube link) and feed the events back to the coach on the sideline who can review the Dashboard and clips of the game for immediate feedback that can affect the game.
The Totals Tables then are for those analysts, coaches and managers who like to focus on the numbers. You can configure tables to show counts and calculated totals of all your event data, provided and overall game total as well as totals broken down by period and by player.
Tagger Rooms and Totals Tables were developed in conjunction with [Mike Hopkinson](https://www.linkedin.com/in/mike-hopkinson-09a945106/) (lecturer in Performance Analysis at Leeds Beckett university).
In December we announced the introduction of the new [Accounts Portal](https://accounts.teamoppy.com/) to handle creation and management of individual and organisation accounts. This is an important introduction as it enables the roll-out of TeamOppy to organization users under the one account subscription.
## Relationships
It was a year where we developed great relationships with analysts, coaches and clubs alike. In September we announced our partnership with Wimbledon Hockey Club and we are looking forward to working further with them in the coming year.
It was great to get feedback from the likes of [Elliott Foweraker](/blog/20-qa-efoweraker), [Paul Dunleavy](https://www.linkedin.com/in/paul-dunleavy-42342a51/) and [Tom Elliott](/blog/19-england-nag) amongst many others from the Hockey world, plus [Sean](/blog/qa-seansweeney), [Dave](/blog/qa-davefoley) and [Jerome](/blog/qa-jeromegordon) and others from Gaelic Games.
In November we exhibited at the [Sports Ireland Innovation and Technology Summit](https://www.sportireland.ie/research/sport-innovation-technology-summit). It was a fantastic event with some top-class speakers. Most importantly it was an opportunity to network with like-minded people from the Sports Tech industry in Ireland.
## What does 2024 have in store?
2024 promises to be another busy year. We are kicking off January with a trip to Florida to exhibit at the NFHCA (National Field Hockey Coaches Association), where we will be showcasing the best of TeamOppy functionality including Hockey Manager Mode. This is a great opportunity to meet with coaches from across the USA as well as other companies in the industry as we build out our network.
Feature wise, we have some top-class stuff in the pipeline. Right now, we have 2 new rotation options in beta testing, which will elevate Hockey Manager Mode to a totally new level.
We are also very focused on data and video management with more developments coming for both local and cloud storage.
We have a range of items on the “ToDo†list, including enhanced and advanced options in the Video Studio, more visualisation options in the Dashboard, things like Pass Networks, Heat Maps etc… while continuously improving the user experience in all aspects of the platform. Plus much much more...
We will also be developing configurations for other Sports (Lacrosse is coming soon) and improving on existing configurations. We are looking forward to building the user base in existing sports across all regions and have TeamOppy become a household name across the Sports Industry.
## Wrapping Up
Many thanks to all those who have contributed to TeamOppy in any way, whether it is providing feedback (good and bad!), collaborating on new features or simply subscribing to one of our packages. Your support is very much appreciated.
One of the great things about working in this area is that we get to speak to sports people, coaches, analysts, managers on a day-to-day basis.
We wish everyone an enjoyable holiday period and look forward to working with you all again in 2024!
Peter (Owner & Developer of TeamOppy Sports)
---
URL: https://teamoppy.com/docs/accounts/introduction
# Introduction
The Accounts Portal is used to register and manage individual and organization accounts, including subscriptions.
## What is the Accounts Portal?
The Accounts Portal is where users register and manage their TeamOppy account for access to Tagger.
It is also used to create organizations so clubs, universities, and other associations can manage a single subscription for multiple analysts and coaches.
Access the [Accounts Portal](https://accounts.teamoppy.com/).
---
URL: https://teamoppy.com/docs/accounts/individual-account
# Individual Accounts
Individual accounts are used by users who need direct access to Tagger functionality.
## Overview
Any user who wants to use Tagger must create an account in the Accounts Portal.
During registration, users sign up with their email address and provide profile details such as:
- name
- club
- sport
## Subscription
Each new user receives a free 21-day trial when registering.
After the trial ends, the user must subscribe to one of the available plans to continue using Tagger.
## Read-Only Users
Read-only users do not need to register an account.
For example, a read-only user may access a shared game through a direct Tagger link (for example, via Google Drive sharing).
---
URL: https://teamoppy.com/docs/accounts/organization-account
# Organization Accounts
Organization accounts let clubs, universities, and other associations manage access for multiple users under a single subscription.
## Overview
An organization owner or administrator can:
- create and manage an organization account
- purchase subscription units
- add members
- assign roles based on required access
## Subscription
Organizations use the **Pro** subscription. Instead of purchasing individual plans, the organization purchases a number of subscription **units**.
Units are consumed when roles are assigned to members.
## Roles and Unit Cost
Roles determine access in both Tagger and the Accounts Portal. Each role has a unit cost:
| Role | Units | Description |
| --- | --- | --- |
| Analyst | 4 | Equivalent access to the individual Analyst plan |
| Analyst Plus | 6 | Equivalent access to the individual Analyst Plus plan |
| Analyst Elite | 12 | Equivalent access to the individual Analyst Elite plan |
## Flexible Unit Usage
Members can be added or removed, and roles can be assigned or unassigned, at any point during the subscription cycle. This allows organizations to reallocate units as needs change.
For example, a university may assign roles to one group of students in one semester, then reassign those same units to a different group in the next semester.
## Using Tagger and SquadPro
Organization members can select their organization in Tagger and SquadPro to activate the permissions associated with their assigned role.
To select an organization:
1. Click your profile icon in the application.
2. Select **Select Organization**.
3. Choose your organization from the list.
Once selected, the user receives access based on their assigned organization role.
## Setup Steps for Club/Organization Administrators
1. Create your personal account in the Accounts Portal: https://accounts.teamoppy.com/
2. Sign in, open **Manage Organization**, and create a new organization.
3. Open the organization and go to the **Subscription** tab.
4. Enter the number of units to purchase.
5. Complete payment.
6. Go to the **Members** section.
7. Add member email addresses and assign roles.
Unit reference:
- Analyst Elite: 12 units
- Analyst Plus: 6 units
- Analyst: 4 units
Example calculation:
- 1 Analyst Elite (12) + 1 Analyst Plus (6) + 2 Analyst (8) = **26 units**
## Steps for Members
1. Sign in as usual.
2. Click your profile icon (top-right in Tagger).
3. Select your organization.
You will then have the access level associated with your assigned role.
---
URL: https://teamoppy.com/docs/livestream/introduction
# Introduction
Introduction to Livestream. Local network video and data sharing platform.
## What is Livestream?
TeamOppy Livestream has two core functions:
- Capture a video feed from a connected camera and serve that video to devices on the local network
- Sync Tagger data across devices on the local network.
This facilitates multiple analysts tagging live video for a game enabling teams to capture more data & clips in real-time to feed back to the management team.

### Local Network
To create a local network teams will need some additional equipment. Notably, a router to create a local network that you can connect your devices to. It is recommended (but not required) to connect using ethernet cables instead of wireless.
### Devices
For Livestream Tagger devices we recommend using Windows/Mac devices where possible when using the live video. Mobile/Tablet devices have some limitations when it comes to playback of clips and there is also an increased lag time. The lag time for Windows/Macs is between 5 and 10 seconds but the lag time for mobile/tablet devices can be between 15 and 20 secs.
---
URL: https://teamoppy.com/docs/livestream/installation
# Installation
Getting started with Livestream
## Installation
To get started with Livestream, install the Livestream app. Livestream is currently available for Windows. Installer files are available from the [TeamOppy Launchpad](https://www.teamoppy.com/launchpad). The Livestream app is the central hub that captures video and connects with Tagger devices.
## Security Certificates
The Livestream app uses HTTPS to serve video and data. For this reason, you must install security certificates on the Tagger devices that will connect to Livestream.
You can download the Livestream certificate from Tagger.
- From the main menu, go to Game, then Livestream.
- In the Tagger Livestream client screen, click Download Livestream Certificate. This downloads the certificate to your file system.
- Follow the instructions below for the various devices to install the certificate.
### Windows
On Windows, double-click the certificate, then click Install Certificate.

Select Local Machine, then click Next.

Choose "Place all certificates in the following store", then select Browse.

Select "Trusted Root Certification Authorities".

Click Next.

Click Finish.

The certificate should now be imported.

Restart your computer for the certificate to take effect.
You should now be able to connect to the Livestream app from Tagger on your Windows device.
### iOS
Download the certificate to a folder on your iOS device.

Tap the certificate to download the profile.

In the Settings app, search for VPN & Device Management. You will see the downloaded profile there.

Open the profile and tap Install.

Follow the on-screen instructions to complete installation.


Then, in Settings, go to Certificate Trust Settings.

Enable the switch to grant full trust to the root certificate.

---
URL: https://teamoppy.com/docs/livestream/startsession
# Livestream Session
Creating a Livestream session
## Creating a Livestream session
### Connect to network
Before opening the Livestream app it is recommended to connect to the local network router. Livestream will then pick up an IP address from the router. Also connect your video device to your laptop.
### Start Session
Open the Livestream app, then select an Output Folder. You should create a new Output Folder for each new game. There will be 3 folders created within this folder, data, hls and mp4.
- The data folder will contain a messages file which stores all the data that is synched across the connected Tagger devices. This is useful for debugging purposes post-game.
- The hls folder will contain the HLS video file and segments.
- The mp4 folder is a placeholder folder. If you want to convert the HLS to MP4 post-game then you can store the output in this folder.
Then click on the Start Session button.
The Livestream data sync is now active. Any Tagger devices that connect to the Livestream will now have their data synced.
### Add a video source
- Now that the Livestream session is open you can add a video source. Click the Plus button to add a video source.
- You can choose from a Connected Device or an RTSP Stream.
- Give it a name (or just leave the default name).
- If you have chosen Connected Device then select a device from the list of connected devices.
- If you have chosen RTSP then enter the rtsp link.
The video will start playing after a few seconds.
You can now start connecting your Tagger devices.
---
URL: https://teamoppy.com/docs/livestream/tagger
# Tagger
Connect to Livestream
## Tagger Livestream Client
At this point you will have a Livestream session created with video connected and served over HLS.
### Pre-requisites
Ensure that you have installed the security cert as documented in the installation section.
### Local Network
Ensure that the device that you are using Tagger on is connected to the Local Network (direct cable connection is recommended but WiFi works well too).
### Connect
In Tagger, from the main menu, go to the Game, Livestream option. In here enter the IP address of the Livestream app.
Note: The Livestream app displays the IP address on the main screen.
Then click on the Connect button.
You should now be connected to the Livestream session and data will be synced across connected devices.
Repeat for the other connected Tagger devices.
### Video
A link to the Livestream HLS video will be displayed in the Tagger Livestream page. Copy this link.
### Create a new game
It is recommended to clear any previous games on the Tagger connected devices.
When all the Tagger devices have been connected to the Livestream app you can now create a new game. It is recommended to designate one member of the analysis team to be the team leader. The team leader will be responsible for creating the new game.
- Create a game as normal in Tagger, and add the video URL from above in the Video section (choose HLS as the video source).
- The game will sync across to the other connected devices.
- The team leader should also be responsible for starting the ending the Timer periods. Again when these are set, they will be synced to the other devices.
- Once the game has started the analysts can tag the game as normal and data along with clips will be synced across devices.
---
URL: https://teamoppy.com/docs/livestream/postgame
# Post Game
Post Game processes
## Post Game Processes
When the game has ended, download the game json file per normal from Tagger.
### Livestream
In the Livestream app go to the Stream menu and click on Stop Video Stream and then from the main Livestream menu click on Stop Sync Server
### Convert to MP4
If you would like to have a copy of the video in MP4 format then go to the HLS to MP4 Converter tab, enter the source folder for the HLS video stream, then select the target mp4 folder for the output and click on Convert. This will start the process of converting to mp4. This may take some time depending on the length of the video.
---
URL: https://teamoppy.com/docs/squadpro/squadpro
# SquadPro
SquadPro - Substitution and Rotation Management
## Introduction
Managing substitutions and rotations can be challenging. SquadPro, from teamoppy.com, provides an intuitive and efficient way to streamline your team's performance. Whether you are planning in advance or making decisions in real time, SquadPro helps ensure every move counts.
With timers for current shift time and total game time for each player, SquadPro is an essential tool for substitution and rotation management. It goes beyond basic substitutions, with cards that include sin-bin countdowns, scoring, and other event buttons.
Premium subscription features include:
- Rotations - Optimum Time plans and pre-planned rotation plans
- XML downloads - compatible with third-party software
- CSV downloads
- Alerts - notifications when specialist players are not on the field
- Player game-time chart
Download SquadPro now and enjoy stress-free, in-game player management.
SquadPro is currently available in the Apple App Store for iPhone and iPad (iOS 17.0 and above): https://apps.apple.com/ie/app/squadpro/id6483359200
It is also available as a web app for other operating systems and devices (Android, Windows, and more): https://squadpro.teamoppy.com/
Note: the web app is installable, which enables offline use. Follow the on-screen instructions.
## Quick Start
### Tablet
:video-player{videoId="i37NHJpVk18"}
### Mobile
:video-player{videoId="csZjOuVxR9o"}
## Set Squad Players
Set up your squad players and assign names, short names, player groups, specialist roles, and more.
:video-player{videoId="BLPcYIRijJ0"}
## Squad Settings
In Squad Settings, configure the number of players, periods and period durations, default squad formation, player groups, specialist roles, event buttons, and more.
:video-player{videoId="I6Pph7cZzTY"}
## Specialist Player Alerts
Enable specialist player alerts to be notified when a specialist player is not on the field.
:video-player{videoId="jZMGaEBstoU"}
## Edit Team Formation
Edit the team formation before and during the game.
:video-player{videoId="lXVsQ4ytvJQ"}
## Multi Sub Mode
Make multiple substitutions in one go with multi-sub mode.
:video-player{videoId="Cgs5mzq7ig0"}
## Modify Team Numbers
Modify team numbers. Has your game gone to extra time? In some scenarios, you may want to reduce the number of players on the field.
:video-player{videoId="JpOuH5YjnEA"}
## Preferences
Edit your game-screen preferences. Adjust the size of player and event buttons, the team graphic, the timer count down/up behavior, and whether to display each player's full name or short name.
:video-player{videoId="-jKcVE2FpBM"}
## Rotation Plans
Set up pre-game rotation plans with substitutions at specific times in the match. Accept or reject changes in-game, modify the plan on the fly, and use manual substitutions when needed.
:video-player{videoId="h_u9wKX1YnU"}
## Optimum Rotation Time
Assign an optimum rotation time to each player. In this mode, all players start in green. Sixty seconds before they are due to be replaced, their status changes to orange. Once they reach their optimum rotation time, it changes to red.
:video-player{videoId="qwNXRnUMw08"}
## Export XML
Export an XML file compatible with third-party tools such as Tagger, Sportscode, Coach Logic, and more.
:video-player{videoId="u32KcchDsZE"}
## Data Management
SquadPro data (for example, squads, players, and games) is stored locally on your device. It is not shared with anyone and is not stored on external servers. The app uses an embedded database, which means SquadPro can be used offline without an internet connection.
To help prevent data loss, we recommend backing up your data regularly. You can do this from the Squad menu by selecting the 'Export Squad Backup' option. We recommend creating a backup after each game.
To restore from a backup, choose the 'Restore Squad' option from the main Squad page menu (top left).
### Archive
Over time, SquadPro data may become quite large, especially after a full season of games. To keep the app lightweight, we recommend archiving your squad at the end of the season. This can be done by creating a backup of your squad (as described above) and then deleting the squad from within the app to free up space.
---
URL: https://teamoppy.com/docs/tagger/introduction
# Introduction
Welcome to Tagger.
## What is Tagger?
Tagger is a professional event-tagging platform with built-in dashboards and reporting. It supports both live and post-game workflows, helping analysts capture events faster and turn data into clear performance insights.
Get started in seconds: create a new game, add team details, select your sport (or define your own), start the timer, and begin tagging.
After tagging, use Video Studio to add graphics and text to clips. Build playlists automatically from the Events Timeline or curate custom playlists manually.
## Tagging Engine
The tagging engine supports both player-based and team-based tagging. Select a player or team tag, choose the event and labels, then capture positional and outcome data where applicable. Each event is added to the events table in real time, and the dashboard updates automatically.
## Live or Video Tagging
Tagger supports live tagging (without video) and post-game video tagging. For video workflows, add a source in the **Video** step of game setup (local file, YouTube, Vimeo, HLS or MP4 URL), set the period start and end times against the video, and continue tagging with frame-level accuracy.
Each tagged event stores its corresponding video timestamp, so clips can be reviewed straight from the events table, position maps and other views.
## Dashboard
Tagger includes a customizable dashboard that provides a 360-degree view of game performance, including:
- Summary totals and score
- Timeline, bar, pie, and donut charts
- Position maps with x/y event data
- Passage-of-play insights with outcome context
## Reports
Reports are designed for post-game analysis. In addition to embedded dashboard components, reports include a rich text editor for match summaries and support embedded images and videos from the Cloud Workspace.
## Cloud Workspace
Access your data from anywhere. Tagger integrates with Google Drive and OneDrive so you can store games, squads, and configurations in the cloud and work seamlessly across devices.
## Player Tables
Analyze player-level performance with customizable player tables. Add new columns to existing views or create entirely new table layouts to match your analysis model.
## Customization
Tagger is highly configurable. From the Configuration page, you can customize:
- General game settings (players per team, match duration, and more)
- Playing area graphics and zones
- Events and scoring rules
- Totals and timeline graphs
- Charts and position maps
- Player tables
- Passages of play
## Share
Tagger exports game and configuration data as JSON. Share files directly with team members for import, or distribute secure cloud links for streamlined collaboration.
---
URL: https://teamoppy.com/docs/tagger/get-started
# Get Started
Get started with Tagger
## Get Started
To get started open [Tagger](https://tagger.teamoppy.com) in your browser (Chrome is the recommended browser) or install the Desktop version of Tagger from the [TeamOppy Launchpad](https://teamoppy.com/launchpad).
### Create a New Game
In the Tagger page click on the Game menu option and click New.
Game setup is a four step wizard: **Setup**, **Team A**, **Team B** and **Video**.
#### Step 1 - Setup
**Game Information** - optionally set the Competition, Date and Venue. These are stored for information and query purposes.
**Game Configuration** - select your Sport Configuration. The first time you use Tagger this list will be empty: click **Import Template** and choose the **TeamOppy Catalog** to import a Configuration Template. Once a template is selected you can adjust the **Players per team**, **Subs per team**, **Periods** and **Minutes per period** for this game.
#### Step 2 - Team A and Step 3 - Team B
Each team has its own step, and the team steps are disabled until a Sport Configuration has been chosen.
- Pick a squad from the **Team A Squad** list to pre-fill the team name and lineup, or leave it empty and enter the team manually. Selecting a squad switches the lineup to the Picker view.
- Set the team name, choose a logo, and set the primary and text colours.
- Build the lineup in the **Editor** or **Picker** view. The team actions menu (⋮) lets you clear the team, reset from the squad, sort by number, and choose whether player numbers are set manually or taken from the squad.
#### Step 4 - Video
This step is optional - leave it empty if you are tagging without video. You can set up to four video sources, choosing from **Local File**, **YouTube**, **Vimeo**, **HLS**, **MP4 URL**, or a live connected camera in the desktop app.
When you are finished, click **Save** in the top right of the wizard.
### Set Tagger Preferences
From the left navigation menu, select Preferences. The page is organised into three tabs - **Tagger View**, **Buttons** and **Appearance** - with a **Privacy & Consent** card below them.
**Tagger View** selects the workspace layout:
- **Standard** - both teams' player buttons either side of the screen with the event buttons in the centre. Can be used for video tagging too.
- **Video Analysis Mode** - the video and events table on the left and the player and event buttons on the right. Larger devices only.
- **Live Manager Mode** - a manager-centric view focused on your own team with a team formation pitch graphic.
Display options for the selected layout appear underneath it.
**Buttons** sets the player and event button display and size:
- Set the Event button display to show either the name of the event, the short name of the event or the event icon. Short names and icons may be preferable for mobile devices.
- Set the Player button display to show full name or short name. Short name may be preferable on mobile devices.
- Set the size of the player and event buttons, or leave it on **Auto** to use the best size for the device.
**Appearance** selects the theme, and applies to this device only.
The **Tagging Behaviour** section below the layout options holds the **Auto Pause** setting, which automatically pauses the video while you tag an event.
### Start the game
The match clock is displayed in a card in the top bar of the Tagger page. To start the game, click the green play button in that card. The clock starts running and the period number is shown beside it.
The tune icon at the start of the card opens the **Timer settings**, where you can change the **Period**, set the number of **Periods** and their **Length** for normal and extra time, switch the clock to count down, nudge the clock backwards or forwards, and **Reset Timer**.
### Tag Events
The player and event buttons are enabled as soon as the timer is started and you can start tagging events by clicking on the Player and Event buttons. If an event is configured that requires a player to be selected then that event button will be disabled until a player is selected.
### End a half or period
To end a half or period, click the red stop button in the clock card and confirm in the **End Period?** dialog. The clock resets to 0:00 and the period number advances automatically.
### Start a new half or period
There is no period number to choose - it advances on its own when you end a period. Click the green play button in the clock card to start the clock for the new period.
### End the game
The match ends with the final period. End it in the same way - click the red stop button and confirm. Tagger has no separate Full Time button by design: ending the last period is what closes out the game.
## IMPORTANT
Please note that game data is stored in your browsers local storage. Clearing your browser cache will remove the game data. After each game you should save the game - from the Game menu, select **Save Game** - and store it on your local device or in your Cloud Workspace. Only one game at a time can be open in Tagger.
Similarly, for other data like Configuration data and Squad data it is important to download this data to your local device to prevent data loss in the browser.
### Tip
If using Chrome, by default files are downloaded to the Downloads folder of the users directory. You may want to change your download settings so that when you are downloading a game, configuration or squad that the browser will prompt you to select the folder to download your file to. See screenshot below. Select the switch "Ask where to save each file before downloading".

### Share between devices
You may do live tagging on a tablet and then do further processing on your laptop post game. A handy way to share files between your devices is to utilise OneDrive, Google Drive or similar cloud storage tools.
---
URL: https://teamoppy.com/docs/tagger/02a.preferences
# Preferences
Choose your workspace layout, set how the player and event buttons are displayed, and pick a theme.
## Overview
Open **Preferences** from the left navigation menu. The page is organised into three tabs — **Tagger View**, **Buttons** and **Appearance** — with a **Privacy & Consent** card below them.
::callout{icon="i-heroicons-information-circle" color="blue"}
The **Tagger View** and **Buttons** options require you to be signed in. If you are not signed in, those options are disabled until you sign in.
::
## Tagger View
The **Tagger View** tab selects the layout of the tagging workspace.
### Standard
Classic view with both teams' player buttons either side of the screen and the event buttons in the centre. This layout can be used for video tagging as well as live tagging.
### Video Analysis Mode
Optimised view with the video and events table on the left and the player and event buttons on the right.
::callout{icon="i-heroicons-information-circle" color="blue"}
Video Analysis Mode is only available on larger devices (laptop, desktop, and so on).
::
### Live Manager Mode
A manager-centric view focused on your own team, with a team formation pitch graphic. Selecting it applies the recommended button settings for managing player game time.
### Display Options
Additional options appear underneath the selected layout:
| Layout | Additional options |
| --- | --- |
| **Standard** | **Full** / **Tabs**, **Show Player Buttons** |
| **Video Analysis Mode** | **Video Player Size**, **Show Player Buttons** |
| **Live Manager Mode** | None — the recommended settings are applied |
**Full** shows both teams' event buttons; **Tabs** shows one team at a time. **Show Player Buttons** switches the player buttons on or off.
### Tagging Behaviour
**Auto Pause** automatically pauses the video while you tag an event — for example while selecting players or positions — and resumes once the event is saved.
::callout{icon="i-heroicons-exclamation-triangle" color="amber"}
When using [Tagger Rooms](/docs/tagger/tagger-rooms), it is recommended to disable Auto Pause to avoid excessive lag in the video.
::
**Auto Swap Position Map Sides** is on by default. When you [swap the sides of the tagging screen](/docs/tagger/tag-windows#swapping-sides), position maps that show team end indicators are turned 180° at the same time, so the ends on the graphic match the new sides. A new game always starts those maps at 0°, and maps that do not show team ends are never touched.
Switch it off to leave those maps alone and rotate them yourself with the [rotation control](/docs/tagger/live-tagging-without-video#rotating-a-position-map) above the map.
::callout{icon="i-heroicons-information-circle" color="blue"}
This setting applies to the device you are using.
::
## Buttons
The **Buttons** tab sets how the player and event buttons appear. Each setting is offered as **Name**, **Short Name** or — for events — **Icon**.
- **Player Buttons** — display the players' full name or short name.
- **Event Buttons** — display the events' full name, short name or icon.
Each group also has a **Size** setting with the options **Auto**, **XS**, **S**, **M**, **L** and **XL**.
**Auto** uses the best size for the device, which is usually the right choice. Short names, icons and smaller buttons are all useful on phones and tablets.
## Appearance
The **Appearance** tab selects the theme.
::callout{icon="i-heroicons-information-circle" color="blue"}
The theme applies to this device only.
::
## Privacy & Consent
The **Privacy & Consent** card allows you to update your consent preferences for analytics and tracking.
---
URL: https://teamoppy.com/docs/tagger/installation
# Installation
Tagger is available in two forms: a **web app** (PWA) that runs in any modern browser and can be installed on almost any device, and a **native desktop app** for Windows and macOS.
The web app covers the full tagging workflow and is the quickest way to get started. The desktop app covers everything in the web app and adds features that only run on the desktop, such as the [video utilities](/docs/tagger/videoutils/introduction) and [Analytics 360](/docs/tagger/analytics360/introduction) — see [Desktop App](#desktop-app) below.
---
## Web App (PWA)
The Tagger web app is a Progressive Web Application (PWA). PWAs can be installed directly from the browser onto your device — no app store required — and work across smartphones, tablets, and desktop computers. Once installed, the app behaves just like a native app and can be used offline.
> **Recommended browser: Google Chrome.** While Tagger works in most modern browsers, Chrome is recommended to ensure full functionality across all features.
Visit [tagger.teamoppy.com](https://tagger.teamoppy.com) to get started.
### Installing from the App
When you open Tagger in a browser, Tagger may offer to install itself with a small banner at the bottom of the screen. Select **Install** — or **How to install** if your browser needs the steps — and follow the instructions shown.

You can also install Tagger at any time from the **Install** button on the Welcome screen, or from the **Install app** section of your profile menu.
::callout{icon="i-heroicons-information-circle" color="blue"}
The banner shows at most once a day and stops appearing after a few dismissals. Select **Don't show again** to stop it immediately, or **Full instructions** to open this page.
::
The manual steps for each device are listed below.
### Android
1. Open [Tagger](https://tagger.teamoppy.com) in **Google Chrome**.
2. Tap the three-dot menu in the top-right corner.
3. Select **Add to home screen**.
4. Confirm by tapping **Add**.
5. The Tagger icon will appear on your home screen.
### iOS
#### Chrome (Recommended)
1. Open [Tagger](https://tagger.teamoppy.com) in **Chrome**.
2. Tap the share icon (square with an upward arrow).
3. Select **Add to Home Screen**.
4. Confirm by tapping **Add**.
5. The Tagger icon will appear on your home screen.

#### Safari
1. Open [Tagger](https://tagger.teamoppy.com) in **Safari**.
2. Tap the share icon (square with an upward arrow).
3. Select **Add to Home Screen**.
4. Confirm by tapping **Add**.
5. The Tagger icon will appear on your home screen.

### Desktop (Browser)
1. Open [Tagger](https://tagger.teamoppy.com) in a PWA-compatible browser (Chrome, Edge, or Firefox).
2. Click the install icon in the address bar, or open the browser menu and select **Install Tagger**.
3. Confirm the installation when prompted.
4. Tagger will be added to your applications and can be launched independently of the browser.
### Updates
When a new version of Tagger is released, a **New Version Available** prompt appears. Select **Reload Now** to update straight away, or **Later** to carry on and update the next time you open Tagger.
---
## Desktop App
A native desktop application is available for **Windows** and **macOS**, offering tighter OS integration and enhanced video playback performance. In addition to everything available in the web version, the desktop app includes exclusive features:
- **Live video capture** — capture directly from connected video devices during a session
- **HLS to MP4 converter** — convert HLS streams to MP4 for local use
- **Trim & Copy** — trim and copy video clips without leaving the app
- **Auto-save to local database** — games are automatically saved to a built in app database, ensuring your data is always preserved even without an internet connection
- **Analytics 360** — the analytics workspace for loaded games, which runs only in the desktop app
### Windows
Tagger Desktop is available through the Microsoft Store, which handles installation and future updates automatically.
1. Open the [Tagger Desktop listing on the Microsoft Store](https://apps.microsoft.com/store/detail/9PNXNJMQJ47W?cid=DevShareMCLPCS), or search for **Tagger** in the Microsoft Store app.
2. Click **Get** to install.
3. Once installed, launch Tagger from the Start menu.
### macOS
1. Download the latest `.dmg` installer from the [Launchpad](/launchpad).
2. Open the downloaded `.dmg` file.
3. Drag the **Tagger** app into your **Applications** folder.
4. Launch Tagger from your Applications folder or via Spotlight.
> **Security prompt:** On first launch, macOS may display a warning that the app is from an unidentified developer. To proceed, open **System Settings → Privacy & Security** and click **Open Anyway**.
### Updates
The Windows app is installed and updated through the Microsoft Store.
The macOS app checks for updates automatically. Once a new version has been downloaded, an **Update ready** notice appears in the bottom right of the window with the version number, offering **Install now & restart** or **Install later**.
---
## Offline Use
Once installed, Tagger can be used without an internet connection. To ensure offline access, make sure you are **logged in before going offline** — authentication requires connectivity.
### No internet? Use a mobile hotspot.
If your device is offline and you are not yet logged in, you can share your phone's mobile data connection as a Wi-Fi hotspot. Connect your tablet or laptop to that hotspot, log in to Tagger, then disconnect and continue working offline. See [How to Turn Your Phone Into a Wi-Fi Hotspot](https://uk.pcmag.com/mobile-phones/41270/how-to-turn-your-phone-into-a-wi-fi-hotspot) for device-specific instructions.
---
If you have any questions or need further assistance, please contact us at [info@teamoppy.com](mailto:info@teamoppy.com).
---
URL: https://teamoppy.com/docs/tagger/03a.data-management
# Data Management
A guide to how Tagger stores your data and the options available for saving, opening and backing up your games, squads and configurations.
## Overview
Tagger is available as both a web application and a desktop application. While both versions support saving to your local device and to a cloud workspace, the way data is stored internally differs between the two. Understanding this will help you protect your data and adopt the right workflow for your needs.
## Tagger Web
In the web version of Tagger, all data — including games, squads and configurations — is held in your **browser's local cache**. This means your data is tied to the specific browser and device you are using, and is not automatically persisted anywhere else.
::callout{icon="i-heroicons-exclamation-triangle" color="amber"}
Browser cache can be cleared automatically by the browser or manually by the user. This would result in permanent data loss. It is strongly recommended to save your data to your local device or a cloud workspace after every session.
::
### Saving Your Data
To safeguard your work, save your data to one of the following locations after each session:
- **Local device** — export your game, squad or configuration as a JSON file directly to your device. These files can be re-imported into Tagger at any time, on any device.
- **Cloud Workspace** — connect to OneDrive or Google Drive and save your files to the cloud. This gives you access to your data from any device and makes it easy to share with team staff or players.
For full details on setting up and using a Cloud Workspace, see the [Cloud Workspace](/docs/tagger/cloud-workspace) documentation.
### Saving a Game
From the Game menu, select **Save Game**. You will be prompted to choose whether to save to your local device or to your cloud workspace.
### Saving a Squad
In the Squads section, on the individual Squad menu select **Save**. You will be prompted to choose whether to save to your local device or to your cloud workspace.
### Saving a Configuration
In the Configuration section, on an individual Configuration menu select **Save Configuration**. You will be prompted to choose whether to save to your local device or to your cloud workspace.
### Opening and Importing Data
To re-open a previously saved file, use **Import Game** in the Game menu, or the corresponding import option in the Squads or Configuration section. Files can be loaded from your local device or directly from your cloud workspace.
---
## Tagger Desktop
The desktop application offers the same save and open options as the web version, with one important addition: Tagger Desktop includes an **in-built local database** that automatically persists your data as you work.
### Automatic Database Saving
Every game you create or modify in Tagger Desktop is automatically saved to the local database on your device. There is no need to manually save to avoid losing your work mid-session — your progress is preserved continuously in the background.
### Games Page
The **Games page** in Tagger Desktop provides a central view of all games stored in the local database. From here you can:
- Re-open any previously created or imported game
- Review game details at a glance
- Delete games you no longer need
### Exporting and Backing Up Your Data
Even though Tagger Desktop saves automatically to its local database, it is good practice to also save a copy of your game to your local file system or cloud workspace on a regular basis. This provides an additional layer of protection in the event of device failure or data corruption, and makes it straightforward to share games with others or access them from a different device.
To export a game, squad or configuration, use **Save Game** in the Game menu, or the save option in the Squads or Configuration section, and choose your preferred destination.
### Database Backup and Restore
Tagger Desktop also provides the ability to back up and restore your **entire database** in a single operation. This includes all games, squads, configurations, events and other application data. A full database backup is the safest way to protect all of your data at once.
::callout{icon="i-heroicons-light-bulb" color="green"}
It is recommended to create a database backup on a regular basis — ideally once a week, or after adding a new game, configuration or squad. This ensures you always have a recent snapshot to fall back on in case of device failure or accidental data loss. Also make a backup before upgrading the application or moving to a new device.
::
#### Creating a Database Backup
To create a full database backup:
1. Open the **Info** section from the application menu.
2. In the **Desktop App Information** card, click the **Backup Database** button.
3. Choose where to save your backup:
- **Cloud Workspace** — saves the backup directly to your connected OneDrive or Google Drive workspace (requires a connected cloud workspace).
- **Local File System** — saves the backup as a file on your local device.
The backup file contains a complete snapshot of your database at that point in time, including the number of games, events and database size for your reference.
#### Restoring from a Database Backup
To restore your database from a previous backup:
1. Open the **Info** section from the application menu.
2. In the **Desktop App Information** card, click the **Restore Database** button.
3. Choose the source of your backup:
- **Cloud Workspace** — browse and select a backup file from your connected cloud workspace.
- **Local File System** — select a backup file from your local device.
::callout{icon="i-heroicons-exclamation-triangle" color="amber"}
Restoring from a backup will replace your current database with the contents of the backup file. Any data created after the backup was taken will be lost. Consider creating a new backup of your current database before performing a restore.
::
---
URL: https://teamoppy.com/docs/tagger/03b.squads
# Squads
Squads allow you to define your players once and reuse them across multiple games. Taking the time to set up your squads before you begin tagging will accelerate game creation and ensure that player data remains consistent throughout your season.
## Why Set Up a Squad?
Well-configured squads are foundational to an efficient Tagger workflow. They provide two key benefits:
- **Accelerated game creation** — when adding a team to a game, selecting an existing squad automatically populates the player list, eliminating the need to enter players manually for every fixture.
- **Data consistency** — player names and numbers are standardised across all games, enabling accurate cross-game comparisons and reliable season-level reporting.
## The Squads Page
The Squads page provides a central view of all squads you have created or imported. From here you can create new squads, import squads from a file or cloud workspace, and manage your existing squads.
If no squads have been created yet, you will be presented with two options to get started:
- **New Squad** — create a squad from scratch.
- **Import Squad** — import a previously saved squad from your local device or cloud workspace.
Once squads exist, both options remain available via the buttons in the top-right corner of the page.
## Creating a Squad
Click **New** to open the create squad dialog. Enter a name for the squad and click **Create**. The Squad editor will open, where you can complete the full squad details across the available tabs.
## The Squad Editor
The squad editor is organised into three tabs: **Details**, **Players**, and **Starting Team**.
### Details
Configure the squad name, an optional description, and the team colours (background colour and text colour). The chosen colours are applied throughout Tagger to visually distinguish the two teams during tagging and across all reports.
### Players
Add and manage the players within the squad. Each player record contains the following fields:
| Field | Description |
|---|---|
| **Number** | The player's squad number. Must be unique within the squad. |
| **Name** | The player's full name. |
| **Short Name** | An abbreviated name of up to 6 characters, used in space-constrained views such as pitch visualisations. |
Click the **+** button to add a new player. Click any existing player row to edit or delete that player's details.
### Starting Team
The Starting Team tab allows you to define the default lineup and substitutes for the squad. Selecting a squad in the **Team A** or **Team B** step of game setup pre-fills the team name and lineup from here, and **Reset from Squad** in the team actions menu rebuilds the lineup from the squad at any time.
Configure the **Number of Starting Players** and **Number of Substitutes** to divide the squad list into three groups:
- **Starting Team** — the first *n* players in the squad list, where *n* is the configured number of starting players.
- **Substitutes** — the following group of players, up to the configured substitute count.
- **Extended Squad** — all remaining players beyond the starting and substitute allocations.
To reorder players, click a player to select them (highlighted in blue), then click a second player to swap their positions. Repeat as needed to arrange the lineup in your preferred formation order.
::callout{icon="i-heroicons-information-circle" color="blue"}
The starting team defined within the squad serves as a default only. Once a squad has been added to a game, the starting lineup for that game can be adjusted independently within the game details, without affecting the underlying squad definition.
::
## Saving a Squad
To save a squad, click **Save** on the squad card and choose whether to save to your local device or cloud workspace. For full details on saving and backup options, see the [Data Management](/docs/tagger/03a.data-management) documentation.
## Importing a Squad
Click **Import** to load a previously saved squad. Squads can be imported from two sources:
- **Cloud Workspace** — browse and select a squad file from your connected OneDrive or Google Drive workspace.
- **Local File System** — select a `.json` squad file from your device.
If the imported squad already exists in Tagger (matched by ID), it will be updated. If it is a new squad, it will be added to your squad list.
## Additional Squad Actions
The following actions are available from the squad card menu:
- **Edit** — open the squad in the editor to update its details or player list.
- **Copy** — duplicate the squad under a new name. This is useful for creating seasonal variants or alternating strips from an existing squad.
- **Download** — export the squad as a `.json` file directly to your device.
- **Delete** — permanently remove the squad from Tagger.
::callout{icon="i-heroicons-exclamation-triangle" color="amber"}
Deleting a squad removes it from Tagger's local storage only. It does not affect any games that were previously created using that squad, nor does it delete any saved squad files from your device or cloud workspace.
::
---
URL: https://teamoppy.com/docs/tagger/live-tagging-without-video
# Live Tagging without Video
This guide covers the recommended live tagging workflow - capturing events as the match happens, without a pre-recorded video. You can add the video afterwards if you want to review the footage.
::callout{icon="i-heroicons-information-circle" color="blue"}
If you are recording the match with a connected camera, see [Live Video Capture](/docs/tagger/videoutils/live-capture), which is available in Tagger Desktop.
::
## Get Started
Open [Tagger](https://tagger.teamoppy.com) in your browser (Chrome is recommended).
## Create a New Game
In Tagger, open the **Game** menu and select **New**.
### Enter Game Details
Game setup is a four step wizard: **Setup**, **Team A**, **Team B** and **Video**.
- **Setup** - optionally enter competition, date and venue details, then select your **Sport Configuration**. If this is your first session the configuration list may be empty: select **Import Template**, choose the **TeamOppy Catalog**, then select a template. You can then adjust the players, subs, periods and minutes per period for this game.
- **Team A** and **Team B** - pick a squad to pre-fill the team name and lineup, or enter the team manually. Set the name, logo and colours, and build the lineup in the Editor or Picker view.
- **Video** - skip this step, since live video is handled after the game.
- Select **Save**.
## Run the Match Timer
The match clock is displayed in a card in the top bar of the Tagger page. The card holds the timer settings, the play/pause control, the period number, the clock and the stop button for the current period.
### Start the Game
Click the green play button in the clock card. The clock starts running.

The tune icon at the start of the card opens the **Timer settings**, where you can change the **Period**, set the number of **Periods** and their **Length** for normal and extra time, switch the clock to count down, nudge the clock backwards or forwards, and **Reset Timer**.
### Tag Events
Once the timer starts, player and event buttons become available.
- Select a player or event to begin tagging.
- If an event requires a player selection, you will be prompted to select the player.
- Similarly if a position is required then the position graphic will be displayed for you to select the position.
### End a Half or Period
Click the red stop button in the clock card, then confirm in the **End Period?** dialog. The clock resets to 0:00 and the period number advances automatically.

### Switch Sides
If you are viewing the match side-on (for example, from the touchline or stands), you may want to switch home and away sides before kick-off or at period changes.
Open the **Tag Windows** dialog using the panel icon at the top of the event buttons, then click **Swap Sides**. On tablet and larger devices the same action is also available as a shortcut in the app bar while you are tagging. The label shows the arrangement you are switching to - either **Swap Sides (Team A left)** or **Swap Sides (Team A right)**.
Swapping sides changes the button panels. It also turns the position maps that show team end indicators 180°, so their ends match the new sides, while **Auto Swap Position Map Sides** is on (the default). Turn that preference off, or use a map that does not show team ends, and the map is left alone for you to rotate with the control described below. A new game always starts those maps at 0°.

### Rotating a Position Map
When you tag an event that requires a position, the position map opens with a rotation control above it. The button shows the current angle, and the menu offers **0°**, **90°**, **180°** and **270°**. This is the only setting that changes the orientation of a graphic.
At **0°** the graphic is drawn exactly as it is configured, so a pitch that is wider than it is tall appears in landscape:

At **90°** the same graphic is turned a quarter turn. This is useful for a pitch or court graphic on a device held upright, where it lines up better with the direction of play:

Rotation is a viewing and tagging preference stored on the device you are using. It survives a reload, is never sent to the server, and the positions you tag while rotated are saved in the graphic's own orientation - so rotating a map never affects your data.
A map that shows team end indicators is also turned automatically when you [swap sides](#switch-sides), unless you switch **Auto Swap Position Map Sides** off in [Preferences](/docs/tagger/02a.preferences).
### Start the Next Half or Period
The period number advances automatically when you end a period, so there is nothing to select. Click the green play button in the clock card to start the clock for the next period.
### End the Game
The match ends with the final period. End it in the same way - click the red stop button and confirm. Tagger has no separate Full Time button by design; ending the last period closes out the game.
## Data Management (Important)
Game data is stored in your browser local storage. If browser cache or local site data is cleared, unsaved game data can be lost.
After each game:
- Open the **Game** menu and select **Save Game**.
- Choose **Cloud Workspace** or **Local Device**.
- Save the file.
Apply the same process for configuration and squad data to avoid accidental loss.
### Download Tip (Chrome)
By default, Chrome saves files to the Downloads folder. For better file control, enable:
**"Ask where to save each file before downloading"**

### Share Between Devices
You can tag live on one device (for example, a tablet) and continue analysis on another (for example, a laptop).
- Save and transfer the game JSON file manually, or
- Save to **Cloud Workspace** for direct multi-device access and long-term storage.
[Cloud Workspace](https://www.teamoppy.com/docs/tagger/cloud-workspace)
---
URL: https://teamoppy.com/docs/tagger/video-tagging
# Video Tagging
Use Video Tagging to load a match video, align the match clock with the footage, and capture events in sync with playback.
## Before You Start
In **Preferences**, choose a workspace layout for video tagging. Tagger has three layouts:
- **Standard** - both teams' player buttons either side of the screen with the event buttons in the centre.
- **Video Analysis Mode** - the video and events table on the left and the player and event buttons on the right. Larger devices only.
- **Live Manager Mode** - a manager-centric view focused on your own team with a team formation pitch graphic.
**Video Analysis Mode** is recommended because it provides the most efficient layout for video review and tagging. See [Preferences](/docs/tagger/02a.preferences) for the full list of options.
## Create a New Game
Open the **Game** menu and select **New**.
### Enter Game Details
Game setup is a four step wizard: **Setup**, **Team A**, **Team B** and **Video**.
- **Setup** - optionally add competition, date and venue details, then select your **Sport Configuration**. If this is your first session the configuration list may be empty: select **Import Template**, choose the **TeamOppy Catalog**, then select the appropriate template. You can then adjust the players, subs, periods and minutes per period for this game.
- **Team A** and **Team B** - pick a squad to pre-fill the team name and lineup, or enter the team manually. Set the name, logo and colours, and build the lineup in the Editor or Picker view.
- **Video** - choose your video source, then select **Save** in the top right of the wizard.
### Select a Video Source
Tagger supports up to four video sources, numbered 1 to 4 in the **Video** step. Tagger supports the following source types:
- Local File
- YouTube
- Vimeo
- HLS URL
- MP4 URL
- Live Camera (desktop app only)
For **YouTube**, **Vimeo**, **HLS URL** and **MP4 URL**, paste the video link. For **Local File**, browse to the file on your device and select it.

## Set Period Start and End Times
Once the video source is set, the video loads in Tagger and the timer card appears directly below the player. Before you begin tagging, define the start and end points for each half, quarter or period so the match clock stays aligned with the video timeline.
The card holds, from left to right: the video transport (skip back, skip interval, skip forward, play/pause, reload), the period number, the clock, the timer settings, and the **Start** and **End** buttons.
You never choose a period number. The period is worked out from the period boundaries you record, and a guidance line under the card always tells you the next action to take.
1. Use the video controls to move to the start of the match, then pause playback.
2. Select **Start**. This records the start of period 1 at the current video position.

The guidance line now reads: Period 1 in progress. Click End when the period finishes.
3. Move the video to the end of the current period.
4. Select **End**.
The period is closed, the clock resets to 0:00 and the next period is selected automatically. The guidance line now asks you to move the video to the start of the next period and select **Start**.
5. Repeat the same process for each remaining period.
Once the periods are recorded, the clock and the period number follow the video position automatically while the video plays, so you can scrub the video without losing the period you are in.
## Begin Tagging
Once all periods are set:
- Return to the start of the match and start playback.
- Confirm that the match timer advances in sync with the video.
- When synchronization is correct, the player and event buttons become available and tagging can begin.
## Automatic Pause and Play
Automatic Pause and Play helps you capture events more accurately, especially during complex sequences that include labels, linked events, or position maps.
When you select a player or event button, playback pauses automatically so you can complete the tag entry precisely. After the event is saved, playback resumes automatically.
---
URL: https://teamoppy.com/docs/tagger/synchronize-video
# Synchronize Video
Use this workflow when a match was tagged live without video and the video is added afterwards. Sync Mode lines your previously tagged events up with the video, so they can be reviewed accurately in post-game analysis.
## Before You Start
1. Save a backup of the game:
Game menu → Save Game
2. Confirm you have access to the correct video file.
Saving the game creates a local JSON backup you can restore if needed.
## 1. Add the Video Source
1. Open the game.
2. Go to:
Game menu → Edit
3. Add the correct video source in the **Video** step of the wizard and save.
## 2. Open the Timeline
1. Open Preferences and switch to **Video Analysis Mode** (or the Standard view).
2. Open the **Timeline** tab below the event windows.
The timeline shows your tagged events against the video duration, with a solid **P1** marker and guide line for the start of each period and a dashed **P1 end** marker for the end.
## 3. Turn on Sync Mode
Click **Sync Mode** in the top right of the timeline. The Sync Mode panel opens with three steps.
### Step 1 - Pick the event
Click the event in the timeline that you can identify in the video - usually the start of period 1 - to use it as the anchor.
If the event has no video time yet, as is the case for a game tagged live, the panel says so and uses its game clock to work out the shift instead. The event gets a video time when you apply.
### Step 2 - Move the video
Move the video to where that event actually happens, then click **Use this position** to lock it in.
Use the nudge buttons (-5s, -1s, -0.1s, +0.1s, +1s, +5s) to fine-tune the position. The panel shows the current video time and the offset it is about to apply, for example +2.1s later:

Once the position is locked the panel shows **Locked at**, and you can play or scrub the video freely - the line-up will not change until you click **Re-position**.
### Step 3 - Review and apply
The summary shows how many events will move and by how much, with a preview of the first few events before and after the shift.
Click **Apply sync**.
## Result
Every event at or after the anchor is shifted by the same offset, so your previously tagged live events line up with the video. Only the video times of the events are changed - the tagger clock times are left alone.
An **Applied** card and a snackbar confirm how many events moved, with an **Undo** option if you need to reverse it.

::callout{icon="i-heroicons-light-bulb" color="green"}
If an event would fall before the start of the video, its video time is held at 0:00 and the panel warns you before you apply.
::
## Note
Complete this synchronization workflow before adding new video-tagged events. If re-synchronization is required after additional tagging, run Sync Mode again - the panel always reads the anchor's current video time, so a second pass uses fresh timings.
Sync Mode is available in the Studio as well as in the Tagger. See [The Timeline](/docs/tagger/studio/timeline).
---
URL: https://teamoppy.com/docs/tagger/tag-windows
# Tag Windows
Focus your event buttons on the events you need, and swap the sides of the tagging screen.
## Overview
Tag Windows allow you to create focused windows for tagging specific events. A tag window displays only the events you choose, so you can concentrate on a subset of your event buttons — for example your own team's events, or a particular phase of play.
Tag Windows are particularly useful for teams using [Tagger Rooms](/docs/tagger/tagger-rooms) for multi-user tagging and live sharing, because each analyst can work in the window that matches their job.
## Switching Tag Windows
The panel icon at the top of the event buttons opens the **Tag Windows** dialog. It contains:
- **Main** — the default window, showing all enabled events.
- One button for each custom tag window set up in your configuration.
Select a window to switch the event buttons to it. If no custom tag windows have been configured yet, the dialog tells you where to create them.
## Swapping Sides
The same dialog holds the **Swap Sides** button. On tablet and larger devices the same action is also available as a shortcut in the app bar while you are tagging.
Use it when you are viewing the match side-on — from the touchline or the stands, for example — so that the on-screen team ends match the direction of play.
The button label always shows the current arrangement:
- **Swap Sides (Team A left)** — Team A's buttons are on the left.
- **Swap Sides (Team A right)** — Team A's buttons are on the right.
Swapping sides changes the event and player button panels. It also turns position maps that show team end indicators 180°, so the ends on the graphic match the new sides, while the [Auto Swap Position Map Sides](/docs/tagger/02a.preferences) preference is on — which is the default. Turn that preference off to leave the maps alone and rotate them yourself with the [rotation control](/docs/tagger/live-tagging-without-video#rotating-a-position-map). A new game always starts those maps at 0°.

## Configuring Tag Windows
Tag windows are created in the configuration, so they can be tailored to each sport and shared with your team.
1. Open **Configuration**.
2. Select **Events**.
3. Open the **Tag Windows** tab.
From there you can add, edit, copy and delete tag windows. Each tag window has the following settings:
| Setting | Description |
| --- | --- |
| **Tag Window Name** | Required. The name shown on the button in the Tag Windows dialog. |
| **Enabled** | Switches the window on or off. |
| **Display** | **Both**, **Team A** or **Team B** — controls which team windows are shown. |
| **Events** | Required. The events that this window will display. |
## Next Steps
- [Event Configuration](/docs/tagger/configuration/event-configuration) — configure the events themselves
- [Live Tagging without Video](/docs/tagger/live-tagging-without-video) — the live tagging workflow
---
URL: https://teamoppy.com/docs/tagger/insights-passages-of-play
# Insights - Passages of Play
How to configure Passages of Play and Maps
## Introduction
Passages of Play insights are a great way to analyse sequences of events and how often they occur during a game. To configure a passage of play you need to specify at minimum a start event and an end event for the sequence. You can add events that should always be included in the particular passage of play and also events that should not be in the passage of play (event excludes).
A great usage of passages of play insights is to see where the source of scores came from in a game.
### Passages of Play Configuration
The video below is an example of configuring scores where the source of the score was a turnover won.
:video-player{videoId="5ncWqVsEI3k"}
### Dashboard Designer
Passages of play tables are available in the Standard dashboard however maps can only be added to the custom dashboards. See video below showing how to add to a custom dashboard.
:video-player{videoId="bfjpO51daTw"}
---
URL: https://teamoppy.com/docs/tagger/capture-event-time-duration
# Capture Event Time Duration
How to capture event time duration
## Introduction
In many sports Analysts will capture the time duration of event, for example Possession time, or Attack time. In Tagger, setting the Capture Time Duration flag in the Event configuration enables users to capture the time duration. When a user clicks on the event button, the event timer will be activated. The event is deactivated by either clicking on the event button a second time or by configuring deactivation events in the event configuration.
### Event Time Duration
The video below is a good example of how the time duration capture works for Possession.
:video-player{videoId="Q3WTV0MmnoQ"}
### Configuration
Configuring events to capture the time duration is simply a case of setting the "Capture Time Duration" flag in the Events configuration and added any deactivation events. The video below shows how to do this, along with configuring a Possession donut chart and Possession Comparison Table.
:video-player{videoId="Lo6kB782u4E"}
---
URL: https://teamoppy.com/docs/tagger/cloud-workspace
# Cloud Workspaces
Connect, save, access on any device, manage and share your data in a cloud workspace
## Introduction
Cloud Workspaces allow you to store your data to the cloud, easily access your data on any device and share your data with members of your team management or players.
The Cloud Workspace functionality integrates with OneDrive and Google Drive to store your files.
### Connecting
The video below shows how to Connect to your OneDrive and select a folder as your cloud workspace (the same process applies for Google Drive). When you have selected your workspace folder, Tagger will create default folders for your games, squads and configurations in the workspace folder.
Note: you need a OneDrive or Google Drive account - both have a free tier to get you started.
- https://onedrive.live.com/
- https://drive.google.com/
The storage allowance on the Free tier is more than enough to manage your Tagger data.
:video-player{videoId="gocRi8fjfE4"}
### Saving and Importing Games
The video below shows how to save games to, and import games from, the cloud workspace. When saving, if the file already exists in the workspace you have the option to replace it or create a new copy.
:video-player{videoId="vXRhAVSmzxo"}
### Saving and Importing Squads
The video below shows how to save squads to, and import squads from, the cloud workspace. When saving, if the file already exists in the workspace you have the option to replace it or create a new copy.
:video-player{videoId="45f7I40CdQo"}
### Saving and Importing Configurations
The video below shows how to save configuration templates to, and import them from, the cloud workspace. When saving, if the file already exists in the workspace you have the option to replace it or create a new copy.
:video-player{videoId="h35KdO_TJ9M"}
### Sharing the workspace
The below video shows how to share your workspace with other users. And how the other user would access the shared workspace.
Note: the users who you will share to must have a OneDrive account setup prior to you sharing the workspace with them. Workspace Sharing is currently only available for OneDrive
:video-player{videoId="dApMFAhRbxQ"}
### Switching the workspace
You may have more than one workspace. You can easily switch between the workspaces in the Manage Workspaces section.
Note: after switching you may need to import the workspace specific squads and configurations before creating new games.
:video-player{videoId="lAlxEjeFRo4"}
### Deleting files
You can delete files in the Manage Workspaces section.
This will move the files to your OneDrive or Google Drive trash. To fully delete the files users should login to OneDrive or Google Drive directly and empty the trash bin.
:video-player{videoId="At4BvbymZMo"}
---
URL: https://teamoppy.com/docs/tagger/cloud-workspace-images
# Cloud Workspace - Image Library
Upload, manage and select from your Cloud Workspace Image Library
## Introduction
The Cloud Workspace Image Library provides an easy way to Upload, Manage and Select Images in your game Dashboards and Reports.
## Image Library
Upload, Manage and Select Images from the Image Library.
:video-player{videoId="Sn7mGx0WliM"}
---
URL: https://teamoppy.com/docs/tagger/sharing-games
# Sharing a Game
Share your game with coaching staff, team management and players for collaborative review and analysis.
## Overview
Tagger provides two methods for sharing a game with others — whether that is a coaching colleague, a member of team management, or a player reviewing their own performance. Both methods are simple to use and require no technical knowledge on the part of the recipient.
::callout{icon="i-heroicons-information-circle" color="blue"}
Recipients **do not require a Tagger account** to view a shared game. Shared games are presented in a read-only Dashboard view, meaning anyone with access to the file or link can open and review the game without signing up or installing anything.
::
---
## Method 1: Direct Tagger Link (Recommended)
The recommended approach is to generate a direct Tagger link and distribute it to your team. When a recipient opens the link, they are taken directly into the Tagger Dashboard in read-only mode — no account, no installation, no friction.
This method uses Google Drive to host the game file and requires the recipient to have an internet connection.
### Steps
**1. Download the game file**
From the Share page, click **Download Game** to export the current game as a JSON file to your device. Alternatively, use **Game menu → Save Game** to save the file to your preferred location.
**2. Upload the file to Google Drive**
Open [Google Drive](https://drive.google.com) and upload the JSON file to a suitable location in your Drive.
**3. Set the sharing permissions**
Right-click the file in Google Drive and select **Share**, then **Share** again. Set the access level to **Anyone with the link** — this ensures recipients can open the file without requiring a Google account. Click **Copy link** to copy the file's shared URL to your clipboard.
**4. Generate the Tagger link**
Return to the Tagger Share page and paste the Google Drive link into the text field. Click **Generate** to produce a direct Tagger Dashboard link for the game.
**5. Distribute the link**
Send the link to your team members via email, a messaging app, or any other channel. On supported devices, the **Share Link** button will open your device's native sharing options for added convenience.
**6. Recipients open the game**
When a recipient clicks the link, they are taken directly into the Tagger Dashboard where they can review the full game in read-only mode — no account or installation required.
An example of a direct Tagger link looks like this:
[https://tagger.teamoppy.com/?gdid=1Me-_pyj4nFYi0RcqSVY9rKu1DQuRJrbV](https://tagger.teamoppy.com/?gdid=1Me-_pyj4nFYi0RcqSVY9rKu1DQuRJrbV)
::callout{icon="i-heroicons-light-bulb" color="green"}
**Tip:** If your game includes video, host it on YouTube so that team members can watch the footage alongside the game data. Set the YouTube URL as the video source when creating the game, or update it later via **Game menu → Edit → Video**.
::
---
## Method 2: Manual File Sharing
If you prefer not to use Google Drive, you can export the game file and send it directly to your team members. The recipient then imports the file into their own Tagger session.
### Steps
**1. Download the game file**
From the Share page, click **Download Game** to export the game as a JSON file to your device.
**2. Send the file**
Distribute the file to your team members via email, a file-sharing service, or any other method of your choosing.
**3. Recipients import the game**
Once the recipient has the file, they can load it into Tagger via **Game menu → Import Game**. The game will be imported and ready to review immediately.
---
## Choosing a Method
For most teams, the **Direct Tagger Link** method offers the best experience — recipients simply click a link and are taken straight into the game, with no file handling required. Manual file sharing remains a practical alternative for situations where Google Drive is not available or where recipients are working offline.
---
URL: https://teamoppy.com/docs/tagger/tagger-rooms
# Tagger Rooms
Tag and analyse games collaboratively with multiple analysts in real time.
## Overview
Tagger Rooms allow multiple users to share a live game session across different devices. All participants see the same game data, events and timer state in real time — making it ideal for team environments where several analysts are tagging simultaneously or a coach is monitoring a live dashboard while the tagging is happening elsewhere.
A typical setup might involve three or four analysts tagging different aspects of the same game, alongside an additional user monitoring the live Dashboard for instant insights.
::callout{icon="i-heroicons-exclamation-triangle" color="yellow"}
**All users must have their own individual Teamoppy account.** Rooms are linked to user accounts and every participant — including read-only viewers — must be signed in to join.
::
---
## Subscription Requirements
| Action | Required Plan |
|---|---|
| Create a Room | Analyst Elite |
| Delete a Room | Analyst Elite |
| Reset a Room | Analyst Elite |
| Join a Room | Any plan (Analyst, Analyst Plus, Analyst Elite) |
Users on plans other than Analyst Elite can still participate fully as room members — they simply cannot create or administer rooms.
---
## Creating a Room
Only users with an **Analyst Elite** subscription can create a room.
1. Navigate to the **Room** tab in Tagger.
2. Click **Room → Create**.
3. Enter a **Room Name** and a **Room Passcode**, then click **Save**.
The room is now active and you are automatically assigned as the **Leader** (room owner).
::callout{icon="i-heroicons-information-circle" color="blue"}
Only one room can exist per user at a time. Creating a new room will remove any previously created room associated with your account.
::
---
## Inviting Members
The room Leader manages membership from the **Room Members** panel.
1. Enter a member's **email address** in the **Add Members Email** field.
2. Click the **+** button (or press Enter) to send the invite.
3. The invited user will see the room appear in their **Room Invites** list.
::callout{icon="i-heroicons-information-circle" color="blue"}
A room can have a maximum of **4 members** at any one time. The room Leader counts as one of those members.
::
Previously used email addresses are cached in the input field for quick reuse. You can remove a cached address by clicking the delete icon next to it in the dropdown.
To remove a member, click the trash icon beside their entry in the Room Members table. The member will lose access to the room immediately.
---
## Joining a Room
Members can join a room after they have been invited.
### Room Invite
If the room Leader has added your email address, the room will appear in your **Room Invites** list. Click **Refresh** to check for new invites, then click the room card and **Join** to enter.
### Passcode
1. Click on the Room invite.
2. Enter the **Room Passcode**.
3. Click **Join**.
---
## Room Controls and Data Sync
Once inside a room, each member can independently control how they participate in the shared session using two toggles in the Room Details panel.
### Listen for Game Updates
When enabled, the member's local game data — events, game details, team formations and timer state — is automatically updated whenever another member pushes changes to the room. This is the recommended setting for anyone monitoring the Dashboard live.
### Send Game Updates
When enabled, any events or changes the member tags locally are automatically broadcast to all other room members. Analysts who are actively tagging should have this enabled.
::callout{icon="i-heroicons-light-bulb" color="green"}
**Recommended setup for live tagging:** All tagging analysts should have both **Send Game Updates** and **Listen for Game Updates** enabled. A Dashboard-only viewer should enable **Listen for Game Updates** only and disable **Send Game Updates**.
::
### Auto Pause
When tagging live video, it is recommended to **disable** the Auto Pause feature. The Auto Pause toggle is available in the Room Details panel.
---
## Syncing the Room
At any time, a member can manually trigger a full data sync using the **Sync Room** button in the Room Details panel. This downloads the latest game state from the room, overwriting the member's local copy — useful when rejoining mid-session or after a period of disconnection.
---
## Internet Connectivity Requirements
Tagger Rooms depend on continuous, low-latency connectivity for real-time event sharing, timer updates and room presence. For best performance, all members should use a stable, dedicated internet connection.
::callout{icon="i-heroicons-exclamation-triangle" color="yellow"}
**Avoid shared phone hotspots for live rooms.** When multiple devices are connected through one phone hotspot, bandwidth and latency can fluctuate significantly. This can lead to delayed updates, temporary disconnects, missed sync events and a poor live-tagging experience.
::
If possible, use reliable venue Wi-Fi or wired ethernet (where available), and run **Test Connection** before the match starts.
::callout{icon="i-heroicons-information-circle" color="blue"}
If you are considering a Tagger Rooms subscription, thoroughly test your full match-day setup (devices, venue network and user workflow) before purchasing. Performance depends on real-world network conditions.
::
---
## Testing the Connection
Use the **Test Connection** button to send a timestamped ping to all other room members. Each member will receive a notification showing who sent the test and when. This is useful for confirming that all participants are live and connected before a match.
---
## Handling Disconnections
If a member loses their connection to the room channel, the **Re-join** button will appear in place of the Sync Room and Test Connection buttons. Clicking **Re-join** reconnects the member to the room and re-syncs the game data.
The room's connection status is shown by the **Subscribed** chip in the Room Details panel header. If the chip is not visible, the member is not currently receiving live updates.
---
## Resetting the Room
The room Leader can reset the shared session at any time via **Room → Reset**. This clears all room data — game details, events, timer state and period data — for all participants.
::callout{icon="i-heroicons-exclamation-triangle" color="red"}
**This action cannot be undone.** All tagged events and game data will be permanently removed from the room for every member.
::
When the Leader resets the room, all other members receive a prompt asking whether they want to reset their local game data to stay in sync. Members can choose to accept or dismiss the request.
::callout{icon="i-heroicons-information-circle" color="blue"}
**Room Reset vs Game Clear:** Using **Game → Clear** only clears the game on your own device — it does not affect any other room member. Use **Room → Reset** to clear the game data for the entire room.
::
---
## Leaving or Deleting a Room
- **Leave Room** — Any member (including the Leader) can leave a room at any time via **Room → Leave**. The room continues to exist for remaining members.
- **Delete Room** — Only the Leader can delete a room via **Room → Delete**. This permanently removes the room and all associated data for all members. Only users with an Analyst Elite subscription can delete rooms.
---
URL: https://teamoppy.com/docs/tagger/faq
# Frequently Asked Questions
Quick answers to the most common questions about Tagger — covering video export, positioning, configuration and squads. If you don't find what you're looking for here, the guides in the sidebar cover each topic in more detail.
## Why does exporting a video take a long time in the Studio?
The time it takes to export a video depends on two main factors:
- **The processing power of your machine.** Exporting is a processor-intensive task, particularly when re-encoding footage and rendering drawing overlays. We recommend a machine with at least **4 CPU cores and 16 GB of RAM** for the best experience.
- **The size and specification of your source video.** Resolution, frame rate (FPS) and length all affect export time. For example, we have seen 70–80 minute games produce source files of over 13 GB. Videos of this size take considerably longer to export because every frame must be re-encoded — and clips that contain drawings take even longer still.
If you need to speed up exports, the most effective approach is to reduce the size of the source video before it reaches the Studio. You can ask your video operator to adjust their recording settings, or use a tool such as [HandBrake](https://handbrake.fr/) to re-encode the video to a smaller, more efficient specification.
## Why is my position map the wrong way around after teams swap sides in the second half?
When teams swap ends at half-time, you may want the position map turned round so that it matches the direction of play.
Maps that show **team end indicators** follow the **Swap Sides** button automatically while **Auto Swap Position Map Sides** is on, which is the default. The preference lives in **Preferences → Tagger View → Tagging Behaviour**.
If the preference is off, or the map does not show team ends, nothing is turned for you. Use the rotation control above the map while you are selecting a position. It offers 0°, 90°, 180° and 270°, and the setting is stored on the device you are using.

::callout{icon="i-heroicons-light-bulb" color="green"}
Each device keeps its own rotation setting, so set it on the device you are tagging with. See [Rotating a Position Map](/docs/tagger/live-tagging-without-video#rotating-a-position-map) for more detail.
::
## I imported a Configuration Template — can I add my own event buttons?
Yes. A Configuration Template is a starting point, not a fixed setup — you can edit the imported Configuration to add events, labels, links and other customisations to suit your workflow. See [Event Configuration](/docs/tagger/configuration/event-configuration) for full details.
## Do I have to add my players to every game manually?
No. You can create a **Squad** once and select it in the **Team A** or **Team B** step when you create a game — Tagger pre-fills the team name and lineup, so you never have to enter players manually again. See [Squads](/docs/tagger/03b.squads) for details.
---
URL: https://teamoppy.com/docs/tagger/analytics360/introduction
# Introduction
Analytics 360 is Tagger's advanced performance analysis module — a complete pipeline that transforms raw tagged event data into polished, presentation-ready insights. From the moment you load a game, you have access to powerful tools for cleansing, exploring, measuring, visualizing, and presenting your team's data, all within a single integrated workspace.
---
## What is Analytics 360?
Analytics 360 extends Tagger's tagging engine with a dedicated analytics environment purpose-built for sports analysts and coaches. Where Tagger captures the events, Analytics 360 makes sense of them — aggregating, filtering, and surfacing the patterns that matter most.
### Tagger vs. Analytics 360
The Tagger dashboard is optimised for **in-game and single-game analysis** — reviewing the current match, examining individual events, and making real-time coaching decisions. It gives you a focused lens on one game at a time.
Analytics 360 shifts the perspective to **season-wide performance**. By loading multiple games into the pipeline, you can analyse trends across an entire season, compare performances game-over-game, and build insights that span your full body of work. This season-level view unlocks capabilities that a single-game focus cannot:
- **Dashboards that reveal trends over time** — track metrics across weeks or months, identify patterns, and see how performance evolves.
- **Cross-game clip playlists** — curate video clips from different games into a single playlist, perfect for player development reels, opponent scouting, or themed review sessions.
- **Presentations that combine visualizations and playlists** — build slide decks that mix data-driven charts with video evidence, creating compelling narratives for coaching staff, players, and management.
The module is organised around a linear pipeline, but every stage remains accessible at any time. You can jump directly from a loaded game to building visualizations, or from an event query straight into a presentation deck. The pipeline provides structure without constraint.
::callout{icon="i-heroicons-light-bulb" color="blue"}
Analytics 360 is designed to work with games tagged in Tagger. If you're new to Tagger's tagging workflow, start with the [Tagger Introduction](/docs/tagger/introduction) before diving in here.
::
### Availability
::callout{icon="i-heroicons-information-circle" color="green"}
Analytics 360 is available exclusively in **Tagger Desktop** and requires the **Analytics 360 package** to be enabled on your account. It is not included with the base Tagger licence — contact your Teamoppy account manager or visit the [pricing page](/pricing) to add Analytics 360 to your subscription.
::
---
## The Analytics Pipeline
Analytics 360 is organised into ten workspaces — each a dedicated tab — that follow the natural flow of sports performance analysis:
### 1. Home
The landing page. See a high-level summary of your analytics environment, including loaded games, pipeline progress, event counts, and quick-access links to dashboards, playlists, and decks. When no games are loaded, Home guides you through the setup process with clear next steps.

### 2. Games
Select and load games into the analytics pipeline. The Games tab lists every game available in your Tagger database — choose which matches to load, monitor import progress, and manage the games available for analysis. Each loaded game becomes the foundation for every downstream capability.
### 3. Cleanse
Standardise and normalise event data before analysis. Define cleanse rules to rename teams, players, or event labels, merge duplicate entries, or exclude unwanted events. Cleanse ensures your data is consistent and accurate before it feeds into metrics and visualizations.
### 4. Explorer
Filter, search, and browse every tagged event across your loaded games. The Explorer tab provides a powerful query interface with column-level sorting, multi-dimensional filters (game, team, player, event name, period, and more), and direct links to video clips. It's the investigative heart of Analytics 360.
### 5. Playlists
Curate collections of video clips from tagged events — pulling from a single game or across your entire season. Build playlists manually from the Explorer, reorder clips, and play them back with multi-angle video support. Because Analytics 360 works across all loaded games, you can assemble clips from different matches into one playlist — ideal for player development reels, opponent scouting across multiple fixtures, or themed review sessions.
### 6. Measures
Define reusable event-count measures — simple, named aggregations like "Total Tackles", "Passes into the 22", or "Turnovers in Midfield". Measures are the building blocks that feed into calculated metrics and visualizations, giving you a consistent vocabulary for the events that define your sport.
### 7. Metrics
Create calculated metrics using a flexible expression editor. Combine measures, reference other metrics, apply arithmetic and statistical functions, and scope calculations to specific games, teams, or players. Metrics turn raw counts into meaningful performance indicators like "Tackle Success Rate" or "Average Possession Retention".
### 8. Viz
Design visualizations from your measures and metrics. Choose from KPI cards, bar and pie charts, line and area trends, position maps, and detailed data tables. Each visualization is saved independently and can be reused across multiple dashboards and decks.
### 9. Dashboards
Assemble visualizations into structured dashboards using a drag-and-drop layout designer. Arrange KPI cards, charts, tables, and position maps into rows and columns, apply global filters, and create multiple dashboards for different audiences — coaching staff, players, or management. Because dashboards draw from season-wide data, they excel at revealing trends over time: track a player's tackle success rate across ten games, compare team possession game-over-game, or monitor set-piece effectiveness as the season progresses.
### 10. Decks
Build slide-based presentation decks for meetings, reviews, and reports. Each slide can embed visualizations, playlist clips, rich text commentary, and custom backgrounds. Decks are where the pipeline's strengths converge — combine a chart showing season-wide trends with a playlist of key moments from different games on the same slide. Decks turn data into a narrative, blending statistical evidence with video proof for the most compelling team reviews.
---
## Key Concepts
Understanding these core entities will help you navigate the documentation and the Analytics 360 interface:
| Concept | Description |
|---|---|
| **Game** | A tagged match loaded into Analytics 360. Contains all events, teams, players, periods, and video source references. |
| **Event** | A single tagged occurrence within a game — a tackle, a pass, a score, or any custom event defined in your Tagger configuration. Each event carries metadata: time, team, player, period, and optional labels. |
| **Playlist** | A curated, ordered collection of video clips linked to specific events. Playlists can be played back, exported, and embedded in decks. |
| **Measure** | A named, reusable event-count definition — for example, "Total Tackles by Team A". Measures reference specific event names, teams, and optional filters. |
| **Calculated Metric** | An expression-based metric that derives a value from measures and other metrics. Supports arithmetic, ratios, and scoping by game, team, or player. |
| **Visualization** | A saved graphical or tabular representation of data — KPI cards, charts, position maps, or data tables — built from measures or calculated metrics. |
| **Dashboard** | A layout of multiple visualizations arranged in rows and columns, optionally filtered by a global scope. Dashboards are read-only in presentation mode. |
| **Deck** | A slide-based presentation composed of visualizations, playlist clips, and rich text. Decks are designed for sharing insights in meeting and review formats. |
---
## Getting Started
Analytics 360 is ready as soon as you open it — no additional setup or configuration is required. The workflow is simple:
1. **Load game data** — Load games from your Tagger database in the [Games](/docs/tagger/analytics360/games) tab to make them available for analytics.
2. **Explore tagged events** — Use the [Explorer](/docs/tagger/analytics360/explorer) to filter, sort, and inspect your event data.
3. **Build insights and decks** — Create measures, metrics, and visualizations. Assemble them into dashboards and presentation decks.
::callout{icon="i-heroicons-exclamation-triangle" color="yellow"}
Analytics 360 requires games that have been tagged in Tagger and saved to your Games database. The module does not support direct video import or live tagging — tagging must be completed in Tagger first.
::
---
## Feature Summary
| Tab | Purpose |
|---|---|
| Home | Landing page with pipeline summary, counts, and quick-access links |
| Games | Select and load games from your Tagger database |
| Cleanse | Normalise and standardise event data |
| Explorer | Filter, search, and browse all tagged events |
| Playlists | Curate and play video clip collections |
| Measures | Define reusable event-count measures |
| Metrics | Create calculated performance metrics |
| Viz | Design KPIs, charts, position maps, and tables |
| Dashboards | Assemble visualizations into structured dashboards |
| Decks | Build slide-based presentation decks |
---
## Next Steps
Start from the Home tab to get oriented, then load your first game and follow the pipeline through each workspace:
1. [Home](/docs/tagger/analytics360/01a.home) — Get an overview of your analytics environment
2. [Games](/docs/tagger/analytics360/games) — Load games from your database and manage your game library
3. [Cleanse](/docs/tagger/analytics360/cleanse) — Normalise event data for consistent analysis
4. [Explorer](/docs/tagger/analytics360/explorer) — Filter and browse your event data
5. [Playlists](/docs/tagger/analytics360/playlists) — Build clip collections from tagged events
6. [Measures](/docs/tagger/analytics360/measures) — Define the building blocks of your metrics
7. [Metrics](/docs/tagger/analytics360/metrics) — Create calculated performance indicators
8. [Viz](/docs/tagger/analytics360/viz) — Design visualizations for dashboards and decks
9. [Dashboards](/docs/tagger/analytics360/dashboards) — Assemble visualizations into dashboards
10. [Decks](/docs/tagger/analytics360/decks) — Build presentation decks for meetings and reviews
---
URL: https://teamoppy.com/docs/tagger/analytics360/01a.home
# Home
The Home tab is your Analytics 360 landing page — a high-level dashboard that surfaces the state of your entire analytics environment at a glance. From here you can see what is loaded, what has been built, and where to go next.
---
## Overview
When you first open Analytics 360 with no games loaded, Home presents a guided setup flow with clear next steps. Once you have loaded games, Home transforms into a pipeline summary that tracks your progress through every stage of analysis — from data import to presentation.

### What You See
Home is divided into three zones:
| Zone | Description |
|---|---|
| **Pipeline Summary** | A visual workflow showing each stage of the analytics pipeline with live counts — how many games are loaded, how many events are available, how many metrics have been defined, and more. |
| **Summary Cards** | Six stat cards displaying the current totals for loaded games, total events, playlists, calculated metrics, dashboards, and decks. |
| **Quick Access** | Direct links to your most recently used dashboards, playlists, and decks — or guidance on creating your first one if none exist yet. |
---
## Pipeline Summary
The pipeline summary maps your progress across the six core stages of the Analytics 360 workflow:
| Stage | What It Tracks | Example |
|---|---|---|
| **Import** | Number of games loaded into the analytics database. | *5 games* |
| **Explore** | Total event count across all loaded games. | *1,896 events* |
| **Highlight** | Playlists created from tagged events. | *0 playlists* |
| **Define** | Calculated metrics defined from measures. | *21 metrics* |
| **Visualize** | Visualizations built from measures and metrics. | *10 viz* |
| **Present** | Dashboards and decks assembled for sharing. | *0 dashboards, 0 decks* |
Each stage card acts as a shortcut — click any stage to jump directly to the corresponding tab.
---
## Summary Cards
Six cards beneath the pipeline summary provide an at-a-glance view of your analytics environment:
| Card | Description |
|---|---|
| **Games Loaded** | The number of games currently loaded into Analytics 360. Matches the count shown in the Games tab. |
| **Total Events** | The total number of tagged events across all loaded games, after cleanse rules have been applied. |
| **Playlists** | The number of playlists you have created. |
| **Calc Metrics** | The total number of calculated metrics defined in the Metrics tab. |
| **Dashboards** | The number of dashboards you have assembled. |
| **Decks** | The number of presentation decks you have built. |
Each card displays a single large number — zeroes are shown in a muted style to indicate areas you have not yet explored.
---
## Quick Access
The Quick Access panel provides direct entry points to your most important content:
- **Dashboards** — Links to your recently viewed or edited dashboards. When no dashboards exist, the panel displays a prompt to create your first one in the [Dashboards](/docs/tagger/analytics360/dashboards) tab.
- **Playlists** — Links to your recent playlists, or a prompt to build your first one in the [Playlists](/docs/tagger/analytics360/playlists) tab.
- **Decks** — Links to your recent presentation decks, or a prompt to create your first one in the [Decks](/docs/tagger/analytics360/decks) tab.
---
## Getting Started from Home
If this is your first time using Analytics 360, Home guides you through three steps:
1. **Load a game** — Click the *Load Games* prompt or navigate to the [Games](/docs/tagger/analytics360/games) tab to import your first tagged match.
2. **Explore your data** — Once a game is loaded, head to the [Explorer](/docs/tagger/analytics360/explorer) to browse events.
3. **Build insights** — Create [measures](/docs/tagger/analytics360/measures), [metrics](/docs/tagger/analytics360/metrics), and [visualizations](/docs/tagger/analytics360/viz) to surface the patterns that matter.
Once you have content in the pipeline, Home becomes a convenient launchpad — use it to monitor your environment and jump directly to any workspace.
---
## Next Steps
Home is the entry point. Follow the pipeline from here:
1. [Games](/docs/tagger/analytics360/games) — Load games from your database and manage your game library
2. [Cleanse](/docs/tagger/analytics360/cleanse) — Normalise event data for consistent analysis
3. [Explorer](/docs/tagger/analytics360/explorer) — Filter and browse your event data
---
URL: https://teamoppy.com/docs/tagger/analytics360/games
# Games
The Games tab is the entry point to the Analytics 360 pipeline. From here you select which tagged matches to load into the analytics engine, configure what supporting assets to auto-create during the load, and manage the set of games available for exploration, measurement, and visualization.
---
## Overview
The Game Loader displays every game stored in your Tagger database. Each row shows the match name, date, competition, and current load status. From this single view you can load individual games, bulk-load multiple selections, or unload games whose data you no longer need.

### Key Actions
| Action | Description |
|---|---|
| **Load** | Import a game's tagged events, labels, and metadata into the analytics database. Available for any game with a status of *Not Loaded*. |
| **Unload** | Remove a game's analytics data (events, labels, load history) from the analytics database. The original game record and its source events in the Tagger database are unaffected. |
| **Load Selected** | Bulk-load every checked game in a single operation. The Auto-Load Configuration dialog appears once and applies to all selected games. |
| **Load All** | Load every game in the database — useful when setting up Analytics 360 for the first time or after a rebuild. |
| **Rebuild** | Available from the toolbar. Re-processes all loaded games from scratch, re-applying cleanse rules and re-computing derived data. Useful after changing your Tagger configuration or adding new cleanse rules. |
### Status Indicators
Each game displays one of two statuses:
| Status | Meaning |
|---|---|
| **Not Loaded** | The game exists in your Tagger database but its events have not been imported into Analytics 360. You cannot explore or visualise this game's data until it is loaded. |
| **Loaded** | The game's events, labels, and metadata are available in the analytics database. Explorer, measures, metrics, visualizations, and all downstream tools can access this game. |
---
## Loading a Game
Loading a game is a two-step process: select the game, then configure what to auto-create alongside the event import.
### Step 1 — Select Games
From the Game Loader table, check one or more games. Use the search bar to filter by team name, date, or competition if you have a large game library. The status bar above the table shows how many of your total games are currently loaded.
You can load games in three ways:
- **Single game** — Click the kebab menu (⋮) on any row and select **Load**.
- **Bulk selection** — Check multiple rows and click **Load Selected (n)**.
- **Load everything** — Click **Load All** to import every game in your database.
### Step 2 — Auto-Load Configuration
After confirming which games to load, the **Auto-Load Configuration** dialog appears. This dialog lets you bootstrap your analytics workspace by automatically creating measures, metrics, and visualizations derived from the game's Tagger configuration — saving you from setting everything up manually.

#### Sync Categories
Four categories of assets can be auto-generated during the load. Each is enabled by default — uncheck any you do not need.
| Category | What It Creates |
|---|---|
| **Totals → Measures** | Converts every *Total* defined in your Tagger configuration into a reusable measure. Includes count, duration, and playtime variants where applicable. For example, a "Total Tackles" total becomes a `Tackles (count)` measure. |
| **Totals → Calculated Metrics** | Creates calculated metrics from your Tagger totals, enabling them to be used directly in KPI cards, charts, and tables. These metrics are simple pass-through expressions that reference the auto-generated measures. |
| **Event Source Visualizations** | Generates event-source visualizations for each event type in your configuration. These are pre-built views showing event counts, trends, and breakdowns — ready to drop into dashboards. |
| **Position Map Visualizations** | Creates position map visualizations from every position map defined in your Tagger configuration. Requires mapping each position map to an Analytics 360 playing area graphic (see below). |
#### Position Map Playing Area Graphics
When **Position Map Visualizations** is enabled, a table appears listing every position map from your Tagger configuration. For each map you must select which Analytics 360 playing area graphic it should overlay.
The table shows:
| Column | Description |
|---|---|
| **Map Name** | The name of the position map as defined in your Tagger configuration. |
| **Type** | The map type — **Single** (one event layer), **Linked** (two linked events), or **Combined** (multiple event layers). |
| **Analytics 360 Playing Area** | A dropdown listing all available playing area graphics from the catalog (e.g. "Hurling / Camogie Pitch", "Gaelic Football Pitch", "Soccer Pitch"). Select the graphic that matches the sport and field layout used by the position map. |
::callout{icon="i-heroicons-light-bulb" color="blue"}
Position map graphics are drawn from the Analytics 360 playing area catalog, which includes standard field and pitch layouts for common sports. If your sport is not listed, position maps can still be loaded — the visualization will use a generic field graphic.
::
Once you have reviewed the configuration, click **Confirm & Load** to begin the import. Analytics 360 processes each game sequentially, importing events, labels, and generating the selected assets. Progress is reflected in the status badge, which updates to *Loaded* when complete.
---
## Unloading a Game
Unloading removes a game's analytics data while preserving the original game record.
To unload:
1. Click the kebab menu (⋮) on a loaded game's row.
2. Select **Unload**.
3. Confirm in the dialog that appears.
::callout{icon="i-heroicons-exclamation-triangle" color="yellow"}
Unloading deletes all analytics events, labels, cleanse results, and load history for that game. The original game in your Tagger database is **not** affected. You can re-load the game at any time.
::
---
## Searching and Filtering
The search bar at the top of the Game Loader filters the game list in real time. It matches against:
- Team A and Team B names
- Match date
- Competition name
Type any part of a team name, date, or competition to narrow the list. The loaded count and selection state are preserved across searches, and the table paginates at 25 games per page by default.
---
## Rebuilding
The **Rebuild** button in the Analytics 360 toolbar (visible on every tab) triggers a full re-processing of all loaded games. Use Rebuild when you:
- Change your Tagger event configuration and want totals and measures to reflect the new setup.
- Add or modify cleanse rules and need them re-applied to existing data.
- Add new position maps or event source configurations and want fresh visualizations generated.
Rebuilding opens the same Auto-Load Configuration dialog, allowing you to choose which categories to regenerate. All existing loaded data is re-processed from source — no data is lost, but derived assets may be updated or replaced.
---
## Next Steps
Once your games are loaded, the rest of the pipeline unlocks:
1. [Cleanse](/docs/tagger/analytics360/cleanse) — Normalise event data before analysis
2. [Explorer](/docs/tagger/analytics360/explorer) — Filter and browse your loaded events
3. [Playlists](/docs/tagger/analytics360/playlists) — Build clip collections from tagged events
---
URL: https://teamoppy.com/docs/tagger/analytics360/cleanse
# Cleanse
The Cleanse tab lets you define find-and-replace rules that normalise event data before it feeds into measures, metrics, and visualizations. Inconsistent naming — different spellings of a team, variations of a player's name, or legacy event labels — can fragment your analysis. Cleanse rules eliminate these inconsistencies so every downstream calculation works from a single, standardised source of truth.
::callout{icon="i-heroicons-exclamation-triangle" color="yellow"}
Cleanse rules only take effect after a **Rebuild**. After creating, editing, or deleting rules, click **Rebuild** in the Analytics 360 toolbar to re-process all loaded games with the updated rule set.
::
---
## Overview
The Data Cleanse page operates in two modes: a **list view** showing all defined rules, and an **editor view** for creating or modifying individual rules.

### List View
When rules exist, the list view displays a table with the following columns:
| Column | Description |
|---|---|
| **Field** | The type of value the rule targets — Player Name, Team Name, Event Name, Label Name, or Option Name. |
| **Match** | The matching strategy — **Exact** or **Contains**. |
| **Pattern** | The text to find. For player-scoped rules, also shows the team constraint. For event-scoped rules, shows any label or option filters. |
| **Replacement** | The text to substitute. A dash (`-`) means matched text is removed. |
| **Priority** | The rule's execution order. Lower numbers run first. |
| **Enabled** | Whether the rule is active. Disabled rules are ignored during rebuilds. |
| **Actions** | Edit or delete the rule via the kebab menu (⋮). |
Rules are applied in **ascending priority order** (lower numbers first), then by last update time where priorities tie. This means you can chain rules — for example, a priority-100 rule that normalises "FC Bayern" to "Bayern Munich", followed by a priority-200 rule that standardises "Bayern Munich" to "Bayern".
### Empty State
When no cleanse rules have been defined, the page displays a prompt to create your first rule. Click **Create Your First Rule** to open the editor.
---
## Creating a Rule
Click **New Rule** (or **Create Your First Rule** when the list is empty) to open the rule editor.

### Rule Configuration
The editor provides the following fields:
#### Field
The type of data the rule operates on. Choose from:
| Field | What It Matches | Example |
|---|---|---|
| **Player Name** | Player names on tagged events | Standardise "J. Smith" → "John Smith" |
| **Team Name** | Team names across all events | Normalise "Gaels Seniors" → "Gaels" |
| **Event Name** | Event type names | Rename a legacy event to match your current config |
| **Label Name** | Label values attached to events | Standardise "Goal" / "goal" → "Goal" |
| **Option Name** | Option values within labels | Normalise "Left Foot" / "left" → "Left Foot" |
::callout{icon="i-heroicons-light-bulb" color="blue"}
**Event Name** rules support additional scoping via Label and Option filters — narrow the match to only rename events that carry a specific label or option value.
::
#### Match Type
Determines how the pattern is compared against the target value:
| Match Type | Behaviour |
|---|---|
| **Exact** | The entire field value must equal the pattern. |
| **Contains** | The pattern can appear anywhere within the field value. |
For **Event Name** rules, the match type is always *Exact* because event names are matched as discrete identifiers rather than free text.
#### Find Pattern
The text to locate. For **Exact** matches, this is the full value to replace. For **Contains** matches, this is a substring that may appear anywhere in the target value.
When the Field is set to **Event Name**, this field is labelled *Event Name to Match* — select or type the exact event name you want to target.
#### Replacement
The text to substitute in place of the matched pattern. Leave this field blank to remove the matched text entirely — useful for stripping prefixes, suffixes, or unwanted qualifiers.
#### Team Scope (Player Name only)
When the Field is **Player Name**, an optional *Team* dropdown appears. Use this to limit the rule to players on a specific team. Leave it blank to apply the rule across all teams. This prevents accidentally renaming a "J. Smith" on Team A when you only meant to target the one on Team B.
#### Label & Option Scope (Event Name only)
When the Field is **Event Name**, optional *Label Name* and *Option Name* filters appear. These let you target a specific variant of an event. For example:
- Match event `Shot` with Label `Outcome` and Option `Goal` to rename only goal-scoring shots.
- Match event `Pass` with Label `Type` and Option `Cross` to isolate cross-field passes.
Leave these blank to match the event regardless of its labels or options.
#### Priority
A numeric value that determines execution order. **Lower numbers run first.** The default is 100. Use priority to sequence dependent rules — for example, run a broad normalisation at priority 100, then a more specific refinement at priority 200.
#### Rule Enabled
Toggle to activate or deactivate the rule. Disabled rules are preserved but skipped during rebuilds. Use this to temporarily suspend a rule without deleting it.
### Tips Panel
The right-hand panel displays contextual guidance that changes based on the selected field type. It always includes the critical reminder:
> After saving or editing a rule, use **Repair/Rebuild** in the page header to apply changes to analytics data.
Additional tips appear for specific field types:
- **Team Name**: "Rename a team across all events. Useful for normalizing variations like 'FC Bayern' and 'Bayern Munich'."
- **Player Name**: "Add a Team filter to limit this rename to players on a specific team."
- **Event Name**: "Use Label and Option filters to precisely target event types."
---
## Saving and Applying Rules
Click **Save Rule** (or **Update Rule** when editing) to persist the rule to your cleanse configuration. The rule appears immediately in the list view, but it is **not yet applied to your analytics data**.
To activate the rule:
1. Return to the list view.
2. Click **Rebuild** in the Analytics 360 toolbar (the orange button visible on every tab).
3. The rebuild re-processes all loaded games, applying every enabled cleanse rule in priority order.
::callout{icon="i-heroicons-light-bulb" color="blue"}
You can create multiple rules before rebuilding. There is no need to rebuild after every individual change — batch your edits, then rebuild once.
::
---
## Managing Rules
### Editing a Rule
From the list view, click any row or use the kebab menu (⋮) and select **Edit**. The editor opens pre-populated with the rule's current configuration. Make your changes and click **Update Rule**, then rebuild to apply.
### Deleting a Rule
Use the kebab menu (⋮) on any row and select **Delete**. Confirm in the dialog that appears. To delete multiple rules at once, check the desired rows and click **Delete Selected (n)**.
::callout{icon="i-heroicons-exclamation-triangle" color="yellow"}
Deleting a rule is permanent and cannot be undone. After deletion, rebuild to remove the rule's effects from your analytics data.
::
### Searching Rules
The search bar at the top of the list filters rules by pattern text, replacement text, and field type. Use it to quickly locate a specific rule in large configurations.
---
## Example: Normalising a Team Name
A common use case is standardising team names that appear inconsistently across games. For example, a team might appear as "Gaels Seniors" in early-season matches and simply "Gaels" in later ones.
To normalise this:
1. Click **New Rule**.
2. Set **Field** to *Team Name*.
3. Set **Match Type** to *Exact*.
4. Enter `Gaels Seniors` in **Find Pattern**.
5. Enter `Gaels` in **Replacement**.
6. Leave **Priority** at `100`.
7. Ensure **Rule enabled** is toggled on.
8. Click **Save Rule**.
9. Click **Rebuild** in the toolbar to apply the change.
After the rebuild, all events tagged with "Gaels Seniors" will report under "Gaels" in the Explorer, measures, metrics, and every visualization.
---
## Rule Execution Order
When multiple rules could match the same value, Analytics 360 resolves conflicts using a deterministic order:
1. **Priority** — Lower numbers execute first.
2. **Update time** — When priorities are equal, the most recently updated rule runs first.
This means a value is transformed sequentially through matching rules. Plan your priorities accordingly:
- Use low numbers (10–50) for broad, foundational normalisations.
- Use the default range (100) for typical renames.
- Use higher numbers (150–200) for refinements that depend on earlier rules.
---
## Next Steps
With cleanse rules in place and a rebuild complete, your event data is ready for exploration:
1. [Explorer](/docs/tagger/analytics360/explorer) — Filter and browse your normalised event data
2. [Playlists](/docs/tagger/analytics360/playlists) — Build clip collections from tagged events
3. [Measures](/docs/tagger/analytics360/measures) — Define event-count measures from standardised data
---
URL: https://teamoppy.com/docs/tagger/analytics360/explorer
# Explorer
The Explorer is the investigative heart of Analytics 360 — a powerful query interface that lets you filter, sort, and browse every tagged event across all your loaded games. From a single discovery of a key moment to a systematic analysis of event patterns, the Explorer surfaces the raw data that drives every downstream insight.
---
## Overview
The Explorer presents a dual-pane layout: a filter sidebar on the left and a scrollable event table on the right. Filters narrow the dataset in real time; the table displays matching events with sortable columns, inline label chips, and direct links to video clips and playlists.

### Layout
| Zone | Description |
|---|---|
| **Filter Sidebar** | Two filter groups — **Event** filters for the primary event and **Next Event** filters for the event that follows — each with dropdowns for name, team, player, label, option, and period. |
| **Event Table** | A paginated table displaying every event that matches the active filters, with columns for date, game, period, time, event name, team, player, labels, and a clip action. |
| **Toolbar** | Global actions including **Refresh** (re-query the events database) and **Rebuild** (re-process all loaded games). |
---
## Filtering Events
The filter sidebar gives you precise control over which events appear in the table. Filters are organised into two groups, and both can be used simultaneously.
### Event Filters
These filters constrain the primary event — the event itself.
| Filter | Description |
|---|---|
| **Event Name** | Select one or more event types (e.g. "Shot", "Tackle", "Turnover Won"). Only events matching the selected types are shown. |
| **Event Team** | Filter by the team that performed the event. |
| **Player** | Filter by the player who performed the event. The available players update based on the selected team. |
| **Event Label** | Filter by labels attached to the event (e.g. "Shot type", "Zone"). |
| **Event Option** | Filter by the specific option value within a selected label (e.g. "From play" within "Shot type"). Selecting an option requires first selecting its parent label. |
| **Period** | Restrict events to a specific period within the game. |
### Next Event Filters
The Next Event group filters based on the event that *follows* the primary event in sequence. This is a powerful analytical tool — use it to answer questions like "How often does a Turnover Won lead to a Shot?" or "What happens after a Puckout?"
| Filter | Description |
|---|---|
| **Next Event Name** | Filter by the type of the following event. |
| **Next Event Team** | Filter by the team that performed the following event. |
| **Next Player** | Filter by the player who performed the following event. |
| **Next Event Label** | Filter by labels on the following event. |
| **Next Option** | Filter by option values on the following event's labels. |
### Applying Filters
1. Configure your filter selections in the sidebar.
2. Click **APPLY** to execute the query. The event table updates to show only matching rows.
3. Click **CLEAR ALL** to reset every filter to its default state.
The filter sidebar shows the count of active filters in each group, so you always know what is constraining your current view.
::callout{icon="i-heroicons-light-bulb" color="blue"}
Combine Event and Next Event filters to answer sequence-based questions. For example: Event Name = "Turnover Won" + Next Event Name = "Shot" reveals every turnover that directly led to a scoring attempt.
::
---
## The Event Table
The event table is the main workspace — a paginated, sortable view of every event that matches your active filters.
### Columns
| Column | Description |
|---|---|
| **Date** | The date of the game. Sortable. |
| **Game** | The match name (e.g. "Dynamos vs Gaels"). Sortable. |
| **Period** | The period or half in which the event occurred. Sortable. |
| **Time** | The event time within its period, displayed in `mm:ss` format. Each period's clock starts at 0:00, so read this together with the **Period** column. Sortable. |
| **Event** | The event type name (e.g. "Shot", "Tackle", "Puckout"). Sortable. |
| **Team** | The team that performed the event. Sortable. |
| **Player** | The player who performed the event. Sortable. |
| **Event Labels** | Inline chips displaying labels and option values attached to the event (e.g. "Zone 3 – 65 to 65 in Zone", "Shot type – From play"). |
| **Clip** | A quick-action button to open the event's video clip. Only available for games linked to a video source (see [Viewing Video Clips](#viewing-video-clips)). |
### Sorting
Click any sortable column header to sort ascending. Click again to toggle to descending. A third click removes the sort and returns to the default order. The active sort column and direction are indicated by an arrow icon in the column header.
### Pagination
The event table paginates results to keep browsing fast and responsive. The pagination control at the bottom of the table shows the current page range and total row count (e.g. "1–20 of 1,896"). Use the page size dropdown to adjust how many rows are displayed per page.
---
## Viewing Video Clips
Every event row includes a **Clip** action in the rightmost column. This button opens the video clip associated with that event — jumping directly to the exact moment in the match footage where the event occurred.
### Requirements
The Clip action is only available when the game is linked to a video source. If a game was tagged without a video, or if the video file is not accessible, the Clip action is disabled and displayed in a muted state.
::callout{icon="i-heroicons-exclamation-triangle" color="yellow"}
For the Clip action to work correctly, the game's event data and video must be **synchronised in the main Tagger view** before the game is loaded into Analytics 360. Synchronisation ensures that event timestamps align precisely with the video timeline. Use **Sync Mode** on the Tagger **Timeline** tab — see [Synchronize Video](/docs/tagger/synchronize-video). If you notice clips opening at the wrong moment, re-sync the game in Tagger and reload it in Analytics 360.
::
### Clip Workflow
1. Locate the event you want to review in the event table.
2. Click the **Clip** button on the event's row.
3. The integrated video player opens at the event's timestamp, allowing you to review the moment in context.
From the video player you can play, pause, scrub, and switch between available camera angles if multiple video sources are linked to the game.
---
## Adding Events to a Playlist
The Explorer is also where you curate playlists — collections of video clips pulled directly from your tagged events. Rather than switching to the Playlists tab and searching for events again, you can add events to a playlist directly from the video player dialog.
### Adding a Single Event
1. Locate the event you want to include in the event table.
2. Click the **Clip** button on the event's row to open the video player dialog.
3. Inside the video player, review the clip to confirm it captures the moment you want.
4. Click the **ADD TO PLAYLIST** button at the bottom of the video player.
5. Choose an existing playlist from the dropdown, or select **New Playlist** to create one on the fly.
The video player dialog overlays the Explorer and provides full playback controls — play, pause, mute, and replay — along with event metadata such as period, timestamp, event name, player, and labels. This lets you verify the clip context before committing it to a playlist.
---
## Refreshing and Rebuilding
Two toolbar actions sit above the event table:
| Action | Description |
|---|---|
| **Refresh** | Re-queries the events database with the current filter settings. Use this after loading a new game or modifying cleanse rules to ensure the table reflects the latest data. |
| **Rebuild** | Re-processes all loaded games from source — reapplying cleanse rules, recalculating derived data, and regenerating auto-created assets. Available from the global Analytics 360 toolbar at the top of every tab. |
---
## Next Steps
The Explorer feeds directly into every downstream stage of the analytics pipeline:
1. [Playlists](/docs/tagger/analytics360/playlists) — Build clip collections from the events you have discovered
2. [Measures](/docs/tagger/analytics360/measures) — Define event-count measures based on the patterns you observe in the Explorer
3. [Metrics](/docs/tagger/analytics360/metrics) — Create calculated metrics that quantify the relationships you uncover
4. [Viz](/docs/tagger/analytics360/viz) — Design visualizations from the measures and metrics built on explored events
---
URL: https://teamoppy.com/docs/tagger/analytics360/playlists
# Playlists
Playlists turn tagged events into curated video collections — ordered sequences of clips you can play back, reorder, and export as a single video file. Build playlists for team review sessions, individual player feedback, scouting reports, or any scenario where a focused set of match moments tells the story.
---
## Overview
The Playlists tab manages your clip collections in two layers: a **list view** showing every playlist you have created, and a fullscreen **player** that opens when you click into a playlist.

### List View
When playlists exist, the list view displays a table with the following columns:
| Column | Description |
|---|---|
| **Name** | The playlist name. Click any row to open the player. |
| **Items** | The number of clips currently in the playlist (e.g. "12 item(s)"). |
| **Actions** | Kebab menu (⋮) with **Rename** and **Delete** options. |
Above the table, a search bar filters playlists by name in real time. A count badge shows the total number of playlists (e.g. "3 Playlist(s)").
### Empty State
When no playlists have been created, the page displays a prompt to create your first one — with a reminder that clips can be added from the Event Explorer or Position Map.

---
## Creating a Playlist
Click **New Playlist** (or **Create Your First Playlist** when the list is empty) to open the creation dialog.
1. Enter a name for the playlist.
2. Click **Create** (or press Enter).
The new playlist is created and opens immediately in the playlist player, ready for you to add clips.
::callout{icon="i-heroicons-light-bulb" color="blue"}
Playlists start empty by design. Add clips from the [Explorer](/docs/tagger/analytics360/explorer) video player dialog — click the **Clip** button on any event row, review the footage, then click **ADD TO PLAYLIST** to add it to an existing playlist or create a new one.
::
---
## Managing Playlists
### Renaming
From the list view, click the kebab menu (⋮) on any row and select **Rename**. You can also rename from inside the player via the **More** menu → **Rename Playlist**. Enter the new name and click **Save**.
### Deleting
From the list view, click the kebab menu (⋮) on any row and select **Delete**. Analytics 360 checks whether the playlist is referenced by any presentation decks before allowing deletion. If the playlist is in use, the dialog shows which decks reference it and blocks the deletion until those references are removed.
::callout{icon="i-heroicons-exclamation-triangle" color="yellow"}
Deleting a playlist is permanent and removes all clips it contains. If the playlist is embedded in any [deck](/docs/tagger/analytics360/decks), you must remove it from those decks first.
::
### Bulk Delete
Check multiple rows in the list view and click **Delete Selected (n)**. The dependency check runs against all selected playlists — any that are in use are listed with the blocking decks, and only the safe-to-delete playlists are removed.
### Searching
The search bar at the top of the list filters playlists by name in real time. Use it to quickly locate a specific playlist in large collections.
---
## The Playlist Player
Clicking any playlist row opens the fullscreen playlist player — the primary workspace for reviewing, reordering, and presenting your clip collections.
### Layout
| Zone | Description |
|---|---|
| **Top Bar** | Playlist name, clip position indicator (e.g. "3 / 12"), **Export** button, **More** menu (Rename / Delete), and close button. |
| **Clip Queue** (left sidebar) | A scrollable, searchable list of every clip in the playlist. Shows event name, game, period, and timestamp for each clip. Hidden when the playlist is empty — the empty-state message is displayed centred in the full player area instead. |
| **Video Player** (main area) | The playback area with event metadata chips, video controls, and optional multi-angle support. |
### Clip Queue
The left sidebar displays every clip in the playlist. Each row shows:
- **Status indicator** — A play icon (▶) for the current clip, a checkmark (✓) for clips already played, or a number for upcoming clips.
- **Event name** — The event type (e.g. "Turnover Won", "Shot").
- **Game, period, and time** — Contextual metadata so you know exactly what you are watching.
- **Remove button** (✕) — Remove an individual clip from the playlist.
Click any clip to jump directly to it. Drag clips by the handle (⠿) to reorder them — the new order is saved automatically.
Use the search bar at the top of the queue to filter clips by event name, game, or player.
### Video Playback
The main area plays the clip associated with the selected queue item. Above the video, metadata chips display the event's period, name, team, player, and game.
#### Source Selection
If multiple video angles are linked to the game, numbered source buttons appear below the metadata. Click a source number to switch to that angle. When two or more sources are available, a **Grid** button enables multi-view mode — all angles play side by side in a synchronised grid.
::callout{icon="i-heroicons-light-bulb" color="blue"}
Multi-view playback is ideal for comparing angles of the same moment — for example, a wide tactical view alongside a close-up follow cam. All angles remain synchronised during playback.
::
#### Playback Controls
| Control | Description |
|---|---|
| **⏮ Previous** | Jump to the previous clip in the queue. |
| **Play / Pause** | Start or pause playback of the current clip. |
| **Mute / Unmute** | Toggle audio. |
| **Replay** | Restart the current clip from the beginning. |
| **Next ⏭** | Jump to the next clip in the queue. |
| **Auto-advance** | When enabled, the player automatically advances to the next clip when the current one finishes. |
#### Clip Range
A range slider below the video lets you trim the playback window. Drag the handles to set custom start and end times for the current clip — useful for isolating a specific moment within a longer event. The current range is displayed as timestamps on either side of the slider.
#### Drawing Layers
If the event includes drawing overlays (annotations drawn on the video during tagging), a layer timeline appears below the range slider. Drawing layers are displayed as pink chips at their respective timestamps. When playback is paused, any Konva drawing overlays are rendered on top of the video.
---
## Exporting a Playlist
The **Export** button in the player toolbar opens the export dialog, which renders the entire playlist as a single MP4 video file.
::callout{icon="i-heroicons-exclamation-triangle" color="yellow"}
Only local video clips can be exported as part of a playlist. YouTube-sourced clips cannot be exported because they are streamed rather than stored locally.
::
### Export Options
| Option | Description |
|---|---|
| **Output Folder** | Click the folder card to select where the exported `.mp4` file is saved. |
| **File Name** | The name of the output file (`.mp4` appended automatically). |
| **Include clip details overlay** | When enabled, each clip in the exported video includes a text overlay showing the event name, player, game, and period — ideal for sharing with coaches or players who need context on each clip. |
| **Show teamoppy.com watermark** | When enabled, a Teampoppy watermark is rendered on the exported video. Disable this if you have a Studio licence that permits watermark-free exports. |
| **Include audio from the original video** | Off by default, so the exported video is silent. Switch it on to keep each clip's audio. The audio is normalised to 128 kbps stereo so every clip can be joined into one continuous track, and it pauses while a drawing overlay is held on screen so it stays in step with the picture. |
::callout{icon="i-heroicons-information-circle" color="blue"}
**Include audio from the original video** applies to the export you are about to run. It is not remembered for the next one.
::
### Export Progress
Once you click **Export Playlist**, the dialog shows real-time progress:
- Current clip number and total (e.g. "Clip 3/12")
- Overall progress bar with percentage
- A **Cancel Export** button to stop the process
When the export completes, a success message appears with a checkmark. If an error occurs, the dialog surfaces the error details.
::callout{icon="i-heroicons-light-bulb" color="blue"}
Exports include any drawing overlays (Konva annotations) that were drawn on the events during tagging. This means your exported video preserves tactical markups, player circles, and arrow annotations — ready for sharing.
::
---
## Next Steps
Playlists sit between exploration and presentation in the Analytics 360 pipeline:
1. [Measures](/docs/tagger/analytics360/measures) — Define event-count measures based on the patterns you observe
2. [Metrics](/docs/tagger/analytics360/metrics) — Create calculated metrics from your measures
3. [Viz](/docs/tagger/analytics360/viz) — Design visualizations for dashboards and decks
4. [Decks](/docs/tagger/analytics360/decks) — Embed playlists directly into presentation slides
---
URL: https://teamoppy.com/docs/tagger/analytics360/measures
# Measures
Measures are the building blocks of Analytics 360 — named, reusable aggregation definitions that turn raw tagged events into countable, measurable units. A measure captures *what* to count (which events, under which conditions) without prescribing *where* it is displayed. Once defined, a measure can feed into multiple visualizations, power calculated metric expressions, and serve as a consistent vocabulary for the events that define your sport.
---
## Overview
The Measures tab operates in two modes: a **list view** showing every measure you have defined, and an **editor view** for creating or modifying individual measures.

### List View
When measures exist, the list view displays a table with the following columns:
| Column | Description |
|---|---|
| **Name** | The human-readable name of the measure (e.g. "Team A Puckouts Won"). Click any row to open the editor. |
| **Reference Key** | A unique, auto-generated key used to reference the measure in calculated metric expressions (e.g. `measure_teama_puckouts_won`). Displayed as a blue chip. |
| **Type** | The measure type — **Count**, **Duration**, or **Distance**. Colour-coded chip. |
| **Event Names** | The event types this measure aggregates. Chips show each selected event; "All events" when none are specified. |
| **Team** | The team filter, if any. |
| **Next Events** | Any next-event filters applied. Shows event chips plus an optional team qualifier. |
| **Label Options** | Any label:option filters applied to the primary event or next event. |
| **Status** | **Active** (green) or **Inactive** (grey). Inactive measures are ignored by visualizations and metrics. |
| **Actions** | Kebab menu (⋮) with **Edit**, **Copy**, and **Delete** options. |
Above the table, a search bar filters measures by name in real time. A count badge shows the total number of defined measures (e.g. "66 Measure(s) Defined").
### Empty State
When no measures have been defined, the page displays a prompt to create your first one — with a reminder that measures can be reused across visualizations and referenced in calculated metric expressions.
---
## Measure Types
Analytics 360 supports three measure types, each serving a different analytical purpose:
| Type | Description | Example Use Case |
|---|---|---|
| **Count** | Counts the number of events matching the configured filters. The most common type. | "Total Tackles", "Passes into the 22", "Turnovers Won in Midfield" |
| **Duration** | Sums the duration of matching events. Useful when events carry a time component (e.g. possession events). | "Total Time in Possession", "Time Spent in Attacking Third" |
| **Distance** | Computes the distance between matched *start → end* event pairs using position data. | "Distance Covered from Puckout to Shot", "Ball Progression per Possession" |
::callout{icon="i-heroicons-light-bulb" color="blue"}
**Count** is the default and most frequently used type. Start here — you can always create Duration or Distance measures later when your analysis requires time-based or positional insights.
::
---
## Creating a Measure
Click **New Measure** (or **Create Your First Measure** when the list is empty) to open the editor.

### Core Settings
Every measure, regardless of type, shares these common fields:
| Field | Description |
|---|---|
| **Measure Type** | Select from **Count**, **Duration**, or **Distance**. This determines which event configuration fields appear below. |
| **Measure Name** | A descriptive name for the measure (e.g. "Team A Puckouts Won"). Required. |
| **Display Label** | An optional shorter label for use in charts and tables where space is limited (e.g. "Puckouts Won"). |
| **Enabled** | Toggle to activate or deactivate the measure. Disabled measures are preserved but excluded from visualizations and metrics. |
| **Allow Player Filtering** | *(Count only)* When enabled, visualizations using this measure can be filtered by player. When disabled, the measure always aggregates across all players. |
| **Default Player** | *(Count only, when player filtering is enabled)* Determines the default player scope — **Event Player** (the player on the event) or a specific player. |
The **Reference Key** is auto-generated from the measure name and type — for example, a Count measure named "Team A Puckouts Won" produces the key `measure_teama_puckouts_won`. This key is how calculated metrics reference the measure in expressions.
### Event Configuration — Count
Count measures filter which events are aggregated. The Event Configuration card provides the following controls:
| Field | Description |
|---|---|
| **Event Name(s)** | Select one or more event types to count. Leave empty to count *all* events — useful for a "Total Events" measure. |
| **Label Option(s)** | Filter by label:option pairs (e.g. "Shot type:From play"). Only events carrying the specified label-option combinations are counted. |
| **Team** | Restrict counting to events performed by a specific team. Leave blank to count across both teams. |
#### Next Event Filters
Next Event Filters constrain the measure to only count events whose *immediately following* event matches specified criteria. This unlocks sequence-based measures:
| Field | Description |
|---|---|
| **Next Event Name(s)** | The type(s) of the following event. For example, set to "Clean TeamA" to count Puckouts that were followed by a clean win. |
| **Next Label Option(s)** | Filter the following event by label:option pairs. |
| **Next Team** | Restrict the following event to a specific team. |
A green **active** chip appears beside the Next Event Filters heading whenever at least one next-event constraint is configured — giving you a quick visual indication that the measure uses sequence logic.
::callout{icon="i-heroicons-light-bulb" color="blue"}
Next Event Filters are what turn "Total Puckouts" into "Puckouts Won" — by requiring the following event to be a clean possession for the same team. This is one of the most powerful filtering capabilities in Analytics 360.
::
### Event Configuration — Duration
Duration measures have a simplified configuration:
| Field | Description |
|---|---|
| **Team** | Filter by the team that performed the event. |
| **Event** | Select one or more event types whose durations will be summed. |
### Event Configuration — Distance
Distance measures define *from → to* event pairs and compute the distance between their positions:
| Section | Field | Description |
|---|---|---|
| **From Event** | From Team | The team performing the starting event. |
| | From Event | The starting event type(s). |
| **To Event** | To Team | The team performing the ending event. |
| | To Event | The ending event type(s). |
| **Distance Calculation** | Distance Mode | How to compute the distance: **Euclidean** (straight-line), **X-only** (horizontal), or **Y-only** (vertical). |
### Tips Panel
The right-hand panel displays contextual guidance:
> Measures define **what** to aggregate — not where. Once created, use them in:
> - **Visualizations** — select from the measure dropdown instead of configuring event counts inline
> - **Calculated Metrics** — reference by key in expressions like `measure_passes / measure_shots`
> - **Duration** — sum the duration of matching events
> - **Distance** — compute Euclidean, X-only, or Y-only distance between matched start→end event pairs
---
## Saving a Measure
Once you have configured the measure:
1. Click **Update Measure** (or **Save Measure** for new measures).
2. A success message confirms the save.
3. Click **Back to List** to return to the list view, or **Clear** to reset the form and create another.
The new measure appears immediately in the list and is available for use in visualizations and calculated metrics.
::callout{icon="i-heroicons-exclamation-triangle" color="yellow"}
Changes to measures take effect immediately. If you modify a measure that is already used in visualizations or calculated metrics, those downstream consumers will reflect the updated definition the next time they are rendered or recomputed.
::
---
## Managing Measures
### Editing
Click any row in the list view, or use the kebab menu (⋮) → **Edit**, to open the measure in the editor. Make your changes and click **Update Measure**.
### Copying
Use the kebab menu (⋮) → **Copy** to duplicate a measure. The editor opens pre-populated with the original measure's configuration and an empty ID — make adjustments, provide a new name, and save to create a variant. This is useful when you need several similar measures (e.g. "Puckouts Won" for Team A and Team B).
### Deleting
Use the kebab menu (⋮) → **Delete** to remove a measure. Analytics 360 checks whether the measure is referenced by any visualizations or calculated metrics before allowing deletion. If the measure is in use, the dialog lists every consumer that references it and blocks the deletion until those references are removed.
::callout{icon="i-heroicons-exclamation-triangle" color="yellow"}
Auto-generated measures (created during game loading via the Auto-Load Configuration) may be re-created on the next game load if deleted. The bulk delete dialog warns you when auto-generated measures are among the selection.
::
### Bulk Delete
Check multiple rows in the list view and click **Delete Selected (n)**. The dependency check runs against all selected measures — any that are in use are listed with the blocking consumers, and only the safe-to-delete measures are removed.
### Searching
The search bar at the top of the list filters measures by name in real time. Use it to quickly locate a specific measure in large configurations.
---
## How Measures Connect
Measures sit at the centre of the Analytics 360 data model — they bridge raw events and every downstream consumer:
```
Tagged Events → Measures → Visualizations (KPIs, charts, tables)
→ Calculated Metrics (expressions)
```
A single measure can power a KPI card, a bar chart, a data table, and a calculated metric — all simultaneously. This means you define the aggregation logic once and reuse it everywhere, ensuring consistency across your entire analytics environment.
---
## Next Steps
With measures defined, you are ready to build higher-level analytics:
1. [Metrics](/docs/tagger/analytics360/metrics) — Create calculated metrics that combine measures into performance indicators
2. [Viz](/docs/tagger/analytics360/viz) — Design visualizations powered by your measures
3. [Dashboards](/docs/tagger/analytics360/dashboards) — Assemble visualizations into structured dashboards
4. [Decks](/docs/tagger/analytics360/decks) — Build presentation decks for meetings and reviews
---
URL: https://teamoppy.com/docs/tagger/analytics360/metrics
# Calculated Metrics
Calculated Metrics are derived performance indicators that combine existing measures and other calculated metrics using mathematical expressions. Unlike measures — which define *what* to aggregate from raw events — calculated metrics define *how* to combine those aggregations into higher-level insights like rates, ratios, efficiency scores, and weighted indices.
---
## Overview
The Calculated Metrics tab operates in two modes: a **list view** showing every metric you have defined, and an **editor view** for creating or modifying individual metrics. A third **debug evaluation** dialog provides deep inspection of how expressions resolve under specific scope and filter settings.

### List View
When metrics exist, the list view displays a table with the following columns:
| Column | Description |
|---|---|
| **Name** | The human-readable name of the metric (e.g. "TeamA total: Overall shots - success rate"). Click any row to open the editor. |
| **Reference Key** | A unique, auto-generated key used to reference the metric in other calculated metric expressions (e.g. `metric_teama_total_overall_shots_success_rate`). Displayed as a chip. |
| **Expression** | A preview of the mathematical expression, truncated to 72 characters. Full expression is visible in the editor. |
| **Display Format** | How the metric value is presented: display style (number or percent), decimal places, prefix, and suffix. |
| **Status** | **Active** (green) or **Inactive** (grey). Inactive metrics are excluded from visualizations and dashboards. |
| **Actions** | Kebab menu (⋮) with **Edit** and **Delete** options. |
Above the table, a search bar filters metrics by name, reference key, or expression in real time. A count badge shows the total number of defined metrics (e.g. "21 Metric(s) Defined"). Checkboxes on each row enable **bulk delete** — select multiple metrics and click **Delete Selected (n)** to remove them all at once.
### Empty State
When no metrics have been defined, the page displays a prompt to create your first one — explaining that calculated metrics combine aggregate references with math expressions to produce derived values like shooting percentages, efficiency ratios, or possession quality scores.
---
## Expression Syntax
Calculated metrics use a simple mathematical expression language. The expression is evaluated by substituting each reference key with its computed aggregate value, then applying the operators.
### Operators
| Operator | Description | Example |
|---|---|---|
| `+` | Addition | `measure_a + measure_b` |
| `-` | Subtraction | `measure_a - measure_b` |
| `*` | Multiplication | `measure_a * 100` |
| `/` | Division | `measure_a / measure_b` |
| `( )` | Grouping / precedence | `(measure_a + measure_b) / 2` |
| `round()` | Round to nearest integer | `round(measure_a / measure_b)` |
| `floor()` | Round down | `floor(measure_a / 60)` |
| `ceil()` | Round up | `ceil(measure_a / 10)` |
| `abs()` | Absolute value | `abs(measure_a - measure_b)` |
| `min()` | Minimum of arguments | `min(measure_a, measure_b)` |
| `max()` | Maximum of arguments | `max(measure_a, measure_b)` |
### Reference Key Pattern
Reference keys must match the pattern `[a-zA-Z_][a-zA-Z0-9_]*`. The following prefixes indicate the source type:
| Prefix | Source | Example |
|---|---|---|
| `measure_` | A Count measure | `measure_teama_total_shots` |
| `duration_` | A Duration measure | `duration_teama_possession` |
| `distance_` | A Distance measure | `distance_ball_progression` |
| `metric_` | Another calculated metric | `metric_teama_shot_success_rate` |
| `count_` | A raw event count aggregate | `count_complete_pass` |
### Examples
```
measure_teama_scores_from_shots / measure_teama_total_shots
```
```
(measure_teama_scores_from_shots / measure_teama_total_shots) * 100
```
```
(measure_teama_puckouts_won + measure_teamb_puckouts_won) / 2
```
```
round(measure_teama_total_shots / 10) * 10
```
::callout{icon="i-heroicons-light-bulb" color="blue"}
Use the **Available Metrics** panel on the right side of the editor to browse all referenceable measures and metrics. Click any entry to insert its reference key at the cursor position in your expression.
::
---
## Creating a Metric
Click **New Metric** (or **Create Your First Metric** when the list is empty) to open the editor.

### Core Fields
| Field | Description |
|---|---|
| **Metric Name** | A descriptive name for the metric (e.g. "TeamA total: Overall shots - success rate"). Required. |
| **Reference Key** | Auto-generated from the metric name. Read-only. Serves as the identifier for referencing this metric inside other calculated metric expressions. |
| **Expression** | The mathematical formula combining reference keys. Supports the operators and functions listed above. Whitespace is ignored. Required. |
### Display Settings
Every calculated metric has configurable display options that control how its value is rendered in tables, KPIs, and charts:
| Setting | Description | Default |
|---|---|---|
| **Display Style** | **Number** (raw value) or **Percent** (value multiplied by 100 with a `%` appended). | Number |
| **Prefix** | A string prepended to the formatted value (e.g. `$`, `€`). | *(none)* |
| **Suffix** | A string appended after the formatted value (e.g. `/game`, ` pts`). | *(none)* |
| **Decimal Places** | Number of decimal digits to show (0–10). When unset, defaults to 2 for Number style and 0 for Percent style. | *(auto)* |
::callout{icon="i-heroicons-exclamation-triangle" color="yellow"}
**Percent vs expression**: If your expression already multiplies by 100 (e.g. `(a / b) * 100`), set Display Style to **Number** to avoid double-multiplication. Use Display Style **Percent** when your expression computes a raw ratio (e.g. `a / b`) and you want the UI to handle the ×100 and `%` suffix.
::
### Enabled Toggle
Set the **Metric enabled** switch to activate or deactivate the metric. Disabled metrics are preserved in the database but excluded from all visualizations, dashboards, and downstream calculated metric evaluations.
---
## Validating an Expression
Click **Validate** to check your expression without saving. The validation:
1. Parses the expression for syntax errors
2. Checks that all referenced keys are recognized (loaded aggregates and existing calculated metrics)
3. Returns the list of available reference keys for the current context
A green success message confirms the expression is valid. A red error message describes any problems — for example, referencing a key that does not exist, using an unsupported character, or a syntax error in the operator arrangement.
::callout{icon="i-heroicons-light-bulb" color="blue"}
Validation also populates the **Available Metrics** panel with the full set of referenceable keys, including measures loaded from the database. Use the filter buttons (**All / Measures / Calculated**) and search bar to quickly find the key you need.
::
---
## Syntax Help Dialog
Click **Syntax Help** to open a reference panel showing:
- **Allowed operators**: `+`, `-`, `*`, `/`, and parentheses
- **Metric reference pattern**: `[a-zA-Z_][a-zA-Z0-9_]*`
- **Examples**: Common expression patterns
- **Notes**: Constraints like "Only loaded aggregate metric keys are valid references" and "Function calls are not supported" (except the built-in `round`, `floor`, `ceil`, `abs`, `min`, `max`)
---
## Debug Evaluation
The **Debug Evaluation** dialog (accessible via the **Debug Evaluation** button in the editor) provides deep inspection of how a calculated metric resolves. This is invaluable for verifying that expressions produce expected values and diagnosing mismatches between expression evaluation and persisted results.

### Workflow
**Step 1: Select Metric to Debug** — Choose any calculated metric from the dropdown.
**Step 2: Set Evaluation Scope** — Narrow the evaluation context with optional filters:
| Filter | Description |
|---|---|
| **Teams** | Restrict to events from specific teams |
| **Players** | Restrict to events involving specific players (filtered by selected teams when team→player mapping data is available) |
| **Games** | Restrict to specific games (filtered by selected teams) |
| **Periods** | Restrict to specific periods (1–8) |
Click **Evaluate** to run the expression through the filtered scope.
### Results Panel
The results panel shows:
| Section | Description |
|---|---|
| **Original Expression** | The expression as stored in the database |
| **Resolved Expression** | The expression with each reference key replaced by its scoped numeric value |
| **Raw Value** | The computed result of evaluating the resolved expression |
| **Formatted Value** | The result formatted according to the metric's display settings (prefix, suffix, decimals, percent) |
| **Status** | **Valid** (green) or **Error** (red) with the error message if evaluation failed |
### Scope Comparison
The debug dialog compares the **expression value** (computed on-the-fly by evaluating the expression with scoped base values) against the **persisted value** (the value stored from the most recent full analytics rebuild). A **Delta** column shows the difference.
When these values do not match, a warning alert explains: *"This usually indicates mixed filter dimensions or stale materialized data. Consider rebuilding analytics."*
### Reference Breakdown
A table lists every reference key found in the expression, with:
- **Reference**: The key name
- **Value**: The numeric value in the current scope
- **Source**: **base** (from raw aggregate values), **calculated** (from another calculated metric), or **unknown** (not found in any source)
- **Rows**: The number of contributing rows for the reference
::callout{icon="i-heroicons-light-bulb" color="blue"}
The Debug Evaluation dialog re-fetches a filtered overview from the backend when scope filters are active, ensuring values reflect the exact team/player/period/game combination you have selected — independent of the main UI state.
::
---
## Finding and Inserting References
The right-hand **Available Metrics** panel in the editor helps you discover and insert reference keys:
1. **Search** — Type to filter by metric name or reference key
2. **Source filter** — Toggle between **All**, **Measures** (measure/duration/distance keys), or **Calculated** (metric_ prefixed keys)
3. **Click to insert** — Click any entry to append its reference key to the end of your expression, preceded by a space if the expression is not empty
The panel displays each reference with:
- An icon indicating source type: ruler (measure), calculator (calculated), or chart-bar (aggregate)
- A human-readable label derived from the key name
- The raw reference key as a subtitle
Click **Refresh** to reload the available references from the database — useful after creating new measures or metrics in another session.
---
## Saving a Metric
Once you have configured the metric:
1. Click **Save Metric** (or **Update Metric** for existing metrics).
2. A success message confirms the save, including the persisted aggregate key.
3. The form is reset so you can create another metric, or click **Cancel** / **Back to List** to return to the list view.
The new metric appears immediately in the list and is available for use in visualizations, dashboards, and as a reference in other calculated metric expressions.
::callout{icon="i-heroicons-exclamation-triangle" color="yellow"}
Changes to calculated metrics take effect immediately in downstream consumers (visualizations, dashboards, and other calculated metrics) — but the persisted aggregate values may not update until the next analytics rebuild. Use the **Debug Evaluation** dialog to preview the effect of expression changes with current data.
::
---
## Managing Metrics
### Editing
Click any row in the list view, or use the kebab menu (⋮) → **Edit**, to open the metric in the editor. Make your changes and click **Update Metric**.
### Deleting
Use the kebab menu (⋮) → **Delete** to remove a metric. A confirmation dialog asks you to confirm before the metric is permanently removed.
::callout{icon="i-heroicons-exclamation-triangle" color="yellow"}
Auto-generated metrics (created during game loading from the Tagger game totals configuration) may be re-created on the next game load if deleted. The bulk delete dialog warns you when auto-generated metrics are among the selection.
::
### Bulk Delete
Check multiple rows in the list view and click **Delete Selected (n)**. All selected metrics are removed in sequence. The confirmation dialog shows the count and warns about any auto-generated metrics in the selection.
### Searching
The search bar at the top of the list filters metrics by name, reference key, or expression in real time. Use it to quickly locate a specific metric in large configurations.
---
## Auto-Generated Metrics
When a game is loaded into Analytics 360, calculated metrics can be automatically created from two sources in the Tagger game configuration:
### From Totals Calculated Config (`totalsCalculatedV2Config`)
Each entry in the totals calculated config defines a metric by combining two operand totals with an operator:
- **operand1** / **operand2**: References to other totals (measures or calculated metrics) by their config ID
- **operator**: One of `+`, `-`, `*`, `/`, or `%`
For the `%` operator, the expression is automatically rewritten as `(operand1 / operand2) * 100`.
The system resolves dependencies across multiple passes — if a calculated metric references another calculated metric that hasn't been created yet, it retries on the next pass (up to 50 passes).
### From Formulas Config (`totalsFormulaConfig`)
Formula-based metrics allow freeform expressions referencing totals by their config IDs, resolved to their reference keys at creation time.
### Deduplication
Auto-generated metrics are deduplicated by expression — if a metric with the same expression already exists (whether auto-generated or user-created), it is skipped rather than duplicated. Reference keys are also checked for uniqueness; if a conflict is found, a numeric suffix is appended (e.g. `metric_shots_success_rate_2`).
---
## How Calculated Metrics Connect
Calculated metrics sit above measures in the Analytics 360 data model, bridging raw aggregations and every downstream consumer:
```
Tagged Events → Measures → Calculated Metrics → Visualizations (KPIs, charts, tables)
↘ → Other Calculated Metrics (nested references)
```
A single calculated metric can power multiple visualizations and serve as a building block for even more complex derived metrics. Because calculated metrics can reference other calculated metrics, you can build layered analytical models — for example:
1. `measure_teama_scores_from_shots / measure_teama_total_shots` → **TeamA Shot Success Rate** (ratio)
2. `(metric_teama_shot_success_rate + metric_teamb_shot_success_rate) / 2` → **Average Shot Success Rate** (composite of calculated metrics)
::callout{icon="i-heroicons-light-bulb" color="blue"}
Calculated metrics are evaluated **on-the-fly** at query time from the `analytics_events` table. There is no pre-aggregation or materialized rebuild step — the expression engine substitutes current aggregate values into the expression and computes the result. This means metric values always reflect the most recent data for the selected scope.
::
---
## Character Whitelist
For security, expressions are validated against a strict character whitelist. Only the following characters are allowed:
- Letters: `a–z`, `A–Z`
- Digits: `0–9`
- Underscore: `_`
- Operators: `+`, `-`, `*`, `/`
- Grouping: `(`, `)`
- Decimal point: `.`
- Whitespace: space, tab, newline, carriage return
Any character outside this set — including Unicode symbols, homoglyphs, or special characters — causes a validation error with the message: *"Expression contains unsupported character: [char]"*.
---
## Next Steps
With calculated metrics defined, you are ready to surface them in visual outputs:
1. [Viz](/docs/tagger/analytics360/viz) — Design visualizations powered by your measures and calculated metrics
2. [Dashboards](/docs/tagger/analytics360/dashboards) — Assemble visualizations into structured dashboards
3. [Decks](/docs/tagger/analytics360/decks) — Build presentation decks for meetings and reviews
---
URL: https://teamoppy.com/docs/tagger/analytics360/viz
# Visualizations
Visualizations are the presentation layer of Analytics 360 — they transform measures and calculated metrics into interactive charts, tables, KPIs, position maps, and event source breakdowns. Each visualization is a self-contained, reusable widget that can be embedded in dashboards, exported for presentations, and previewed with live filters.
---
## Overview
The Visualizations tab operates in two modes: a **list view** showing every visualization you have defined, and an **editor view** for creating or modifying individual visualizations.

### List View
When visualizations exist, the list view displays a table with the following columns:
| Column | Description |
|---|---|
| **Name** | The human-readable name of the visualization. Click any row to open the editor. |
| **Type** | The visualization type — **KPI**, **Table**, **Chart**, **Map** (Position Map), or **Event Source**. Colour-coded chip. |
| **Source Type** | The data source powering the visualization — **Calc. Metric**, **Measure**, or the raw data source name. |
| **Source Name** | The name of the specific calculated metric or measure, or a dash for tables. |
| **Actions** | Kebab menu (⋮) with **Edit**, **Copy**, **Delete**, and **Preview** options. |
Above the table, a search bar filters visualizations by name. A type filter row lets you toggle between **All**, **KPI**, **Table**, **Chart**, **Map**, and **Event Source**. A count badge shows the total number of visualizations. Checkboxes enable **bulk delete** with dependency checking.
### Empty State
When no visualizations have been defined, the page displays a prompt to create your first one — explaining that visualizations bring your measures and metrics to life in charts, tables, and KPIs.
---
## Visualization Types
Analytics 360 supports five visualization types:
| Type | Description | Best For |
|---|---|---|
| **KPI** | A single-metric card with configurable colour (custom, traffic light). | High-level performance indicators, scoreboards |
| **Table** | A multi-column data table with sortable rows, configurable row grain, and per-metric rollup. | Player comparisons, team stat sheets, game-by-game breakdowns |
| **Chart** | Bar, stacked bar, pie, donut, line, or area chart with group-by axes and colour schemes. | Trends, distributions, category comparisons |
| **Position Map** | A sports field/pitch overlay showing event positions as shapes with optional player labels. | Shot charts, puckout maps, turnover location analysis |
| **Event Source** | A breakdown showing where scoring chances originate, with timeline chips and player involvement. | Score source analysis, attacking pattern identification |
::callout{icon="i-heroicons-light-bulb" color="blue"}
Start with a **KPI** or **Chart** — these connect directly to measures or calculated metrics and produce immediate visual results. Tables and Event Sources unlock deeper, multi-dimensional analysis.
::
---
## Creating a Visualization
Click **New Visualization** (or **Create Your First Visualization** when the list is empty) to open the editor. The editor is split into two panels: a configuration panel (left) and a live preview panel (right).

### Core Settings
Every visualization, regardless of type, starts with these common fields:
| Field | Description |
|---|---|
| **Visualization Name** | A descriptive name (e.g. "TeamA Shot Success Rate"). Required. |
| **Visualization Type** | Select from **KPI**, **Table**, **Chart**, **Position Map**, or **Event Source**. |
| **Data Source** | *(KPI and Chart only)* — **Calculated Metric**, **Measure**, **Total Events**, **Top Events**, or **Trend**. |
| **Calculated Metric / Measure** | *(when using calculated metric or measure data source)* — The specific metric or measure to visualize. |
| **Rollup Method** | *(KPI and Chart only)* — **Sum** (total across selected games) or **Average** (mean across games). |
When a measure is selected as the data source, an info alert displays a summary of the measure's configuration (event names, team filter, next event filters, label options).
---
## KPI Visualization
A KPI displays a single numeric value in a styled card. It is ideal for dashboards and scoreboards.

### KPI Configuration
| Setting | Description |
|---|---|
| **KPI Display Label** | The label shown above the value (e.g. "Shot Success Rate"). |
| **Metric Key** | Auto-populated from the selected data source. Read-only. |
| **Color Type** | **Custom Color** (solid colour picker) or **Traffic Light** (value-based zone colours). |
| **Reverse Lights** | When enabled, red means high values and green means low values (useful for negative metrics like turnovers). |
| **Traffic Light Values** | Four thresholds (v1 ≤ v2 ≤ v3 ≤ v4) defining three colour zones: red/amber/green. |
| **Card Variant** | Material Design card style: flat, tonal, outlined, plain. |
| **Rounded** | Corner rounding: xs, lg, xl, pill, circle, shaped. |
| **Text Size** | Slider from 1 (small) to 4 (large). |
### Traffic Light Zones
Values are coloured based on their position within the four thresholds:
| Range | Default Color (normal) | Color (reversed) |
|---|---|---|
| ≤ v2 | Red | Green |
| v2 → v3 | Amber | Amber |
| ≥ v3 | Green | Red |
The card's top border matches the active colour, providing an immediate visual cue even before reading the number.
---
## Table Visualization
A table displays multi-dimensional data with configurable columns, row granularity, and sort rules. It is the workhorse for player comparisons and team stat sheets.

### Table Columns
Each column is defined by:
| Setting | Description |
|---|---|
| **Type** | **Measure** (references a measure by its aggregation) or **Calculated** (references a calculated metric). |
| **Measure / Calculated Metric** | The specific measure or metric to display in this column. |
| **Heading** | The column header text (auto-populated from the measure/metric name). |
| **Rollup** | **Sum** or **Average** — applied per-metric so different columns can use different aggregation methods. |
| **Player** | *(when rows include players)* — **Event Player** or **Next Event Player** for attribution. |
Columns can be reordered by drag-and-drop.
### Row Configuration
| Setting | Description |
|---|---|
| **Row Grain** | **Player**, **Team**, or **Game** — determines what each row represents. |
| **Include Player Column** | When Row Grain is not Player, optionally add a player dimension column. |
| **Split Rows By Game** | When Row Grain is not Game, create separate rows per game for each entity. |
| **Max Rows** | Limit the number of displayed rows (1–1000). |
### Sort Rules
Multiple sort rules can be added and reordered by drag-and-drop:
| Setting | Description |
|---|---|
| **Column** | Which column to sort by — any dimension or metric column. Options update dynamically based on row grain and included columns. |
| **Direction** | **Ascending** or **Descending**. |
If no sort rules are defined, rows are sorted by the first metric column in descending order.
---
## Chart Visualization
Charts transform data into visual patterns with configurable chart types, grouping dimensions, colour schemes, and benchmark lines.

### Chart Types
| Type | Description |
|---|---|
| **Bar** | Vertical bar chart — compare categories side by side. |
| **Stacked Bar** | Vertical stacked bars — show category composition. |
| **Pie** | Proportional slices of a whole. |
| **Donut** | Pie with a cut-out centre showing the total. |
| **Line** | Connect data points to show trends over time or categories. |
| **Area** | Filled line chart with gradient shading. |
### Grouping
| Setting | Description | Options |
|---|---|---|
| **X-Axis Group By** | What appears along the horizontal axis. | Team, Player, Game, Event Name |
| **Series Group By** | What creates separate data series (bars/lines). | None, Team, Player, Game, Period, Minute Window |
| **Minute Window** | *(when minute_window is selected)* — Window size in minutes. | 5, 10, 15, 20 min |
Pie and donut charts only support a single series (the X-Axis categories become the slices).
### Display Options
| Setting | Description |
|---|---|
| **Data Labels** | Show numeric values on bars/slices/points. |
| **Legend** | Show a colour legend at the bottom. |
| **Horizontal Orientation** | *(bar/stacked bar only)* — Display bars horizontally. |
### Benchmark
*(Line and Area charts only)*
| Setting | Description |
|---|---|
| **Benchmark Value** | Draw a dashed orange reference line at this Y-axis value. |
| **Color zones above / below** | *(Area only)* — Shade above the benchmark green and below it red. |
### Y-Axis Range
| Setting | Description |
|---|---|
| **Min** | Force the Y-axis minimum (leave empty for auto). |
| **Max** | Force the Y-axis maximum (e.g. 100 for percentages). |
### Colour Scheme
| Scheme | Description |
|---|---|
| **Sport Pro** | A curated palette of four bold, sport-friendly colours. |
| **Monochrome** | Four shades of a single hue for a clean, professional look. |
| **Teams** | Two-colour scheme using the configured Team A and Team B colours. |
| **Custom** | Define up to six custom HEX colours with a colour picker. |
---
## Position Map Visualization
A position map overlays event positions onto a sports field or pitch using Konva canvas rendering. It shows where events occurred through shape markers, player labels, and connection lines.

### Configuration
| Setting | Description |
|---|---|
| **Playing Area** | Select from the catalog of sports fields/pitches/courts. |
| **Graphic Rotation** | Rotate the entire graphic (0°, 90°, 180°, 270°). |
| **Position Rotation** | Rotate event positions relative to the graphic. |
### Event Definitions
Each event definition configures which events to display and how:
| Setting | Description |
|---|---|
| **Event Name** | The event type to display (e.g. "Shot", "Puckout"). |
| **Next Event Name** | An optional linked event for connected display modes. |
| **Event Team** | Filter by Team A, Team B, or any team. |
| **Next Event Team** | Team filter for the linked event. |
| **Display Mode** | **Event** (show only the event), **Next Event** (show only the next event), **Both** (show both), **Connected** (show both with a line). |
| **Colour** | Marker fill colour. |
| **Shape** | Circle, square, triangle, or pentagon. |
| **Size** | Marker radius in pixels. |
| **Player Label** | None, number, or initials overlay on the marker. |
Clicking any marker opens the clip player to review the video footage for that event.
::callout{icon="i-heroicons-light-bulb" color="blue"}
Position maps can be auto-generated from the Tagger game configuration during analytics loading when the **Auto-Load Config** sync option is enabled.
::
---
## Event Source Visualization
An event source visualization answers the question: *"Where do our scoring chances come from?"* It maps source events (e.g. puckouts, turnovers) to target events (e.g. scores, shots) and displays the breakdown.

### Configuration
**Source Events** — Define one or more entry points:
| Field | Description |
|---|---|
| **Name** | A human-readable label (e.g. "TeamA Puckout"). |
| **Event** | The source event type. |
| **Team** | Team filter for the source event. |
| **Linked To Event** | An optional chained event between source and target. |
| **To Team** | Team filter for the linked event. |
**Target Events** — Define one or more end points:
| Field | Description |
|---|---|
| **Name** | A human-readable label (e.g. "Score"). |
| **Event** | The target event type. |
| **Team** | Team filter for the target event. |
| **Linked To Event** | An optional chained event. |
| **To Team** | Team filter for the linked event. |
### Display
The rendered visualization shows:
- **Total occurrences** count in a prominent badge
- **Source breakdown** — horizontal bars for each source event with count and percentage
- **Timeline** tab — minute markers as coloured chips for quick scanning, grouped by game
- **Players** tab — player involvement word cloud with counts, tiered by size (top third large, middle third medium, bottom third small). Click a player to expand their specific occurrence timeline.
- Two-team layouts split player involvement into side-by-side columns with a vertical divider
Click any occurrence chip to open the clip player for video review.
---
## Filters
Every visualization has its own set of filters, configured separately from the global Analytics 360 scope. Filters are applied when the visualization renders.
| Filter | Description |
|---|---|
| **Teams** | Restrict to events from specific teams. Leave empty to include all. |
| **Games** | Restrict to specific games. Automatically filtered to the selected teams' games when teams are selected. |
| **Players** | Restrict to events involving specific players. |
| **Periods** | Restrict to specific periods (e.g. 1st half only). |
Filters can also be applied on-the-fly in the **Preview** panel and in the **Fullscreen Preview** dialog without modifying the saved visualization.
---
## Preview
### Inline Preview
The right panel of the editor shows a live preview of the visualization as you configure it. The preview updates in real time as you change settings, so you can see exactly how the visualization will look before saving.
### Row Preview
Click **Preview** from the list view actions menu (or the preview button) to open a row preview dialog with the visualization rendered at full width and filter controls for quick data exploration.
### Fullscreen Preview
Click the expand button in the preview panel to open a fullscreen dialog with:
- **Zoom controls** — Zoom in (up to 200%), zoom out (down to 50%), and reset
- **Export** — Download as **PNG**, **SVG**, or **PDF**
- **In-dialog filters** — Teams, Players, Games, and Periods filters applied on-the-fly
::callout{icon="i-heroicons-light-bulb" color="blue"}
The fullscreen preview is the recommended way to review visualizations before adding them to a dashboard or deck. It renders at full resolution and supports export for sharing outside the application.
::
---
## Managing Visualizations
### Editing
Click any row in the list view, or use the kebab menu (⋮) → **Edit**, to open the visualization in the editor. Make your changes and click **Update Visualization**.
### Copying
Use the kebab menu (⋮) → **Copy** to duplicate a visualization. The editor opens with a clone named "Original Name (Copy)" — make adjustments and save to create a variant.
### Deleting
Use the kebab menu (⋮) → **Delete** to remove a visualization. Analytics 360 checks whether the visualization is referenced by any dashboards or decks before allowing deletion. If the visualization is in use, the dialog lists every consumer and blocks the deletion until those references are removed.
### Bulk Delete
Check multiple rows in the list view and click **Delete Selected (n)**. The dependency check runs against all selected visualizations — any that are in use are listed with the blocking consumers, and only the safe-to-delete visualizations are removed.
### Searching and Filtering
- **Search bar** — Filters visualizations by name in real time.
- **Type filter** — Toggle between All, KPI, Table, Chart, Map, and Event Source to narrow the list.
---
## How Visualizations Connect
Visualizations are the consumer layer of the Analytics 360 data model — they surface measures and calculated metrics as visual outputs:
```
Tagged Events → Measures → Calculated Metrics → Visualizations → Dashboards
→ Decks
```
A single visualization can appear in multiple dashboards and decks. A single measure or calculated metric can power multiple visualizations of different types — for example, a shot success rate metric can drive a KPI card, a bar chart by game, and a table of player-by-player rates simultaneously.
---
## Next Steps
With visualizations defined, you are ready to assemble them into higher-level outputs:
1. [Dashboards](/docs/tagger/analytics360/dashboards) — Arrange visualizations into structured, resizable dashboard layouts
2. [Decks](/docs/tagger/analytics360/decks) — Build presentation decks combining visualizations with narrative slides
---
URL: https://teamoppy.com/docs/tagger/analytics360/dashboards
# Dashboards
Dashboards are the assembly layer of Analytics 360 — they bring visualizations together into structured, resizable layouts that can be viewed, filtered, and presented as a single cohesive page. Each dashboard is a grid of rows and columns populated with visualizations, with a global filter bar that cascades across all contained widgets.
---
## Overview
The Dashboards tab operates in three modes: a **list view** showing every dashboard you have saved, a **designer view** for building and editing dashboard layouts, and a **preview view** for fullscreen presentation.

### List View
When dashboards exist, the list view displays a table with the following columns:
| Column | Description |
|---|---|
| **Name** | The dashboard name. Click any row to view the dashboard. |
| **Description** | An optional description of the dashboard's purpose or audience. |
| **Updated** | The timestamp of the last save. |
| **Actions** | Kebab menu (⋮) with **View**, **Edit**, and **Delete** options. |
Above the table, a search bar filters dashboards by name in real time. A count badge shows the total number of saved dashboards. Checkboxes on each row enable **bulk delete**.
### Empty State
When no dashboards have been saved, the page displays a prompt: *"Create dashboards to arrange your visualizations into presentation-ready layouts."* with a **Create Your First Dashboard** button.
::callout{icon="i-heroicons-exclamation-triangle" color="yellow"}
Dashboard creation requires the **Analyst Elite** package. Users on lower tiers see an upgrade prompt directing them to the Accounts Portal.
::
---
## The Dashboard Designer
Click **New Dashboard** (or **Edit** on an existing dashboard) to open the fullscreen designer. The designer is a drag-and-drop layout editor where you build dashboards from rows, columns, and components.

### Designer Toolbar
The top toolbar provides:
| Control | Description |
|---|---|
| **Close (✕)** | Exit the designer. Prompts if there are unsaved changes. |
| **Dashboard Name** | A text field for naming the dashboard. Appears in the list view and preview header. |
| **Description** | An optional text field describing the dashboard. |
| **Autosave Indicator** | A chip showing **Saving...** (with spinner) or **Saved** (with checkmark) as the layout auto-saves. |
| **Save** | Manually trigger a save. |
| **Preview** | Open the fullscreen preview view to see the dashboard as it will appear to viewers. |
### Layout System
Dashboards use a 12-column grid system. The layout is hierarchical:
```
Dashboard
└── Row (root)
├── Col (e.g. 4-col span)
│ ├── Component (KPI)
│ └── Component (Chart)
├── Col (e.g. 8-col span)
│ └── Component (Position Map)
└── Col (e.g. 12-col span)
└── Row (nested)
├── Col (6-col span) → Component
└── Col (6-col span) → Component
```
### Rows
Rows are horizontal containers that hold columns. The root row cannot be deleted. Nested rows can be created inside columns for more complex layouts.
Each row has a context menu (⋮) with:
- **Add Container** — Add a new column to this row
- **Move Up / Move Down** — Reorder rows within their parent column
- **Delete Row** — Remove the row and all its contents
### Columns (Containers)
When adding a container, you configure:
| Setting | Description |
|---|---|
| **Span Size (Desktop)** | How many of the 12 grid columns this container occupies on large screens (1–12). |
| **Offset (Desktop)** | How many columns to skip before this container starts. |
| **Span Size (Mobile)** | Grid span on mobile devices. Recommended: 12 for full-width. |
| **Offset (Mobile)** | Offset on mobile devices. Recommended: 0. |
The total of span size + offset must not exceed 12. An inline validation message warns if the combination is invalid.
### Components
Each column can hold one or more components. Currently supported component types:
| Component | Description |
|---|---|
| **Visualization** | Embeds any saved visualization (KPI, Table, Chart, Position Map, Event Source) into the dashboard. Displays the visualization's type chip and name in a header bar above the rendered content. |
| **Embedded Image** | Embeds an image from a URL. Useful for adding logos, sponsor graphics, or external charts. |
#### Adding a Visualization
Empty columns display a placeholder: *"Add a component to this container"*. Drag a visualization from the sidebar or use the component menu to place one.
Each visualization component shows:
- A header bar with the visualization type icon, name, and type chip (colour-coded)
- The fully rendered visualization, identical to its standalone preview
- A hover overlay with a context menu for **Edit** (swap visualization) and **Delete** (remove from column)
#### Drag and Drop
Components can be reordered within a column by dragging. On desktop, a drag handle icon appears when hovering between components. Drag a component to a new position or into another column's drop zone to rearrange the layout.
---
## Viewing a Dashboard
Click **View** from the list (or click a dashboard row) to open the dashboard in view mode. The view mode presents the dashboard with:
### Global Filter Bar
A filter bar at the top of the dashboard applies to all contained visualizations simultaneously:
| Filter | Description |
|---|---|
| **Team** | Select a team to filter all visualizations. Triggers cascading updates to Games and Players. |
| **Games** | Multi-select games, automatically filtered to the selected team's fixtures. |
| **Players** | Multi-select players, filtered by the selected team. |
| **Periods** | Multi-select periods (1–8) to focus on specific game segments. |
Filters cascade: selecting a team automatically narrows the available games and players. Clearing a filter widens the scope back to all available data.
### Dashboard Layout
The dashboard renders exactly as designed — rows, columns, and components at their configured sizes. All visualizations respond to the global filter, updating their data in real time as filters change.
---
## Preview
Click **Preview** from the designer toolbar to open a fullscreen presentation view:
- **Dashboard name** displayed as a centred heading
- **Edit button** (pencil icon) to jump back to the designer
- **Close button** to return to the designer
- Full rendering of the dashboard with the global filter bar active
The preview is designed for presentation scenarios — share your screen, connect to a projector, or use it for team review meetings.
---
## Managing Dashboards
### Editing
Use the kebab menu (⋮) → **Edit** to open a dashboard in the designer. Make layout changes, add or remove components, adjust column spans, and save.
### Viewing
Use **View** from the kebab menu, or click any dashboard row, to open the read-only view mode with the global filter bar.
### Deleting
Use the kebab menu (⋮) → **Delete** to remove a dashboard. A confirmation dialog asks you to confirm. This action cannot be undone.
### Bulk Delete
Check multiple rows in the list view and click **Delete Selected (n)**. A confirmation dialog shows the count. All selected dashboards are removed.
### Searching
The search bar at the top of the list filters dashboards by name in real time.
### Unsaved Changes
If you close the designer or navigate away with unsaved changes, a dialog warns you: *"You have unsaved changes. Are you sure you want to discard them?"* Choose **Discard** to lose changes or **Keep Editing** to return to the designer.
---
## How Dashboards Connect
Dashboards are the top-level consumer in the Analytics 360 data model — they assemble visualizations into complete analytical views:
```
Tagged Events → Measures → Calculated Metrics → Visualizations → Dashboards
→ Decks
```
A dashboard can contain any number of visualizations of any type. A single visualization can appear in multiple dashboards. The global filter bar provides a unified filtering experience across all contained widgets, making dashboards ideal for team review sessions, match analysis, and recurring report views.
---
## Next Steps
With dashboards defined, you can take them into presentation formats:
1. [Decks](/docs/tagger/analytics360/decks) — Build presentation decks combining dashboards and visualizations with narrative slides for meetings and reviews
---
URL: https://teamoppy.com/docs/tagger/analytics360/decks
# Decks
Decks are the presentation layer of Analytics 360 — they combine slides, visualizations, playlists, and rich text into narrated, exportable presentations. A deck is a sequence of slides, each built from a layout template and populated with content, that can be presented live or exported as an MP4 video file.
---
## Overview
The Decks tab operates in three modes: a **list view** showing all saved decks, a fullscreen **editor view** for building slides, and a **presentation mode** for live slideshow playback.

### List View
When decks exist, the list view displays a table with the following columns:
| Column | Description |
|---|---|
| **Name** | The deck name. Click any row to open the editor. |
| **Slides** | The number of slides in the deck. |
| **Actions** | Kebab menu (⋮) with **Rename** and **Delete** options. |
Above the table, a search bar filters decks by name. A count badge shows the total number of saved decks. Checkboxes enable **bulk delete**.
### Empty State
When no decks have been saved, the page displays: *"Create your first deck to start building slides with visualizations, playlists, and rich text."* with a **Create Your First Deck** button.
---
## The Deck Editor
Click a deck row (or **New Deck**) to open the fullscreen editor. The editor has three panels: a slide thumbnail strip on the left, the active slide editor in the centre, and a slide properties panel.

### Editor Toolbar
The top toolbar provides:
| Control | Description |
|---|---|
| **Back (←)** | Exit the editor and return to the deck list. |
| **Deck Name** | Inline editable text field. Changes auto-save on blur. |
| **Autosave Indicator** | Chip showing **Saving...** (with spinner) or **Saved** (checkmark) as slides auto-save. |
| **Add Slide** | Opens the layout picker to add a new slide. |
| **Present** | Launches the fullscreen slideshow presentation mode. |
| **Export** | Opens the video export dialog. |
| **Delete** | Deletes the entire deck after confirmation. |
### Slide Thumbnails
The left panel shows a vertical strip of slide thumbnails. Each thumbnail shows a miniature preview of the slide layout with content indicators. Thumbnails are draggable — drag to reorder slides. The sort order persists to the database.
- **Selected slide** — highlighted with a primary-colour border and glow
- **Drag handle** — vertical grip icon on the left edge of each thumbnail
- **Content indicators** — icons and preview text show what each slot contains (playlist icon, visualization name, richtext snippet)
### Slide Properties
Each slide has configurable properties shown in the right panel:
| Setting | Description |
|---|---|
| **Background** | **Solid** colour or **Gradient** (start → end colour with configurable direction: to-right, to-bottom, to-bottom-right, to-top-right). |
| **Text Color** | Default text colour for the slide. Overridable per slot. |
| **Display Duration** | How long the slide is shown during presentation auto-advance and video export (in seconds). |
---
## Slide Layouts
When adding a slide, the **Choose Slide Layout** picker presents nine layout templates:

| Layout | Description | Slots |
|---|---|---|
| **Title Slide** | Centred title and subtitle — perfect for deck openings or section dividers. | Title, Subtitle |
| **Title + Content** | Title bar at the top with a large content area below. | Title, Content |
| **Two Columns** | Title bar with two equal content columns below. | Title, Left, Right |
| **Three Columns** | Title bar with three equal columns below. | Title, Left, Center, Right |
| **Content + Notes** | A main content area with a smaller notes panel on the right. | Content, Notes |
| **Full Content** | A single full-screen content slot with no title bar. | Content |
| **2×2 Grid** | Four equal quadrants for dashboard-style layouts. | Top-Left, Top-Right, Bottom-Left, Bottom-Right |
| **Content + Sidebar** | Large content area with a narrow sidebar on the left. | Sidebar, Content |
| **Playlist** | A single video playlist slot designed for clip playback. | Playlist |
---
## Slide Content Types
Each slot in a slide layout can hold one of three content types:
### Rich Text
A Tiptap rich text editor for headings, paragraphs, bullet lists, and styled text. Perfect for title slides, bullet-point summaries, and narrative commentary.
- Full rich text formatting (bold, italic, headings, lists)
- Text colour configurable per slot (overrides the slide default)
- HTML content is rendered directly in presentation mode

### Visualization
Embeds any saved Analytics 360 visualization into the slide. Open the **Select Visualization** picker to choose a visualization by name.
| Setting | Description |
|---|---|
| **Visualization** | The saved visualization to display. |
| **Horizontal Align** | Left, Center, or Right alignment within the slot. |
| **Vertical Align** | Top, Center, or Bottom alignment within the slot. |
| **Size** | Auto (fit), Small (40%), Medium (60%), Large (85%), or Full (100%). |

The visualization renders identically to its standalone and dashboard appearance. Charts, KPIs, tables, position maps, and event sources all work in deck slides.
### Playlist
Embeds a saved playlist for video clip playback. Open the **Select Playlist** picker to choose a playlist layout.

And then select the playlist itself.

When a playlist slide is presented or exported, the clips play sequentially within the slide. The slide duration is driven by the playlist — it advances only after all clips have finished playing.
::callout{icon="i-heroicons-exclamation-triangle" color="amber"}
Only playlists containing clips from **local files** can be exported to video. Playlists that include YouTube clips cannot be exported and will be skipped during the export process.
::
---
## Presentation Mode
Click **Present** in the editor toolbar to launch the fullscreen slideshow.

### Controls
| Control | Description |
|---|---|
| **← / → arrow keys** | Navigate to previous / next slide. |
| **Space bar** | Advance to the next slide. |
| **Escape** | Exit presentation mode. |
| **On-screen buttons** | Previous, Play/Pause (auto-advance), Next, Close. |
### Features
- **Slide counter** — Centred chip showing "2 / 4" (current / total).
- **Auto-advance** — Toggle with the Play/Pause button. When active, slides auto-advance after their configured display duration. A progress bar at the top of the screen fills over the duration.
- **Playlist slides** — Playlist-equipped slides hold until all clips have played, then auto-advance (if auto-advance is enabled).
- **Fade transitions** — Smooth crossfade between slides.
---
## Video Export
Click **Export** in the editor toolbar to render the deck as an MP4 video file.

### Export Settings
| Setting | Description |
|---|---|
| **Output Folder** | Click **Select Folder** to choose where the MP4 will be saved. |
| **File Name** | Auto-populated from the deck name, sanitized for file systems. Editable. |
| **Quality** | **High** (larger file), **Medium**, or **Standard** (smaller file). |
| **Include Clip Details Overlay** | When enabled, video clips in playlist slides show an overlay with clip metadata. |
| **Watermark** | A Teamoppy watermark is included by default. Disabled for accounts with the studio watermark removal permission. |
| **Include audio from playlist clips** | Off by default, so the video clips in playlist slides are exported silent. Switch it on to keep their original audio. The audio is normalised to 128 kbps stereo and pauses while a drawing overlay is held on screen, so it stays in step with the picture. Slides that are images or visualizations have no audio. |
::callout{icon="i-heroicons-information-circle" color="blue"}
**Include audio from playlist clips** applies to the export you are about to run. It is not remembered for the next one.
::
### Export Process
1. Each slide is rendered individually by capturing its DOM element as an image
2. Static slides (rich text and visualizations) are rendered for their configured duration
3. Playlist slides play the actual video clips sequentially
4. Progress is shown as "Rendering slide 2/4 (static, 5s)..." with a percentage bar
5. On completion, a success dialog shows the output file path


::callout{icon="i-heroicons-light-bulb" color="blue"}
Export uses ffmpeg under the hood. Playlist slides with video clips produce the highest quality output since the original video frames are used directly rather than captured from screen renders.
::
---
## Managing Decks
### Creating
Click **New Deck** in the list view. Enter a name in the dialog and click **Create**. The new deck opens immediately in the editor.
### Renaming
Use the kebab menu (⋮) → **Rename** to change a deck's name from the list view. Or edit the name directly in the editor toolbar — it auto-saves on blur.
### Deleting
Use **Delete** from the kebab menu or the editor toolbar. A confirmation dialog asks you to confirm. Deleting a deck removes all its slides permanently.
### Bulk Delete
Check multiple rows and click **Delete Selected (n)**. A confirmation dialog shows the count. All selected decks and their slides are removed.
### Searching
The search bar filters decks by name in real time.
---
## How Decks Connect
Decks are the top-level presentation format in Analytics 360 — they assemble slides into narrative sequences:
```
Tagged Events → Measures → Calculated Metrics → Visualizations → Decks
Playlists → ────────────────→ Decks
```
A deck can contain any number of slides with any mix of content types. Visualizations and playlists are referenced by ID — updating a visualization or playlist automatically updates all decks that reference it. Video export makes decks portable for sharing outside the application.
---
URL: https://teamoppy.com/docs/tagger/configuration/configuration
# Configuration
A guide to Tagger configurations — what they are, how they are managed, and how to modify and test them for your own analysis.
## What is a Configuration?
A configuration is the foundation of every Tagger game. It defines what can be tagged, how events are captured, how data is measured and calculated, and how results are presented.
Each configuration specifies:
- **What can be tagged** — the events (Shot, Pass, Turnover, etc.) and their associated labels and attributes
- **How it is tagged** — how event buttons behave and which player, zone or outcome context is captured with each action
- **Measures and calculations** — the totals, metrics and formulas derived from your tagged data
- **Presentation** — how results are displayed in charts, totals, info cards, comparison tables, dashboards and more
Pretty much everything in Tagger is configurable, from events and playing area graphics to charts, totals and dashboards.
At the core of every configuration is the **Event**. Your Shot, Pass, Turnover and similar actions are the building blocks for other configuration objects, including totals, charts, info cards, comparison tables and event sources.
The following pages provide details on each configuration section:
- [General Configuration](/docs/tagger/configuration/general-configuration)
- [Playing Area Configuration](/docs/tagger/configuration/playing-area-configuration)
- [Zone Configuration](/docs/tagger/configuration/zone-configuration)
- [Event Configuration](/docs/tagger/configuration/event-configuration)
- [Event Config Visualiser](/docs/tagger/configuration/event-config-visualiser)
- [Tag Windows](/docs/tagger/tag-windows)
- [Score Configuration](/docs/tagger/configuration/score-configuration)
- [Total Configuration](/docs/tagger/configuration/total-configuration)
- [Comparison Tables Configuration](/docs/tagger/configuration/comparison-tables-configuration)
- [Info Cards Configuration](/docs/tagger/configuration/info-cards-configuration)
- [Position Maps Configuration](/docs/tagger/configuration/position-maps-configuration)
- [Charts Configuration](/docs/tagger/configuration/charts-configuration)
- [Totals-based Charts](/docs/tagger/configuration/totals-based-charts)
- [Shortcuts Configuration](/docs/tagger/configuration/shortcuts-configuration)
- [Metric Highlights](/docs/tagger/configuration/metric-highlights)
- [Metric Progressions](/docs/tagger/configuration/metric-progressions)
- [Event Sources](/docs/tagger/configuration/event-sources)
## Configuration Management
Tagger provides a number of pre-defined Sport Configuration templates in the **Configuration Catalog**. To get started quickly, import a configuration from the Catalog and then adapt the template to your own specific analysis.
::callout{icon="i-heroicons-exclamation-triangle" color="amber"}
Configurations are saved locally in the app and are not automatically backed up to cloud storage or anywhere else. Back up your configuration templates regularly — either to your local file system or to your [Cloud Workspace](/docs/tagger/cloud-workspace) — to avoid losing your work.
::
## Template vs Game Configuration
Tagger distinguishes between a **Template Configuration** and a **Game Configuration**.
When you create a new game, you first link it to a Template Configuration.

In the Configurations list, a green tick next to the template indicates that the current game is linked to it.

When the game is saved, the Template Configuration is saved along with the game data and becomes a **Game Configuration**. When you reopen the game, its Game Configuration opens with it, and in the Configurations section the configuration is labelled as a Game.

## Modifying and testing configurations
There are three approaches to modifying templates, depending on whether you have a game available to test against:
1. **Link a game to a Template Configuration** — the recommended approach when you have an existing game you can test with
2. **Modify a Game Configuration and convert it to a template** — the recommended approach when you want to test changes before reusing them
3. **Directly change a Template Configuration** — only suitable when you have no existing games to test with
### 1. Link a Game to a Template
This approach is ideal when you have a game you can use to test changes against real data.
1. Open a game.
2. From the game menu, click **Edit**.
3. Change the **Sport Configuration** to use the Template Configuration instead of the Game Configuration.
4. Go to the **Configurations** list and start making changes to the template.
Any changes you make to the template are applied immediately and will be available for future games.
### 2. Modify a Game Configuration
This approach lets you test changes against a live game before turning them into a reusable template.
1. Open a game and navigate to **Configurations**.
2. Modify the Game Configuration as required.
3. Once you have tested the changes and are happy with them, copy the Game Configuration to create a new Template Configuration:
- In the Configurations list, open the menu (the blue button with three dots) on the Game Configuration.
- Click **Copy** and give the new template a name. As good practice, include a version number in the name (e.g. `v1`).
You now have a new template that you can use for other games going forward.
### 3. Directly change a Template Configuration
If you do not yet have any games, you can still modify a Template Configuration for use with new games.
The main drawback of this approach is that you will not have any event data to test with, so approaches 1 and 2 are recommended whenever possible.
---
URL: https://teamoppy.com/docs/tagger/configuration/general-configuration
# General Configuration
Configure Tagger General configurations
## General Settings
In this page you can specify general settings for the sport e.g. number of players per team, number of periods and number of minutes per period.
### General Details
| Field | Description |
| --- | --- |
| **Sport Configuration Name** | Required. The name of the configuration template. |
| **Sport Configuration Description** | Required. A description of the configuration, shown when you select a template. |
### Number of Players
| Field | Description |
| --- | --- |
| **Number of players per team** | Specifies the number of players on the team. |
| **Number of substitutes per team** | Specifies the number of substitutes on the team. |
### Period Settings
| Field | Description |
| --- | --- |
| **Number of periods per game** | Specifies the number of periods/halfs. |
| **Number of minutes per period** | Specifies the number of minutes per period. |
| **Number of periods of extra time per game** | Specifies the number of periods/halfs of extra time. |
| **Number of minutes per period of extra time** | Specifies the number of minutes per period of extra time. |
| **Timer Display - Use Countdown** | Switch this on to display the match clock counting down the time left in the period instead of counting up from 0:00. |
### Tagger View Settings
| Field | Description |
| --- | --- |
| **Optionally set a default Tagger view option for this configuration** | Select the view that is displayed when you create a game with this configuration. Leave it blank to use the device's own preference. See [Preferences](/docs/tagger/02a.preferences) for the available views. |
### Substitute Button
| Field | Description |
| --- | --- |
| **Hide System Generated Substitute Button** | Switch this on to hide the system generated substitute button that appears in the Tagger events. |
### Team Formation Settings
| Field | Description |
| --- | --- |
| **Team formation graphic** | Select the playing area graphic, then set the player positions for the team formation. The formation is used by the **Live Manager Mode** view. |
---
URL: https://teamoppy.com/docs/tagger/configuration/playing-area-configuration
# Playing Area Configuration
Configure Tagger Playing Area Graphics
## Playing Areas Configuration
Configure the playing area graphics for your sport. This could be a pitch, a court, a graphic of goal posts, anything that you would like to track x, y co-ordinates for.
### Create new playing area
Click the **New** button to create a new playing area.
### Playing Area Details
| Field | Description |
| --- | --- |
| **Playing Area Name** | Specify a name for the playing area. |
| **Display team end indicators (Landscape)** | Switch this on to display team end indicators on the graphic when it is shown in landscape. This is helpful to indicate, for example, the teams' goals at either end of the pitch. |
| **Display team end indicators (Portrait)** | The same, for when the graphic is shown in portrait — for example on a phone held upright. For goal post graphics it is likely you would leave both of these unselected. |
### Rotation
There is no portrait rotation setting in the configuration. Rotation is a viewing and tagging preference held on each device: while tagging, a rotation button above the position map turns the graphic through **0°**, **90°**, **180°** and **270°**.

The setting is stored per graphic on that device. It is never saved with the game or configuration, and positions tagged while the graphic is rotated are stored in the graphic's own orientation, so rotating a map never affects your data.
A graphic with team end indicators turned on is also rotated automatically when you swap the sides of the tagging screen, while **Auto Swap Position Map Sides** is on (the default) — see [Preferences](/docs/tagger/02a.preferences). A new game starts those graphics at 0°.
See [Rotating a Position Map](/docs/tagger/live-tagging-without-video#rotating-a-position-map) for the rotation control while tagging.
### Perimeter
The perimeter is the outer boundary of the graphic.
| Field | Description |
| --- | --- |
| **Type** | Currently the only option for perimeter type is Rectangle. More options may be added in the future. |
| **Width** | The width of the perimeter as viewed in landscape mode. Tip: you may want to have this a few metres wider than the actual pitch width itself. |
| **Height** | The height of the perimeter as viewed in landscape mode. Tip: you may want to have this a few metres taller than the actual pitch height itself. |
| **Line color** | The colour of the perimeter line. Can be transparent also. |
| **Fill color** | The background colour of the perimeter. Can be transparent also. |
### Playing Area Objects
These are the lines, circles, etc... that you can draw on the graphic. Every object shares the following settings:
| Field | Description |
| --- | --- |
| **Name** | Give the object a name - this should be descriptive to identify the object. Important when a graphic has many objects. |
| **Type** | The type of object - line, rectangle, circle or ellipse. |
| **Line color** | The line colour of the object. |
| **Fill Color** | Switch this on to give the object a background fill colour, then pick the **Fill color**. |
| **Clip** | Switch this on to clip the object. This is useful if you only want to show a portion of the object that you have drawn. For example, to draw a semi-circle: draw a circle first, then clip it to get the resultant semi-circle. It clips in a rectangular format. |
The remaining fields depend on the object **Type**:
#### Line
| Field | Description |
| --- | --- |
| **From x co-ordinate** | The starting x co-ordinate for the line. |
| **From y co-ordinate** | The starting y co-ordinate for the line. |
| **To x co-ordinate** | The ending x co-ordinate for the line. |
| **To y co-ordinate** | The ending y co-ordinate for the line. |
| **Dash Length** | Set this to add a dash to the line. |
| **Dash Gap** | Set this to add a dash gap to the line. |
#### Rectangle
| Field | Description |
| --- | --- |
| **X co-ordinate** | The x co-ordinate of the top left of the rectangle. |
| **Y co-ordinate** | The y co-ordinate of the top left of the rectangle. |
| **Width** | The width of the rectangle. |
| **Height** | The height of the rectangle. |
#### Circle
| Field | Description |
| --- | --- |
| **X co-ordinate** | The x co-ordinate for the center point of the circle. |
| **Y co-ordinate** | The y co-ordinate for the center point of the circle. |
| **Radius** | The radius of the circle. |
| **Dash Length** | Set this to add a dash to the circle. |
| **Dash Gap** | Set this to add a dash gap to the circle. |
#### Ellipse
| Field | Description |
| --- | --- |
| **X co-ordinate** | The x co-ordinate for the center point of the ellipse. |
| **Y co-ordinate** | The y co-ordinate for the center point of the ellipse. |
| **Radius X** | The horizontal radius of the ellipse. |
| **Radius Y** | The vertical radius of the ellipse. |
#### Clip
Shown when **Clip** is switched on.
| Field | Description |
| --- | --- |
| **Clip X co-ordinate** | The starting x co-ordinate for the clip (top left of the clip rectangle). |
| **Clip Y co-ordinate** | The starting y co-ordinate for the clip (top left of the clip rectangle). |
| **Clip Width** | The width of the clip. |
| **Clip Height** | The height of the clip. |
---
URL: https://teamoppy.com/docs/tagger/configuration/zone-configuration
# Zone Configuration
Configure Tagger Zones
## Zones
Configure zones on top of your Playing Area Graphics. Zones can then be used for filtering events in your totals, charts, tables, etc...
Click the **New** button to create a new zone.
### Zone Details
| Field | Description |
| --- | --- |
| **Name** | Set a name for the zone. This will be used when selecting your zone filters. |
| **Specify the playing area for this zone** | This is the playing area that the zone is applied to. |
| **Specify the shape for this zone** | This can be a Rectangle or a Polygon (max 4 sides). |
| **Show Name** | If selected then the zone name will be displayed on the playing area graphic. |
| **Name x co-ordinate** | X co-ordinate where the zone name will be displayed. |
| **Name y co-ordinate** | Y co-ordinate where the zone name will be displayed. |
| **Show Other Zones** | Switch this on in the zone editor to display the other zones configured for the same playing area behind the zone you are editing. This helps you position a new zone accurately without losing sight of the zones around it. |
### Rectangle
| Field | Description |
| --- | --- |
| **From x co-ordinate** | The starting x co-ordinate for the rectangle. |
| **From y co-ordinate** | The starting y co-ordinate for the rectangle. |
| **To x co-ordinate** | The ending x co-ordinate for the rectangle. |
| **To y co-ordinate** | The ending y co-ordinate for the rectangle. |
### Polygon
You can create a 3 or 4 sided Polygon zone, with a maximum of 4 points.
| Field | Description |
| --- | --- |
| **X co-ordinate** | The x co-ordinate. |
| **Y co-ordinate** | The Y co-ordinate. |
---
URL: https://teamoppy.com/docs/tagger/configuration/event-configuration
# Event Configuration
Configure and manage your Tagger event model.
Event Configuration is the core of any Tagger workflow. It defines what analysts can tag, how event buttons behave, and which additional context is captured with each tagged action.
Tagger includes system-defined sport configuration templates in the Catalog. These are designed as starting points and reference implementations. In most production environments, analysts should adapt them to match team-specific terminology, coding standards, and reporting requirements.
The Event Configuration area includes:
- Events
- Event Groups
- Event Labels
- Event Links
- Event Accelerators
- Tag Windows
## Events
Every event tagged in the Tagger interface is an instance of an Event configuration. Event behavior at runtime depends on the settings defined here.
| Field | Description |
| --- | --- |
| **Name** | Required. This is the default label shown on the event button in Tagger. Users can optionally switch display mode to use short names or icons from Preferences. |
| **Event Group** | Assign each event to an Event Group. This determines where the event button is displayed in the Tagger layout. |
| **Enabled** | Only enabled events are available for tagging. |
| **Primary Event** | When enabled, the event appears as a directly selectable button in Tagger without prerequisite selections. Non-primary events are commonly exposed through Event Links. |
| **Color** | Defines the event button background color. |
| **Text Color (White)** | Defines event button text color (black or white) to ensure readability against the selected background. |
| **Event Labels** | Attach one or more Event Labels to capture additional metadata for the event. Example: a Shot event can include labels such as Shot Type (Open Play, Free Kick) and Body Part (Left Foot, Right Foot, Head). |
| **Event Team** | Controls team assignment behavior for the event instance. Unset defaults to the team panel where the event button is pressed; Team A or Team B always assigns that team; Same always uses the team panel where the event is selected; Opposite assigns the opposing team relative to the panel used. |
| **Specify Player for Event** | When enabled, a player must be selected before the event can be tagged. |
| **Keep Player Active After Event Save** | Keeps the selected player active after saving an event. This reduces clicks in sequences where the same player is likely to perform subsequent actions - for example Pass Received followed by the next action from the same player. |
| **Specify Position for Event** | When enabled, the user must provide event coordinates during tagging. |
| **Events Playing Area** | Selects the playing area used for coordinate capture. |
| **Specify Count for Tag** | Allows entry of a quantity for the event in a single action. Example: during live analysis, an analyst can tag Passing once and enter the total count for that sequence. |
| **Lead Time** | Sets the pre-roll duration (in seconds) when generating or previewing event clips. |
| **Lag Time** | Sets the post-roll duration (in seconds) when generating or previewing event clips. |
| **Icon** | Optional icon for the event button. Useful on compact layouts and mobile workflows. Icons can be selected from https://materialdesignicons.com/. |
| **Short Name** | Optional compact label shown when users enable short-name display mode in Preferences. |
#### Advanced Button Customization
| Field | Description |
| --- | --- |
| **Custom Button Width** | Leave blank or set to auto for default sizing. Set a value from 2 to 12 to control button span. |
| **Custom Button Height** | Set a custom pixel height. This overrides event button size set in user Preferences. |
| **Button Rounded Corners** | Controls corner styling. Set to none for square corners. |
| **Button Variant** | Flat is the default style. Additional options include Outlined and Text. |
## Event Groups
Event Groups are categories used to organize event buttons in the Tagger interface.
| Field | Description |
| --- | --- |
| **Name** | The display name of the event group. |
| **Enabled** | Only enabled groups are shown in Tagger. |
## Event Labels
Event Labels define additional descriptors that can be attached to events. A single label can be reused across multiple events.
| Field | Description |
| --- | --- |
| **Name** | The label name. Example: for a Shot event, create a label called Body Part. |
| **Enabled** | Only enabled labels are available during tagging. |
| **Label Options** | Label Options are the selectable values shown at runtime. Example: for the Body Part label, options might include Right Foot, Left Foot, and Head. |
#### Label Options
| Field | Description |
| --- | --- |
| **Name** | The option name. |
| **Enabled** | Only enabled options are selectable. |
| **Color** | Defines the label option button background color. |
| **Text Color (White)** | Defines label option text color (black or white). |
| **Icon** | Optional icon for the label option. Icons can be selected from https://materialdesignicons.com/. |
| **Short Name** | Optional compact label shown when short-name mode is enabled. |
## Event Links
Event Links allow one event to activate other events automatically.
Example: Selecting Shot can activate Goal and Wide as follow-up options.
In this context, activate means the linked events become visible and selectable when the source event is selected.
| Field | Description |
| --- | --- |
| **Name** | The link name. |
| **Enabled** | Only enabled links are applied. |
| **From Event** | The source event that triggers activation. |
| **Link Direction** | Defines whether activation is one-way or bidirectional. One Way: From Event to To Event only. Two Way: activation works in both directions. |
| **To Event** | The target event that is activated by the link. |
## Event Accelerators
Event Accelerators speed up tagging by selecting predefined events and labels with one click.
| Field | Description |
| --- | --- |
| **Name** | The accelerator name shown in Tagger. |
| **Event Group** | The Event Group where the accelerator is displayed. |
| **Enabled** | Only enabled accelerators are available. |
| **Event Selections** | A list of events selected automatically by the accelerator. The order of Event Selections is important because it determines the sequence in the events table. |
#### Event Selections
| Field | Description |
| --- | --- |
| **Event Selection** | The event included in the accelerator. |
| **Enabled** | Only enabled selections are applied. |
| **Labels** | Labels and label options that are automatically selected when the accelerator is used. |
##### Labels
| Field | Description |
| --- | --- |
| **Event Label** | The label to apply. |
| **Event Label Option** | The label option value to apply automatically. |
## Tag Windows
Tag Windows allow you to create focused windows for tagging specific events. Each window displays only the events you choose, so an analyst can concentrate on a subset of the event buttons — for example their own team's events, or a particular phase of play. They are particularly useful for teams using Tagger Rooms for multi-user tagging and live sharing.
Tag windows are selected at tagging time from the **Tag Windows** dialog, opened with the panel icon at the top of the event buttons.
| Field | Description |
| --- | --- |
| **Tag Window Name** | Required. The name shown on the button in the Tag Windows dialog. |
| **Enabled** | Only enabled tag windows are available in the Tag Windows dialog. |
| **Display** | **Both**, **Team A** or **Team B** — controls which team windows are shown. |
| **Events** | Required. The events that this tag window will display. |
See [Tag Windows](/docs/tagger/tag-windows) for the tagging workflow, including how to swap the sides of the tagging screen and how that affects position maps that show team ends.
---
URL: https://teamoppy.com/docs/tagger/configuration/event-config-visualiser
# Event Configuration Visualiser
Review your event configuration with the event configuration visualiser
## Where to Find It
The visualiser is the **Overview** panel of the **Events** card in your sport configuration, titled **Events Overview Visualiser**. Select **Configuration**, then **Events**, and it appears alongside the event list on larger screens.
## What is the Event Configuration Visualiser
This is a graphical overview of all your event configurations showing the event, event labels, some key settings like whether the event requires a player to be selected, or x, y position is to be selected along with lines connecting linked events. Events that carry a disciplinary card are indicated as well.
:video-player{videoId="BoC33c2bLxc"}
---
URL: https://teamoppy.com/docs/tagger/configuration/score-configuration
# Score Configuration
Configure Score
## Scores
Configure scores for your sport. This is where you define score configurations based on events (and labels if required) and give a value to the score. You can add multiple score configurations. These can then be configured into a presentable format in the Score Display Format section.
Click the **New** button to create a new score.
## Event Scores
Configure the score here if the score is based on a standalone event.
| Field | Description |
| --- | --- |
| **Name (required)** | Set a name for the score. |
| **Enabled** | Only enabled scores are used. |
| **Value** | Give the score a value. For example in Rugby Union, you would give a Try event a value of 5. |
| **Event** | Specify the Event that this score is based on. |
| **Event Labels Filter** | Optionally filter by event label and label option. In many cases this is not needed. |
## Linked Event Scores
Configure the score here if the score is based on a linked event when you need to filter on both the from and to events. The from and to event fields are both labelled **Event** in the form; they are distinguished by the section they appear in.
| Field | Description |
| --- | --- |
| **Name (required)** | Set a name for the score. |
| **Enabled** | Only enabled scores are used. |
| **Value** | Give the score a value. For example in Rugby Union, you would give a Try event a value of 5. |
| **Event Link** | Specify the event link that this score is based on. |
| **Linked From Event** | Specify the Linked From Event that this score is based on. |
| **Linked From Event Labels Filter** | Optionally filter the from event by label and label option. In many cases this is not needed. |
| **Linked To Event** | Specify the Linked To Event that this score is based on. |
## Display Format
Define how to display the score in the Tagger and Dashboard pages. The format entries will be concatenated and represented in the order of the entries.
### Type
Can be a score definition, some text or the total scores value.
### Score
If Definition is selected for the Type then specify the score to use.
### Text
If Text is selected for the Type then enter the text.
---
URL: https://teamoppy.com/docs/tagger/configuration/total-configuration
# Totals Configuration
Configure totals that can be used in Comparison Tables, Info Cards, Total Tables and Charts
## Totals
Tagger has a simple yet very flexible way to configure totals for display in the Dashboard. You can create simple Count Totals, Calculated Totals, Event Duration Totals, Play Time Totals or Formula Sets.
### Count Totals
Count Totals as mentioned are simple counts of Events and Linked Events where applicable. The total can be filtered by the event, event team, event zone and event labels. For example you can get a count of all shots taken from play from a specific zone. Additionally you can filter by the linked events. For example you could filter all shots in a zone that resulted in a score (linked event).
| Field | Description |
| --- | --- |
| **Name (required)** | The name of the total. |
| **Event Team** | Select the team for the events that are to be counted. |
| **Event (required)** | Select the event that is to be counted. |
| **Zone(s)** | Optionally limit the count to one or more zones. |
| **Event Labels Filter** | Specify any labels and options that you may want to filter on. |
| **Event Link** | Optionally filter the count by a linked event. |
| **Linked To Event Team** | Select the team for the linked events. |
| **Linked To Event(s)** | Select the linked events that are to be counted. |
| **Linked To Event Zone(s)** | Optionally limit the linked events to one or more zones. |
| **Tagger Quick View** | Switch this on to make the total available as a quick view while tagging. |
| **Quick View Name** | The name shown on the quick view while tagging. |
### Event Duration Totals
Event Duration Totals are the total accumulated time duration for a specific event throughout the game. For example the total time a team is in Possession of the ball.
### Play Time Totals
Play Time totals is the total accumulated time between 2 events. For example you could configure a play time to track the time between a kick out and the next time it goes out of play.
### Calculated Totals
Calculated Totals allow you to configure simple calculations. You take two operands and combine them with one operator. The operands can be a Count Total, Event Duration Total, Play Time Total or another Calculated Total. For more complex calculations it is now recommended to use Formula Sets.
#### Operand 1 and Operand 2
The two totals to combine. Both are required.
#### Operator
The operation to apply, also required. The form lists the operators as symbols rather than names:
- `+` - Plus
- `-` - Minus
- `*` - Multiply
- `/` - Divide
- `%` - Percentage
### Formula Sets
Formula Sets are a powerful way to perform complex calculations. Formula Sets can be comprised of multiple inputs in the form of count and event duration totals as well as multiple formulas.
Formulas can use the following variable types as inputs:
- Event Count Totals
- Event Duration Totals
Variables and Formulas can be referenced in formulas using the curly bracket syntax:
{referenceName}
For example, a count total with a reference name of "a" could be referenced in a formula by {a}
#### Example Let's say we have previously configured count totals for "Total Shots" and "Total Goals". We can create two references in the formula set, one for each total. Let's call them "shots" and "goals". We can then create a formula that calculates the shooting percentage by dividing the goals by the shots, multiplying by 100 and rounding to the nearest whole number. Additionally we can concatenate the result with a percentage sign for display purposes.round( {goals} / {shots} * 100) & '%'
:video-player{videoId="ZOLDVCg0unI"} #### Supported Functions and Operators :formula-docs{} --- URL: https://teamoppy.com/docs/tagger/configuration/comparison-tables-configuration # Comparison Tables Configuration Comparison Tables are a side by side view of Totals in the Dashboard ## Comparison Table You can create any number of Comparison Tables for display in the Standard Dashboard. ### Comparison Table Name (required) Set the name for the Comparison Table e.g. Shots ### Enabled Set this to enable the Comparison Table for display in the Standard Dashboard. ### Comparison Table Rows Add one or more totals that are to be displayed in this Comparison Table. Each row holds the following: | Field | Description | | --- | --- | | **Comparison Name (required)** | Set the name for the total e.g. Overall Shots | | **Enabled** | Set this to enable the total for display in the Comparison Table. | #### Team A Total | Field | Description | | --- | --- | | **TeamA Total Type (optional)** | Select the type of total to use for Team A. | | **TeamA Total** | Set the total for TeamA. This can be a Count Total or a Calculated Total that was configured in the Totals Configuration tab. e.g. Total Shots For TeamA | | **Formula** | For a Formula Set, select the formula to use. | | **Formula Reference - Main Display** | Select the reference within the chosen formula, used for the main display. | | **Formula Reference - Badge Display (Optional)** | Optionally select a second reference to show in the badge. | #### Team B Total | Field | Description | | --- | --- | | **TeamB Total Type (optional)** | Select the type of total to use for Team B. | | **TeamB Total** | Set the total for TeamB. This can be a Count Total or a Calculated Total that was configured in the Totals Configuration tab. e.g. Total Shots For TeamB | | **Formula** | For a Formula Set, select the formula to use. | | **Formula Reference - Main Display** | Select the reference within the chosen formula, used for the main display. | | **Formula Reference - Badge Display (Optional)** | Optionally select a second reference to show in the badge. | --- URL: https://teamoppy.com/docs/tagger/configuration/info-cards-configuration # Info Cards Configuration Info Cards are a breakdown of Totals by period for display in the Dashboard ## Info Card You can create any number of Info Cards for display in the Dashboard. Info Cards are small tables that display a list of Totals giving the overall game total plus the totals for each period of the game. ### Info Card Name (required) Set the name for the Info Card e.g. Shots ### Enabled Set this to enable the Info Card for display in the Dashboard. ::callout{icon="i-heroicons-exclamation-triangle" color="amber"} Period totals are not available for totals that involve Passages of Play totals. :: ### Info Card Rows Add one or more totals that are to be displayed in this Info Card. | Field | Description | | --- | --- | | **Total Name (required)** | Set the name for the total e.g. Overall Shots | | **Enabled** | Set this to enable the Total for display in the Info Card. | | **Total Type** | Select the type of total to add - a Count Total, an Event Duration Total, a Play Time Total or a Formula Set. | | **Total** | Select the total. This can be a Count Total or a Calculated Total that was configured in the Totals Configuration tab. e.g. Total Shots For TeamA | | **Formula** | For a Formula Set, select the formula to use. | | **Reference** | Select the reference within the chosen formula. | --- URL: https://teamoppy.com/docs/tagger/configuration/position-maps-configuration # Position Maps Configuration Position Maps are displayed in the Dashboard and show the positions of shots, passes, etc.. that were tagged during a game. ::callout{icon="i-heroicons-information-circle" color="blue"} Position maps display positions exactly as they were tagged. While tagging, a rotation button above the map lets each device turn the graphic through 0°, 90°, 180° and 270° without changing the tagged positions — see [Rotating a Position Map](/docs/tagger/live-tagging-without-video#rotating-a-position-map). Maps that show team end indicators are also turned automatically when you swap sides, unless **Auto Swap Position Map Sides** is switched off in [Preferences](/docs/tagger/02a.preferences). :: ## Position Maps You can configure 3 different types of Position Maps: - Event Position Map - this is based on a single Event - Linked Event Position Map - this is based on a linked Event - Multi Event (merged) Position Map - this takes a selection of the above Position Maps and Linked Events Position Maps and combines them into one map. ### Event Position Maps An Event Position Map is based on a single event. | Field | Description | | --- | --- | | **Name** | The name of the Position Map | | **Enabled** | Set this to enable the Position Map in the Dashboard. If disabled it will still be available to select in the Multi Event Position Maps | | **Events Playing Area** | Select the Playing Area graphic that this Position Map will show. | | **Display zones on Position Map** | Select this if you would like to display the configured zones on the Position Map. | | **Event Team** | Select the team for the events that are to be displayed on the Position Map. | | **Event** | Select the event that is to be displayed on the Position Map. | | **Label Option Filter** | Optionally filter by event label and label option. | #### Display Options | Field | Description | | --- | --- | | **Shape to display for the Event Position** | Select the shape for the events on the position map. Can choose from a Circle, Triangle, Square or a Pentagon shape. | ### Linked Event Position Maps A Linked Event Position Map is based on a linked event. | Field | Description | | --- | --- | | **Name** | The name of the Linked Event Position Map | | **Enabled** | Set this to enable the Position Map in the Dashboard. If disabled it will still be available to select in the Multi Event Position Maps | | **Events Playing Area** | Select the Playing Area graphic that this Position Map will show. | | **Display zones on Position Map** | Select this if you would like to display the configured zones on the Position Map. | | **Event Team** | Select the team for the events that are to be displayed on the Position Map. | | **Event** | Select the event that is to be displayed on the Position Map. | | **Event Links** | Select the Event Link. This will determine the Linked From and To events that can be selected. | | **Linked From Event** | Select the Linked From Event. | | **From Event Label Option Filter** | Optionally filter the linked from event by label and label option. | | **Linked To Event** | Select the Linked To Event. | #### Display Options | Field | Description | | --- | --- | | **Event Positions to Display** | Select the Event type to display on the Position Map, i.e. either the "From Event" or the "To Event" | | **Event Labels and Colors to display** | Select the Event type for which the positions display labels and colours will be based on. e.g. for a shot event you may want to show the shot positions but display the colours and labels of the actual outcome event (Goal, Off Target, etc...) | | **Shape to display for the Event Position** | Select the shape for the events on the position map. Can choose from a Circle, Triangle, Square or a Pentagon shape. | ### Multi Event (merged) Position Maps This type of position map combines selections of the above Event Position Maps and Linked Event Position Maps. Multi Event maps also have an additional Event filter option in the Dashboard views. | Field | Description | | --- | --- | | **Name** | The name of the Multi Event Position Map | | **Enabled** | Set this to enable the Position Map in the Dashboard. | | **Event Team** | Select the team for the events that are to be displayed on the Position Map. | | **Events Playing Area** | Select the Playing Area graphic that this Position Map will show. | | **Position Maps** | Select all the Event Position Maps to be added to this Position Map. | | **Linked Event Position Maps** | Select all the Linked Event Position Maps to be added to this Position Map. | --- URL: https://teamoppy.com/docs/tagger/configuration/charts-configuration # Event Charts Configuration Event Chart visualizations to be displayed in the Dashboard. ## Charts Event Charts provide enhanced visualizations of the event data to analysts, coaches and players in the Dashboard. Currently you can create Pie, Donut and Bar charts in this chart configuration. These charts are based on a single event or linked events. Note: Timeline Graphs are configured separately. ### Chart Configuration The editor works through three steps: **Details**, **Event Filter** and **Preview**. #### Details | Field | Description | | --- | --- | | **Chart Name** | The name of the chart | | **Enabled** | Set this to enable the chart. Controls if it is to be displayed in the Dashboard. | | **Chart Type** | The type of chart - Pie, Donut or Bar. | | **Pie/Donut Chart Breakdown Type** | The breakdown of the chart visualisation. See below. | | **Bar Chart Breakdown Type** | The breakdown of the bar chart. See below. | **Pie/Donut Chart Breakdown Type** can be: - By Team - Event Count - shows the chart with a breakdown of the event count per team. - By Team - Total Event Time Duration - shows the chart with a breakdown of the total event time duration per team. - By Event Label - shows the chart with breakdown of the event data by a label - See additional breakdown selections once the event filter has been selected. - By Linked To Event - shows the chart with breakdown of the event data by the linked to events. For example if Shot is specified for the Event, then you could specify "By Linked To Event" and specify Goal and Off Target. The chart will show the breakdown of the Shots by their Linked To Events ("outcome" event). **Bar Chart Breakdown Type** can be: - By Period - shows a vertical chart with columns broken down into the time periods/halfs of the game. - By Event Player - shows a horizontal chart with stacked bars per player for the Event Player. - By To Event Player - shows a horizontal chart with stacked bars per player for the Linked To Event Player. #### Event Filter The filters to apply to the data that the chart is based on. | Field | Description | | --- | --- | | **Event Team (required)** | The event team. This filter is shown for bar charts, and for the By Event Label and By Linked To Event pie/donut breakdowns. | | **Event (required)** | The event. | | **Event Labels Filter** | The event labels and options to filter on. | | **Event Zones** | Set a filter for the event zones. | | **Event Link** | If the chart is based on a linked event then select the link. | | **To Event Team** | Set the linked to event team. | | **To Events** | Select the linked to events | | **To Event Zones** | Set a filter on the linked to event zones. | #### Event Label Breakdown Shown when the pie/donut breakdown is **By Event Label**. | Field | Description | | --- | --- | | **Breakdown Label** | Select the label that the chart breakdown is based on. | | **Breakdown Label Options** | Select the label options that the chart breakdown is based on. | --- URL: https://teamoppy.com/docs/tagger/configuration/totals-based-charts # Totals based Charts Configure Bar, Stacked Bar, Radial and Pyramid charts from your pre-configured totals. ## Introduction Totals based charts are built from the totals you have already configured, rather than from raw events. That makes them more flexible than Event Charts — any combination of Count, Calculated, Event Duration and Play Time Duration totals can be brought together in a single chart, so you can compare measures that live in different parts of your configuration. They are configured in the **Total Charts** tab. ### Where to Configure Them 1. Open **Configuration**. 2. Select **Charts**. 3. Open the **Total Charts** tab. The tab offers four chart types — **Bar Charts**, **Stacked Bar Charts**, **Radial Bar Charts** and **Pyramid Charts**. Select a chart type to open the list of charts already configured for it, then use **New** to add another. ### Before You Start These charts are assembled from totals, so configure the totals you need first: - **Count Totals** for counts of events and linked events - **Calculated Totals** for simple arithmetic between two totals - **Formula Sets** for multi-step calculations See [Totals Configuration](/docs/tagger/configuration/total-configuration) for details. ### The Chart Editor All four chart types work in the same way. Each chart has a **Chart Name**, an **Enabled** switch, and one or more totals. Add a total, choose its **Total Type**, then select the total to use. The **Total Type** can be any of the following: | Total Type | Use it for | | --- | --- | | **Count** | A count of events, optionally filtered by team, zone, labels and linked events. | | **Calculated** | A simple calculation combining two other totals. | | **Event Duration** | The accumulated duration of an event, such as total possession time. | | **Play Time Duration** | The accumulated time between two events. | | **Formula** | A Formula Set, for more complex calculations. | ::callout{icon="i-heroicons-exclamation-triangle" color="amber"} When you choose a **Formula** total, the value of the formula reference must be numeric for the chart to display it. :: ### Preview Each chart has a **Preview** panel showing how it will look. ::callout{icon="i-heroicons-information-circle" color="blue"} The preview uses data from the current game. If there is no game in progress the preview will not display any data. :: ## Bar Charts A bar chart shows one bar per total, which makes it the simplest way to place several totals side by side — for example Shots, Goals and Turnovers for each team. | Field | Description | | --- | --- | | **Chart Name** | Required. The name of the chart, shown when you add it to a dashboard. | | **Enabled** | Only enabled charts can be added to a dashboard. | ### Bar Chart Columns Each row in this table adds a column to the chart. | Field | Description | | --- | --- | | **Column Name** | The label shown for the column. | | **Total Type** | The type of total this column is based on. | | **Total** | The total to display, chosen from your totals of the selected type. | | **Formula** | For a **Formula** total, the formula to use. | | **Reference** | For a **Formula** total, the reference within that formula. | ## Stacked Bar Charts A stacked bar chart splits each column into segments, so a single column can show several related totals stacked together. It has the same **Chart Name** and **Enabled** settings as a bar chart, plus two nested tables. ### Series Names Series are the segments that make up each column, and they are shared across every column in the chart. Define each series once: | Field | Description | | --- | --- | | **Series Name** | The name of the series, shown in the chart legend. | ### Stacked Bar Columns Each row adds a column to the chart. Each column represents one or more totals — one for each series. | Field | Description | | --- | --- | | **Column Name** | The label shown for the column. | | **Total Type** | The type of total for that series in this column. | | **Series Total** | The total to display for that series in this column. | | **Formula** | For a **Formula** total, the formula to use. | | **Reference** | For a **Formula** total, the reference within that formula. | ## Radial Bar Charts A radial bar chart gives each total its own segment, which suits percentage-based totals such as shooting accuracy or share of possession. It has the same **Chart Name** and **Enabled** settings, plus a **Chart Totals** table. | Field | Description | | --- | --- | | **Total Name** | The name shown for the segment. | | **Total Type** | The type of total this segment is based on. | | **Calculated Percentage Total** | Shown for **Count**, **Calculated**, **Event Duration** and **Play Time Duration** totals. Select the percentage total to display. | | **Formula** | For a **Formula** total, the formula to use. | | **Reference** | For a **Formula** total, the reference within that formula. | ## Pyramid Charts A pyramid chart shows each total as a step, which is a clear way to present a progression — for example a funnel of possessions by outcome. It has the same **Chart Name** and **Enabled** settings, plus a **Chart Totals** table. | Field | Description | | --- | --- | | **Total Name** | The name shown for the step. | | **Total Type** | The type of total this step is based on. | | **Total** | The total to display. | | **Formula** | For a **Formula** total, the formula to use. | | **Reference** | For a **Formula** total, the reference within that formula. | The shape of the chart follows the order of the totals, so drag the totals into the sequence you want. ## Displaying a Chart Bar, Stacked Bar and Pyramid charts offer two views, chosen where the chart is displayed: - **Overall Total** — the totals for the whole game. - **Period Totals** — the same totals broken down by period. Radial bar charts always show a single overall breakdown. ## Using Charts in the Dashboard ::callout{icon="i-heroicons-exclamation-triangle" color="amber"} Totals based charts are not available in the **Standard Dashboard**. They can only be added to **custom dashboards**, through the Dashboard Designer. :: A totals based chart cannot be deleted while it is still in use. If a chart is referenced by a dashboard or a report, remove it from there first. ## Next Steps - [Event Charts Configuration](/docs/tagger/configuration/charts-configuration) — charts built directly from events - [Totals Configuration](/docs/tagger/configuration/total-configuration) — the totals these charts are built from --- URL: https://teamoppy.com/docs/tagger/configuration/shortcuts-configuration --- updatedAt: 2026-09-18 image: /images/docs/shortcuts/01-tagger-shortcuts.png --- # Keyboard Shortcuts Configuration Configure keyboard shortcuts for use in the Tagger window ## Keyboard Shortcuts Keyboard Shortcuts help to accelerate the tagging process. This is especially useful when tagging video. The shortcuts are fully configurable and are displayed alongside the event buttons in the Tagger window. ::callout{icon="i-heroicons-information-circle" color="blue"} The video player shortcuts are not displayed in the Keyboard Shortcuts configuration screen and these are not editable. :: ### Keyboard Shortcut Configuration To enable Keyboard Shortcuts, go to your Sport Configuration, and click on the Keyboard Shortcuts configuration button. In here click on the "Enable Keyboard Shortcut" switch. Initially, there are no keyboard shortcuts setup. However you can quickly generate all event, event label and player shortcuts along with team toggle buttons by clicking on the "Auto-generate" button. The popup will prompt you to select a modifier for each team. By default Team A modifier will be set to ctrl and the Team B modifier will be set to alt. So essentially if you want to tag an event for Team A you would hit the ctrl button and for Team B you would select the alt button. This is visible in the Tagger window as the Active Shortcuts will point to the team selected. After you have generated the shortcuts you can then modify any of the shortcuts as you please. ### Event button shortcut display After the shortcuts have been enabled you will see the shortcut key combinations displayed with each button in the Tagger window.  --- URL: https://teamoppy.com/docs/tagger/configuration/metric-highlights # Metric Highlights Configuration Configure Metric Highlights to display your key metrics in a more prominent display card on your dashboard. ## Metric Highlights Metric Highlights are used to highlight key metrics in a more prominent way on the Dashboard. ::callout{icon="i-heroicons-information-circle" color="blue"} This component is only available to add on custom dashboards. ::  ### Configuration | Field | Description | | --- | --- | | **Highlight Name (required)** | The name of the highlight. | | **Enabled** | Set this to enable the highlight for display in the Dashboard. | | **Total Type** | Select the type of total the highlight is based on. | | **Total** | Select the total to display. | | **Formula** | For a Formula Set, select the formula to use. | | **Reference** | Select the reference within the chosen formula. | | **Duration Value Type** | For duration based totals, choose how the value is displayed. | | **Color Type** | Select the colour scheme for the highlight. | | **Reverse Lights** | Switch this on to reverse the colour logic. | | **Value 1 to Value 4** | The threshold values used by the colour scheme. | | **Card Variant** | Select the card style. | | **Rounded** | Select the corner rounding. | | **Size** | Set the size of the highlight card. | ### Video Walkthrough :video-player{videoId="Q1WwvAeMf04"} --- URL: https://teamoppy.com/docs/tagger/configuration/metric-progressions # Metric Progressions Configuration Configure Metric Progressions to show how your key metrics relate to one another, as a progressive list on your dashboard. ## Metric Progressions Metric Progressions are used to highlight key metrics and the relationships between them in your Dashboard. Where a [Metric Highlight](/docs/tagger/configuration/metric-highlights) puts a single value on a prominent card, a Metric Progression walks through a sequence of totals — for example possessions, to attacks, to shots, to scores. ::callout{icon="i-heroicons-information-circle" color="blue"} This component is only available to add on custom dashboards. ::  ## The Metric Progression Each progression is a named sequence of items. | Field | Description | | --- | --- | | **Metric Progression Name (required)** | The name of the progression. | | **Enabled** | Only enabled progressions can be added to a dashboard. | | **Display Name** | Switch this on to show the progression name on the dashboard card, above the items. | ## Metric Progression Items Items are the steps in the progression, and they are displayed in the order you add them. Add one item for each step. | Field | Description | | --- | --- | | **Total Name (required)** | The name shown for the step. | | **Total Type** | The type of total this step is based on. | | **Total** | The total to display, chosen from your totals of the selected type. Shown for **Count**, **Calculated**, **Event Duration** and **Play Time Duration** totals. | | **Formula** | For a **Formula** total, the formula to use. | | **Reference** | For a **Formula** total, the reference within that formula. | | **Duration Value Type** | Shown for **Event Duration** and **Play Time Duration** totals. Choose whether to display the **Total** for the game, or the **Average**. | | **Item Type** | **Chip** or **Progress**. See below. | | **Color Type** | **Custom Color**, **Traffic Light**, **My Teams Color** or **Opposition Teams Color**. | | **Size** | How large the step is drawn, from 1 to 4. | The **Total Type** can be any of the following: | Total Type | Use it for | | --- | --- | | **Count** | A count of events, optionally filtered by team, zone, labels and linked events. | | **Calculated** | A simple calculation combining two other totals. | | **Event Duration** | The accumulated duration of an event, such as total possession time. | | **Play Time Duration** | The accumulated time between two events. | | **Formula** | A Formula Set, for more complex calculations. | ### Chip or Progress The **Item Type** decides how each step is drawn: - **Chip** — the value is shown in a chip, with a chevron between steps to point at the next one. - **Progress** — the value is shown in a circular progress indicator. Chips have two extra settings: | Field | Description | | --- | --- | | **Variant** | The chip style — **flat**, **text**, **elevated**, **tonal**, **outlined** or **plain**. | | **Rounded** | The corner style — **xs**, **lg**, **xl**, **pill**, **circle** or **shaped**. | ### Traffic Light Colours When **Color Type** is **Traffic Light**, enter four threshold values and the colour is chosen from the range the value falls into. ::callout{icon="i-heroicons-exclamation-triangle" color="amber"} Each subsequent value has to be greater than the previous value. :: | Range | Colour | | --- | --- | | Value 1 to Value 2 | Red | | Value 2 to Value 3 | Amber | | Value 3 to Value 4 | Green | **Reverse Lights** turns the logic around, so that a low value is shown as good and a high value as bad. That is useful for measures where a high number is a negative — errors or turnovers, for example. Choosing **Custom Color** instead shows a colour picker, and **My Teams Color** and **Opposition Teams Color** take their colour from the teams configured for the game. ## Preview Each progression and each item has a **Preview** panel. ::callout{icon="i-heroicons-information-circle" color="blue"} The preview uses data from the current game. If there is no game in progress the preview will not display any data. :: ## Displaying a Progression on a Dashboard When you add a Metric Progression to a custom dashboard in the Dashboard Designer, it has two properties: - **The progression to use** — pick from your enabled Metric Progressions. - **Display Horizontal** — switch this on to run the progression across the card instead of down it. A Metric Progression cannot be deleted while it is still in use. If a progression is referenced by a dashboard or a report, remove it from there first. ## Next Steps - [Metric Highlights](/docs/tagger/configuration/metric-highlights) — highlight single metrics on a dashboard card - [Totals Configuration](/docs/tagger/configuration/total-configuration) — the totals these progressions are built from --- URL: https://teamoppy.com/docs/tagger/configuration/event-sources # Event Sources Configuration Event Sources let you understand exactly where your key moments come from. For every score, shot, turnover, or any outcome you care about, Teamoppy traces the event that preceded it — giving you a clear picture of which sources are driving results and which players are most influential in those sequences. Each Event Source card is displayed in the **Standard Dashboard** and can also be added to **Custom Dashboards**. ## Event Sources You can configure any number of Event Sources, each one analysing a different relationship between events in the game. ### Source Name The name of the Event Source card. This is displayed as the card heading on the Dashboard. ### Enabled Set this to enable the Event Source card. ### Description Optional. A short description shown beneath the name to provide additional context for the card. These three fields are on the **Overview** tab of the editor. ### Target Events Target Events define the outcomes you want to analyse — the key moments you are counting and tracing back to their source. You can add one or more target event definitions. Each definition can be filtered to focus on exactly the outcomes you care about. These fields are on the **Target Event** tab. | Field | Description | | --- | --- | | **Event** | Select the event that represents the target outcome, for example *Goal* or *Shot on Target*. | | **Team** | Optional. Restrict the target to occurrences from a specific team. | | **Zones** | Optional. Restrict the target to events that occurred within specific zones on the playing area. | | **Event Labels Filter** | Optional. Filter by one or more label options so that only target events with those labels are counted. | | **Linked To Event** | Optional. Restrict the target to events that are linked to a specific secondary event. For example, you could count only goals that were linked to an on-target shot outcome. | | **Linked To Team** | Optional. Restrict the linked event to a specific team. | | **Linked To Zones** | Optional. Restrict the linked event to specific zones on the playing area. | | **Linked To Event Labels Filter** | Optional. Filter by one or more label options on the linked event. | ### Source Events Source Events are the candidate causes or precursors of the target outcome. When a target event is recorded, Teamoppy searches backwards through the events in the same period to find the most recent event that matches one of your defined sources. That source is then attributed for that occurrence. Add one source event entry for each category of source you want to compare — for example, *Through Ball*, *Cross*, and *Set Piece* as separate sources feeding into the same goal target. These fields are on the **Source Events** tab. | Field | Description | | --- | --- | | **Name** | The label for this source, displayed in the breakdown bars on the Dashboard — for example, *Through Ball* or *Cross*. | | **Event** | Select the event to match as the source — for example, *Pass* or *Free Kick*. | | **Team** | Optional. Restrict the source to a specific team. | | **Zones** | Optional. Restrict the source to events that occurred within specific zones on the playing area. | | **Event Labels Filter** | Optional. Filter by one or more label options on the source event. This is how you distinguish different types of the same event — for example, filtering a *Pass* event by a label option of *Through Ball*. | | **Linked To Event** | Optional. Restrict the source to events that are linked to a specific secondary event. | | **Linked To Team** | Optional. Restrict the linked event to a specific team. | | **Linked To Zones** | Optional. Restrict the linked event to specific zones on the playing area. | | **Linked To Event Labels Filter** | Optional. Filter by one or more label options on the linked event for the source. | ## What is displayed on the Dashboard Each Event Source card shows three views of the data: - **Source Breakdown** — A bar for each defined source showing its count and share of the total occurrences. Sources with no matching events are still shown so you can see the full picture at a glance. Any occurrences where no matching source was found are listed as *Other / Unknown*. - **Timeline** — Every target occurrence shown as a clickable time chip. Tap a chip to see all the events in that sequence and jump directly to the video. - **Players** — Players who appeared in the sequence between the source and the target event, sized by how frequently they were involved across all occurrences. Note: If no matching source event is found before a target occurrence within the same period, that occurrence is counted under Other / Unknown. --- URL: https://teamoppy.com/docs/tagger/reports/reports # Game Reports Present your post-game analysis with interactive Reports ## Introduction Game Reports are an ideal way to present post-game Analysis to your team management and/or players. Reports are built in a similar way to Dashboards but include additional components such as a Text Editor, External Links, Embedded Images and Videos - all designed to enable you to combine the best of textual description, along with data, visualisations and videos. Reports are interactive, and can be shared along with your game using existing methods such as the Google Drive shared links or shared via the Cloud Workspace. They can also be exported as a PDF, for printing or for readers who do not have Tagger (see **PDF Export** below). :video-player{videoId="ea2a2_8f7pw"} ## Layout The layout of a report is comprised of rows, containers and components. ### Rows When you first create a report the top-level item in the report is a row. You can add containers to rows. ### Containers Containers allow you to space out the components in the report. Containers are added to rows. A container span ranges from 1 to 12. 12 spans the entire row. If a container is added with a span of 12 then the next container will start below that container. if you add 2 containers each with a span of 6 then they will be displayed side by side. Reports may look differently on larger devices compared to mobile devices so we provide the facility in the container definition to set different container spans for mobile. If you add 2 containers each with a span of 6 then they will be displayed side by side. ### Components Components are added to containers. You can add one or more components to a container. If a component is added to a container which already has a component then the new component will get added underneath the existing one. Components are things like Text Editors, Embedded Images, Embedded Videos, External Links, along with other common components that you would see in the Dashboard such as Charts, Position Maps, Info Cards, Comparison Tables, Metric Highlights, Metric Progressions and more. #### Text Editor Use the text editor to add text detail to your report. Use the options to style and layout your text. #### External Links External links are useful if you want to provide additional context to the reader and allow them to navigate to external sources. #### Embedded Images Embedded images can be used to embed things like logos, PDFs or other visuals on to the report. #### Embedded Videos Embedded videos are used to embed videos using a link. Links can be any publicly accessible link such as from YouTube, Google Drive embed links, OneDrive embed links and more. This is ideal if you have created a custom playlist or a clip with telestration in the Video Studio and would like to include it into the report. Follow the instructions [here](embedded-link) to get embedded links for objects in Google Drive and OneDrive. ### Drag and Drop Components can be dragged and dropped across the Report providing an easy way to re-configure your reports. ## Report Templates You can create Report Templates in the Configuration. Templates are really useful if you report on similar aspects of games on a regular basis. Game reports can be created from scratch or from a Template in the Configuration. ## PDF Export A report can also be exported as a PDF, which is useful for printing, for sharing with readers who do not have Tagger, or for archiving a game. Select **Export PDF** in the report designer, or **PDF** in the report preview, to choose the page setup. **Continue** then opens the print preview, where **Save as PDF** writes the file. ::callout{icon="mdi-desktop-tower-monitor" color="blue"} Exporting a report as a PDF is available exclusively in the **Tagger Desktop** application, and requires an **Analyst Elite** or **Analyst 360** package. In the web version of Tagger you can open the print preview to review the layout, but the PDF cannot be produced there. :: The print preview is the document. It shows the report as pages, with each page outline, the page break between pages and the footer that every page carries, so the layout does not change when you save the PDF. ### Page Setup The page setup is chosen before the preview opens, and is remembered for the next report. | Setting | Options | | --- | --- | | Page size | A4 or Letter | | Orientation | Portrait (the default) or Landscape | | Margins | Narrow (6mm), Normal (12mm) or Wide (20mm) | | Include a title page | Adds a cover page with the teams, their logos, the final score, the competition, the date and the venue. Available when a game is open. | | Include background colours and chart fills | Prints the report's coloured card and chart backgrounds. Turn this off for a plainer, ink-friendly document. | | Show page numbers | Turns the page counter in the footer on or off. | ### Title Page The optional title page is a cover for the report. It carries the competition, both teams with their logos where they are available, the final score, the date and the venue, along with a small teamoppy.com credit. It always occupies a page of its own, and the report itself starts on the second page. ### Embedded Media and Links A PDF cannot play a video, so embedded content is exported in a form that still works on paper or in a reader: - **Embedded videos** are exported as a thumbnail with a caption and a link to the video. Selecting the link in the saved PDF opens the video in your browser. - **Embedded images** are exported as they appear in the report. - **External links** stay clickable, and so does the teamoppy.com address in the footer of every page. ### Text and Charts Text is exported as real text rather than a picture, so it can be searched, selected and copied. Charts are exported as vectors, so they stay sharp at any zoom level. ## Subscription Game Reports are a feature of the Analyst Elite package. Exporting a report as a PDF requires the Analyst Elite or Analyst 360 package. --- URL: https://teamoppy.com/docs/tagger/reports/embedded-link # Embedded Links Embedded links from Google Drive, OneDrive and YouTube ## How to Create an Embedded Link Images and Videos can be embedded into Reports using embedded links. The below describes how to get an embedded link from Google Drive, OneDrive and YouTube. The process is the same for both images and videos. ### Google Drive In Google Drive, click on the menu button, select Open With and the Open in new tab  Click on the menu button here and select Embed item  Copy the link text in the src field and use this to create the Embedded Image or Video in the report.  Note: also ensure that the Share permissions on the file are set to Anyone with the link.  ### OneDrive Click on the menu button and select Embed  Click on the Generate button  Copy the link text in the src field and use this to create the Embedded Image or Video in the report.  ### YouTube Click on the Share button, then choose the Embed option  Copy the link text in the src field and use this to create the Embedded Video in the report.  --- URL: https://teamoppy.com/docs/tagger/studio/studio-introduction # Tagger - Video Studio Generate playlists, add graphic and text overlays, export to mp4 ## Introduction The Tagger Video Studio provides a powerful video editing and exporting experience including the following features: - Automatic Playlist generation from the Timeline Chart and Matrix or create Custom Playlists - Export to MP4 file or Webm file - Background export processing with quality and consistent results. - Graphic buttons - Easy timeline & video synching - And more... ## How to access the Studio - The Studio is built into Tagger. After you have tagged your game simply navigate to the Studio page. This is available to users of the Analyst Plus package and above. ## Overview The video below provides an overview of the Studio. :video-player{videoId="M544EqQyAGA"} ## Video Sync In general if you have tagged your video in Tagger timeline will be in sync with the video. However, in some scenarios for example if you have tagged a game live without video then your timeline may not be in sync with the video. The Studio provides the ability to sync the timeline with the video. Open the **Timeline** tab, then click **Sync Mode** in the toolbar to open the guided sync panel. Pick an event you can identify in the video, move the video to where that event happens, lock that position in, review the shift and apply it. See [Synchronize Video](/docs/tagger/synchronize-video) for the full workflow. ## The Timeline The **Timeline** section of the Studio shows your tagged events against the video, with period markers and a playhead, and is organised into five sub-tabs: **Timeline**, **Matrix**, **Clips**, **Custom Playlists** and **Merged Timelines**.  Use the filters above the chart to narrow down what you see: | Filter | Description | | --- | --- | | **View** | **Events**, **Linked Events** or **Players**. | | **Team** | Show only one team's events. | | **Player(s)** | Show only the events for the players you select. **Player(s)** lists the players of the team chosen in **Team**, so pick a team first. | Each row is one event type for one team, with the total number of events on that row. Click a bar to play that event's clip, or click a row label to load every event in that row as a playlist. See [The Timeline](/docs/tagger/studio/timeline) for details. ## Drawing Tools The video below shows how to add graphics and text overlays to clips, edit and also delete the layer. Overlays will be exported with the clip. :video-player{videoId="Ggd3rAjQXIY"} ## Export Options Click **Export** above the playlist to open the Export screen. Exports are processed in the background and finish with a message showing where the file was saved. Use the **Advanced Options** tab to control how the video is produced: | Option | Description | | --- | --- | | **Merge overlapping clips** | When clips have overlapping start and end times, merge them into a single clip. On by default. | | **Include Clip Details Overlay** | Add a text overlay to each clip showing the event details. | | **Include event comment** | Add the event's comment above the details chips in the overlay. Requires the clip details overlay. | | **Include audio** | Keep the original audio in the exported clips. Off by default, so exports are silent. | | **Video Codec** | The codec and output container for the export, by default H.264 in an MP4 file. | | **Video Bit Rate** | The bit rate in kbps. Leave blank to match the source video. Higher bit rates give better quality but larger files. | ### Include audio Audio is off by default, so an export is silent unless you switch **Include audio** on. When it is on, each clip's audio is normalised to 128 kbps stereo so the clips can be joined into one continuous track, and the audio is held while a drawing overlay is displayed so it stays in step with the picture. ::callout{icon="i-heroicons-information-circle" color="blue"} Audio export needs an environment that supports the WebCodecs audio encoder. Where it is not available, the **Include audio** switch is disabled and the export is silent. :: Unlike the other export settings, **Include audio** applies to the export you are about to run. It is not remembered for the next one. See [Exporting a Playlist](/docs/tagger/analytics360/playlists#exporting-a-playlist) for the Analytics 360 playlist export screen, which offers the same audio option. --- URL: https://teamoppy.com/docs/tagger/studio/troubleshooting # Troubleshooting ## Playback speed is twice the normal speed on my exported clip or playlist This issue can occur with certain source files, most commonly broadcast recordings. When you inspect the video metadata (for example, using the MediaInfo application on Windows), you may see two conflicting frame rate values: - **Original Frame Rate** — for example, 25 fps - **Frame Rate** — for example, 50 fps This mismatch can cause a timing conflict during export in Studio, resulting in the exported clip playing back at approximately twice the intended speed.  ### Solution: transcode the source video Transcode the source video before using it in Studio. See [What is transcoding, and why does it help?](#what-is-transcoding-and-why-does-it-help) for more detail. Recommended tools include: - **Trim & Copy** in Tagger Desktop - [**HandBrake**](https://handbrake.fr/) If you use Trim & Copy, set **Video Quality** to High, Medium, or Low — do not use the Copy setting, as Copy performs a stream copy rather than a full transcode and will not correct the frame rate metadata. --- ## App crashes when exporting a large playlist When exporting large playlists in the Tagger web application (typically 20 or more clips), the app may display a white screen and close unexpectedly. This behaviour is generally caused by resource constraints on the local device or browser rather than an application defect. For demanding export workloads, we recommend a machine with at least: - 4 CPU cores - 16 GB RAM ### Solution: reduce the export workload To reduce resource pressure, split the large playlist into two or more smaller custom playlists and export them separately. Alternatively, use **Tagger Desktop** to perform the export. The desktop application handles large workloads more efficiently than the browser-based version. --- ## Drawing layer navigates to the wrong frame in the video When working with clips that contain drawing layers, clicking a drawing icon in the timeline beneath the video player may cause the video to seek to an incorrect frame. This is caused by **sparse keyframes** in the source video file — the video player cannot seek precisely between keyframes, so it snaps to the nearest available reference point rather than the exact requested position. See [What is transcoding, and why does it help?](#what-is-transcoding-and-why-does-it-help) above for a fuller explanation of why this occurs. ### Solution: transcode for accurate seeking Transcode the source video before using it in Studio. Recommended tools include: - **Trim & Copy** in Tagger Desktop - [**HandBrake**](https://handbrake.fr/) If you use Trim & Copy, set **Video Quality** to High, Medium, or Low — do not use the Copy setting, as it does not re-encode the video and will not resolve sparse keyframe issues. --- ## What is transcoding, and why does it help? **Transcoding** is the process of decoding an existing compressed video file and re-encoding it into a new file using a different (or the same) codec and settings. Unlike a simple stream copy — which repackages the compressed data without modifying it — transcoding fully re-processes every frame. This matters because many source video files, particularly broadcast recordings and footage from cameras that use variable or long-GOP encoding, contain **sparse keyframes**. Keyframes are the reference points a video player uses to seek to a specific position. When keyframes are spread far apart, the player must decode a large number of intermediate frames to reach the requested position, which can cause imprecise seeking, incorrect frame display, or playback timing errors. Transcoding with a high-quality setting produces a new file with **dense, regular keyframes**, which gives the player precise seek targets throughout the entire video. This resolves a range of issues including incorrect playback speed and inaccurate drawing-layer positioning. --- URL: https://teamoppy.com/docs/tagger/studio/timeline # The Timeline View your tagged events against the video and turn them into clips and playlists. ## Overview The **Timeline** section of the Studio shows your tagged events laid out along the video. It is organised into five sub-tabs: - **Timeline** — the event timeline described on this page. - **Matrix** — a matrix view of your events. - **Clips** — the clips generated from your events, with a **Search Drawings** switch and an event search to help you find a particular clip. - **Custom Playlists** — your saved playlists. - **Merged Timelines** — timelines merged from the tagged events of more than one game. ## The Timeline Toolbar Three filters sit above the timeline: - **View** — switch between **Events**, **Linked Events** and **Players**. - **Team** — filter the timeline to a single team. Clearing the team also clears the player filter. - **Player(s)** — filter the timeline to one or more players. When the game has a video, a **Sync Mode** button appears at the right of the toolbar. See [Synchronize Video](/docs/tagger/synchronize-video) for the full workflow. ## Reading the Timeline  - A **time ruler** runs along the top of the timeline. - **Period markers** show where each period starts and ends: a solid **P1** flag on the ruler with a guide line for the start of period 1, and a dashed **P1 end** marker for the end. The same markers are shown for every period. - Each row is an event, or a player when you are in the **Players** view. The row label shows a team colour dot, the row name and the number of events in the row. - The **playhead** follows the current video position, so you can see where the video is against your events. ## Hovering and Clicking Hovering over a bar shows a tooltip with the event name, the team, the player number and the time range of the clip. - **Click a bar** to play that event's clip. Tagger seeks to the start of the clip rather than the moment the event was tagged. If the clip times have not been set, they are worked out from the event's lead and lag times. - **Click a row label** to load every event in that row as a playlist, so you can review a whole event type or a whole player in one pass. - **Click a bar while Sync Mode is on** to use that event as the sync anchor instead. ## Sync Mode in the Studio Sync Mode works the same way in the Studio as it does in Tagger, using the same three step panel. Turning it on: - rewinds the video to the start and pauses it, - switches the view to **Events** and clears the team and player filters, - turns the drawing overlay off, so your clicks select timeline events rather than drawing on the video. It also gives you a **Merged timeline** filter to scope the sync to a merged timeline. Turning Sync Mode off clears the selection and returns the drawing overlay and filters to whatever you had before. ## Next Steps - [Synchronize Video](/docs/tagger/synchronize-video) — line live-tagged events up with a video - [Studio Introduction](/docs/tagger/studio/studio-introduction) — an overview of the Studio --- URL: https://teamoppy.com/docs/tagger/videoutils/introduction # Introduction Tagger Desktop includes a suite of video utilities designed to support the full lifecycle of match footage — from live capture on the day, through to post-session processing and clip extraction. These tools are available exclusively in the desktop application and complement the core tagging workflow by giving you direct control over your video files without needing third-party software. ## Available Tools ### Live Video Capture Stream directly from a connected camera and serve the footage over a local HLS network in real time. Enables simultaneous recording and tagging during a match, and supports multi-device viewing via Tagger Rooms. [Go to Live Video Capture](/docs/tagger/videoutils/live-capture) ### HLS to MP4 Converter Convert a recorded HLS stream — or any remote `.m3u8` playlist — into a single, portable MP4 file. Use this after a live capture session to produce an archive-ready video that can be imported into Tagger or shared externally. [Go to HLS to MP4 Converter](/docs/tagger/videoutils/hls-to-mp4) ### Trim & Copy Extract one or more segments from a video file and export them as a single merged output. Ideal for isolating individual periods, removing dead time, or preparing highlight clips for review or distribution. [Go to Trim & Copy](/docs/tagger/videoutils/cut-and-copy) --- URL: https://teamoppy.com/docs/tagger/videoutils/live-capture # Live Video Capture Live Video Capture lets you stream directly from a connected camera and serve the footage over a local HLS (HTTP Live Streaming) network. This enables real-time playback in Tagger during an ongoing session, with the stream also available to other devices on the same network. ::callout{icon="mdi-desktop-tower-monitor" color="blue"} Live Video Capture is available exclusively in the **Tagger Desktop** application. It is not available in the web version of Tagger. :: ## Before You Start Before beginning a live stream, ensure the following: - You are running **Tagger Desktop**. - A compatible video capture device (USB camera, capture card, or built-in webcam) is connected. - You have a local folder available to store the HLS stream segments. - No other application (such as Zoom, Microsoft Teams, OBS, or Skype) is actively using the camera. --- ## Setting Up the Stream ### Select a Camera Source 1. Open the **Live Video Capture** panel in Tagger Desktop. 2. In the **Live Stream Source** dropdown, select your camera from the list of detected devices. 3. If your camera does not appear, click **Refresh Cameras** to re-scan connected devices. ### Select an Output Folder The HLS stream is written as a series of segment files (`.ts`) and a playlist file (`.m3u8`) to a folder on your local machine. 1. Click **Select Folder** next to the **HLS Output Folder** field. 2. Choose a folder on your device where stream files will be saved. ::callout{icon="mdi-information" color="amber"} Ensure the selected folder has sufficient free disk space for the duration of the stream. Segment files accumulate over time and should be cleared after each session. :: --- ## Advanced Stream Configuration By default, Tagger uses sensible settings for most use cases. If you need to tune the stream for your hardware or network conditions, expand the **Advanced Stream Configuration** panel. ### Encoding Preset Controls the trade-off between encoding speed and output quality. Faster presets require less CPU but produce lower-quality video at the same bitrate. | Preset | Description | |---|---| | Ultra Fast | Lowest quality, minimises CPU usage | | Super Fast | — | | Very Fast | Recommended for most configurations | | Faster | — | | Fast | — | | Medium | Balanced quality and performance | | Slow | Best quality, highest CPU usage | ### Video Bitrate Determines the target bitrate for the video stream. Higher bitrates produce sharper images but increase file sizes and network bandwidth requirements. | Bitrate | Suitable for | |---|---| | 1 Mbps | Low-bandwidth environments | | 2.7 Mbps | Default — suitable for most local networks | | 5–8 Mbps | High-quality recordings on fast local networks | ### Framerate (FPS) Sets the number of video frames captured per second. Higher framerates produce smoother motion but increase file sizes. - **15 FPS** — Suitable for static or low-movement scenarios. - **30 FPS** — Default. Recommended for most sports. - **60 FPS** — Highest smoothness; requires more processing power and bandwidth. ### Resolution Sets the output resolution of the stream. Lowering the resolution reduces bandwidth and file size without significantly affecting playback smoothness. | Resolution | Notes | |---|---| | Original | Uses the native resolution of the camera | | 1080p (1920×1080) | Full HD | | 720p (1280×720) | Recommended for most local network setups | | 480p / 360p | Low-bandwidth environments | ### Segment Duration Controls how many seconds of video are written to each HLS segment file. Shorter segments reduce stream latency but increase the overhead on the file system and the HLS server. - Range: **1–10 seconds** - Default: **2 seconds** is a good balance between latency and stability. ### Keyframe Interval Sets how often a full keyframe is inserted in the video stream. Lower values improve seeking accuracy but increase file size. - Range: **15–60 frames** - Recommended: keep at **30** for most sports applications. ### Audio Bitrate Controls the audio quality of the stream. The default of **128 kbps** is suitable for standard commentary or ambient sound capture. --- ## Starting the Stream Once you have selected a camera and an output folder, click **Start Live Stream**. Tagger will: 1. Initialise the camera capture and begin encoding with FFmpeg. 2. Wait for the initial HLS segments to be written to disk. 3. Start a local HTTP server to serve the stream files. 4. Display the **Stream URL** and begin playback in the preview player. The stream status alert will change to green when recording is active, confirming that the camera is being captured and segments are being served. --- ## Stream Controls ### Pause Recording Click **Pause Recording** to halt the camera capture while keeping the HLS server running. The stream URL remains active, allowing existing segments to continue serving for playback. The stream status will show **Recording Paused**. This is useful during period breaks. ### Resume Recording Click **Resume Recording** to restart the camera capture. The stream will continue from the new live segments. The preview player refreshes automatically after a short delay and returns to the live edge. ### Stop Stream Click **Stop Stream** to fully stop both the camera capture and the HLS server. This clears the stream URL and resets the live capture state. ### Refresh Click **Refresh** to force the preview player to reload the stream from the current playlist. Use this if the preview stalls or if you have resumed recording after a pause. --- ## Live Edge Mode The **Live** button in the top-right corner of the preview player toggles **Live Edge Mode**. When enabled, Tagger periodically jumps the playback position to the latest available segment, minimising the delay between camera capture and viewing. - **Live Edge Mode on** — The button is highlighted in red. Tagger checks every 10 seconds and seeks to the live edge if playback has fallen more than 3 seconds behind. - **Live Edge Mode off** — The player follows normal playback. You can scrub and review earlier segments freely. Live Edge Mode is enabled automatically when the stream starts and when recording resumes after a pause. --- ## Using Live Capture with Tagger Rooms When using Live Video Capture in conjunction with **Tagger Rooms**, all participating devices must be running **Tagger Desktop**. The HLS stream URL is accessible to any device on the same local network, and can be entered as the video source in connected sessions. ::callout{icon="mdi-information" color="blue"} Browser-based Tagger sessions cannot access streams served from a local machine. Desktop app access is required for all participants who need to view the live feed. :: --- ## Troubleshooting ### Camera Not Appearing in the List - Click **Refresh Cameras** to re-scan connected devices. - Unplug and reconnect the camera, then refresh again. - Confirm that the camera is supported and recognised by your operating system. ### Camera is In Use Error Another application is holding the camera device open. Close all applications that may be using the camera, including: - Video conferencing apps (Zoom, Microsoft Teams, Google Meet, Skype) - Streaming software (OBS, Streamlabs) - Browser tabs with active camera permissions - The Windows Camera app After closing these applications, click **Start Live Stream** again. ### Stream Stalls or Freezes in the Preview - Click **Refresh** to reload the player from the latest playlist. - If the issue persists, check that the output folder has available disk space. - Consider reducing the **Video Bitrate** or **Resolution** in the Advanced Configuration panel. ### High CPU Usage During Streaming Switch to a faster **Encoding Preset** (e.g. **Very Fast** or **Super Fast**) to reduce the CPU load. This will slightly reduce video quality but improves stability on lower-powered machines. ## Post-Session Video Processing After your session ends, the captured HLS stream can be converted to a single MP4 file for archiving, sharing, or further video analysis. Use the **HLS to MP4 Converter** tool to merge the segment files from your output folder into a self-contained MP4. The converted file can then be imported into Tagger as a standard local video source for post-match tagging and review. See [HLS to MP4 Converter](/docs/tagger/videoutils/hls-to-mp4) for full instructions. --- URL: https://teamoppy.com/docs/tagger/videoutils/hls-to-mp4 # HLS to MP4 Converter The HLS to MP4 Converter merges an HLS stream — whether captured during a live session or sourced from a remote URL — into a single, self-contained MP4 file. The resulting file can be imported into Tagger as a standard local video source, uploaded for cloud sharing, or used in any external video analysis tool. ::callout{icon="mdi-desktop-tower-monitor" color="blue"} The HLS to MP4 Converter is available exclusively in the **Tagger Desktop** application. It is not available in the web version of Tagger. :: --- ## When to Use This Tool Use the HLS to MP4 Converter after a live capture session to produce a permanent video file from the recorded HLS segments. You can also use it to download and package any remote HLS stream (such as a cloud-hosted `.m3u8` playlist) into a local MP4 for offline use. --- ## Converting an HLS Stream ### Step 1 — Select a Source Provide the HLS source using one of the following methods: **Browse for a local file** : Click **Select HLS File (.m3u8)** and navigate to the `.m3u8` playlist file on your device. This is the primary method when converting a previously recorded live capture session. **Enter a URL or file path** : Paste an HLS URL (e.g. `https://example.com/stream/playlist.m3u8`) or a direct file system path into the **HLS URL or File Path** field. Use this method to convert a remote or cloud-hosted stream. ### Step 2 — Select an Output Location Click **Select Output Location** to choose where the converted MP4 file will be saved. Tagger will suggest a filename based on the source, which you can change before saving. Once both a source and an output location are selected, a summary shows the source filename and the destination filename side by side for confirmation. ### Step 3 — Convert Click **Convert to MP4** to begin. Tagger will: 1. Read and download all segments referenced by the `.m3u8` playlist. 2. Remux the segments into a single, continuous MP4 file. 3. Save the file to the selected output location. A progress bar and status message update in real time during conversion. The percentage displayed reflects overall conversion progress. When conversion completes, a confirmation message shows the full path of the saved file. --- ## Cancelling a Conversion To stop an in-progress conversion, click the **×** button that appears next to the **Converting...** indicator. Tagger will abort the process and any partial output file will not be retained. --- ## After Conversion Once you have an MP4 file, you can: - **Import into Tagger** — Open or create a game in Tagger and select the converted MP4 as a **Local File** video source. - **Use for post-match analysis** — Load the file into any external video analysis or editing tool. - **Archive the footage** — Store the MP4 alongside your game data for long-term reference. After confirming the conversion is successful, you can safely delete the original HLS segment folder to reclaim disk space. --- ## Troubleshooting ### Conversion Fails Immediately - Verify that the `.m3u8` file path or URL is correct and accessible. - If using a remote URL, confirm you have an active internet connection and that the stream is still live or available. - Ensure the output folder exists and you have write permission to it. ### Conversion Stalls at a Particular Percentage - The source stream may have a gap or a corrupted segment. Try selecting a different output location to rule out a disk issue and start the conversion again. - For remote streams, a slow or intermittent connection can cause the download to stall. Check your network and retry. ### Output File Will Not Play - The source HLS stream may use an unsupported codec. The converter expects standard H.264 video with AAC audio, which is the default output of the Live Video Capture tool. - If the source was captured with non-standard settings, try re-importing the original segments using a different player before converting. --- URL: https://teamoppy.com/docs/tagger/videoutils/cut-and-copy # Trim & Copy Trim & Copy lets you extract one or more segments from a video file and export them as a single merged output file. It is designed for quickly isolating match footage — such as individual halves, specific periods, or highlight sequences — without re-encoding the source video unless you specifically require a quality or resolution change. ::callout{icon="mdi-desktop-tower-monitor" color="blue"} Trim & Copy is available exclusively in the **Tagger Desktop** application. It is not available in the web version of Tagger. :: --- ## Opening a Video File Click **Select Video File** to open a file from your local file system. Tagger supports the following formats: - MP4 (`.mp4`, `.m4v`) - QuickTime (`.mov`) - WebM (`.webm`) Once a file is loaded, Tagger displays a video information panel showing the filename, total duration, resolution, and frame rate. The video loads in the built-in preview player, ready for trimming. --- ## Setting Trim Points Trim & Copy works by marking a start point and an end point in the video, then adding that range as a **cut section**. 1. Use the preview player to navigate to the point where you want the clip to begin. 2. Click **Set Trim Start** to mark the current playback position as the start of the selection. The current timestamp is shown on the button. 3. Scrub or play forward to the end of the desired clip. 4. Click **Set Trim End** to mark the current playback position as the end of the selection. Once both points are set, the **Current Selection** panel displays the start time, end time, and duration of the selected range. ### Previewing a Selection Click **Play Preview** to play back only the selected segment — from the trim start to the trim end — within the preview player. Use this to verify the selection is accurate before adding it as a cut section. --- ## Adding Cut Sections A single export can include multiple non-contiguous segments from the same source file. Each segment is added to a **Cut Sections** list and will be merged into a single output file in the order they appear. To add the current selection to the list, click **Add Cut Section**. The section is added and the trim points reset, ready for you to define the next segment. The Cut Sections panel shows each section with its start time, end time, and individual duration, along with a running **Total** duration for the merged output. To remove a section from the list, click the **×** on its chip in the Cut Sections panel. --- ## Export Settings Configure the output quality and format before exporting. ### Video Quality | Option | Description | |---|---| | Copy (Fast, No Re-encode) | Copies the video stream directly without re-encoding. Fastest option with no quality loss. Best when you are only trimming — use a re-encode option if you need to change the resolution or fix frame rate metadata. | | High Quality (CRF 18) | Re-encodes the video at high quality. Slightly slower; useful when changing resolution. | | Medium Quality (CRF 23) | Balanced quality and file size. | | Low Quality (CRF 28) | Smaller file size at the expense of visual quality. | ::callout{icon="mdi-information" color="blue"} When using **Copy** mode, the output video stream is not re-encoded. This is the fastest method and preserves the original quality, but resolution changes are not applied in this mode. :: ### Video Resolution Sets the output resolution of the exported file. Only resolutions equal to or smaller than the source video are available. Changing the resolution requires a quality setting other than **Copy**. | Option | Description | |---|---| | Original | Preserves the source resolution | | 1080p (1920×1080) | Full HD | | 720p (1280×720) | — | | 480p (854×480) | Reduced file size | | 4K (3840×2160) | Only available if the source is 4K or higher | ### Audio Check **Include Audio** to retain the audio track in the output file. Uncheck it to produce a silent video, which can reduce file size when audio is not needed. --- ## Exporting the Video Once you have added all desired cut sections and configured the export settings, click **Cut & Merge n sections** to begin the export. Tagger will prompt you to choose a save location and filename for the output file. During export, a progress bar and status message indicate how far along the process is. For multi-section exports, Tagger processes each segment in sequence and merges them into the final file automatically. When the export completes, a confirmation message shows the full path of the saved file. --- ## Workflow Example The following example shows how to extract the two halves of a match from a single full-game recording: 1. Open the full-game MP4 file. 2. Navigate to the kick-off of the first half. Click **Set Trim Start**. 3. Navigate to the half-time whistle. Click **Set Trim End**, then click **Add Cut Section**. 4. Navigate to the kick-off of the second half. Click **Set Trim Start**. 5. Navigate to the final whistle. Click **Set Trim End**, then click **Add Cut Section**. 6. Confirm the two sections and the total duration in the Cut Sections panel. 7. Set **Video Quality** to **Copy** for a fast, lossless export. 8. Click **Cut & Merge 2 Sections**, choose a save location, and wait for the export to complete. The output is a single MP4 containing both halves back-to-back, with the pre-match and half-time breaks removed. --- ## Troubleshooting ### Video Will Not Load - Confirm the file format is supported (MP4, MOV, WebM). - Ensure the file is not open in another application. - If the file is on a network drive, copy it to a local folder first. ### Trim Points Are Not Accurate In **Copy** mode, FFmpeg snaps cut points to the nearest keyframe in the source video. This can result in the exported clip starting or ending a fraction of a second away from the exact position you set. To cut at frame-accurate positions, switch to **High Quality** or **Medium Quality** mode, which re-encodes the video at the trim boundaries. ### Export Is Slow - Switch to **Copy** mode if a quality change is not required — this is significantly faster than re-encoding. - Lower the target resolution if re-encoding is necessary. - Ensure the output folder is on a fast local drive rather than a network or external drive. ### Output File Has No Audio Check that **Include Audio** is ticked in the export settings before starting the export. --- URL: https://teamoppy.com/docs/tagger/xml/06-xml-download # XML Download How to integrate Tagger data with third party software. ## Integrating Tagger Data into Third-Party Software In this document, we will outline the steps that you can follow to integrate tagger data into third-party software. This is achieved by using industry standard XML documents. ## Exporting XML from the Game Menu To export the XML file, follow these steps: - in the Game menu, select **Export XML** - in the Export XML dialog, choose your options and click **Download** ::callout{icon="i-heroicons-exclamation-triangle" color="amber"} If the game is not synched with the video, a warning is shown and the **Download** button is disabled while **Video Time** is selected. **Real Time** is unavailable for games with no recorded start time. :: ## Download Options Select either the video time or the real time option to use for the 'start' and 'end' time XML elements for the event instances. ### Video Time Video time is the actual video time when the event has occurred. This is set if the game has been tagged using the video tagger or if the live game data has been synched with the video post game. To synchronize the tagged events with the video, you can follow the steps here - [Synchronize Video](/docs/tagger/synchronize-video) ### Real Time The Real Time is the continuous time from the start of the game until the end of the game. e.g. the start of the game is 0:00 - if the first quarter lasts 15:30 and there is 2 minutes of a break until the next quarter then the start of the 2nd quarter is 17:30. This is only available on new games going forward. ### Code Element Type The code element in the XML can either be the **Event Name** or the **Player Name**, where the event has a player. Select the option you want to use. ### Include Team Name in Code field By default the event name is used for the code field in the XML and the team name is a label on the event instance. Switch this on to include the team name along with the event name in the code field. ### Filter by period Select a specific period to download or leave blank to download all periods. ## Importing XML into Third-Party Software Once you have downloaded the XML file, you can import it into the third-party software. The steps for importing the file may vary depending on the software you are using and is outside of the scope of this document. Please check the documentation of the third party tool. ## Conclusion Integrating tagger data into third-party software may sound tricky, but by following these steps, you can easily accomplish this task. Remember to synchronize the tagged events with the video before importing the XML file to ensure that the events are accurately located in the video. With these steps, you can integrate tagger data into third-party software and take advantage of the data to improve your analysis capabilities. --- URL: https://teamoppy.com/docs/tagger/xml/07-xml-import # XML Timeline Import How to integrate third party software data into Tagger. ## Integrating Third-Party Software Data into Tagger Data from third-party software can now be integrated into Tagger via the Import Timeline (XML) functionality accessible in the Game menu. This function is enabled after a game is created. On selecting this option a dialog window will open. ## Select the XML File The first step is to choose the XML file to import. ## Time values Event times are read as the time **within the period** the event belongs to, because that is how Tagger stores event times - each period's clock starts at 0:00. If the file uses absolute game time across the whole match, split it by period, or adjust the times, before importing. If the times are video positions, choose **Video** in the **Time & Periods** tab of the XML mapping editor and Tagger converts them using each period's recorded video start. ## Set Mapping details ### Timeline Name Enter a timeline name. This distinguishes any events that are imported via the XML from the Tagger events. ### Team Names If your codes or labels contain team names then enter those names in the Team name fields so that they can be replaced with TEAMA and TEAMB respectively. This will allow you to use the same mapping configuration across different games with different team names. ### Mapping Configuration If you have an existing mapping configuration then you can select that which will automatically map the codes, labels and other elements to Tagger data elements. ### Codes Typically XML Codes will be mapped to Tagger Events but in some cases the Codes may refer to player names. The code mapping gives you the option of both. ### Label Groups In some cases you may be able to map Label Groups directly to specific Tagger elements like Periods, Players, X, Y co-ordinates meaning that those Tagger elements will assume the text value of the group. ### Label Group Texts You may need to do direct mapping of Label Groups and Text combinations to Tagger elements. You can map to Events, Event Periods, Event Teams, Event Players and Event Labels. ### Other elements In some applications they may provide additional XML elements for things like x and y co-ordinates. These can be mapped in the Other elements section. ## Import After importing the XML you can save the mapping configuration for future use, giving it a name and a description. ## Configuration The XML mapping configurations can also be modified in the Configuration page. This allows you to modify the name, description and all the above mapping elements as well as allowing you to delete a mapping configuration if required.