Skip to main content
The POST /get_roi_analysis endpoint calculates the full return on investment (ROI) for signing a player to a specific club. It runs a 3-year simulation that combines three components: the player’s sportive (on-field) impact expressed in monetary terms, a prediction of their future transfer fee based on comparable historical players, and the total cost of signing (transfer fee plus wages). The result includes each component broken down individually, the overall ROI ratio, and the similar historical players used for the future transfer value prediction.
The analysis is always run against the 2025/2026 season. Season is not yet a request parameter. The club_id must be club inside your coverage. Contact SquadAssist to adjust access.

Request

The request body must be a JSON object.
player_id
string
required
The SquadAssist player ID. Use POST /query_player to look up the ID.
club_id
string
required
The SquadAssist club ID for the signing club. Contact SquadAssist to confirm which club IDs are available on your plan. Use POST /query_club to look up the ID.
annual_wage
number
The player’s annual wage in the currency specified by currency_code. If omitted, wage is treated as zero and no wage cost is included in the ROI calculation — the response will note this in the result.
expected_transfer_value
number
The transfer fee you expect to pay, in the currency specified by currency_code. If omitted, SquadAssist’s model calculates an expected fee automatically based on the player’s profile and the signing club.
currency_code
string
An ISO 4217 currency code (e.g. EUR, GBP, USD). All input amounts (annual_wage, expected_transfer_value) are interpreted in this currency. Defaults to EUR.

Response

The response is a JSON object containing each component of the ROI analysis. All monetary values are provided in both the requested currency and EUR.
currency
string
The ISO 4217 currency code used for all non-EUR monetary values in the response. Matches your currency_code input, or EUR if none was provided.
expected_transfer_value
integer
The transfer fee used in the calculation, in the requested currency.
expected_transfer_value_in_eur
integer
The transfer fee used in the calculation, in EUR.
annual_wage
integer or null
The annual wage used in the calculation, in the requested currency. null if no wage was provided.
annual_wage_in_eur
integer or null
The annual wage used in the calculation, in EUR. null if no wage was provided.
total_value_created
integer
The total projected value created by the player over the 3-year simulation period (sportive impact + future transfer value), in the requested currency.
total_value_created_in_eur
integer
The total projected value created, in EUR.
return_on_investment
number or null
The ROI ratio: total_value_created / (transfer_fee + annual_wage * 3). A value above 1.0 means the player is projected to create more value than they cost. null when total cost is zero.
sportive_impact
object
The on-field (eLPAR) component of the analysis. See POST /get_sportive_impact for the structure of this object.
future_transfer_value
object
The future transfer fee prediction component. See POST /get_future_transfer_value for the structure of this object.
player_info
object
A summary of the player’s current attributes used in the analysis.

Example

curl -X POST https://api.squadassist.ai/v1/get_roi_analysis \
  -H "x-api-key: <your-api-key>" \
  -H "Content-Type: application/json" \
  -d '{
    "player_id": "P01JJ9Q8SSAA1PN94F070VGY9Q3",
    "club_id": "C01JJBVJAPKG8CM7ZA5JF5G84R8",
    "annual_wage": 1200000,
    "expected_transfer_value": 4000000,
    "currency_code": "EUR"
  }'

Errors

StatusBodyCause
400{"error": "player_id is required"}player_id was not included in the request body
400{"error": "club_id is required"}club_id was not included in the request body
400{"error": "Invalid player_id"}The player_id format is not valid
400{"error": "Invalid club_id"}The club_id format is not valid
400{"error": "currency_code must be a string"}currency_code was provided but is not a string
400{"error": "<message>"}The currency_code is not a valid ISO 4217 code
403{"error": "Player is not in the allowed leagues"}The player is not in your current coverage
403{"error": "Requested club is not allowed"}The club_id is not available on your plan
404{"error": "Club not found"}No club was found for the provided club_id