Introducing the next generation of Pressure Index
Contents

How it’s calculated

Pressure Index is calculated in real time from live match statistics, weighted according to how strongly each one reflects a team’s attacking dominance. The factors that feed into it include:

  • Shots on target
  • Possession percentage
  • Attacking third entries
  • Dangerous attacks
  • Defensive actions and tackles
  • Cards received

Each statistic is weighted to reflect its relative importance, and the weighting works in both directions. Increasing possession time or attacking output raises a team’s pressure, while conceding a red card lowers it, since a team down to ten men has a reduced ability to sustain pressure.

How to interpret the values

Pressure Index is a relative measure between the two teams, not a calibrated probability. At any given moment only one team can hold a positive value, while the other sits at or near zero. When both teams are close to zero, that reflects an equal level of pressure rather than a lack of data. The higher the value, the stronger that team’s current period of dominance.

It’s a descriptive signal, reflecting what’s happening in the match right now, not a forecast of what’s likely to happen next. If you need a genuine forward-looking probability model, that’s what our separate Predictions add-on is for.

Accessing Pressure Index through the API

Pressure Index is exposed as an include on fixture endpoints. The include name is pressure, and you request it the same way you’d request any other fixture include.

// JavaScript
const response = await fetch(
  "https://api.sportmonks.com/v3/football/fixtures/18804442?include=pressure&api_token=YOUR_API_TOKEN"
);
const data = await response.json();

The response returns a pressure array of time-stamped records, each carrying an id, fixture_id, participant_id identifying the team, a minute, and the numeric pressure value itself. A trimmed example of what that looks like in practice, from the Champions League final between Manchester City and Inter:

{
  "data": {
    "id": 18804442,
    "name": "Manchester City vs Inter",
    "pressure": [
      { "id": 941884259, "fixture_id": 18804442, "participant_id": 2930, "minute": 6, "pressure": 0 },
      { "id": 941884266, "fixture_id": 18804442, "participant_id": 9, "minute": 6, "pressure": 10.92 },
      { "id": 941897977, "fixture_id": 18804442, "participant_id": 9, "minute": 7, "pressure": 15.37 },
      { "id": 942104082, "fixture_id": 18804442, "participant_id": 9, "minute": 27, "pressure": 32.99 }
    ]
  }
}

At minute 6, Manchester City’s pressure of 10.92 against Inter’s 0 shows City holding the balance of attacking threat in that window.

Combining Pressure Index with other fixture data

Pressure Index is rarely useful entirely on its own, it earns its keep alongside the events and context that explain why the momentum shifted. Since it’s just another include on the same fixture endpoint, you can request it alongside participants and events in a single call rather than making separate requests and stitching them together client-side.

GET https://api.sportmonks.com/v3/football/fixtures/18804442?include=pressure;participants;events&api_token=YOUR_API_TOKEN

That single request gives you enough to build a genuinely readable live momentum chart: the pressure trend to plot, the two participants to label each line, and the events timeline (goals, cards, substitutions) to annotate the graph at the moments that actually explain a spike or a drop. This is the same includes system that underpins the rest of our Football API, so if you’re already comfortable combining includes for lineups or statistics, Pressure Index slots into that same pattern rather than requiring a different mental model.

Pressure Index also sits alongside our other proprietary analytics add-ons rather than replacing them. Where Pressure Index tells you which team currently has momentum, xG data tells you the quality of the chances each team has created, and Predictions gives you a genuine forward-looking probability model rather than a descriptive signal. Used together, they answer three different questions a live match product usually needs: what’s the quality of play been (xG), who has the edge right now (Pressure Index), and what’s likely to happen from here (Predictions).

Data coverage and known limitations

Pressure Index needs sufficient live statistics coverage to compute an accurate value, and for some lower-tier fixtures with sparser tracking, that coverage won’t always be there. Rather than leaving you to guess, the API surfaces this directly: a Pressure Status metadata type on the fixture entity carries a computable flag telling you whether Pressure Index could be accurately calculated for that match.

// https://api.sportmonks.com/v3/football/fixtures/<fixture_id>?include=metadata.type

"metadata": [
  {
    "id": 8754935,
    "metadatable_id": 19600130,
    "type_id": 97352,
    "value_type": "object",
    "values": {
      "computable": true
    },
    "type": {
      "id": 97352,
      "name": "Pressure Status",
      "code": "pressure-status",
      "developer_name": "PRESSURE_STATUS",
      "model_type": "metadata",
      "stat_group": null
    }
  }
]

If computable is false, there are too few statistics available for that fixture to generate an accurate Pressure Index, and no pressure values will be returned. Check this flag and build a UI state for it (something as simple as “insufficient data coverage” works) rather than assuming a missing value means zero pressure.

Get started

Pressure Index requires the Pressure Index add-on on top of your base plan (Starter, Growth, Pro, or Enterprise), priced from roughly €9 to €29 depending on your base plan. All base plans already include the same professional-grade fixtures, events, lineups and season statistics, so adding Pressure Index doesn’t require moving to a different tier, just attaching the add-on to whichever plan you’re already on. It’s commonly bundled with xG data, since the two are used together often enough that pairing them is usually cheaper than buying each separately (xG Basic from roughly €24 to €114, xG Advanced from roughly €204 to €414, depending on your base plan). Check the pricing and add-ons page before wiring it in, since bundle pricing can change.

If you’re building visualisations, plotting pressure per team over time and annotating the graph with key match events, goals, red cards, substitutions, gives useful context that the raw numbers alone won’t. And if you’re not yet on our platform at all, the free plan is the easiest way to get a token and start exploring the fixture, events and statistics data that Pressure Index sits on top of, before deciding whether the add-on is worth it for your specific project.

Faq

Is the Pressure Index a prediction of who will score next?
No. It's descriptive rather than predictive. It reflects which team has generated the stronger scoring threat over the most recent five-minute window, not a forecast of what happens next. A dedicated predictive model is on the roadmap as a separate feature.
Can both teams show positive pressure at the same time?
No. Pressure Index is designed as a relative measure, so at any given point in the match, only one team holds a positive value while the other sits at or near zero.
Does every fixture have Pressure Index data available?
Not always. It depends on having sufficient live data coverage for that match, which can be limited on some lower-tier fixtures. Where coverage is insufficient, no value is returned, and applications should treat that as unavailable data rather than assuming zero pressure.
How does Pressure Index relate to xG and Predictions?
They're complementary rather than overlapping. xG data measures the quality of chances each team has created, Pressure Index measures which team currently holds momentum over the last five minutes, and Predictions gives a genuine forward-looking probability model. All three are separate add-ons that sit on top of the same core fixture and statistics data, and many live dashboard and match-centre products combine them rather than using just one.

Written by David Jaja

David Jaja is a technical content manager at Sportmonks, where he makes complex football data easier to understand for developers and businesses. With a background in frontend development and technical writing, he helps bridge the gap between technology and sports data. Through clear, insightful content, he ensures Sportmonks' APIs are accessible and easy to use, empowering developers to build standout football applications