Here is a different view of @Declan's information:
Hero Points Pts/Second Pts/Damage Pts/Healing Pts/Amp
Bastion 22500 75 15 0 0
D._Va_(Mech) 19500 75 15 0 0
D._Va_(Pilot) 4500 75 15 0 0
Genji 18000 75 15 0 0
Hanzo 18000 75 15 0 0
Junkrat 18750 75 15 0 0
Lúcio 28500 75 15 19 0
McCree 18000 75 15 0 0
Mei 15000 75 15 0 0
Mercy 15000 75 15 12 10
Pharah 22500 75 15 0 0
Reaper 22500 75 15 0 0
Reinhardt 16500 75 15 0 0
Roadhog 16500 75 15 0 0
Soldier:_76 22500 75 15 0 0
Symmetra 12000 75 15 0 0
Torbjörn 19500 75 15 0 0
Tracer 13500 75 15 0 0
Widowmaker 15000 75 15 0 0
Winston 16500 75 15 0 0
Zarya 22500 75 15 0 0
Zenyatta 24750 75 15 19.8 0
I fiddled until I reached 75, which gives round numbers basically everywhere except Zenyatta's pts/healing (which is within 1% of 20, so I will propose is a rounding error in observations).
Here the total points required to get an ultimate varies. Each hero earns 75 ultimate points/second (maybe 1 per server tick?), and 15 ultimate points per point of damage. Heros earn a variable amount of ultimate points per point of healing or damage amped.
Of interest to this theory is what happens to D.Va's ultimate meter when D.Va manually ejects. Is it reset to 0? Does it stay at the same percent? Does it increase by a factor of approx 4.33x? If the third, that is strong evidence for the above model.