The best soccer prediction approach is not vibes, it is process. I start with a quality prior like ClubElo, then adjust toward the mean because leagues and continental competitions have different baselines. Next I bring in real expected-goals numbers (xG and xGA) because goals are noisy but expected goal models actually describe repeatable quality.
Finally, I weight two things far more than most casual predictors: squad availability (injuries, suspensions, red cards) and travel load (distance + rest days). When I combine those layers, my predicted edges become explainable, testable and improvable. A method you cannot formalize is not a prediction method.
I especially like your focus on expected-goals metrics, which help account for the randomness of individual match outcomes. Squad availability and travel load are two factors often overlooked but they consistently impact results. Even small adjustments here can significantly improve predictions. Formalizing your method, as you mentioned, allows it to be tested and refined over time. Without that structured approach, any prediction is just a guess. For anyone looking for the best soccer prediction, combining data with a clear process is essential.