So, the 2014 monster building table was something like:
XP =~ 1/12 * DPR * HP * 2^((AC+ATK)/10)
This is theoretically reasonable; DPR*HP modulated by accuracy/defence gives you a pretty good value for the total "threat volume" of a monster - how much damage it will do before it dies in a simple, stand-up fight. Double HP? Monster lasts twice as long, does 2x damage. Double DPR? Monster lasts no longer, but does twice as much damage as well.
The 2^(AC/10) means that every time you add +10 AC (or +10 ATK) your threat doubles. This is a bit conservative (and I was surprised when it fell out); usually I model AC/ATK as doubling threat every +5 not every +10.
Such "simple" analysis falls apart when dealing with complex monsters, because how you deal with (say) an ability to teleport and take half damage, regeneration, or immunity to 4th level and lower spells ends up dominating the calculation; how those are handled isn't specified by this math.
But there are a myriad of "brawler" monsters out there you can run this math on.
As an example, using this on the Legacy TRex:
XP =~ 1/12 * [33+20] * [136] * 2^((10+13)/10)
= 1/12 * 53 * 136 * 2^2.3
= 2958 XP
And ... the monster has 3900 XP in the book. If you treat the restrain-bite as a significant advantage, it would explain the gap.
Legacy Giant Ape:
XP =~ 1/12 * [22*2] * [157] * 2^((9+12)/10)
= 1/12 * 44 * 157 * 2^2.1
= 2468 XP
It has 2900 XP as published. Again, pretty close by my standards.
---
Now a problem with this means of calculating XP is that it doesn't reflect groups of monsters well. If you take 3 monsters each with 100 HP and 50 DPR, PCs will focus fire them down; they'll only take the 50 DPR from the first monster for the first 1/3 of the fight, the 50 from the 2nd for 2/3 of the fight, and the 50 from the last for the entire fight.
We can't treat it like a 300 HP 150 DPR monster; it is actually closer to a 300 HP 100 DPR monster.
But if you add up the XP, you end up with the XP of a 175 HP/80 DPR monster, not tough enough.
5e fixed this with encounter size multipliers. At low values (1-5ish) it basically gave enough of a boost to keep the "total volume" up to the right value.
5.24e claims to avoid this. Now there are a few ways you can do this.
Suppose it takes 2 rounds to kill a monster "Bob" with 200 HP, and it does 50 DPR; it deals 100 damage before death. Two of them deal 300 damage, three of them deal 600 damage.
A monster with 3x the HP and 2x the damage (600 HP and 100 DPR) would last 6 rounds, dealing 100 each round, for a total of 600 damage; the same as 3 clones of the original monster (in this simple, bash headsin, model of combat).
If we want the XP to be equal, we need 3 XP(Bob) = XP( 3x HP, 2x DPR Bob ). If Threat =~ (HP*DPR), then
3x XP( Threat(Bob) ) = XP( 6 Threat(Bob) )
Lets assume XP(Threat) = Threat^K for some K.
3x Threat(Bob)^K = 6^K Threat(Bob)^K
3 = 6^K
K = log_6(3) = 0.61
So by setting XP = ( Some Constant * HP * DPR * 2^((AC+ATK)/Another Constant) )^0.61
We would get a value for XP such that we can add up monster XP to get a compariable fight with a bigger monster.
Now, when playing with the 2014 XP values, I got 1/12 and 1/10 as reasonable constants without the ^.61 factor.
A selection of "brutes" (who do little but have HP, AC, and deal damage) together with XP would be enough to get I hope reasonable values for 2024 XP calculation from this.
So that is what I'm looking for, but I haven't got my MM yet nor have I found a good collection of 2024 monsters to weed out non-Brutes.