Skadi's Edge accepts manual training data upload in both CSV and JSON formats. This guide will help you prepare your files for upload, and walks through the upload-and-confirm flow on the coach dashboard.
Training data is uploaded per athlete from the coach dashboard. Open your team, go to Athletes & Staff, and click an athlete to open their page. Then press Upload Data to open the upload window.
Pick a CSV or JSON file and Skadi's
Edge processes it immediately — nothing is saved yet. Because you're
uploading on a specific athlete's page, an athleteID column is optional: rows without one are attributed to that athlete.
You need the manage athlete records permission to upload. The team owner has it by default and can grant it to staff through their role.
Always Required:
date The date of the training session (YYYY-MM-DD format)type The type of training (e.g., "practice", "competition")bow_type The bow type used (e.g., "recurve", "compound", "barebow")At Least One Required:
volume OR score Each record must contain either a volume value or a score value
(or both).Conditionally Required:
distance Required ONLY when a score is provided. For volume-only entries,
distance is optional.athleteID Unique identifier for the athlete (required for multi-athlete
uploads)notes Additional notes about the training sessionconditions Weather or other environmental conditionslocation Where the training took placedate,distance,type,bow_type,volume,score,notes
2024-01-15,70,practice,recurve,144,,Morning session
2024-01-16,50,competition,recurve,72,680,Regional competition
2024-01-17,18,practice,recurve,108,,Indoor practiceThis example shows volume-only entries where distance is not required -
date,type,bow_type,volume,notes
2024-01-15,practice,recurve,120,Focused on form
2024-01-16,warmup,recurve,50,Light session{
"records": [
{
"date": "2024-01-15",
"distance": 70,
"type": "practice",
"bow_type": "recurve",
"volume": 144,
"notes": "Morning session"
},
{
"date": "2024-01-16",
"distance": 50,
"type": "competition",
"bow_type": "recurve",
"volume": 72,
"score": 680,
"notes": "Regional competition"
}
]
}You can also provide a simple array of records -
[
{
"date": "2024-01-15",
"distance": 70,
"type": "practice",
"bow_type": "recurve",
"volume": 144
},
{
"date": "2024-01-16",
"distance": 50,
"type": "competition",
"bow_type": "recurve",
"score": 680
}
]After selecting a file, the system will:
These File Statistics appear before anything is saved. Use them to sanity-check your data — confirm the counts and date range look right, then press Submit Upload to import.
If some rows fail validation — for example a score with no distance, or
a missing bow_type —
Skadi's Edge skips just those rows and still imports the valid ones. The
statistics flag how many were filtered so you can spot problems before
confirming.
If a low valid-record count surprises you, fix the source file and re-select it — the statistics recompute instantly. On success you'll get a confirmation, and the athlete's charts update right away.
If you encounter issues with file uploads: