Unfortunately I can write nothing except for tiny ugly bash scripts. In my next life I’m going to be a coder. In this life I’m left behind admiring people who can write code 
Back to topic:
we can never be sure what’s the change and what’s the deposit to a foreign address.
You pointed out a way to find the minimum average tx size.
And you assumed the maximum were found by assuming no change.
That only works if there’s no change, which in most cases isn’t true. It’s unlikely that an UTXO has exactly the right size to pay the tx fee and send an amount of NBT without a change.
But you can invert the “minumum” approach to find the maximum average tx size by assuming that the biggest output is the sent NBT.
Somewhere in between the minimum and maximum tx size is the reality.