We called it
Bologna 0-2 at Cagliari: We Called It, Again
Exact score, half-time market, goals over 1.5, Cagliari blank. WeCalledIt nailed the pattern as Bologna did exactly what they always do at Unipol Domus.

Three times at Unipol Domus. Three times the same scoreline. We told you 24 hours ago, and Bologna wrote it out again on Sunday evening.
The Pattern Was the Call
Before a ball was kicked, the case for Bologna was sitting right there in the head-to-head numbers. The most recent meeting had produced an xG of 0.44 for Cagliari against 1.64 for Bologna. Three of the last four home fixtures in this fixture had ended exactly 0-2. Cagliari were averaging under a goal a game across their last six outings.
Tom
Three of the last four meetings at this ground have ended 0-2 to Bologna. The xG in the most recent one was 0.44 vs 1.64, Cagliari barely created anything.
That is not a coincidence. That is a structural mismatch that keeps playing out the same way, and we were not going to talk ourselves out of it.
The first half stayed goalless, which we need to acknowledge. We called a first-half goal, and the 0-0 at the break was wrong. Nicolo Casale did not find the net until the 57th minute, finishing off an assist from Juan Miranda. Federico Bernardeschi sealed it from the spot in the 80th minute. The goals came, just later than we anticipated. That one miss aside, this was a clean night.
What Landed
The exact score hit. The away or draw at half-time hit. The second-half goal was never in doubt once the game opened up. Over 1.5 goals, goals in the 1-4 range, Bologna to score, Cagliari to go blank, and a clean half for the away side. Seven of eight markets correct, with the first-half goal the only one that slipped.
Sheila
Pattern beats probability when it's this consistent, Tom. I'm landing on 0-2 again. Bologna do exactly what they've done three times before.
She was right. And the Cagliari blank was the call that required the most nerve, given the simulation gave them a 66% chance to score. But the H2H-specific evidence, Cagliari's 0.44 xG in the last meeting, three blanks in four home games against this opponent, made it defensible. Gagliardini and Deiola both picked up yellows in a frustrated second half as the home side chased a game that was already gone. That frustration told its own story.
Bernardeschi had a curious evening: booked in the 32nd minute, then the man who converted the penalty in the 80th to put the result beyond doubt.
What It Means Going Forward
This is four wins in a row for Bologna at Unipol Domus in this fixture. The xG story is consistent, the scoreline is consistent, and Cagliari's attacking output has not improved enough to suggest the next meeting will look different. Cagliari have questions to answer about their ability to create against structured, well-organised sides. Bologna, for their part, continue to grind out the kind of controlled away performance that does not always make highlights but absolutely makes markets.
If you are looking ahead to Cagliari's next fixture, the pressing concern is whether their attack can find a different gear. The data keeps telling the same story, and Sunday evening was another chapter of it.
See every call Tom and Sheila have made, win or miss.
See the record