{
  "source_file": "0930",
  "source_platform": "Medium",
  "author": "Ivo Bernardo",
  "title_listed": "Are Home Teams Favoured by Referees in Football/Soccer?",
  "keywords": "",
  "domain": "数据处理",
  "content_type": "深度技术解析",
  "is_paid_flag": "否",
  "url": "https://towardsdatascience.com/are-home-teams-favoured-by-referees-in-football-soccer/",
  "publish_date": "2026-08-04",
  "corpus_stage": "",
  "notes": "",
  "id": "8d0fc02f7f2d",
  "collected_at": "2026-10-02T05:40:11",
  "title": "Are Home Teams Favoured by Referees in Football/Soccer? | Towards Data Science",
  "body_markdown": "![Revisit consent button](../images/body-df29beacd7496220cc94.svg)\nWe value your privacy\nWe use cookies to enhance your browsing experience, serve personalised ads or content, and analyse our traffic. By clicking \"Accept All\", you consent to our use of cookies.\nCustomise Reject All Accept All\nCustomise Consent Preferences ![](../images/body-2159bb67f3de8ad870eb.svg)\nWe use cookies to help you navigate efficiently and perform certain functions. You will find detailed information about all cookies under each consent category below.\nThe cookies that are categorised as \"Necessary\" are stored on your browser as they are essential for enabling the basic functionalities of the site. ... Show more\nNecessaryAlways Active\nNecessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.\n  * Cookie\nBCTempID\n  * Duration\n10 minutes\n  * Description\nNo description available.\n\n\n  * Cookie\n__cf_bm\n  * Duration\n1 hour\n  * Description\nThis cookie, set by Cloudflare, is used to support Cloudflare Bot Management. \n\n\n  * Cookie\nAWSALBCORS\n  * Duration\n7 days\n  * Description\nAmazon Web Services set this cookie for load balancing.\n\n\n  * Cookie\n_cfuvid\n  * Duration\nsession\n  * Description\nCloudflare sets this cookie to track users across sessions to optimize user experience by maintaining session consistency and providing personalized services\n\n\n  * Cookie\nli_gc\n  * Duration\n6 months\n  * Description\nLinkedin set this cookie for storing visitor's consent regarding using cookies for non-essential purposes.\n\n\n  * Cookie\n__hssrc\n  * Duration\nsession\n  * Description\nThis cookie is set by Hubspot whenever it changes the session cookie. The __hssrc cookie set to 1 indicates that the user has restarted the browser, and if the cookie does not exist, it is assumed to be a new session.\n\n\n  * Cookie\n__hssc\n  * Duration\n1 hour\n  * Description\nHubSpot sets this cookie to keep track of sessions and to determine if HubSpot should increment the session number and timestamps in the __hstc cookie.\n\n\n  * Cookie\nwpEmojiSettingsSupports\n  * Duration\nsession\n  * Description\nWordPress sets this cookie when a user interacts with emojis on a WordPress site. It helps determine if the user's browser can display emojis properly.\n\n\n  * Cookie\nBCSessionID\n  * Duration\n1 year 1 month 4 days\n  * Description\nBlueconic sets this cookie as a unique identifier for the BlueConic profile.\n\n\n  * Cookie\n_octo\n  * Duration\n1 year\n  * Description\nNo description available.\n\n\n  * Cookie\nlogged_in\n  * Duration\n1 year\n  * Description\nNo description available.\n\n\n  * Cookie\n__Secure-YEC\n  * Duration\npast\n  * Description\nYouTube sets this cookie to stores the user's video player preferences using embedded YouTube video\n\n\n  * Cookie\n__eoi\n  * Duration\n6 months\n  * Description\nDescription is currently not available.\n\n\n  * Cookie\nAWSALBTGCORS\n  * Duration\n7 days\n  * Description\nNo description available.\n\n\n  * Cookie\nlogin-status-p\n  * Duration\npast\n  * Description\nDescription is currently not available.\n\n\n  * Cookie\nAWSALBTG\n  * Duration\n7 days\n  * Description\nNo description available.\n\n\n  * Cookie\ncsrf_token\n  * Duration\nsession\n  * Description\nNo description available.\n\n\n  * Cookie\ntoken_v2\n  * Duration\n1 day\n  * Description\nDescription is currently not available.\n\n\n  * Cookie\nD\n  * Duration\n1 year\n  * Description\nDescription is currently not available.\n\n\n  * Cookie\nPHPSESSID\n  * Duration\nsession\n  * Description\nThis cookie is native to PHP applications. The cookie stores and identifies a user's unique session ID to manage user sessions on the website. The cookie is a session cookie and will be deleted when all the browser windows are closed.\n\n\n  * Cookie\nVISITOR_PRIVACY_METADATA\n  * Duration\n6 months\n  * Description\nYouTube sets this cookie to store the user's cookie consent state for the current domain. \n\n\n  * Cookie\ncookietest\n  * Duration\nsession\n  * Description\nThe cookietest cookie is typically used to determine whether the user's browser accepts cookies, essential for website functionality and user experience.\n\n\n  * Cookie\n__Host-airtable-session\n  * Duration\n1 year\n  * Description\nThis cookie is used to enable us to integrate the services of Airtable.\n\n\n  * Cookie\n__Host-airtable-session.sig\n  * Duration\n1 year\n  * Description\nThis cookie is used to enable us to integrate the services of Airtable.\n\n\n  * Cookie\nm\n  * Duration\n1 year 1 month 4 days\n  * Description\nStripe sets this cookie for fraud prevention purposes. It identifies the device used to access the website, allowing the website to be formatted accordingly.\n\n\n  * Cookie\nBIGipServer*\n  * Duration\nsession\n  * Description\nMarketo sets this cookie to collect information about the user's online activity and build a profile about their interests to provide advertisements relevant to the user. \n\n\n  * Cookie\n__cfruid\n  * Duration\nsession\n  * Description\nCloudflare sets this cookie to identify trusted web traffic.\n\n\n  * Cookie\n_GRECAPTCHA\n  * Duration\n6 months\n  * Description\nGoogle Recaptcha service sets this cookie to identify bots to protect the website against malicious spam attacks.\n\n\n  * Cookie\n__Secure-YNID\n  * Duration\n6 months\n  * Description\nGoogle cookie used to protect user security and prevent fraud, especially during the login process.\n\n\n  * Cookie\ncookieyes-consent\n  * Duration\n1 year\n  * Description\nCookieYes sets this cookie to remember users' consent preferences so that their preferences are respected on subsequent visits to this site. It does not collect or store any personal information about the site visitors.\n\n\nFunctional\nFunctional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.\n  * Cookie\nlidc\n  * Duration\n1 day\n  * Description\nLinkedIn sets the lidc cookie to facilitate data center selection.\n\n\n  * Cookie\nbrw\n  * Duration\n1 year\n  * Description\nNo description available.\n\n\n  * Cookie\nbrwConsent\n  * Duration\n5 minutes\n  * Description\nDescription is currently not available.\n\n\n  * Cookie\nWMF-Uniq\n  * Duration\n1 year\n  * Description\nDescription is currently not available.\n\n\n  * Cookie\nloom_anon_comment\n  * Duration\n1 year\n  * Description\nNo description available.\n\n\n  * Cookie\nloom_referral_video\n  * Duration\nsession\n  * Description\nDescription is currently not available.\n\n\n  * Cookie\nVISITOR_INFO1_LIVE\n  * Duration\n6 months\n  * Description\nA cookie set by YouTube to measure bandwidth that determines whether the user gets the new or old player interface.\n\n\n  * Cookie\nyt-remote-connected-devices\n  * Duration\nNever Expires\n  * Description\nYouTube sets this cookie to store the user's video preferences using embedded YouTube videos.\n\n\n  * Cookie\nytidb::LAST_RESULT_ENTRY_KEY\n  * Duration\nNever Expires\n  * Description\nThe cookie ytidb::LAST_RESULT_ENTRY_KEY is used by YouTube to store the last search result entry that was clicked by the user. This information is used to improve the user experience by providing more relevant search results in the future.\n\n\n  * Cookie\nyt-remote-device-id\n  * Duration\nNever Expires\n  * Description\nYouTube sets this cookie to store the user's video preferences using embedded YouTube videos.\n\n\n  * Cookie\nyt-remote-session-name\n  * Duration\nsession\n  * Description\nThe yt-remote-session-name cookie is used by YouTube to store the user's video player preferences using embedded YouTube video.\n\n\n  * Cookie\nyt-remote-fast-check-period\n  * Duration\nsession\n  * Description\nThe yt-remote-fast-check-period cookie is used by YouTube to store the user's video player preferences for embedded YouTube videos.\n\n\n  * Cookie\nyt-remote-session-app\n  * Duration\nsession\n  * Description\nThe yt-remote-session-app cookie is used by YouTube to store user preferences and information about the interface of the embedded YouTube video player.\n\n\n  * Cookie\nyt-remote-cast-available\n  * Duration\nsession\n  * Description\nThe yt-remote-cast-available cookie is used to store the user's preferences regarding whether casting is available on their YouTube video player.\n\n\n  * Cookie\nyt-remote-cast-installed\n  * Duration\nsession\n  * Description\nThe yt-remote-cast-installed cookie is used to store the user's video player preferences using embedded YouTube video.\n\n\n  * Cookie\ncp_session\n  * Duration\n3 months\n  * Description\nCodepen sets this cookie for Help systems found in the website.\n\n\n  * Cookie\nloid\n  * Duration\n1 year 1 month 4 days\n  * Description\nThis cookie is set by the Reddit. The cookie enables the sharing of content from the website onto the social media platform.\n\n\nAnalytics\nAnalytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.\n  * Cookie\n__hstc\n  * Duration\n6 months\n  * Description\nHubspot set this main cookie for tracking visitors. It contains the domain, initial timestamp (first visit), last timestamp (last visit), current timestamp (this visit), and session number (increments for each subsequent session).\n\n\n  * Cookie\nhubspotutk\n  * Duration\n6 months\n  * Description\nHubSpot sets this cookie to keep track of the visitors to the website. This cookie is passed to HubSpot on form submission and used when deduplicating contacts.\n\n\n  * Cookie\n_ga\n  * Duration\n1 year 1 month 4 days\n  * Description\nGoogle Analytics sets this cookie to calculate visitor, session and campaign data and track site usage for the site's analytics report. The cookie stores information anonymously and assigns a randomly generated number to recognise unique visitors.\n\n\n  * Cookie\n_ga_*\n  * Duration\n1 year 1 month 4 days\n  * Description\nGoogle Analytics sets this cookie to store and count page views.\n\n\n  * Cookie\n__Host-psifi.analyticsTrace\n  * Duration\n6 hours\n  * Description\nDescription is currently not available.\n\n\n  * Cookie\n__Host-psifi.analyticsTraceV2\n  * Duration\n6 hours\n  * Description\nDescription is currently not available.\n\n\n  * Cookie\n_gh_sess\n  * Duration\nsession\n  * Description\nGitHub sets this cookie for temporary application and framework state between pages like what step the user is on in a multiple step form.\n\n\n  * Cookie\nYSC\n  * Duration\nsession\n  * Description\nYSC cookie is set by Youtube and is used to track the views of embedded videos on Youtube pages.\n\n\n  * Cookie\najs_anonymous_id\n  * Duration\n1 year\n  * Description\nThis cookie is set by Segment to count the number of people who visit a certain site by tracking if they have visited before.\n\n\n  * Cookie\nvuid\n  * Duration\n1 year 1 month 4 days\n  * Description\nVimeo installs this cookie to collect tracking information by setting a unique ID to embed videos on the website. \n\n\nPerformance\nPerformance cookies are used to understand and analyse the key performance indexes of the website which helps in delivering a better user experience for the visitors.\n  * Cookie\nAWSALB\n  * Duration\n7 days\n  * Description\nAWSALB is an application load balancer cookie set by Amazon Web Services to map the session to the target.\n\n\n  * Cookie\nacq\n  * Duration\npast\n  * Description\nDescription is currently not available.\n\n\n  * Cookie\nacq.sig\n  * Duration\npast\n  * Description\nDescription is currently not available.\n\n\n  * Cookie\nptc\n  * Duration\n2 years\n  * Description\nNo description available.\n\n\nAdvertisement\nAdvertisement cookies are used to provide visitors with customised advertisements based on the pages you visited previously and to analyse the effectiveness of the ad campaigns.\n  * Cookie\nmuc_ads\n  * Duration\n1 year 1 month 4 days\n  * Description\nTwitter sets this cookie to collect user behaviour and interaction data to optimize the website.\n\n\n  * Cookie\nguest_id_marketing\n  * Duration\n1 year 1 month 4 days\n  * Description\nTwitter sets this cookie to identify and track the website visitor.\n\n\n  * Cookie\nguest_id_ads\n  * Duration\n1 year 1 month 4 days\n  * Description\nTwitter sets this cookie to identify and track the website visitor.\n\n\n  * Cookie\npersonalization_id\n  * Duration\n1 year 1 month 4 days\n  * Description\nTwitter sets this cookie to integrate and share features for social media and also store information about how the user uses the website, for tracking and targeting.\n\n\n  * Cookie\nguest_id\n  * Duration\n1 year 1 month 4 days\n  * Description\nTwitter sets this cookie to identify and track the website visitor. It registers if a user is signed in to the Twitter platform and collects information about ad preferences.\n\n\n  * Cookie\nbcookie\n  * Duration\n1 year\n  * Description\nLinkedIn sets this cookie from LinkedIn share buttons and ad tags to recognize browser IDs.\n\n\n  * Cookie\n__Secure-ROLLOUT_TOKEN\n  * Duration\n6 months\n  * Description\nYouTube sets this cookie to manage feature rollout and experimentation. It helps Google control which new features or interface changes are shown to users as part of testing and staged rollouts, ensuring consistent experience for a given user during an experiment.\n\n\n  * Cookie\nyt.innertube::nextId\n  * Duration\nNever Expires\n  * Description\nYouTube sets this cookie to register a unique ID to store data on what videos from YouTube the user has seen.\n\n\n  * Cookie\nyt.innertube::requests\n  * Duration\nNever Expires\n  * Description\nYouTube sets this cookie to register a unique ID to store data on what videos from YouTube the user has seen.\n\n\n  * Cookie\nsession_tracker\n  * Duration\nsession\n  * Description\nThis cookie is set by the Reddit. This cookie is used to identify trusted web traffic. It also helps in adverstising on the website.\n\n\n  * Cookie\nedgebucket\n  * Duration\nsession\n  * Description\nReddit sets this cookie to save the information about a log-on Reddit user, for the purpose of advertisement recommendations and updating the content.\n\n\n  * Cookie\ndid\n  * Duration\n1 year\n  * Description\nArbor sets this cookie to show targeted ads to site visitors.This cookie expires after 2 months or 1 year.\n\n\nUncategorised\nOther uncategorised cookies are those that are being analysed and have not been classified into a category as yet.\nNo cookies to display.\nReject All Save My Preferences Accept All\nToggle Search[](https://towardsdatascience.com/)Toggle Mobile Navigation\n[](https://towardsdatascience.com/)\nPublish AI, ML & data-science insights to a global community of data professionals.\nSign in[Submit an Article](https://write.insightmediagroup.io)\n[Latest](https://towardsdatascience.com/latest/)[Editor's Picks](https://towardsdatascience.com/tag/editors-pick/)[Newsletter](https://towardsdatascience.com/tag/the-variable/)[ShipAI](https://towardsdatascience.com/shipai/)\n* * *\n[Write For TDS](https://towardsdatascience.com/submissions/)\n[LinkedIn](https://www.linkedin.com/company/towards-data-science/)[X](https://x.com/TDataScience)Toggle Search\n[Data analysis](https://towardsdatascience.com/category/data-science/data-analysis/)\n# Are Home Teams Favoured by Referees in Football/Soccer?\nData Storytelling Series, Chapter 1\n[Ivo Bernardo](https://towardsdatascience.com/author/ivopbernardo/)\nAugust 4, 202616 min read\n![Referee Home Leniency through Time - Image by Author](../images/000.png)\nReferee Home Leniency through Time - Image by Author\nThe internet loves a good argument, and it’s awfully tempting to jump on a bandwagon before checking the facts. But since one of my roles in the world is being a data scientist, I have a habit of wanting to run the numbers before I form an opinion.\nLately, I’ve turned this into a routine: whenever a debate sparks up over something we can measure, I track down the data to get the facts straight. I finally reached my limit with the wild guessing people rely on to make their points, so I decided to use my skills to let the numbers do the talking instead. And since I’m already going down these rabbit holes just to shut up my friends, I figured it would be cool to start sharing my findings with you.\nThis weekend, with the World Cup barely cold and half the planet still arguing about it — the US included, now that they’ve apparently discovered soccer exists (it’s _football_ , if you’re reading this from the right side of the Atlantic) — I got into a long argument with a friend.\n**His theory: big teams are favoured because the referees fold under pressure and respect those clubs more. My theory: that’s his perception because of a strong home bias — refs may feel under pressure due to home crowds.**\nAs you may know, most football fans are not exactly rational about referees. Two people supporting different clubs can watch the exact same tackle and see two completely different fouls. But my friend’s argument left me with a question. Do big teams really get favored by referees? Are there other factors creating this perception? Or is no one favored at all?\nNormally, I’d be just as biased as anyone else. But since I recently stopped following football after some [club elections](https://www.daily-sun.com/post/839031) left me totally disillusioned about my club, I think I finally have the emotional maturity and detachment to investigate this purely through the data.\nGather around, folks. Let’s find out if referees fold under pressure.\n···\nLearn this step by step with the interactive [Data Analyst](https://roadmap.sh/data-analyst) roadmap.\n## First, the data\n![](../images/001.png)\nData from Football Data - Image by Author\nEverything here comes from [football-data.co.uk](https://www.football-data.co.uk/), which is a small miracle of a website: free, tidy, and maintained by people who clearly love data ([Joseph Buchdahl](https://x.com/intent/follow?original_referer=https%3A%2F%2Fwww.football-data.co.uk%2F&ref_src=twsrc%5Etfw%7Ctwcamp%5Ebuttonembed%7Ctwterm%5Efollow%7Ctwgr%5E12Xpert&screen_name=12Xpert) is a legend in the sports analytics space). It has results, odds, fouls, cards - the whole grammar of a football match, going back decades.\nThere’s one catch with this data for our purpose. Fouls and bookings only show up consistently from the 2017/18 season for a chunk of the leagues, so for those competitions we start the clock there and throw out anything earlier.\n![](../images/002.png)\nSmall sample from our data\nNow, the temptation (and this is exactly where most bar-stool arguments fall apart) is to just count yellow cards/fouls as the referee punishment. Big team gets fewer cards at home, case closed, referees are bought.\nExcept cards on their own tell you almost nothing, because they depend on how much you foul in the first place. A team that dominates the ball and camps in the opponent’s half commits fewer fouls, and fewer fouls means fewer chances to get booked.\nSo the real unit of this whole study isn’t cards. It’s cards per foul — the referee’s conversion rate. Of all the fouls you commit, how many actually get punished? And even that number must be looked with caution.\nTwo pairs of columns carry the referee intervention in our dataset:\n  * HY / AY — yellow cards, home and away.\n  * HF / AF — fouls committed, home and away. The denominator. Cards per foul is the entire question.\n\n\nA referee’s whistle doesn’t happen in a vacuum, though, so before I blame the crowd I have to strip out everything else that could explain the pattern. Maybe the big teams get the calls because they’re simply better, not because they’re home — so I take the betting odds, strip out the bookmaker’s margin, and use them to measure how lopsided each match was on paper. Maybe the away team just fouls more because it spends ninety minutes defending so we’ll use shots and possession to account for territory. And maybe it’s game state: chasing a 0–1 at half-time changes how recklessly you tackle, so the half-time score goes in too. We’ll take this into account in our analysis.\nMy bet (and the argument I had with my friend) is that home bias (clubs that play at home) has a much larger impact on the ref than “bigger clubs”. On the data, I’ll also use two important angles to see that:\n  * The first is reverse fixtures. Every pair of teams plays twice a season, once at each ground. Line those two matches up side by side and the teams are very similar — just the moment of the season and coach switches may carry some changes — so whatever’s left over when you flip home and away can’t be blamed on one side simply being better. It’s one of the best clean comparisons we get.\n  * Buried in the data is a natural experiment nobody designed on purpose: the COVID seasons, when matches were played in empty stadiums. If the home crowd is what bends the referee, then take the crowd away and the effect should shrink. So every match gets flagged as CROWD, EMPTY, or EXCLUDED.\n\n\nThe rest is bookkeeping: which league, which season, which two clubs, plus the raw results and shot counts kept around in case we need them.\n···\n## Exploring the data\n![](../images/body-2a3bc7e5e45b0b39d59d.png)\nHome and Away Fouls per Game\nWith the data in hand, the first thing worth looking at is which leagues foul the most.\nNo surprise to me: the portuguese Primeira Liga is one of the most foul-heavy top flight in the dataset at 29.4 fouls a game, second only to Italy’s Serie B across all fourteen divisions. And Portugal is top of the lot for fouls committed by the home team.\nThe pattern is geographic. Italy, Portugal and Spain fill the top five, while the Eredivisie, the Premier League and the Championship sit at the bottom on 21 to 22. Southern European games get stopped far more often than northern ones.\n![](../images/body-e1e77effeb40ea8fc764.png)\nFouls per Game - Image by Author\nThe next thing that jumps out is that home and away teams foul ratio has a gap that changes between every league.\n![](../images/body-cc144a31c7be3c62c4f7.png)\nFouls per Game per League (Home Team vs. Away Team) - Image by Author\nIn Spain, Portugal and Turkey the home side actually fouls more. Everywhere else the away side edges it, but the possible explanation is that home teams spend more of the match attacking, so they get fewer opportunities to foul in the first place. The difference is there, though. But that spread between leagues may be about playing culture, not about a referee benefitting home teams.\nNote: I’ve excluded COVID-era matches from all of this. They come back later, when empty stadiums turn into the most useful thing in the whole dataset.\nSo referees call slightly more fouls against the away team. But calling a foul and punishing it are two different things. Cards are the punishment, so do away sides collect more of them?\n![](../images/body-94a5659c33ec44f07227.png)\nYellow Cards per Match (Home vs. Away) - Image by Author\nNow this is interesting. In every single league, the home team is booked less. And the gap is remarkably steady: between 0.15 and 0.34 extra yellows per game for the away side, with most leagues sitting near 0.30.\nPlenty of confounders are still in the way. We don’t know where on the pitch those fouls happened, or what kind they were. Away teams might, by playing style, commit more dangerous fouls simply because more of the game is happening in their own half.\nI have a suspicion, and one obvious thing to rule out before I go anywhere near the crowd. If home teams spend the match camped in the opposition half, then the fouls committed against them happen in more dangerous places, and dangerous fouls deserve cards. That alone could explain everything, with no referee bias required.\nTo test it, I need to know who was actually on top during each match.\n···\n## Controlling for team strength\nfootball-data website records no possession figures, but it does record three things that gesture at the same idea: shots, shots on target, and corners. Turn each into a share of the match total (for example, the home team’s shots divided by all shots taken) and average the three. The result runs from 0 to 1, where 0.5 is a perfectly balanced game and anything above it means a team spent the afternoon camped in the other half.\nAcross more than 50.000 matches the home side averages 0.548 and the away side 0.452. Home advantage turns up in the run of play before a referee blows anything.\nThe teams at the top of that index are who you’d expect: Teams like Celtic and Rangers, Bayern, all three of Portugal’s big clubs, Manchester City, PSV and Ajax, Barcelona.\n![](../images/body-4b3aaffb8f9a7a691f5a.png)\nMost dominant clubs according to our index\nCorners and shot share usually agree, which makes them a solid proxy for which team dominated. It isn’t possession, and it isn’t time spent in the opponent’s half, but it captures domination well.\n![](../images/body-9002a5f94d08343602cc.png)\nCorrelation between Shots and Corners - Image by Author\nThe index isn’t flawless, though. Atlético Madrid are the obvious case: cynical, low-risk football that wins about a quarter of a point per game more than their territory says it should. They do dominate the shot count, third-best in La Liga, but the index still understates them, because efficiency in front of goal is invisible to it.\n![](../images/body-6f3d8898c7f5ef67accb.png)\nTerritorial Dominance Index vs. Points per Game - Image by Author\nSome clubs, Atlético Madrid or PSG before Luis Enrique, dominate games by taking their chances rather than by controlling territory. The index can’t see that.\nStill, it correlates at 0.93 with points per game, which tells me it’s capturing something real about who controlled a match.\nSo now we can ask the question properly. Does home protection depend on territorial dominance? Again, if a home side spends the afternoon camped in the opposition half, does the gap between the fouls it commits and the cards it collects look different from a home side that’s being overrun?\nThat’s the test that separates two very different stories. If the home advantage only appears when the home team is on top, then this was never about the venue at all. It’s home teams simply being good more often and spending more time in opposition’s field (therefore, fouls from the away team are more deserving of a punishment). If the gap between cards and fouls survives even when the home side is being battered, something else is going on.\n···\n## The referee folds under pressure\nOne cool finding: As the home team takes control of a game, the fouls dry up. A match where the home side is heavily outplayed produces about 26 fouls; one where it’s heavily on top produces closer to 25. Domination means fewer interruptions, and a more open game.\n![](../images/body-f25c58e2c1cc32fb4e1a.png)\nFouls Commited per Match according to Home Team Dominance - Image by Author\nFouls move, then. But now let’s look at the card gap.\n![](../images/body-1c36558b64408c400e7a.png)\nYellow Cards per Match according to Home Team Dominance - Image by Author\nIncredible. The card gap refuses to go anywhere. In every single band, the home side is booked less per foul it commits, and it isn’t a marginal thing. When the home team is heavily outplayed, pinned back and out-shot for ninety minutes, it’s still punished 7% less often than an away team having exactly as bad an afternoon.\nIf anything, the gap grows the more the home side dominates, from around 6% when it’s second best to nearly 11% when it’s on top. Dominating your opponent buys you extra leniency. But it surely isn’t where the leniency comes from, because the home team gets it either way.\nIf we apply a confidence interval on the distribution of this data, home bias always shows up in cards per foul, in every scenario:\n![](../images/body-74b52de90b0ce063eb55.png)\nHome Advantage in Cards Per Foul - Image by Author\nThere’s one more way to check this, and it’s the cleanest one football gives us for free. In almost every league, two teams play each other twice a season, once at each ground. Same two squads, same two styles, same manager in the vast majority of cases — the exceptions being sides that sacked their coach in between and other factors that affect some games.\nBut line the two fixtures up and flip home for away, and there’s little left to explain a difference except the venue itself. The home advantage holds there too:\n![](../images/body-647e42d08ad94ff0f476.png)\nSofter Whistle for Home Teams per League - Image by Author\n···\n## Team strength only justifies a bit\nFinally, let us do one last statistical test to isolate team strength.\nDoes the home card-foul advantage survive once we control for team strength, or does it collapse into noise?\nThe model takes one match at a time and asks whether the cards were shared out the way the fouls were:\nmarkup\n\n```\nhome cards ~ Binomial(total cards in the match, p)\n```\n\nIf cards simply followed fouls, a side committing 45% of a match’s fouls would collect 45% of its bookings. That proportionality is the model’s starting assumption, and what I measure is how far reality departs from it. Then I remove the controls one at a time, so that when a gap does show up I can see how much of it each factor accounts for, and how much is left over when they’ve all had their turn.\nTwo teams in one match still aren’t in identical positions, so the model makes four adjustments: for who dominated the play, who led at half time, who was the better side on the pre-match odds, and who won the corner count.\n![](../images/body-3bbff0dec07d4bf87f95.png)\nBinomial model per factor\nOverall, home teams collect 11.3% fewer cards per foul than the side they’re playing. Home teams really are the better side more often, they really do dominate more of the play, they really are ahead at the break more often. The coefficients show each of those buys a softer whistle in its own right, so each of them could be doing the work.\nTake out team strength (measured by pre-match odds) and the gap falls from 11.3% to 7.1%. Take out territory (possession play) and it goes to 6.4%. Half-time state and corners barely move it at all.\nWhich leaves 6.3% that none of those factors can account for. Two teams, same match, same referee, equally matched on the odds, equally dominant on the pitch, equally placed on the scoreboard — and the one wearing the home shirt is still punished 6.3% less for the fouls it commits.\nThe answer from this model are in line with the former conclusions: home teams are punished 6.3% less often per foul than their opponents in the same match, with a 95% confidence interval running from 5.0% to 7.6%. Across 54,000 matches, the chance of that being a fluke is roughly one in fifty billion billion.\n···\n## Is it a Crowd Effect?\nUnless every referee in Europe is on the take, something else has to explain this. And the most obvious candidate is the thing clubs sell tickets for in the first place: the crowd.\nForty thousand people reacting to the same tackle at the same moment is a lot of pressure to be standing in the middle of. Cards are one of the few tools a referee has to keep control of a game, which makes them exactly the decision you’d expect that pressure to bend.\nThe problem is that you can’t randomise a crowd. You can’t ask half of Europe to play in front of 40,000 people and the other half in front of nobody, then compare the bookings.\nExcept that in 2020, a virus did it for us.\nFor a season and a half (due to Covid), matches across the continent were played in empty stadiums. If the crowd is what bends the whistle, then the home advantage should have walked out of the ground with the fans. And, surprise, surprise:\n![](../images/body-24194b3d1f3839fd0db3.png)\nHome Whistle Advantage through time - Image by Author\nIn 2018/19, the last full season with crowds, the home advantage ran at 11.1%, (before the controls strip it back to 6.3%), so it’s the bigger number from earlier. It fell to 7.6% as 2019/20 was interrupted, then to 4.0% across the empty 2020/21. In 2021/22, with the turnstiles open again, it came back to 12.2%. Higher than before it left.\nCrowds aren’t only working on the officials, and the next section separates that out, but this is the biggest single thing they move.\n![](../images/body-94fbf0bb69b23d92bfe1.png)\nFootball itself was different behind closed doors. Home teams lost whatever it is a crowd gives them and played worse for it, so maybe the cards simply followed the football, fewer home attacks, fewer away defenders scrambling to stop them, fewer bookings.\nThat’s testable. Take every measure of home advantage in the data and ask how much of it survived in an empty stadium. Shots, shots on target, corners and goals are what the players did. Cards per foul are what the referee gave.\n![](../images/body-120a22681f2213582fb0.png)\nChanges in different factors during Covid - Image by Author\nOn the pitch, home teams kept roughly half of what they had. They lost 38% of their edge in goals, 47% in shots, 48% in shots on target and 54% in corners. Diminished, but still recognisably home teams.\nTheir card advantage lost 101% of it.\n···\n## Are stronger teams benefited?\nNow, for my friend’s argument.\nThe dataset comes with bookmakers’ odds, which means I can measure how lopsided each match was expected to be before kick-off. Split every game by that and a pattern emerges on the cards per foul:\n![](../images/body-6e8cc4be9287226c5616.png)\nExpectation to win vs. Referee Leniency - Image by Author\nWhen the home side is a heavy favourite, it’s booked 4.1 fewer times per 100 fouls than its opponent. When the away side is the heavy favourite, that flips: the home team is now booked 1.02 times more. Being expected to win buys you leniency, and the bigger the gap, the more it buys. On this chart, my friend is right.\nExcept that “heavy favourite” and “big club” aren’t the same thing, and neither is the same as “gets protected.” A side expected to win 4–0 plays a completely different match from one hanging on for a point. It has the ball more, defends less, and commits the kind of fouls that don’t need a card — the factors that justify the leniency that we’ve seen before.\nSo my friend was half right in a way that doesn’t help him. Favourites do get a softer whistle. But it isn’t respect for the badge, it’s probably because of the style of football they play.\n···\n## Conclusion\nSo, let’s see some of the conclusion from this blog post:\n  * The home whistle is real, and it’s worth about 6.3%. In the same match, with the same referee, against an opponent equally strong on the odds, equally dominant on the pitch and equally placed on the scoreboard, the home side is punished 6.3% less often for the fouls it commits.\n  * It isn’t about fouling less. Home teams commit 49.3% of a match’s fouls, but they collect 45.9% of its cards. The card gap is six times the foul gap. Whatever is happening, it happens after the foul, not before it.\n  * It doesn’t need the home team to be good. A home side being heavily outplayed, pinned back and out-shot for ninety minutes, is still booked 7% less often than an away side having exactly as bad an afternoon. Dominance roughly doubles the advantage, from 6% to 11%, but it never creates it.\n  * My friend may be wrong about big clubs. Being a favourite does buy a softer whistle, but that’s the style of football favourites play, not respect for the badge.\n  * It’s the crowd. Empty the stadiums and the entire 6.3% disappears, in 13 of 14 divisions. In 2019/20 alone home sides went from 5.6% less booked before the suspension to 8.6% more after the restart.\n  * The crowd moved the referee more than it moved the players. Home teams kept about half their edge in goals, shots and corners without their fans. They kept none of their card advantage.\n\n\nThe home bias isn’t the badge on the shirt. It’s the twenty or forty thousand people behind the goal, and referees, being human, hear them.\n···\nWhich question do you want me to address next?\nSome caveats worth mentioning about the analysis:\n  * Cards per foul controls foul volume, not foul severity. A team under pressure commits more cynical, more bookable fouls. The reverse-fixture design handles the team-level version of this; it cannot fully handle the within-match version.\n  * “Behind closed doors” is approximate. It is defined by date windows, not by attendance records. Some 2020/21 matches had partial crowds, which biases the estimate toward finding no effect — the true collapse is, if anything, sharper.\n  * No referee name, so nothing here is about individual officials. The claim is about refereeing as a system under crowd pressure.\n\n\n## References\n[1] J. Buchdahl, Football-Data.co.uk (2026), https://www.football-data.co.uk\n## Register Now to Continue Reading\n### Unlock Towards Data Science with a Free Account\nAll articles on Towards Data Science are available to registered users. Create a free account today to access this article and thousands more.\nRegister for freeSign in to your account\n* * *\n![](../images/body-6f351be10c9e83aa9f9d.jpeg)\nWritten By\n## [Ivo Bernardo](https://towardsdatascience.com/author/ivopbernardo/)\n[See all from Ivo Bernardo](https://towardsdatascience.com/author/ivopbernardo/)\n[Deep Dives](https://towardsdatascience.com/tag/deep-dives/)[Data Science](https://towardsdatascience.com/tag/data-science/)[Football Analytics](https://towardsdatascience.com/tag/football-analytics/)[Soccer Analytics](https://towardsdatascience.com/tag/soccer-analytics/)[Sports Analytics](https://towardsdatascience.com/tag/sports-analytics/)\nShare This Article\n  * [](https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Ftowardsdatascience.com%2Fare-home-teams-favoured-by-referees-in-football-soccer%2F&title=Are%20Home%20Teams%20Favoured%20by%20Referees%20in%20Football%2FSoccer%3F)\n  * [](https://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Ftowardsdatascience.com%2Fare-home-teams-favoured-by-referees-in-football-soccer%2F&title=Are%20Home%20Teams%20Favoured%20by%20Referees%20in%20Football%2FSoccer%3F)\n  * [](https://x.com/share?url=https%3A%2F%2Ftowardsdatascience.com%2Fare-home-teams-favoured-by-referees-in-football-soccer%2F&text=Are%20Home%20Teams%20Favoured%20by%20Referees%20in%20Football%2FSoccer%3F)\n\n\nTowards Data Science is a community publication. Submit your insights to reach our global audience and earn through the TDS Author Payment Program.\n[Write for TDS](https://towardsdatascience.com/submissions/)\n## Related Articles\n  * [![](../images/003.png)](https://towardsdatascience.com/exploratory-data-analysis-in-11-steps-31a36ae0b407/)\n## [Exploratory Data Analysis in 11 Steps](https://towardsdatascience.com/exploratory-data-analysis-in-11-steps-31a36ae0b407/)\n[Data Science](https://towardsdatascience.com/category/data-science/)\nStarting an exploratory data analysis can be daunting. How do you know what to look at? How do you know when you're done? What if you miss...\n[Loren Hinkson](https://towardsdatascience.com/author/lorenh516/)\nJune 19, 20246 min read\n  * [![](../images/004.png)](https://towardsdatascience.com/vision-mamba-like-a-vision-transformer-but-better-3b2660c35848/)\n## [Vision Mamba: Like a Vision Transformer but Better](https://towardsdatascience.com/vision-mamba-like-a-vision-transformer-but-better-3b2660c35848/)\n[Machine Learning](https://towardsdatascience.com/category/artificial-intelligence/machine-learning/)\nPart 4 - Towards Mamba State Space Models for Images, Videos and Time Series\n[Sascha Kirch](https://towardsdatascience.com/author/saschakirch/)\nSeptember 16, 202422 min read\n  * [![](../images/005.jpg)](https://towardsdatascience.com/what-are-the-types-of-dimensions-in-a-star-schema-and-how-to-use-them/)\n## [The Types of Dimensions in a Star Schema, and How to Use Them](https://towardsdatascience.com/what-are-the-types-of-dimensions-in-a-star-schema-and-how-to-use-them/)\n[Data analysis](https://towardsdatascience.com/category/data-science/data-analysis/)\nDimensions are one of the two main object types in dimensional modelling. But what are the different types of dimensions? And how can you use them?\n[Salvatore Cagliari](https://towardsdatascience.com/author/salvatorecagliari/)\nAugust 21, 20268 min read\n  * [![](../images/006.jpg)](https://towardsdatascience.com/building-a-modern-dashboard-with-python-and-taipy/)\n## [Building A Modern Dashboard with Python and Taipy](https://towardsdatascience.com/building-a-modern-dashboard-with-python-and-taipy/)\n[Programming](https://towardsdatascience.com/category/programming/)\nA guide to building a front-end data application\n[Thomas Reid](https://towardsdatascience.com/author/thomas_reid/)\nJune 23, 202511 min read\n  * [![](../images/007.jpeg)](https://towardsdatascience.com/how-to-create-data-visualizations-on-python-with-one-click-f6bafbd8de54/)\n## [How to Create Data Visualizations On Python With One Click](https://towardsdatascience.com/how-to-create-data-visualizations-on-python-with-one-click-f6bafbd8de54/)\n[Data Science](https://towardsdatascience.com/category/data-science/)\nLearn how and why you should use the Lux library for your next Data Science project\n[Ismael Araujo](https://towardsdatascience.com/author/ismaelaraujo/)\nMarch 30, 20214 min read\n  * [![](../images/008.jpg)](https://towardsdatascience.com/take-a-deep-dive-into-filtering-in-dax/)\n## [Take a Deep Dive into Filtering in DAX](https://towardsdatascience.com/take-a-deep-dive-into-filtering-in-dax/)\n[Data analysis](https://towardsdatascience.com/category/data-science/data-analysis/)\nHave you ever wondered what happens when you apply a filter in a DAX expression?\n[Salvatore Cagliari](https://towardsdatascience.com/author/salvatorecagliari/)\nFebruary 26, 202612 min read\n  * [![](../images/009.jpg)](https://towardsdatascience.com/who-are-you-data-engineer-8febb06552a/)\n## [Who are you Data Engineer?](https://towardsdatascience.com/who-are-you-data-engineer-8febb06552a/)\n[Data Science](https://towardsdatascience.com/category/data-science/)\nWho is a data engineer? What does he need to know? What are his responsibilities and what are the challenges in the job?\n[Einav Baraban](https://towardsdatascience.com/author/einavbaraban/)\nJuly 25, 20216 min read\n  * [![](../images/010.jpg)](https://towardsdatascience.com/how-to-get-performance-data-from-power-bi-with-dax-studio/)\n## [How to Get Performance Data from Power BI with DAX Studio](https://towardsdatascience.com/how-to-get-performance-data-from-power-bi-with-dax-studio/)\n[Data analysis](https://towardsdatascience.com/category/data-science/data-analysis/)\nSometimes we have a slow Report, and we need to figure out why. I will show you how to collect performance data and what these metrics mean.\n[Salvatore Cagliari](https://towardsdatascience.com/author/salvatorecagliari/)\nApril 22, 20259 min read\n  * [![](../images/011.jpg)](https://towardsdatascience.com/from-reporting-to-reasoning-how-ai-is-rewriting-the-rules-of-data-app-development/)\n## [From Reporting to Reasoning: How AI Is Rewriting the Rules of Data App Development](https://towardsdatascience.com/from-reporting-to-reasoning-how-ai-is-rewriting-the-rules-of-data-app-development/)\n[Artificial Intelligence](https://towardsdatascience.com/category/artificial-intelligence/)\nExplore the shift from static reports to intelligent apps with our first ebook\n[TDS Brand Studio](https://towardsdatascience.com/author/tdsbrandstudio/)\nJuly 1, 20252 min read\n\n\n  * [YouTube](https://www.youtube.com/c/TowardsDataScience)\n  * [X](https://x.com/TDataScience)\n  * [LinkedIn](https://www.linkedin.com/company/towards-data-science/)\n  * [Threads](https://www.threads.net/@towardsdatascience)\n  * [Bluesky](https://bsky.app/profile/towardsdatascience.com)\n\n\n[](https://towardsdatascience.com/)\nYour home for data science and AI. The world's leading publication for data science, data analytics, data engineering, machine learning, and artificial intelligence professionals.\nSubscribe to Our Newsletter[Write For TDS](https://towardsdatascience.com/submissions/)•[About](https://towardsdatascience.com/about-towards-data-science-d691af11cc2f/)•[Advertise](https://contact.towardsdatascience.com/advertise-with-towards-data-science)•[Privacy Policy](https://towardsdatascience.com/privacy-policy/)•[Terms of Use](https://towardsdatascience.com/website-terms-of-use/)\n© Insight Media Group, LLC 2026•[The New Stack](https://thenewstack.io)•[roadmap.sh](https://roadmap.sh)•[Creator Network](https://insightmediagroup.io/creator-network)\n####  Recommended Articles \nClose\n  * [ ![](https://h030.towardsdatascience.com/rest/v2/contentStores/d7d3a4ab-7caf-4383-bbd2-fbf7fb4f1787/items/607686/image?etag=1782161464448&width=500&height=500) How Relevance Models Foreshadowed Transformers for NLP ](https://towardsdatascience.com/how-relevance-models-foreshadowed-transformers-for-nlp/ \"How Relevance Models Foreshadowed Transformers for NLP\")\n  * [ ![](https://h030.towardsdatascience.com/rest/v2/contentStores/d7d3a4ab-7caf-4383-bbd2-fbf7fb4f1787/items/607639/image?etag=1781250125848&width=500&height=500) Javascript Fatigue: HTMX Is All You Need to Build ChatGPT — Part 1 ](https://towardsdatascience.com/javascript-fatigue-you-dont-need-js-to-build-chatgpt/ \"Javascript Fatigue: HTMX Is All You Need to Build ChatGPT — Part 1\")\n  * [ ![](https://h030.towardsdatascience.com/rest/v2/contentStores/d7d3a4ab-7caf-4383-bbd2-fbf7fb4f1787/items/607930/image?etag=1782124566054&width=500&height=500) The Subset Sum Problem Solved in Linear Time for Dense Enough Inputs ](https://towardsdatascience.com/subset-sum-problem-solved-in-linear-time-for-dense-enough-inputs/ \"The Subset Sum Problem Solved in Linear Time for Dense Enough Inputs\")\n  * [ ![](https://h030.towardsdatascience.com/rest/v2/contentStores/d7d3a4ab-7caf-4383-bbd2-fbf7fb4f1787/items/3660/image?etag=1780176246070&width=500&height=500) Does Your Company Have a Data Strategy? ](https://towardsdatascience.com/does-your-company-have-a-data-strategy-e8944dbec4ae/ \"Does Your Company Have a Data Strategy?\")\n\n\n",
  "metadata": {
    "title": "Are Home Teams Favoured by Referees in Football/Soccer? | Towards Data Science",
    "description": "Data Storytelling Series, Chapter 1",
    "keywords": null,
    "author": "Ivo Bernardo",
    "og:locale": "en_US",
    "og:type": "article",
    "og:title": "Are Home Teams Favoured by Referees in Football/Soccer?",
    "og:description": "Data Storytelling Series, Chapter 1",
    "og:url": "https://towardsdatascience.com/are-home-teams-favoured-by-referees-in-football-soccer/",
    "og:site_name": "Towards Data Science",
    "og:image": "https://assets.insightmediagroup.io/media/wp-content/uploads/2026/08/image-493.png",
    "og:image:width": "720",
    "og:image:height": "449",
    "og:image:type": "image/png",
    "twitter:card": "summary_large_image",
    "twitter:site": "@TDataScience",
    "twitter:creator": "@TDataScience",
    "twitter:label1": "Written by",
    "twitter:data1": "Ivo Bernardo",
    "twitter:label2": "Est. reading time",
    "twitter:data2": "16 min read",
    "article:published_time": "2026-08-04T07:30:09.000Z",
    "article:modified_time": "2026-08-04T07:30:09.000Z",
    "article:author": "https://towardsdatascience.com/author/ivopbernardo/"
  },
  "paywall": {
    "listed_paid": false,
    "detected": false,
    "marker": "",
    "public_only": false,
    "policy": "付费/会员内容只保留页面公开可见部分，不绕过付费墙"
  },
  "crawl": {
    "success": true,
    "status_code": 200,
    "error": ""
  },
  "code_blocks": [
    {
      "language": "txt",
      "file": "attachments/8d0fc02f7f2d/code/block_000.txt",
      "chars": 51
    }
  ],
  "images": [
    {
      "status": "http_404",
      "url": "https://h030.towardsdatascience.com/rest/v2/contentStores/d7d3a4ab-7caf-4383-bbd2-fbf7fb4f1787/items/607686/image?etag=1782161464448&width=500&height=500",
      "src": "https://h030.towardsdatascience.com/rest/v2/contentStores/d7d3a4ab-7caf-4383-bbd2-fbf7fb4f1787/items/607686/image?etag=1782161464448&width=500&height=500",
      "alt": "",
      "downloaded": false,
      "discovery": "saved_markdown",
      "retried_at": "2026-10-20T18:03:22Z"
    },
    {
      "status": "http_404",
      "url": "https://h030.towardsdatascience.com/rest/v2/contentStores/d7d3a4ab-7caf-4383-bbd2-fbf7fb4f1787/items/607639/image?etag=1781250125848&width=500&height=500",
      "src": "https://h030.towardsdatascience.com/rest/v2/contentStores/d7d3a4ab-7caf-4383-bbd2-fbf7fb4f1787/items/607639/image?etag=1781250125848&width=500&height=500",
      "alt": "",
      "downloaded": false,
      "discovery": "saved_markdown",
      "retried_at": "2026-10-20T18:03:22Z"
    },
    {
      "status": "http_404",
      "url": "https://h030.towardsdatascience.com/rest/v2/contentStores/d7d3a4ab-7caf-4383-bbd2-fbf7fb4f1787/items/607930/image?etag=1782124566054&width=500&height=500",
      "src": "https://h030.towardsdatascience.com/rest/v2/contentStores/d7d3a4ab-7caf-4383-bbd2-fbf7fb4f1787/items/607930/image?etag=1782124566054&width=500&height=500",
      "alt": "",
      "downloaded": false,
      "discovery": "saved_markdown",
      "retried_at": "2026-10-20T18:03:22Z"
    },
    {
      "status": "http_404",
      "url": "https://h030.towardsdatascience.com/rest/v2/contentStores/d7d3a4ab-7caf-4383-bbd2-fbf7fb4f1787/items/3660/image?etag=1780176246070&width=500&height=500",
      "src": "https://h030.towardsdatascience.com/rest/v2/contentStores/d7d3a4ab-7caf-4383-bbd2-fbf7fb4f1787/items/3660/image?etag=1780176246070&width=500&height=500",
      "alt": "",
      "downloaded": false,
      "discovery": "saved_markdown",
      "retried_at": "2026-10-20T18:03:22Z"
    }
  ],
  "audio": [],
  "videos": [
    {
      "url": "https://www.youtube.com/c/TowardsDataScience",
      "kind": "channel_reference",
      "status": "reference_only"
    }
  ],
  "links": [
    {
      "type": "internal",
      "href": "https://towardsdatascience.com/"
    },
    {
      "type": "internal",
      "href": "https://towardsdatascience.com/latest/"
    },
    {
      "type": "internal",
      "href": "https://towardsdatascience.com/tag/editors-pick/"
    },
    {
      "type": "internal",
      "href": "https://towardsdatascience.com/tag/the-variable/"
    },
    {
      "type": "internal",
      "href": "https://towardsdatascience.com/shipai/"
    },
    {
      "type": "internal",
      "href": "https://towardsdatascience.com/submissions/"
    },
    {
      "type": "internal",
      "href": "https://towardsdatascience.com/category/data-science/data-analysis/"
    },
    {
      "type": "internal",
      "href": "https://towardsdatascience.com/author/ivopbernardo/"
    },
    {
      "type": "internal",
      "href": "https://towardsdatascience.com/tag/deep-dives/"
    },
    {
      "type": "internal",
      "href": "https://towardsdatascience.com/tag/data-science/"
    },
    {
      "type": "internal",
      "href": "https://towardsdatascience.com/tag/football-analytics/"
    },
    {
      "type": "internal",
      "href": "https://towardsdatascience.com/tag/soccer-analytics/"
    },
    {
      "type": "internal",
      "href": "https://towardsdatascience.com/tag/sports-analytics/"
    },
    {
      "type": "internal",
      "href": "https://towardsdatascience.com/exploratory-data-analysis-in-11-steps-31a36ae0b407/"
    },
    {
      "type": "internal",
      "href": "https://towardsdatascience.com/category/data-science/"
    },
    {
      "type": "internal",
      "href": "https://towardsdatascience.com/author/lorenh516/"
    },
    {
      "type": "internal",
      "href": "https://towardsdatascience.com/vision-mamba-like-a-vision-transformer-but-better-3b2660c35848/"
    },
    {
      "type": "internal",
      "href": "https://towardsdatascience.com/category/artificial-intelligence/machine-learning/"
    },
    {
      "type": "internal",
      "href": "https://towardsdatascience.com/author/saschakirch/"
    },
    {
      "type": "internal",
      "href": "https://towardsdatascience.com/what-are-the-types-of-dimensions-in-a-star-schema-and-how-to-use-them/"
    },
    {
      "type": "external",
      "href": "https://write.insightmediagroup.io"
    },
    {
      "type": "external",
      "href": "https://www.linkedin.com/company/towards-data-science/"
    },
    {
      "type": "external",
      "href": "https://x.com/TDataScience"
    },
    {
      "type": "external",
      "href": "https://www.daily-sun.com/post/839031"
    },
    {
      "type": "external",
      "href": "https://roadmap.sh/data-analyst"
    },
    {
      "type": "external",
      "href": "https://www.football-data.co.uk/"
    },
    {
      "type": "external",
      "href": "https://x.com/intent/follow?original_referer=https%3A%2F%2Fwww.football-data.co.uk%2F&screen_name=12Xpert"
    },
    {
      "type": "external",
      "href": "https://www.facebook.com/sharer/sharer.php?title=Are+Home+Teams+Favoured+by+Referees+in+Football%2FSoccer%3F&u=https%3A%2F%2Ftowardsdatascience.com%2Fare-home-teams-favoured-by-referees-in-football-soccer%2F"
    },
    {
      "type": "external",
      "href": "https://www.linkedin.com/shareArticle?mini=true&title=Are+Home+Teams+Favoured+by+Referees+in+Football%2FSoccer%3F&url=https%3A%2F%2Ftowardsdatascience.com%2Fare-home-teams-favoured-by-referees-in-football-soccer%2F"
    },
    {
      "type": "external",
      "href": "https://x.com/share?text=Are+Home+Teams+Favoured+by+Referees+in+Football%2FSoccer%3F&url=https%3A%2F%2Ftowardsdatascience.com%2Fare-home-teams-favoured-by-referees-in-football-soccer%2F"
    },
    {
      "type": "external",
      "href": "https://www.youtube.com/c/TowardsDataScience"
    },
    {
      "type": "external",
      "href": "https://www.threads.net/@towardsdatascience"
    },
    {
      "type": "external",
      "href": "https://bsky.app/profile/towardsdatascience.com"
    },
    {
      "type": "external",
      "href": "https://thenewstack.io"
    },
    {
      "type": "external",
      "href": "https://roadmap.sh"
    },
    {
      "type": "external",
      "href": "https://insightmediagroup.io/creator-network"
    }
  ],
  "repair_version": 2,
  "repaired_at": "2026-10-20T17:31:04Z",
  "source_url": "https://towardsdatascience.com/are-home-teams-favoured-by-referees-in-football-soccer/",
  "delivery_status": "unverified",
  "discovery_status": "http_403",
  "missing_reason": "源页面未重新核验:http_403；已按保留正文补采图片",
  "repair_error": "",
  "actual_video_files": [],
  "expected_saved_body_images": 4,
  "image_discovery": "saved_markdown",
  "source_body_markdown": "![Revisit consent button](https://cdn-cookieyes.com/assets/images/revisit.svg)\nWe value your privacy\nWe use cookies to enhance your browsing experience, serve personalised ads or content, and analyse our traffic. By clicking \"Accept All\", you consent to our use of cookies.\nCustomise Reject All Accept All\nCustomise Consent Preferences ![](https://cdn-cookieyes.com/assets/images/close.svg)\nWe use cookies to help you navigate efficiently and perform certain functions. You will find detailed information about all cookies under each consent category below.\nThe cookies that are categorised as \"Necessary\" are stored on your browser as they are essential for enabling the basic functionalities of the site. ... Show more\nNecessaryAlways Active\nNecessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.\n  * Cookie\nBCTempID\n  * Duration\n10 minutes\n  * Description\nNo description available.\n\n\n  * Cookie\n__cf_bm\n  * Duration\n1 hour\n  * Description\nThis cookie, set by Cloudflare, is used to support Cloudflare Bot Management. \n\n\n  * Cookie\nAWSALBCORS\n  * Duration\n7 days\n  * Description\nAmazon Web Services set this cookie for load balancing.\n\n\n  * Cookie\n_cfuvid\n  * Duration\nsession\n  * Description\nCloudflare sets this cookie to track users across sessions to optimize user experience by maintaining session consistency and providing personalized services\n\n\n  * Cookie\nli_gc\n  * Duration\n6 months\n  * Description\nLinkedin set this cookie for storing visitor's consent regarding using cookies for non-essential purposes.\n\n\n  * Cookie\n__hssrc\n  * Duration\nsession\n  * Description\nThis cookie is set by Hubspot whenever it changes the session cookie. The __hssrc cookie set to 1 indicates that the user has restarted the browser, and if the cookie does not exist, it is assumed to be a new session.\n\n\n  * Cookie\n__hssc\n  * Duration\n1 hour\n  * Description\nHubSpot sets this cookie to keep track of sessions and to determine if HubSpot should increment the session number and timestamps in the __hstc cookie.\n\n\n  * Cookie\nwpEmojiSettingsSupports\n  * Duration\nsession\n  * Description\nWordPress sets this cookie when a user interacts with emojis on a WordPress site. It helps determine if the user's browser can display emojis properly.\n\n\n  * Cookie\nBCSessionID\n  * Duration\n1 year 1 month 4 days\n  * Description\nBlueconic sets this cookie as a unique identifier for the BlueConic profile.\n\n\n  * Cookie\n_octo\n  * Duration\n1 year\n  * Description\nNo description available.\n\n\n  * Cookie\nlogged_in\n  * Duration\n1 year\n  * Description\nNo description available.\n\n\n  * Cookie\n__Secure-YEC\n  * Duration\npast\n  * Description\nYouTube sets this cookie to stores the user's video player preferences using embedded YouTube video\n\n\n  * Cookie\n__eoi\n  * Duration\n6 months\n  * Description\nDescription is currently not available.\n\n\n  * Cookie\nAWSALBTGCORS\n  * Duration\n7 days\n  * Description\nNo description available.\n\n\n  * Cookie\nlogin-status-p\n  * Duration\npast\n  * Description\nDescription is currently not available.\n\n\n  * Cookie\nAWSALBTG\n  * Duration\n7 days\n  * Description\nNo description available.\n\n\n  * Cookie\ncsrf_token\n  * Duration\nsession\n  * Description\nNo description available.\n\n\n  * Cookie\ntoken_v2\n  * Duration\n1 day\n  * Description\nDescription is currently not available.\n\n\n  * Cookie\nD\n  * Duration\n1 year\n  * Description\nDescription is currently not available.\n\n\n  * Cookie\nPHPSESSID\n  * Duration\nsession\n  * Description\nThis cookie is native to PHP applications. The cookie stores and identifies a user's unique session ID to manage user sessions on the website. The cookie is a session cookie and will be deleted when all the browser windows are closed.\n\n\n  * Cookie\nVISITOR_PRIVACY_METADATA\n  * Duration\n6 months\n  * Description\nYouTube sets this cookie to store the user's cookie consent state for the current domain. \n\n\n  * Cookie\ncookietest\n  * Duration\nsession\n  * Description\nThe cookietest cookie is typically used to determine whether the user's browser accepts cookies, essential for website functionality and user experience.\n\n\n  * Cookie\n__Host-airtable-session\n  * Duration\n1 year\n  * Description\nThis cookie is used to enable us to integrate the services of Airtable.\n\n\n  * Cookie\n__Host-airtable-session.sig\n  * Duration\n1 year\n  * Description\nThis cookie is used to enable us to integrate the services of Airtable.\n\n\n  * Cookie\nm\n  * Duration\n1 year 1 month 4 days\n  * Description\nStripe sets this cookie for fraud prevention purposes. It identifies the device used to access the website, allowing the website to be formatted accordingly.\n\n\n  * Cookie\nBIGipServer*\n  * Duration\nsession\n  * Description\nMarketo sets this cookie to collect information about the user's online activity and build a profile about their interests to provide advertisements relevant to the user. \n\n\n  * Cookie\n__cfruid\n  * Duration\nsession\n  * Description\nCloudflare sets this cookie to identify trusted web traffic.\n\n\n  * Cookie\n_GRECAPTCHA\n  * Duration\n6 months\n  * Description\nGoogle Recaptcha service sets this cookie to identify bots to protect the website against malicious spam attacks.\n\n\n  * Cookie\n__Secure-YNID\n  * Duration\n6 months\n  * Description\nGoogle cookie used to protect user security and prevent fraud, especially during the login process.\n\n\n  * Cookie\ncookieyes-consent\n  * Duration\n1 year\n  * Description\nCookieYes sets this cookie to remember users' consent preferences so that their preferences are respected on subsequent visits to this site. It does not collect or store any personal information about the site visitors.\n\n\nFunctional\nFunctional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.\n  * Cookie\nlidc\n  * Duration\n1 day\n  * Description\nLinkedIn sets the lidc cookie to facilitate data center selection.\n\n\n  * Cookie\nbrw\n  * Duration\n1 year\n  * Description\nNo description available.\n\n\n  * Cookie\nbrwConsent\n  * Duration\n5 minutes\n  * Description\nDescription is currently not available.\n\n\n  * Cookie\nWMF-Uniq\n  * Duration\n1 year\n  * Description\nDescription is currently not available.\n\n\n  * Cookie\nloom_anon_comment\n  * Duration\n1 year\n  * Description\nNo description available.\n\n\n  * Cookie\nloom_referral_video\n  * Duration\nsession\n  * Description\nDescription is currently not available.\n\n\n  * Cookie\nVISITOR_INFO1_LIVE\n  * Duration\n6 months\n  * Description\nA cookie set by YouTube to measure bandwidth that determines whether the user gets the new or old player interface.\n\n\n  * Cookie\nyt-remote-connected-devices\n  * Duration\nNever Expires\n  * Description\nYouTube sets this cookie to store the user's video preferences using embedded YouTube videos.\n\n\n  * Cookie\nytidb::LAST_RESULT_ENTRY_KEY\n  * Duration\nNever Expires\n  * Description\nThe cookie ytidb::LAST_RESULT_ENTRY_KEY is used by YouTube to store the last search result entry that was clicked by the user. This information is used to improve the user experience by providing more relevant search results in the future.\n\n\n  * Cookie\nyt-remote-device-id\n  * Duration\nNever Expires\n  * Description\nYouTube sets this cookie to store the user's video preferences using embedded YouTube videos.\n\n\n  * Cookie\nyt-remote-session-name\n  * Duration\nsession\n  * Description\nThe yt-remote-session-name cookie is used by YouTube to store the user's video player preferences using embedded YouTube video.\n\n\n  * Cookie\nyt-remote-fast-check-period\n  * Duration\nsession\n  * Description\nThe yt-remote-fast-check-period cookie is used by YouTube to store the user's video player preferences for embedded YouTube videos.\n\n\n  * Cookie\nyt-remote-session-app\n  * Duration\nsession\n  * Description\nThe yt-remote-session-app cookie is used by YouTube to store user preferences and information about the interface of the embedded YouTube video player.\n\n\n  * Cookie\nyt-remote-cast-available\n  * Duration\nsession\n  * Description\nThe yt-remote-cast-available cookie is used to store the user's preferences regarding whether casting is available on their YouTube video player.\n\n\n  * Cookie\nyt-remote-cast-installed\n  * Duration\nsession\n  * Description\nThe yt-remote-cast-installed cookie is used to store the user's video player preferences using embedded YouTube video.\n\n\n  * Cookie\ncp_session\n  * Duration\n3 months\n  * Description\nCodepen sets this cookie for Help systems found in the website.\n\n\n  * Cookie\nloid\n  * Duration\n1 year 1 month 4 days\n  * Description\nThis cookie is set by the Reddit. The cookie enables the sharing of content from the website onto the social media platform.\n\n\nAnalytics\nAnalytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.\n  * Cookie\n__hstc\n  * Duration\n6 months\n  * Description\nHubspot set this main cookie for tracking visitors. It contains the domain, initial timestamp (first visit), last timestamp (last visit), current timestamp (this visit), and session number (increments for each subsequent session).\n\n\n  * Cookie\nhubspotutk\n  * Duration\n6 months\n  * Description\nHubSpot sets this cookie to keep track of the visitors to the website. This cookie is passed to HubSpot on form submission and used when deduplicating contacts.\n\n\n  * Cookie\n_ga\n  * Duration\n1 year 1 month 4 days\n  * Description\nGoogle Analytics sets this cookie to calculate visitor, session and campaign data and track site usage for the site's analytics report. The cookie stores information anonymously and assigns a randomly generated number to recognise unique visitors.\n\n\n  * Cookie\n_ga_*\n  * Duration\n1 year 1 month 4 days\n  * Description\nGoogle Analytics sets this cookie to store and count page views.\n\n\n  * Cookie\n__Host-psifi.analyticsTrace\n  * Duration\n6 hours\n  * Description\nDescription is currently not available.\n\n\n  * Cookie\n__Host-psifi.analyticsTraceV2\n  * Duration\n6 hours\n  * Description\nDescription is currently not available.\n\n\n  * Cookie\n_gh_sess\n  * Duration\nsession\n  * Description\nGitHub sets this cookie for temporary application and framework state between pages like what step the user is on in a multiple step form.\n\n\n  * Cookie\nYSC\n  * Duration\nsession\n  * Description\nYSC cookie is set by Youtube and is used to track the views of embedded videos on Youtube pages.\n\n\n  * Cookie\najs_anonymous_id\n  * Duration\n1 year\n  * Description\nThis cookie is set by Segment to count the number of people who visit a certain site by tracking if they have visited before.\n\n\n  * Cookie\nvuid\n  * Duration\n1 year 1 month 4 days\n  * Description\nVimeo installs this cookie to collect tracking information by setting a unique ID to embed videos on the website. \n\n\nPerformance\nPerformance cookies are used to understand and analyse the key performance indexes of the website which helps in delivering a better user experience for the visitors.\n  * Cookie\nAWSALB\n  * Duration\n7 days\n  * Description\nAWSALB is an application load balancer cookie set by Amazon Web Services to map the session to the target.\n\n\n  * Cookie\nacq\n  * Duration\npast\n  * Description\nDescription is currently not available.\n\n\n  * Cookie\nacq.sig\n  * Duration\npast\n  * Description\nDescription is currently not available.\n\n\n  * Cookie\nptc\n  * Duration\n2 years\n  * Description\nNo description available.\n\n\nAdvertisement\nAdvertisement cookies are used to provide visitors with customised advertisements based on the pages you visited previously and to analyse the effectiveness of the ad campaigns.\n  * Cookie\nmuc_ads\n  * Duration\n1 year 1 month 4 days\n  * Description\nTwitter sets this cookie to collect user behaviour and interaction data to optimize the website.\n\n\n  * Cookie\nguest_id_marketing\n  * Duration\n1 year 1 month 4 days\n  * Description\nTwitter sets this cookie to identify and track the website visitor.\n\n\n  * Cookie\nguest_id_ads\n  * Duration\n1 year 1 month 4 days\n  * Description\nTwitter sets this cookie to identify and track the website visitor.\n\n\n  * Cookie\npersonalization_id\n  * Duration\n1 year 1 month 4 days\n  * Description\nTwitter sets this cookie to integrate and share features for social media and also store information about how the user uses the website, for tracking and targeting.\n\n\n  * Cookie\nguest_id\n  * Duration\n1 year 1 month 4 days\n  * Description\nTwitter sets this cookie to identify and track the website visitor. It registers if a user is signed in to the Twitter platform and collects information about ad preferences.\n\n\n  * Cookie\nbcookie\n  * Duration\n1 year\n  * Description\nLinkedIn sets this cookie from LinkedIn share buttons and ad tags to recognize browser IDs.\n\n\n  * Cookie\n__Secure-ROLLOUT_TOKEN\n  * Duration\n6 months\n  * Description\nYouTube sets this cookie to manage feature rollout and experimentation. It helps Google control which new features or interface changes are shown to users as part of testing and staged rollouts, ensuring consistent experience for a given user during an experiment.\n\n\n  * Cookie\nyt.innertube::nextId\n  * Duration\nNever Expires\n  * Description\nYouTube sets this cookie to register a unique ID to store data on what videos from YouTube the user has seen.\n\n\n  * Cookie\nyt.innertube::requests\n  * Duration\nNever Expires\n  * Description\nYouTube sets this cookie to register a unique ID to store data on what videos from YouTube the user has seen.\n\n\n  * Cookie\nsession_tracker\n  * Duration\nsession\n  * Description\nThis cookie is set by the Reddit. This cookie is used to identify trusted web traffic. It also helps in adverstising on the website.\n\n\n  * Cookie\nedgebucket\n  * Duration\nsession\n  * Description\nReddit sets this cookie to save the information about a log-on Reddit user, for the purpose of advertisement recommendations and updating the content.\n\n\n  * Cookie\ndid\n  * Duration\n1 year\n  * Description\nArbor sets this cookie to show targeted ads to site visitors.This cookie expires after 2 months or 1 year.\n\n\nUncategorised\nOther uncategorised cookies are those that are being analysed and have not been classified into a category as yet.\nNo cookies to display.\nReject All Save My Preferences Accept All\nToggle Search[](https://towardsdatascience.com/)Toggle Mobile Navigation\n[](https://towardsdatascience.com/)\nPublish AI, ML & data-science insights to a global community of data professionals.\nSign in[Submit an Article](https://write.insightmediagroup.io)\n[Latest](https://towardsdatascience.com/latest/)[Editor's Picks](https://towardsdatascience.com/tag/editors-pick/)[Newsletter](https://towardsdatascience.com/tag/the-variable/)[ShipAI](https://towardsdatascience.com/shipai/)\n* * *\n[Write For TDS](https://towardsdatascience.com/submissions/)\n[LinkedIn](https://www.linkedin.com/company/towards-data-science/)[X](https://x.com/TDataScience)Toggle Search\n[Data analysis](https://towardsdatascience.com/category/data-science/data-analysis/)\n# Are Home Teams Favoured by Referees in Football/Soccer?\nData Storytelling Series, Chapter 1\n[Ivo Bernardo](https://towardsdatascience.com/author/ivopbernardo/)\nAugust 4, 202616 min read\n![Referee Home Leniency through Time - Image by Author](https://assets.insightmediagroup.io/media/wp-content/uploads/2026/08/image-493.png)\nReferee Home Leniency through Time - Image by Author\nThe internet loves a good argument, and it’s awfully tempting to jump on a bandwagon before checking the facts. But since one of my roles in the world is being a data scientist, I have a habit of wanting to run the numbers before I form an opinion.\nLately, I’ve turned this into a routine: whenever a debate sparks up over something we can measure, I track down the data to get the facts straight. I finally reached my limit with the wild guessing people rely on to make their points, so I decided to use my skills to let the numbers do the talking instead. And since I’m already going down these rabbit holes just to shut up my friends, I figured it would be cool to start sharing my findings with you.\nThis weekend, with the World Cup barely cold and half the planet still arguing about it — the US included, now that they’ve apparently discovered soccer exists (it’s _football_ , if you’re reading this from the right side of the Atlantic) — I got into a long argument with a friend.\n**His theory: big teams are favoured because the referees fold under pressure and respect those clubs more. My theory: that’s his perception because of a strong home bias — refs may feel under pressure due to home crowds.**\nAs you may know, most football fans are not exactly rational about referees. Two people supporting different clubs can watch the exact same tackle and see two completely different fouls. But my friend’s argument left me with a question. Do big teams really get favored by referees? Are there other factors creating this perception? Or is no one favored at all?\nNormally, I’d be just as biased as anyone else. But since I recently stopped following football after some [club elections](https://www.daily-sun.com/post/839031) left me totally disillusioned about my club, I think I finally have the emotional maturity and detachment to investigate this purely through the data.\nGather around, folks. Let’s find out if referees fold under pressure.\n···\nLearn this step by step with the interactive [Data Analyst](https://roadmap.sh/data-analyst) roadmap.\n## First, the data\n![](https://assets.insightmediagroup.io/media/wp-content/uploads/2026/07/image-478.png)\nData from Football Data - Image by Author\nEverything here comes from [football-data.co.uk](https://www.football-data.co.uk/), which is a small miracle of a website: free, tidy, and maintained by people who clearly love data ([Joseph Buchdahl](https://x.com/intent/follow?original_referer=https%3A%2F%2Fwww.football-data.co.uk%2F&ref_src=twsrc%5Etfw%7Ctwcamp%5Ebuttonembed%7Ctwterm%5Efollow%7Ctwgr%5E12Xpert&screen_name=12Xpert) is a legend in the sports analytics space). It has results, odds, fouls, cards - the whole grammar of a football match, going back decades.\nThere’s one catch with this data for our purpose. Fouls and bookings only show up consistently from the 2017/18 season for a chunk of the leagues, so for those competitions we start the clock there and throw out anything earlier.\n![](https://assets.insightmediagroup.io/media/wp-content/uploads/2026/07/image-479.png)\nSmall sample from our data\nNow, the temptation (and this is exactly where most bar-stool arguments fall apart) is to just count yellow cards/fouls as the referee punishment. Big team gets fewer cards at home, case closed, referees are bought.\nExcept cards on their own tell you almost nothing, because they depend on how much you foul in the first place. A team that dominates the ball and camps in the opponent’s half commits fewer fouls, and fewer fouls means fewer chances to get booked.\nSo the real unit of this whole study isn’t cards. It’s cards per foul — the referee’s conversion rate. Of all the fouls you commit, how many actually get punished? And even that number must be looked with caution.\nTwo pairs of columns carry the referee intervention in our dataset:\n  * HY / AY — yellow cards, home and away.\n  * HF / AF — fouls committed, home and away. The denominator. Cards per foul is the entire question.\n\n\nA referee’s whistle doesn’t happen in a vacuum, though, so before I blame the crowd I have to strip out everything else that could explain the pattern. Maybe the big teams get the calls because they’re simply better, not because they’re home — so I take the betting odds, strip out the bookmaker’s margin, and use them to measure how lopsided each match was on paper. Maybe the away team just fouls more because it spends ninety minutes defending so we’ll use shots and possession to account for territory. And maybe it’s game state: chasing a 0–1 at half-time changes how recklessly you tackle, so the half-time score goes in too. We’ll take this into account in our analysis.\nMy bet (and the argument I had with my friend) is that home bias (clubs that play at home) has a much larger impact on the ref than “bigger clubs”. On the data, I’ll also use two important angles to see that:\n  * The first is reverse fixtures. Every pair of teams plays twice a season, once at each ground. Line those two matches up side by side and the teams are very similar — just the moment of the season and coach switches may carry some changes — so whatever’s left over when you flip home and away can’t be blamed on one side simply being better. It’s one of the best clean comparisons we get.\n  * Buried in the data is a natural experiment nobody designed on purpose: the COVID seasons, when matches were played in empty stadiums. If the home crowd is what bends the referee, then take the crowd away and the effect should shrink. So every match gets flagged as CROWD, EMPTY, or EXCLUDED.\n\n\nThe rest is bookkeeping: which league, which season, which two clubs, plus the raw results and shot counts kept around in case we need them.\n···\n## Exploring the data\n![](https://assets.insightmediagroup.io/media/wp-content/uploads/2026/07/image-480.png)\nHome and Away Fouls per Game\nWith the data in hand, the first thing worth looking at is which leagues foul the most.\nNo surprise to me: the portuguese Primeira Liga is one of the most foul-heavy top flight in the dataset at 29.4 fouls a game, second only to Italy’s Serie B across all fourteen divisions. And Portugal is top of the lot for fouls committed by the home team.\nThe pattern is geographic. Italy, Portugal and Spain fill the top five, while the Eredivisie, the Premier League and the Championship sit at the bottom on 21 to 22. Southern European games get stopped far more often than northern ones.\n![](https://assets.insightmediagroup.io/media/wp-content/uploads/2026/07/image-481.png)\nFouls per Game - Image by Author\nThe next thing that jumps out is that home and away teams foul ratio has a gap that changes between every league.\n![](https://assets.insightmediagroup.io/media/wp-content/uploads/2026/07/image-482.png)\nFouls per Game per League (Home Team vs. Away Team) - Image by Author\nIn Spain, Portugal and Turkey the home side actually fouls more. Everywhere else the away side edges it, but the possible explanation is that home teams spend more of the match attacking, so they get fewer opportunities to foul in the first place. The difference is there, though. But that spread between leagues may be about playing culture, not about a referee benefitting home teams.\nNote: I’ve excluded COVID-era matches from all of this. They come back later, when empty stadiums turn into the most useful thing in the whole dataset.\nSo referees call slightly more fouls against the away team. But calling a foul and punishing it are two different things. Cards are the punishment, so do away sides collect more of them?\n![](https://assets.insightmediagroup.io/media/wp-content/uploads/2026/07/image-483.png)\nYellow Cards per Match (Home vs. Away) - Image by Author\nNow this is interesting. In every single league, the home team is booked less. And the gap is remarkably steady: between 0.15 and 0.34 extra yellows per game for the away side, with most leagues sitting near 0.30.\nPlenty of confounders are still in the way. We don’t know where on the pitch those fouls happened, or what kind they were. Away teams might, by playing style, commit more dangerous fouls simply because more of the game is happening in their own half.\nI have a suspicion, and one obvious thing to rule out before I go anywhere near the crowd. If home teams spend the match camped in the opposition half, then the fouls committed against them happen in more dangerous places, and dangerous fouls deserve cards. That alone could explain everything, with no referee bias required.\nTo test it, I need to know who was actually on top during each match.\n···\n## Controlling for team strength\nfootball-data website records no possession figures, but it does record three things that gesture at the same idea: shots, shots on target, and corners. Turn each into a share of the match total (for example, the home team’s shots divided by all shots taken) and average the three. The result runs from 0 to 1, where 0.5 is a perfectly balanced game and anything above it means a team spent the afternoon camped in the other half.\nAcross more than 50.000 matches the home side averages 0.548 and the away side 0.452. Home advantage turns up in the run of play before a referee blows anything.\nThe teams at the top of that index are who you’d expect: Teams like Celtic and Rangers, Bayern, all three of Portugal’s big clubs, Manchester City, PSV and Ajax, Barcelona.\n![](https://assets.insightmediagroup.io/media/wp-content/uploads/2026/07/image-484.png)\nMost dominant clubs according to our index\nCorners and shot share usually agree, which makes them a solid proxy for which team dominated. It isn’t possession, and it isn’t time spent in the opponent’s half, but it captures domination well.\n![](https://assets.insightmediagroup.io/media/wp-content/uploads/2026/07/image-485.png)\nCorrelation between Shots and Corners - Image by Author\nThe index isn’t flawless, though. Atlético Madrid are the obvious case: cynical, low-risk football that wins about a quarter of a point per game more than their territory says it should. They do dominate the shot count, third-best in La Liga, but the index still understates them, because efficiency in front of goal is invisible to it.\n![](https://assets.insightmediagroup.io/media/wp-content/uploads/2026/07/image-486.png)\nTerritorial Dominance Index vs. Points per Game - Image by Author\nSome clubs, Atlético Madrid or PSG before Luis Enrique, dominate games by taking their chances rather than by controlling territory. The index can’t see that.\nStill, it correlates at 0.93 with points per game, which tells me it’s capturing something real about who controlled a match.\nSo now we can ask the question properly. Does home protection depend on territorial dominance? Again, if a home side spends the afternoon camped in the opposition half, does the gap between the fouls it commits and the cards it collects look different from a home side that’s being overrun?\nThat’s the test that separates two very different stories. If the home advantage only appears when the home team is on top, then this was never about the venue at all. It’s home teams simply being good more often and spending more time in opposition’s field (therefore, fouls from the away team are more deserving of a punishment). If the gap between cards and fouls survives even when the home side is being battered, something else is going on.\n···\n## The referee folds under pressure\nOne cool finding: As the home team takes control of a game, the fouls dry up. A match where the home side is heavily outplayed produces about 26 fouls; one where it’s heavily on top produces closer to 25. Domination means fewer interruptions, and a more open game.\n![](https://assets.insightmediagroup.io/media/wp-content/uploads/2026/07/image-487.png)\nFouls Commited per Match according to Home Team Dominance - Image by Author\nFouls move, then. But now let’s look at the card gap.\n![](https://assets.insightmediagroup.io/media/wp-content/uploads/2026/07/image-489.png)\nYellow Cards per Match according to Home Team Dominance - Image by Author\nIncredible. The card gap refuses to go anywhere. In every single band, the home side is booked less per foul it commits, and it isn’t a marginal thing. When the home team is heavily outplayed, pinned back and out-shot for ninety minutes, it’s still punished 7% less often than an away team having exactly as bad an afternoon.\nIf anything, the gap grows the more the home side dominates, from around 6% when it’s second best to nearly 11% when it’s on top. Dominating your opponent buys you extra leniency. But it surely isn’t where the leniency comes from, because the home team gets it either way.\nIf we apply a confidence interval on the distribution of this data, home bias always shows up in cards per foul, in every scenario:\n![](https://assets.insightmediagroup.io/media/wp-content/uploads/2026/07/image-490.png)\nHome Advantage in Cards Per Foul - Image by Author\nThere’s one more way to check this, and it’s the cleanest one football gives us for free. In almost every league, two teams play each other twice a season, once at each ground. Same two squads, same two styles, same manager in the vast majority of cases — the exceptions being sides that sacked their coach in between and other factors that affect some games.\nBut line the two fixtures up and flip home for away, and there’s little left to explain a difference except the venue itself. The home advantage holds there too:\n![](https://assets.insightmediagroup.io/media/wp-content/uploads/2026/07/image-491.png)\nSofter Whistle for Home Teams per League - Image by Author\n···\n## Team strength only justifies a bit\nFinally, let us do one last statistical test to isolate team strength.\nDoes the home card-foul advantage survive once we control for team strength, or does it collapse into noise?\nThe model takes one match at a time and asks whether the cards were shared out the way the fouls were:\nmarkup\n\n```\nhome cards ~ Binomial(total cards in the match, p)\n```\n\nIf cards simply followed fouls, a side committing 45% of a match’s fouls would collect 45% of its bookings. That proportionality is the model’s starting assumption, and what I measure is how far reality departs from it. Then I remove the controls one at a time, so that when a gap does show up I can see how much of it each factor accounts for, and how much is left over when they’ve all had their turn.\nTwo teams in one match still aren’t in identical positions, so the model makes four adjustments: for who dominated the play, who led at half time, who was the better side on the pre-match odds, and who won the corner count.\n![](https://assets.insightmediagroup.io/media/wp-content/uploads/2026/07/image-492.png)\nBinomial model per factor\nOverall, home teams collect 11.3% fewer cards per foul than the side they’re playing. Home teams really are the better side more often, they really do dominate more of the play, they really are ahead at the break more often. The coefficients show each of those buys a softer whistle in its own right, so each of them could be doing the work.\nTake out team strength (measured by pre-match odds) and the gap falls from 11.3% to 7.1%. Take out territory (possession play) and it goes to 6.4%. Half-time state and corners barely move it at all.\nWhich leaves 6.3% that none of those factors can account for. Two teams, same match, same referee, equally matched on the odds, equally dominant on the pitch, equally placed on the scoreboard — and the one wearing the home shirt is still punished 6.3% less for the fouls it commits.\nThe answer from this model are in line with the former conclusions: home teams are punished 6.3% less often per foul than their opponents in the same match, with a 95% confidence interval running from 5.0% to 7.6%. Across 54,000 matches, the chance of that being a fluke is roughly one in fifty billion billion.\n···\n## Is it a Crowd Effect?\nUnless every referee in Europe is on the take, something else has to explain this. And the most obvious candidate is the thing clubs sell tickets for in the first place: the crowd.\nForty thousand people reacting to the same tackle at the same moment is a lot of pressure to be standing in the middle of. Cards are one of the few tools a referee has to keep control of a game, which makes them exactly the decision you’d expect that pressure to bend.\nThe problem is that you can’t randomise a crowd. You can’t ask half of Europe to play in front of 40,000 people and the other half in front of nobody, then compare the bookings.\nExcept that in 2020, a virus did it for us.\nFor a season and a half (due to Covid), matches across the continent were played in empty stadiums. If the crowd is what bends the whistle, then the home advantage should have walked out of the ground with the fans. And, surprise, surprise:\n![](https://assets.insightmediagroup.io/media/wp-content/uploads/2026/07/image-493.png)\nHome Whistle Advantage through time - Image by Author\nIn 2018/19, the last full season with crowds, the home advantage ran at 11.1%, (before the controls strip it back to 6.3%), so it’s the bigger number from earlier. It fell to 7.6% as 2019/20 was interrupted, then to 4.0% across the empty 2020/21. In 2021/22, with the turnstiles open again, it came back to 12.2%. Higher than before it left.\nCrowds aren’t only working on the officials, and the next section separates that out, but this is the biggest single thing they move.\n![](https://assets.insightmediagroup.io/media/wp-content/uploads/2026/07/image-494.png)\nFootball itself was different behind closed doors. Home teams lost whatever it is a crowd gives them and played worse for it, so maybe the cards simply followed the football, fewer home attacks, fewer away defenders scrambling to stop them, fewer bookings.\nThat’s testable. Take every measure of home advantage in the data and ask how much of it survived in an empty stadium. Shots, shots on target, corners and goals are what the players did. Cards per foul are what the referee gave.\n![](https://assets.insightmediagroup.io/media/wp-content/uploads/2026/07/image-495.png)\nChanges in different factors during Covid - Image by Author\nOn the pitch, home teams kept roughly half of what they had. They lost 38% of their edge in goals, 47% in shots, 48% in shots on target and 54% in corners. Diminished, but still recognisably home teams.\nTheir card advantage lost 101% of it.\n···\n## Are stronger teams benefited?\nNow, for my friend’s argument.\nThe dataset comes with bookmakers’ odds, which means I can measure how lopsided each match was expected to be before kick-off. Split every game by that and a pattern emerges on the cards per foul:\n![](https://assets.insightmediagroup.io/media/wp-content/uploads/2026/07/image-496.png)\nExpectation to win vs. Referee Leniency - Image by Author\nWhen the home side is a heavy favourite, it’s booked 4.1 fewer times per 100 fouls than its opponent. When the away side is the heavy favourite, that flips: the home team is now booked 1.02 times more. Being expected to win buys you leniency, and the bigger the gap, the more it buys. On this chart, my friend is right.\nExcept that “heavy favourite” and “big club” aren’t the same thing, and neither is the same as “gets protected.” A side expected to win 4–0 plays a completely different match from one hanging on for a point. It has the ball more, defends less, and commits the kind of fouls that don’t need a card — the factors that justify the leniency that we’ve seen before.\nSo my friend was half right in a way that doesn’t help him. Favourites do get a softer whistle. But it isn’t respect for the badge, it’s probably because of the style of football they play.\n···\n## Conclusion\nSo, let’s see some of the conclusion from this blog post:\n  * The home whistle is real, and it’s worth about 6.3%. In the same match, with the same referee, against an opponent equally strong on the odds, equally dominant on the pitch and equally placed on the scoreboard, the home side is punished 6.3% less often for the fouls it commits.\n  * It isn’t about fouling less. Home teams commit 49.3% of a match’s fouls, but they collect 45.9% of its cards. The card gap is six times the foul gap. Whatever is happening, it happens after the foul, not before it.\n  * It doesn’t need the home team to be good. A home side being heavily outplayed, pinned back and out-shot for ninety minutes, is still booked 7% less often than an away side having exactly as bad an afternoon. Dominance roughly doubles the advantage, from 6% to 11%, but it never creates it.\n  * My friend may be wrong about big clubs. Being a favourite does buy a softer whistle, but that’s the style of football favourites play, not respect for the badge.\n  * It’s the crowd. Empty the stadiums and the entire 6.3% disappears, in 13 of 14 divisions. In 2019/20 alone home sides went from 5.6% less booked before the suspension to 8.6% more after the restart.\n  * The crowd moved the referee more than it moved the players. Home teams kept about half their edge in goals, shots and corners without their fans. They kept none of their card advantage.\n\n\nThe home bias isn’t the badge on the shirt. It’s the twenty or forty thousand people behind the goal, and referees, being human, hear them.\n···\nWhich question do you want me to address next?\nSome caveats worth mentioning about the analysis:\n  * Cards per foul controls foul volume, not foul severity. A team under pressure commits more cynical, more bookable fouls. The reverse-fixture design handles the team-level version of this; it cannot fully handle the within-match version.\n  * “Behind closed doors” is approximate. It is defined by date windows, not by attendance records. Some 2020/21 matches had partial crowds, which biases the estimate toward finding no effect — the true collapse is, if anything, sharper.\n  * No referee name, so nothing here is about individual officials. The claim is about refereeing as a system under crowd pressure.\n\n\n## References\n[1] J. Buchdahl, Football-Data.co.uk (2026), https://www.football-data.co.uk\n## Register Now to Continue Reading\n### Unlock Towards Data Science with a Free Account\nAll articles on Towards Data Science are available to registered users. Create a free account today to access this article and thousands more.\nRegister for freeSign in to your account\n* * *\n![](https://assets.insightmediagroup.io/media/1787657081760_wqdt7l.jpeg)\nWritten By\n## [Ivo Bernardo](https://towardsdatascience.com/author/ivopbernardo/)\n[See all from Ivo Bernardo](https://towardsdatascience.com/author/ivopbernardo/)\n[Deep Dives](https://towardsdatascience.com/tag/deep-dives/)[Data Science](https://towardsdatascience.com/tag/data-science/)[Football Analytics](https://towardsdatascience.com/tag/football-analytics/)[Soccer Analytics](https://towardsdatascience.com/tag/soccer-analytics/)[Sports Analytics](https://towardsdatascience.com/tag/sports-analytics/)\nShare This Article\n  * [](https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Ftowardsdatascience.com%2Fare-home-teams-favoured-by-referees-in-football-soccer%2F&title=Are%20Home%20Teams%20Favoured%20by%20Referees%20in%20Football%2FSoccer%3F)\n  * [](https://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Ftowardsdatascience.com%2Fare-home-teams-favoured-by-referees-in-football-soccer%2F&title=Are%20Home%20Teams%20Favoured%20by%20Referees%20in%20Football%2FSoccer%3F)\n  * [](https://x.com/share?url=https%3A%2F%2Ftowardsdatascience.com%2Fare-home-teams-favoured-by-referees-in-football-soccer%2F&text=Are%20Home%20Teams%20Favoured%20by%20Referees%20in%20Football%2FSoccer%3F)\n\n\nTowards Data Science is a community publication. Submit your insights to reach our global audience and earn through the TDS Author Payment Program.\n[Write for TDS](https://towardsdatascience.com/submissions/)\n## Related Articles\n  * [![](https://assets.insightmediagroup.io/media/wp-content/uploads/2024/06/1UGSjzRaiXCyIZl0dSkN1Yw.png)](https://towardsdatascience.com/exploratory-data-analysis-in-11-steps-31a36ae0b407/)\n## [Exploratory Data Analysis in 11 Steps](https://towardsdatascience.com/exploratory-data-analysis-in-11-steps-31a36ae0b407/)\n[Data Science](https://towardsdatascience.com/category/data-science/)\nStarting an exploratory data analysis can be daunting. How do you know what to look at? How do you know when you're done? What if you miss...\n[Loren Hinkson](https://towardsdatascience.com/author/lorenh516/)\nJune 19, 20246 min read\n  * [![](https://assets.insightmediagroup.io/media/wp-content/uploads/2024/09/1L9-PY4zoSRPvZTPyT6XCmw.png)](https://towardsdatascience.com/vision-mamba-like-a-vision-transformer-but-better-3b2660c35848/)\n## [Vision Mamba: Like a Vision Transformer but Better](https://towardsdatascience.com/vision-mamba-like-a-vision-transformer-but-better-3b2660c35848/)\n[Machine Learning](https://towardsdatascience.com/category/artificial-intelligence/machine-learning/)\nPart 4 - Towards Mamba State Space Models for Images, Videos and Time Series\n[Sascha Kirch](https://towardsdatascience.com/author/saschakirch/)\nSeptember 16, 202422 min read\n  * [![](https://assets.insightmediagroup.io/media/wp-content/uploads/2026/08/deng-xiang-WXQm_NTK0U-unsplash.jpg)](https://towardsdatascience.com/what-are-the-types-of-dimensions-in-a-star-schema-and-how-to-use-them/)\n## [The Types of Dimensions in a Star Schema, and How to Use Them](https://towardsdatascience.com/what-are-the-types-of-dimensions-in-a-star-schema-and-how-to-use-them/)\n[Data analysis](https://towardsdatascience.com/category/data-science/data-analysis/)\nDimensions are one of the two main object types in dimensional modelling. But what are the different types of dimensions? And how can you use them?\n[Salvatore Cagliari](https://towardsdatascience.com/author/salvatorecagliari/)\nAugust 21, 20268 min read\n  * [![](https://assets.insightmediagroup.io/media/wp-content/uploads/2025/06/t2.jpg)](https://towardsdatascience.com/building-a-modern-dashboard-with-python-and-taipy/)\n## [Building A Modern Dashboard with Python and Taipy](https://towardsdatascience.com/building-a-modern-dashboard-with-python-and-taipy/)\n[Programming](https://towardsdatascience.com/category/programming/)\nA guide to building a front-end data application\n[Thomas Reid](https://towardsdatascience.com/author/thomas_reid/)\nJune 23, 202511 min read\n  * [![](https://assets.insightmediagroup.io/media/wp-content/uploads/2021/03/1zwB1SANlPsiRzN0UBOc6PQ.jpeg)](https://towardsdatascience.com/how-to-create-data-visualizations-on-python-with-one-click-f6bafbd8de54/)\n## [How to Create Data Visualizations On Python With One Click](https://towardsdatascience.com/how-to-create-data-visualizations-on-python-with-one-click-f6bafbd8de54/)\n[Data Science](https://towardsdatascience.com/category/data-science/)\nLearn how and why you should use the Lux library for your next Data Science project\n[Ismael Araujo](https://towardsdatascience.com/author/ismaelaraujo/)\nMarch 30, 20214 min read\n  * [![](https://assets.insightmediagroup.io/media/wp-content/uploads/2026/02/nathan-dumlao-eksqjXTLpak-unsplash-scaled-1.jpg)](https://towardsdatascience.com/take-a-deep-dive-into-filtering-in-dax/)\n## [Take a Deep Dive into Filtering in DAX](https://towardsdatascience.com/take-a-deep-dive-into-filtering-in-dax/)\n[Data analysis](https://towardsdatascience.com/category/data-science/data-analysis/)\nHave you ever wondered what happens when you apply a filter in a DAX expression?\n[Salvatore Cagliari](https://towardsdatascience.com/author/salvatorecagliari/)\nFebruary 26, 202612 min read\n  * [![](https://assets.insightmediagroup.io/media/wp-content/uploads/2021/07/0aX0fGG19OyYMnB_K-scaled.jpg)](https://towardsdatascience.com/who-are-you-data-engineer-8febb06552a/)\n## [Who are you Data Engineer?](https://towardsdatascience.com/who-are-you-data-engineer-8febb06552a/)\n[Data Science](https://towardsdatascience.com/category/data-science/)\nWho is a data engineer? What does he need to know? What are his responsibilities and what are the challenges in the job?\n[Einav Baraban](https://towardsdatascience.com/author/einavbaraban/)\nJuly 25, 20216 min read\n  * [![](https://assets.insightmediagroup.io/media/wp-content/uploads/2025/04/businessman-2245116_1280.jpg)](https://towardsdatascience.com/how-to-get-performance-data-from-power-bi-with-dax-studio/)\n## [How to Get Performance Data from Power BI with DAX Studio](https://towardsdatascience.com/how-to-get-performance-data-from-power-bi-with-dax-studio/)\n[Data analysis](https://towardsdatascience.com/category/data-science/data-analysis/)\nSometimes we have a slow Report, and we need to figure out why. I will show you how to collect performance data and what these metrics mean.\n[Salvatore Cagliari](https://towardsdatascience.com/author/salvatorecagliari/)\nApril 22, 20259 min read\n  * [![](https://assets.insightmediagroup.io/media/wp-content/uploads/2025/06/TDS_Plotly_ebook_HeroImage.jpg)](https://towardsdatascience.com/from-reporting-to-reasoning-how-ai-is-rewriting-the-rules-of-data-app-development/)\n## [From Reporting to Reasoning: How AI Is Rewriting the Rules of Data App Development](https://towardsdatascience.com/from-reporting-to-reasoning-how-ai-is-rewriting-the-rules-of-data-app-development/)\n[Artificial Intelligence](https://towardsdatascience.com/category/artificial-intelligence/)\nExplore the shift from static reports to intelligent apps with our first ebook\n[TDS Brand Studio](https://towardsdatascience.com/author/tdsbrandstudio/)\nJuly 1, 20252 min read\n\n\n  * [YouTube](https://www.youtube.com/c/TowardsDataScience)\n  * [X](https://x.com/TDataScience)\n  * [LinkedIn](https://www.linkedin.com/company/towards-data-science/)\n  * [Threads](https://www.threads.net/@towardsdatascience)\n  * [Bluesky](https://bsky.app/profile/towardsdatascience.com)\n\n\n[](https://towardsdatascience.com/)\nYour home for data science and AI. The world's leading publication for data science, data analytics, data engineering, machine learning, and artificial intelligence professionals.\nSubscribe to Our Newsletter[Write For TDS](https://towardsdatascience.com/submissions/)•[About](https://towardsdatascience.com/about-towards-data-science-d691af11cc2f/)•[Advertise](https://contact.towardsdatascience.com/advertise-with-towards-data-science)•[Privacy Policy](https://towardsdatascience.com/privacy-policy/)•[Terms of Use](https://towardsdatascience.com/website-terms-of-use/)\n© Insight Media Group, LLC 2026•[The New Stack](https://thenewstack.io)•[roadmap.sh](https://roadmap.sh)•[Creator Network](https://insightmediagroup.io/creator-network)\n####  Recommended Articles \nClose\n  * [ ![](https://h030.towardsdatascience.com/rest/v2/contentStores/d7d3a4ab-7caf-4383-bbd2-fbf7fb4f1787/items/607686/image?etag=1782161464448&width=500&height=500) How Relevance Models Foreshadowed Transformers for NLP ](https://towardsdatascience.com/how-relevance-models-foreshadowed-transformers-for-nlp/ \"How Relevance Models Foreshadowed Transformers for NLP\")\n  * [ ![](https://h030.towardsdatascience.com/rest/v2/contentStores/d7d3a4ab-7caf-4383-bbd2-fbf7fb4f1787/items/607639/image?etag=1781250125848&width=500&height=500) Javascript Fatigue: HTMX Is All You Need to Build ChatGPT — Part 1 ](https://towardsdatascience.com/javascript-fatigue-you-dont-need-js-to-build-chatgpt/ \"Javascript Fatigue: HTMX Is All You Need to Build ChatGPT — Part 1\")\n  * [ ![](https://h030.towardsdatascience.com/rest/v2/contentStores/d7d3a4ab-7caf-4383-bbd2-fbf7fb4f1787/items/607930/image?etag=1782124566054&width=500&height=500) The Subset Sum Problem Solved in Linear Time for Dense Enough Inputs ](https://towardsdatascience.com/subset-sum-problem-solved-in-linear-time-for-dense-enough-inputs/ \"The Subset Sum Problem Solved in Linear Time for Dense Enough Inputs\")\n  * [ ![](https://h030.towardsdatascience.com/rest/v2/contentStores/d7d3a4ab-7caf-4383-bbd2-fbf7fb4f1787/items/3660/image?etag=1780176246070&width=500&height=500) Does Your Company Have a Data Strategy? ](https://towardsdatascience.com/does-your-company-have-a-data-strategy-e8944dbec4ae/ \"Does Your Company Have a Data Strategy?\")\n\n\n",
  "body_base_path": "attachments/8d0fc02f7f2d/pages/",
  "body_markdown_path": "attachments/8d0fc02f7f2d/pages/archived-body.md",
  "local_html": "attachments/8d0fc02f7f2d/pages/archived-body.html",
  "body_source": "prior_capture"
}