Ok, you want predictable. This, I can't help you with. Like all Paradox games combat has a random modifier thrown in there. You don't get predictable results in the sense that you can predict a battle just from watching the input values. Sometimes you lose a battle you ought to win. Other times you have a few divisions holding off an army. I've got a general sense of what I need to win but when I'm putting 12 divisions against 8 I can't be certain of victory. I know I have a decent chance, and I know I can't afford to wait for more reinforcements so if I want the province I'll have to take my chances.
It really comes down to tank divisions and organisation. Either you have more tanks than your opponent, in which case you should be able to force a breakthrough and then capitalise on it with encirclements or attacks from multiple fronts, encirclements being the one thing that can remove hundreds of IC's worth of units from play permanently, tilting the odds in your favour. If you don't have more tanks, or if youre unable to force a breakthrough with them, you need to grind down enemy organisation faster than they grind down yours. Soviet doctrine excels at this, but it's a sound strategy for anyone.
But the thing that I sense when I read your complaints is that you're focused on the battles. Me, I don't care about any one battle, they're just the means to an end. I'll fight hundreds of battles in a game, some I'll win, some I'll lose. The details aren't important as long as I can keep ahead of my opponent strategically. If I'm defeated I either need to try again, go around the province, or re-think my overall strategy. How I won or lost is generally not something I take the time to analyse. I just make note of the combat advantages I can get, make the most of them, and hope it works.