

Top Pick is the model's top pick: the card that stands out most against what its market usually shows in the model's own numbers. It is not a judgement on the price. Every card is published before kickoff and settled in public.
The market rates Rennes at 79%, so we are 37 points lower than the price implies.
Our own numbers, from the goal rates the model fits for each side.
Our score is the one that fits the goals we expect, so it is not always the biggest percentage above: the single likeliest score is usually a low scoring draw, and even that lands only about 12% of the time. This is the model's working, not a tip. The bets it leads to are above.
How this scoreline is calculated
Where those opponents sat in the table: strong means they averaged roughly the top 40%, weak roughly the bottom 40%, mixed in between.
Opposition faced: Rennes mixed, OFI mixedThe form score weights every result and every goal by where the opponent sat in the table, so five wins over the bottom of the table score below five over the top.




Rennes take a form score of 4.8 out of 10 into this Europa League fixture, against 6.6 for OFI. Rennes have 2 wins, 1 draw and 2 defeats in their last 5, while OFI have 3 wins, 1 draw and 1 defeat in theirs. Across the season Rennes average 1.5 goals scored and 1.7 conceded per game, OFI 1.5 and 0.7. Rennes have kept a clean sheet in 20% of their matches this season, OFI in 70%. Rennes sit 18th on 1 point, OFI 9th on 3.
Form, head-to-head and season statistics are free to read. The model's predictions for this fixture are in the cards above.
Rennes sit 18th in a 36-team table with a single point from their Europa League opener, a goalless draw away to Sturm Graz that hinted at defensive solidity but has not been backed up since. OFI, by contrast, sit 9th with 3 points after a 2-0 opening win, and the gap of 9 places and 2 points between the two clubs in this early table lines up with how each side arrives at this fixture in form.
Rennes' last 10 in all competitions reads W3 D2 L5 with 12 scored and 18 conceded, and the detail matters as much as the headline: three of those defeats came in pre-season friendlies against Sunderland, Brentford and Brentford's under-21 side, so the competitive picture is softer than the raw losses suggest but still shaky. A 0-4 away defeat to Lyon in Ligue 1 on 19 September and a goalless Europa League draw with Sturm Graz on 16 September are the two most recent competitive signals, either side of a run that did include a 1-0 home win over Marseille and a 2-1 away win at Angers. Rennes have scored in 7 of their last 10 but kept only 2 clean sheets, and their season profile of 1.85 expected goals per game against a clean sheet rate of just 20 percent points to a side that create chances but leak goals at the other end.
OFI's last 10 tell a different story: W6 D2 L2, 15 scored and just 7 conceded, with clean sheets in 7 of those 10 matches. Their only heavy defeat in the sample came away to AEK Athens FC on 10 October, a 0-3 loss that snapped a run which had included a 2-0 Europa League win at home to 1899 Hoffenheim on 17 September and a 2-0 away win at CSKA Sofia in the same competition back on 27 August. OFI's season numbers show fewer shots per game than Rennes, 9.6 to 17.3, and lower expected goals at 0.91, but their clean sheet rate of 70 percent across their sample and a 20 percent rate of failing to score suggest a side that wins by controlling matches rather than overwhelming them, exactly the profile that has produced a form band described as strong against Rennes' patchy one.
The head to head picture here is really a form and defensive contrast: Rennes have conceded 18 goals in their last 10 games in all competitions, OFI just 7, and only 2 of Rennes' 10 produced a clean sheet against OFI's 7. That defensive gap, allied to the clear form gap in OFI's favour, points to a tight, low scoring game in which OFI's discipline without the ball could matter more than Rennes' extra possession and shot volume at home. A draw or a narrow OFI edge feels the most likely shape, with Rennes needing to find the defensive solidity they showed against Sturm Graz rather than the openness that cost them against Lyon.
Tomorrow's top pick, free, the moment it drops
Every pick is posted to the free Telegram channel before kickoff and the full record stays public, win or lose.
Join the free Telegram