---
title: "Analyze Gpx"
method: POST
path: "/gpx/analyze"
---

# Analyze Gpx

`POST /gpx/analyze`

## Request

- Base URL: `https://safefamilyapp.com` (the document declares no server; this is the origin it was published from)
- URL: `https://safefamilyapp.com/gpx/analyze`
- Auth: none declared

Parse an uploaded GPX file and, optionally, predict its Course Standard score for a given time.

Uses the exact same formula as the real post-race scorer (no competitor
assumption needed) — see ``scoring.estimator``'s module docstring and
``docs/methodology/0.1.0/HOW-OTRI-SCORES.md``.

## Response `200`

Successful Response

- GpxAnalysis
  - `measurement` object
  - `features` object, required
  - `estimate` IllustrativeEstimateOut
    - `equivalent_distance_km` number, required
    - `performance_rate` number, required
    - `otri_raw` number, required
    - `predicted_score` integer, required
    - `scoring_version` string, required
    - `disclaimer` string, required
    - `quality_flags` string[]
    - `breakdown` EstimateBreakdownOut: Intermediates of one score, for explaining it (see scoring.estimator.EstimateBreakdown).
      - `physical_distance_km` number, required
      - `course_demand_km` number, required
      - `terrain_factor` number, required
      - `steep_distance_fraction` number, required
      - `altitude_excess_m` number, required
      - `adjusted_demand_km` number, required
      - `performance_rate` number, required
      - `reference_rate` number, nullable
      - `fraction_of_ceiling` number, nullable
      - `reference_factor` number, nullable
      - `lookup_rate` number, nullable
      - `riegel_exponent` number, nullable
      - `world_best_time_seconds` number, required
    - `confidence` string

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/safefamilyapp/apis/otri-api.md) · [All operations](https://skmtc.dev/safefamilyapp/apis/otri-api/llms.txt) · [OpenAPI document](https://skmtc.dev/safefamilyapp/apis/otri-api/revisions/d07bb03cb836?raw)
