Sofascore: where the xG stops

Sofascore is a live score site with a statistics layer on top: expected goals (xG, a number for how good each chance was), shots, player ratings, a momentum graph. More than twenty sports, more than 20,000 competitions by its own count. Our Sofascore review is about one question a bettor asks first: on which matches are those numbers real, and on which is there only a score?

Sofascore 4.0 / 5
Live scores + stats xG on top leagues Free, with ads
Free · All stats free, with ads
Try Sofascore free →
Type Live scores + stats
Free All stats free, with ads
From Free
Best for Match-by-match xG

Pros

  • xG and xGOT on top leagues.
  • Player ratings on covered matches.
  • Match Momentum on covered live games.
  • 20+ sports on one site.

Cons

  • No xG below the top tiers.
  • Some matches are user-edited.
  • Pro sold as AI predictions.
  • Odds block is a bookmaker referral.

On a top-league match Sofascore gives you xG, xGOT, a shot map and a rating for every player. In an amateur league it gives you a score typed in by a volunteer.

What Sofascore is: scores first, stats on top

Most people open the Sofascore app for the score, and the site works the same way. It updates fast, covers 20-plus sports, and a football match page shows lineups, goals and cards as they happen. The Google Play listing counts more than 100 million downloads and 1.15 million ratings for that product, at 4.5 stars, with “contains ads” printed under the name.

The betting use sits one tab to the right. Statistics. On a Champions League final it holds possession, distance covered, xG, big chances, shots, saves, sprints and corners. Below that come blocks for shots, attack, duels, passes, defending and goalkeeping, then a shot map, an attack map and a pass map. More than Understat shows for a match, on a site most bettors already have open.

Why would you read it before a bet? Because the score and the shots can disagree. xG adds up the quality of every shot: a penalty counts for about three quarters of a goal, a shot from 30 metres about 0.03.

Athletico beat Bahia 2-1 in the Brazilian Serie A on 21 September with an xG of 0.64 against 1.19. The losing side created nearly twice the chances. A bettor who only saw the score would back the wrong side next week.

Who runs Sofascore: Zagreb, 2010, a fan blog

The footer gives a street address, Vrbani 4, Zagreb, Croatia, and the About page tells the story in full. In 2010 two founders, Zlatko Hrkać and Ivan Bešlić, bought a fan blog about a Croatian singer, Cesarica, and bolted a live score feed onto it. The name Sofascore came in 2012, the current design in 2022.

So the company is findable, unlike Understat's. Is Sofascore legit? A Zagreb address, two named founders, a listing with 100 million installs. There is an About page, careers, a B2B section and a contact page. The B2B section says where the money comes from: advertising, widgets, sports and media partnerships. The odds block on a covered match page looks like one of those partnerships.

How to use Sofascore: from the search box to the Statistics tab

This is the desktop website; the app uses the same tab names under the score.

  1. Type a team into the search box at the top right. Pick the club, not the country, or you land on the national team.
  2. On the team page, the left column lists matches. Finished shows the results, Upcoming the fixtures. Click a match.
  3. The match page opens on Lineups. The tabs above the pitch are Lineups, Statistics, Standings, H2H, Media and AI Insights. Click Statistics.
  4. The buttons ALL, 1ST and 2ND switch the period. On a match that went to extra time you also get ET1 and ET2.
  5. Scroll. Match overview comes first, with xG in blue and an (i) beside it. Below it, Shots, Attack, Duels, Passes, Defending, Goalkeeping. The Shotmap sits to the right, one team at a time; click the badge to switch.
  6. Back on Lineups, click any player's circle. A panel opens with the rating, the breakdown and the pass map.

Six clicks from the home page to a player's pass map. The sections below say what those screens mean.

Where Sofascore has xG, and where it stops

No other review of Sofascore has this section, so it gets the numbers.

Top leagues: full set. Brazilian Serie A, Athletico against Bahia: xG 0.64 to 1.19, big chances (a clear shot at goal, the kind you expect to go in) 2 to 2, shots 11 to 10, saves 2 to 4, sprints 107 to 82. Plus a shotmap per team, as the tab calls it, a momentum graph and a rating for every player.

Champions League final, PSG against Arsenal: the same, with extra-time splits, xGOT, hit woodwork, shots inside and outside the box.

Sofascore match page for Athletico versus Bahia with the Statistics tab showing xG 0.64 to 1.19, a shot map, the Match Momentum graph, the odds block and the AI Insights tab
1: xG 0.64 to 1.19 on a match the 0.64 side won. 2: shot map, one team at a time. 3: Match Momentum. 4: two rows of odds. 5: the AI Insights tab, which is a paywall.

Then the drop. An Argentine amateur regional match, Avenida against Comercio: no Statistics tab at all. Standings and H2H, a “Who will win?” vote with 41 votes, and a line at the top, “Edited by Patricio Tafuro”. Afghanistan Champions League, Arman against Omar Zawak, live at half time: same two tabs, 225 votes, “Edited by Paolo Vigilante”. Armenian First League, live: a Details tab, a table, and streaks.

Between the two ends there is a third level, and Bolivia showed it. Bolívar's team page for the Copa Bolivia 2026, a domestic cup, carries a Sofascore rating of 7.49, 19.3 shots a game, 2 big chances a game, tackles, interceptions, duels, forty lines of statistics.

Not one of them is expected goals. The events are counted; the chances are not modelled. So a Bolivian cup match has a Statistics tab and no xG, while the Bolivian national team, playing World Cup qualifiers, gets a rating of 6.79 and a full season page.

Bolívar in the Copa Bolivia: 19.3 shots a game, a rating of 7.49, forty lines of statistics and no xG. Bolivia the national team: the full page.

The coverage follows the data provider, not the app, and it follows the competition, not the country. Sofascore's own store text promises player ratings and heatmaps for “38 most popular leagues”. Outside those, look before you trust: a Statistics tab with shots but no Expected goals line is the middle tier, and no Statistics tab at all is the bottom. Nothing on the match list tells you which you are about to open.

Sofascore team page for Bolívar in the Copa Bolivia 2026 with a rating of 7.49 and a full Attacking statistics block that has no expected goals line
1: rating, matches, goals, all there. 2: the Attacking block, shots and big chances, no xG. 3: a Bolivian cup competition.

Expected goals on target: the second number

Under Shots, a top-league match carries two lines: Expected goals (xG) and Expected goals on target. The second one is xGOT, and it is the number Understat does not have.

xG rates the chance before the shot is taken: where, how, from what pass. xGOT rates the shot after it leaves the boot, with its direction included. A tap-in that goes wide: high xG, zero xGOT. A 30-yard shot into the top corner: low xG, high xGOT.

PSG against Arsenal: xG 1.72 to 0.51, xGOT 1.68 to 0.67. PSG's shooting matched its chances almost exactly. Arsenal had one shot on target all night, it was worth more than all their chances together, and it went in.

xG says who created more. xGOT says who shot better. PSG against Arsenal: 1.72 to 0.51 on chances, 1.68 to 0.67 on shots.

Read them together. xG tells you who created more. xGOT tells you who shot better. A team whose xGOT runs above its xG for a month is finishing well. Finishing tends to swing back sooner than chance creation, so a hot xGOT month is a warning as much as a form line.

Sofascore Shots block for PSG versus Arsenal with expected goals 1.72 to 0.51 and expected goals on target 1.68 to 0.67, next to the attack map
1: xGOT, the shot quality after the kick. 2: xG, the chance before it. 3: attack map, where the play sat.

Reading one match: PSG 1-1 Arsenal, 4-3 on penalties

The Champions League final of 30 May 2026 is a good test, because the score says nothing. 1-1 after extra time, PSG on penalties.

The Statistics tab, which turns a score feed into a football stats app, holds the rest. Possession (the share of time each side had the ball) 75 to 25. Shots 21 to 7, on target 4 to 1. xG 1.72 to 0.51. Big chances 3 to 1, and PSG missed two of theirs. Touches in the opposition box 42 to 16. Corners 11 to 3.

Arsenal's goalkeeper made three saves to none. Goals prevented, the goals a keeper stopped compared with what the shots he faced should have produced, was 0.68 for Arsenal's keeper and minus 0.33 for PSG's, who let in more than his shots were worth. Player of the match: Declan Rice, 8.1, on the side that lost the shootout.

Every one of those numbers is free, in the same tab, with a period switch for the first half, the second half and both halves of extra time. A bettor pricing the next PSG match knows they made 21 shots and scored one, and a bettor pricing Arsenal knows the 0.51.

Sofascore rating explained on one player

Every player on a covered match gets a number out of 10, and both teams get one. Athletico 6.95, Bahia 6.59. The rating has existed since 2015, and the About page says the algorithm has rated almost three million players from “hundreds of data” points. How it weighs them is not published.

Click a player and the number opens up. Luiz Gustavo, 7.2, 90 minutes. A Rating breakdown with five bars: Impact, Shooting, Passing, Dribbling, Defending. Below it the raw counts: 49 of 53 passes accurate, 29 of 32 in the opposition half, 3 of 5 long balls, xA 0.03, zero key passes.

His 7.2 came from passing. The bars show that; the number on its own could have meant a goal. Under the panel sits the Sofascore heatmap for the match and a pass map for the same player.

A 7.2 built from 49 accurate passes and a 7.2 built from a goal look identical on the lineup. Open the breakdown before you read the number.

What the rating is not: a measure of chance quality. Rice got 8.1 on 0.51 xG for his whole team. The rating rewards touches, duels, passes, tackles, the things a midfielder does a lot of. For a bet on goals, read the xG line. The rating counts touches, not chances.

Sofascore lineups for Athletico versus Bahia with team ratings 6.95 and 6.59, every player rated, and the Luiz Gustavo panel open with a 7.2 rating breakdown
1 and 2: team ratings 6.95 and 6.59. 3: one player, 7.2. 4: the breakdown, five bars, and his came from passing.

Sofascore player page: attributes, a rating by month, a price vote

A player page is where the rating turns into a profile. Mujaid Sadick of Rayo Vallecano: 282 followers, contract until June 2027, a match list with a rating for each game (6.6, 6.6, 6.4, 7.1) and a bar chart of the monthly average over twelve months, injuries marked with a red cross, a transfer with an arrow.

Below it the Attribute Overview, a five-point radar: attacking 32, technical 42, tactical 64, defending 79, creativity 34, with the average for his position drawn behind it and a slider from September 2023 to September 2026. Then Player positions, with Strengths (ground duels, tackling) and Weaknesses (none outstanding). None of it says what the numbers are made of. Which stats feed “creativity”? The (i) icon says the graph shows average values for the position, and stops there.

One more thing on that page. Player value, 4.7M euros, and under it a question: “Is market value higher or lower?”, with an up and a down arrow. Readers vote on whether the figure is too high or too low.

The player of the match gets a vote too, back on the match page: next to the Sofascore Rating pick sits a Fan Pick with 658 votes. Computed numbers and crowd votes sit on the same screen, styled the same way, and the reader has to notice which is which.

Sofascore player page for Mujaid Sadick showing the Attribute Overview radar with defending 79 and attacking 32, plus the Strengths and Weaknesses block
1: five attributes, no formula given. 2: strengths and weaknesses in words.

Match Momentum and live stats for in-play betting

On a live match the left column shows Match Momentum, called Attack Momentum in the app: a bar chart of pressure, one team above the line, the other below, goals marked on it. It measures who had the ball near goal, not how good the chances were.

On Athletico against Bahia you can see the home side's long green run in the first half and the away goal arriving against the run of it. Bahia pressed less and made the better chances, which is why its xG was higher.

For in-play betting this is the most useful thing on the page, because it builds up during the match and it does not need xG data to work. On covered matches the Statistics tab should update live too, with shots, xG and big chances ticking up.

We did not catch a covered match while it was being played, so every figure in this review, momentum included, is from a finished one. On an Armenian second-division match at half time the live page had a timeline and a table, and no momentum graph. The graph lives where the shot data lives, so the same rule applies.

Sofascore odds: 1xBet, Melbet and a link to the bookmaker

A covered match page carries a Full-time block with 1, X and 2 in two rows, and each row has a bookmaker logo. On Rayo Vallecano against Espanyol the rows were 1xBet at 2.25, 3.30, 3.20 and Melbet at 2.25, 3.25, 3.15. Arrows mark which way each price moved. Click a price and you leave Sofascore for the bookmaker's site.

So the odds block is a referral, not a comparison: two partner books, the pair likely changing with the country you open the site from, and a partner link out. The B2B page lists sports partnerships among the ways the company earns, and the two logos look like one of them.

Two books is enough to see which way a price is moving. It is not enough to know whether 2.25 is the best price on the match; an odds comparison site shows twenty.

Sofascore match page for Rayo Vallecano 2-1 Espanyol with 1xBet and Melbet odds rows, xG 1.71 to 1.65 and 16 shots to 19
1: two bookmakers, 1xBet and Melbet, and a click goes to their site. 2: xG 1.71 to 1.65. 3: 16 shots to 19.

Prediction tips: dropping odds and two chances of winning

The Dropping odds link in the header opens a page called Prediction tips. Three columns. High value streaks: a list of teams with a run, “Over 2.5 goals 9/10”, “Wins 6”, next match today or in four days.

Dropping odds: matches where a price fell, with the drop as a percentage, 39.9 percent on a Japanese basketball game, 36.5 on Bahamas against Saint Martin, and a chart of the price over the last day when you open one. Winning odds: a table with a match, the two prices, and a Chance of winning in two columns, “Based on odds” and “Based on history”.

The third column needs a closer look. A women's EuroCup basketball qualifier: based on odds 79 percent, based on history W = 50 percent. An ITF tennis match: 58 percent against 29. The two columns disagree on every row we looked at, and the page does not say what “history” covers, how many matches, or which one you should believe. Under it all, in grey: “Gamble responsibly 18+”.

The streaks column has a cousin on match pages. An Armenian First League match had no xG but a Streaks block: no losses 4, over 2.5 goals 7 of 8, both teams to score 7 of 7, fewer than 4.5 cards 10 of 10. Every line is phrased like a bookmaker market.

Where there is no shot data, the page still gives a bettor a run of results to act on. Seven of seven in an Armenian second tier is a fact about seven matches, not a probability for the eighth, and a reason for the run would need shots, possession and a lineup, none of which the page has.

It is a page for picking bets, built from streaks and price moves, sitting on a stats site. If you use it, use the dropping odds column and nothing else. A price that fell 40 percent since yesterday is a fact worth checking, and our dropping odds guide explains what usually moved it. A streak of nine is a list of nine results.

Sofascore Prediction tips page with High value streaks, a Dropping odds list showing a 39.9 percent drop, and the 1xBet and Melbet prices on the opened match
1: streaks as tips. 2: the dropping odds list. 3: a 39.9 percent drop on a basketball match. 4: the same two bookmakers again.

Matches edited by users: Torneo and the empty stats

Sofascore runs a product called Torneo, launched in 2019, which lets coaches, staff and volunteers enter live scores and data for local teams. The About page says these entries appear “next to major events like UEFA Champions League or NBA”. They do, with no marker other than a small “Edited by” line at the top of the left column.

A volunteer's score, a table, a vote with 41 people on it. No shots, no possession, nothing to say whether the 0-3 was deserved.

We found it on an Argentine amateur match and on the Afghanistan Champions League. Both pages had a scoreline, a table, a head-to-head tab and a vote, 41 people on the Argentine one and 225 on the Afghan one. Somebody is betting on those matches from those pages.

The scores are probably right; volunteers who run a club's data tend to care. What is missing is everything else. On a user-edited match the page tells you that it ended, and nothing about how.

Sofascore page for an Argentine amateur match Avenida versus Comercio with an Edited by line, a Who will win vote with 41 votes, and only Standings and H2H tabs
1: “Edited by”, a volunteer's name. 2: a vote with 41 people on it. 3: two tabs, no Statistics.

Sofascore Plus, Pro and the predictions: what the money buys

Everything in this review so far was free. The app sells two upgrades, and the website shows the second one as a locked tab.

Plus removes ads, and on the app's feature list that is the one tick against four crosses. Older in-app purchases called Remove Ads and Sofascore Analyst still appear in the store listings, and there is no tier called Sofascore Premium. Seven-day free trial, monthly or yearly billing, the yearly plan about 19 percent cheaper, auto-renewing after the trial.

Pro removes ads and adds the AI Insights tab: “Exclusive insights for 300+ soccer and tennis competitions”, game analysis and predictions, form, injury, corner, card and referee patterns, and “data-driven result probabilities”. Three-day trial, monthly, auto-renewing.

The web version of the tab calls it Sofascore Pro and says, “Predict smarter, win bigger”, with forecasts “powered by advanced AI” up to three days before kick-off. Subscribe in the app, then sign in on the web.

Plus buys silence from the ads. Pro buys forecasts with no published record. The Statistics tab costs nothing on either.

Prices are set per region and shown in the local currency, so we do not print one. In the region we checked, Pro cost a little over five times Plus per month.

Sofascore predictions, then, are a paid product on a stats site, and predictions are a different category with a different question: does the record beat the market? Sofascore publishes no record for the AI Insights forecasts that we could find.

Until it does, the free Statistics tab is the part of Sofascore a bettor needs, and Plus is a question of how much the ads bother you. They bother a lot of people: the app's Trustpilot page is mostly complaints about pop-up ads since the redesign.

Sofascore AI Insights tab on the web showing the Sofascore Pro paywall with win probabilities, forecasts, a Sign in button and a QR code to the app
1: the tab. 2: what Pro promises, forecasts and probabilities. 3: sign in, then subscribe in the app.

The app screen is plainer than the web pitch: two tabs, Plus and Pro, a feature list with ticks and crosses, a trial button.

Sofascore app upgrade screen with the Pro tier selected, five features ticked and a three-day free trial, price hidden because it is regional
1: Pro, five ticks. 2: a three-day trial that renews by itself. Price hidden, it changes by country.

Sofascore account: what sign-in gives

Sign in is Google, Facebook or Apple, and the page calls it “a world of stats at your fingertips, for free”. The stats were already free. An account adds favourites synced across devices, match chats, the prediction game with its Top predictors ranking, fantasy, and a place to store a Plus or Pro subscription so it works on the web. We did not sign in, since nothing we needed was behind it.

Sofascore data export and API: none for the public

Every number in this review was read off a screen. There is no download button, no CSV and no Sofascore API for the public. The B2B section sells widgets and data partnerships to companies, not to bettors. If you keep a spreadsheet, you type the xG in by hand, which is the difference from Understat, where every table has a download icon.

Sofascore vs Understat and FotMob

Understat is six leagues, every season since 2014, and a table you can download. Sofascore is tens of thousands of competitions, one match at a time, nothing to download, and xG only on the competitions it models.

We opened the same match on both. Rayo Vallecano 2-1 Espanyol, 15 September. Sofascore: Rayo xG 1.71, 16 shots. Understat: Rayo xG 1.83, 16 shots.

Same shots, different models: Opta's on Sofascore, Understat's own. 0.12 apart on one team in one match. Small, and it will not always be small: a model rates every shot on its own rules, and a match with two penalties or a few headers can pull the two totals half a goal apart. Take the xG for a season from one source and stay with it.

Understat player table for Rayo Vallecano in the same match, 16 shots and a team xG of 1.83 against 1.71 on Sofascore
1: Understat's Rayo row for the same match. 2: 1.83 against Sofascore's 1.71, from the same 16 shots.

They are not rivals. A bettor on La Liga uses Understat for the season view and Sofascore for the match that finished ten minutes ago. A bettor on the Brazilian Serie A cannot use Understat at all, because it does not cover Brazil.

FBref is the other name a beginner meets, and it lost its xG in January 2026, so it competes on breadth, not on this number.

FotMob is the closest rival, and on our earlier checks it printed xG per shot and xGOT on the Championship, MLS and Eredivisie, and stopped at the Bolivian top flight. Sofascore stops at a similar place: Bolívar's cup page has shots, big chances and a rating, and no xG. The borders sit in the same place for a simple reason. On Rayo Vallecano against Espanyol the two apps showed the same xG to the hundredth, 1.71 and 1.65, and the same xGOT, 0.93 and 1.15. FotMob names the source in a press release: Opta. So Sofascore and FotMob show one model, and Understat is the only one of the three with its own.

Our FBref alternatives page sorts the free sources by which number you need; the method for turning xG into a price is in the expected goals guide.

How to read the numbers before a bet: five steps

  1. Open the match and look for the Statistics tab, then for the Expected goals line inside it. No tab: the page has no shot data. A tab without xG: you have shots and big chances, so read those.
  2. On each team's last three matches, read xG against goals. A team winning on less xG than it allows is the first thing to price against.
  3. Check xGOT against xG for the same matches. If xGOT sits well above xG, the finishing has been hot.
  4. Look at the “Edited by” line on lower-league pages. If it is there, treat the page as a scoreline only.
  5. Take the price from an odds comparison site, not from the two-row block, and turn the xG into a fair price with the method in the xG guide.

What Sofascore does not show

No season table of xG: it exists per match, never as a sortable league view. No download. No source named for the xG model; the tooltip says what xG is, not who computes it. The figures match FotMob's, and FotMob says its data comes from Opta.

No mark on the match list to tell a covered match from a user-edited one. No record for the Pro forecasts. And no way to switch the ads off without paying, on the app or the site.

Rating 4.0: the widest free stats, with a border you cannot see

For a top-league match, Sofascore is one of the two best free pages we have reviewed, next to FotMob: xG and xGOT, a shot map, ratings with a breakdown, and a momentum graph built to update during the match. More than twenty sports on the same site, and a company with a street address.

A point comes off for the border. The stats stop somewhere below the top tiers and the page does not tell you where. Below the line a volunteer may be keeping the score, while the vote sits there as if nothing changed. Then a Pro tier that sells predictions with no published record, and ads heavy enough to fill a review site.

Rating 4.0 out of 5, level with Understat and a tenth below FotMob, which shows the same xG on every shot. Most bettors will end up with both tabs open.


Frequently asked questions

Is Sofascore free?

Yes. Scores, statistics, xG, ratings and lineups are free with ads on the site and in the app. Plus removes the ads and Pro adds AI forecasts; both are subscriptions sold in the app with a free trial that renews automatically.

Does Sofascore have xG?

Yes, on covered competitions. Sofascore xG and expected goals on target appear on every top-league match. Smaller competitions, the Copa Bolivia for one, show shots, big chances and ratings but no xG line. Lower divisions and amateur competitions show a score, a table and streaks, with no shot data at all.

Where does Sofascore get its data?

The site names no provider. Its xG matched FotMob's to the hundredth on a La Liga match, and FotMob says its data comes from Opta. Amateur pages are entered by users through Torneo and carry an "Edited by" line.

Is Sofascore better than FotMob?

Both show the same Opta xG, so the number does not change. Sofascore adds a rating breakdown, Match Momentum and 20 sports. FotMob prints xG and xGOT on every shot, football only.
Cookie Notice: We use cookies to improve your experience.