It's already clear from gossip on Twitter that Labour have won the Rutherglen by-election. That's a disappointing result for the SNP, who comfortably won the popular vote in the ward back in May, so clearly there has been a significant swing to Labour. It's the third time over recent months that the SNP's performance in a west-central Scotland by-election has fallen well short of what the opinion polls would lead us to expect. The obvious means of explaining that away would be to point to dismally low turnout - although it's not immediately clear why that would favour Labour so much (in contrast to the Tories, whose supporters are well known for flocking to the polls in low turnout contests).
All we know about the Perth South by-election so far comes from Pete Wishart, who says it's a two-horse race, with the SNP as one of the two horses. My guess would be some sort of Tory victory, but we'll see.
UPDATE: I'll double-check the figures when I get a chance, but this appears to be the result from Rutherglen -
Labour 38.5% (+7.5)
SNP 27.4% (-12.0)
Liberal Democrats 18.2% (+8.9)
Conservatives 12.1% (-4.2)
Greens 2.9% (-1.1)
UKIP 0.9% (n/a)
If true, there's no way of putting a positive gloss on that - it represents almost a 10% swing to Labour since May, and if extrapolated across the country would point to a clear Labour lead. That obviously seems highly unlikely based on opinion poll evidence, so perhaps Labour are doing much better in some geographical pockets than in others, or perhaps they were simply better organised than the SNP in a low turnout by-election. (Only about one-quarter of eligible voters took part.)
The only good thing is that the media, with their customary cluelessness about the quirks of STV by-elections, will report this in one-dimensional fashion as a Labour hold - which technically is what it is, but that doesn't tell the real story of Labour overtaking the SNP in the ward.
UPDATE II: As I suspected, the Tories have won Perth City South. However, this one is much better news, because the SNP actually 'won' the by-election on first preference votes - an improvement from their second place in the ward in May. The Tories only took the seat after the lower preferences of eliminated unionist candidates were redistributed.
The full result doesn't appear to be available online yet. Ruth Davidson seems to be suggesting that the Tories took 31% of the first preference vote - which would mean that the SNP must have done at least as well as that, pointing to an increase in the SNP vote of 5% (or more) since May. A highly creditable result by any standards.
In the case of Perth, the media's cluelessness about STV by-elections will not work in the SNP's favour. The result will be reported as a "Conservative hold", but the real story is the SNP jumping from second place to first (on first preference votes, that is), the Tories jumping from third place to second, and the Lib Dems slumping from first place to third.
UPDATE III: According to Pete Wishart, this is the full result on first preferences -
SNP 32.1% (+6.4)
Conservatives 31.2% (+6.0)
Liberal Democrats 28.8% (-5.9)
Labour 5.7% (-0.7)
Greens 1.8% (-1.3)
Leaving aside the annoying fact that there's going to be a Tory rather than an SNP councillor, this is a cracking result for the SNP - it really is. It looks like both the SNP and the Tories have been flattered by the drop in Lib Dem support (presumably caused by a popular Lib Dem councillor not being on the ballot paper this time), but even allowing for that, there has been a slight swing from Tory to SNP - which is not really what you'd expect given the greater tendency of Tory supporters to make it to the polls in local by-elections. It's not a disastrous result for Ruth Davidson, and she'll obviously spin the 'victory' for all she's worth, but privately she must be less than thrilled with yet another second place finish in Perth.
There's also a reality check for Labour here - they may have done extremely well in Rutherglen, but it could be that they're being squeezed in traditional SNP-Tory battlegrounds.