I mean.. for most CR ranges, you can punt on the DMG table and just use:

HP/30 + DPR/12 + (AC-10)/4 + ATK_STAT_BONUS/4 minus 4.

Feed fomerian into that.

149 HP/30 = 5

59 DPR/12 = 5

(14 AC-10)/4 = 1

ATK_STAT (6 and 2 average 4) / 4 = 1

5+5+1+1-4 = 8 CR

That is pretty much the DMG table. The rules for how to deal with low CR situations are, however, distinct; the HP of a CR 1/4 and 1/8 creature is close, but the impact on the output CR even smaller.

For CR over 20 the calculated CR here (CR_0) is too high over 20 by a factor of 2 or 2.5 (I forget).

Now, theory wise, we should swap the linear AC and ATK modifiers for exponential ones. But in theory this can be handled by tweaks in the XP curve, and the assumption that AC/ATK isn't too far off the baseline for a given CR, because the true "threat" of a monster is (Damage output against a PC per round) times (rounds it survives and puts out that damage when attacked).

The blog of holding adds 15 HP, 5 damage, .5 ATK (but includes proficiency) and .5 AC per CR. Fed into my math this is 0.5 + 0.42 + 0.25 = 1.17 per CR.

But at CR 1 the estimated creature has .75 AC + 1 HP + .5 ATK + .83 damage = a calculated CR of -1 in my math. They then scale up by almost a CR in effectiveness per CR (a bitmore), then shave off some at level 8 (about when their excess would have hit a full point).

From this what I suspect the error is that the DMG creatures have "extra" stuff on them. Those that do end up with less HP/Damage/AC/ATK than their level. Blog of holding probably ignored this -- the result is that CR X monsters

*have lower stats than they should*. The brutes (the ones with no special stuff) show up as outliers. What more, brutes (with no special tricks) tend to have higher HP and damage and AC and everything - messing up with the correlation stats the poster is relying on.

My equation gets low CR creatures wrong, but by around CR 4 it is disturbingly reliable.

Giant Hyena. 12 (+.5) AC, 16 (+.75) Str, 10 (+5/6) damage, 45 (+1.5) HP. Total 3.6, but then subtract 4.

Rampage every 3rd turn is worth 3.3 DPR; 0.25. Total 3.85 - 4 = -0.15.

The DMG, however, has the defensive CR 1/4 average with the offensive CR of 2, producing a 1.

If we treat HP below 60 as a 2 and AC under 14 as a 1 and require an ATK STAT of +1, we get a modified formula:

(AC-14)/4 + (HP-60)/30 + (ATK_STAT_BONUS-1)/4 + (DPR-6)/12

where any negative number is treated as 0.

Feed the Hyena in, and the damage of 13.3 and ATK stat of +3 gives it a CR of 1.

Now this is not directly relevant to your plan.

But you can take the vanilla rogue and make a table like this.

For DPR, a dual wielding rogue (two short swords) does 10 damage from weapons. It also sneak attacks; as the sneak attack has 2 chances to land, it deserves an accuracy bonus. Instead of being 3.5 per die, use 4 - this has the nice property of dividing by 2.

So the target DPR is 8 + Level*2.

The target HP for a 12 constitution rogue is 9 + 6 per level after 1. Call it 3 + Level*3 HP.

At level 1 a Rogue has 14 AC. At level 20, a Rogue can be expected to have 17-20 AC (an increase of 3-6 points)

At level 1 a Rogue has +5 to hit. At level 20, a Rogue can be expected to have +11-14 to hit (an increase of 6-9 points)

If we factor out proficiency to hit (I find it often helps), the Rogue goes from Prof+3 to Prof+5-8 (an increase of 2-5 points).

A +4 swing is close enough for both numbers. So baseline ATK bonus is +3+Level/5, and AC is 14+Level/5.

Rogues get other stuff, from their subclass and class, but this gives a baseline set of toys.

What I'd do is start with a baseline like this. Then add "Kits".

A "Kit" might be worth 0.25 a monster. The idea is that you start with a baseline monster, and add "Kits" to customize.

Soldier, Sniper, Support, Brawler, Skirmisher, etc.

We could even downstat the monster a bit so that every monster gets a Kit for free. But I also like the idea of giving a monster both the Solider and Brawler kit.

Elite(X) could be a second subsystem. An Elite(2) monster is "worth" 2 monsters, an Elite(4) is "worth" 4.