Hearts have benefitted from all their main rivals being in Europe and having slow starts through injuries, fatigue and the like, while they’ve been able to focus purely on the league - Cove Rangers etc aside. Celtic played a weakened side against them as they had their biggest game of the season v AEK days later. We’ve still not even been able to play a settled side yet due to the hangover of playing Thursday/Sunday for weeks. We weren’t full stength against St Johnstone for example. Rangers wouldn’t be midtable if they didn’t have such a big run of games.
Hearts have been decent, but also fairly fortunate and their position is massively exaggerated. They’re no great shakes and the derby will be a tight affair.