As @Khan correctly intuited, there are too many variables at play here to diagnose whether the groups (PCs and monsters are evenly matched) just given the info we have. But it’s funny, I was just having this conversation with a buddy of mine, and below is the summary of my advice.

A good dipstick for you will be to look at the ODDS for the player side and the DM side, and then try to bring those closer to 50/50 across both sides. Why? Because evenly matched battles get epic quickly, as the tide swings back and forth. Also, when the odds are closer to even, then it tends to work out if the dice suddenly get hot or cold for one side.

What’s a quick way to measure this factor? Look at the primary stats for your players. In our group, our tank has +2, our healer has +5, our rogue has +3, and our scout has +4. Adding those up gives you 14. If you take 14 divided by 4, you get 3.5. If you consider that rolling a 10 on a D20 is a break even point, then a good break even point for those bonuses is 13 or 14. That means a good Target for the encounter is 13 or 14, as the PCs will have a 50/50 chance to hit.

In terms of the enemies, let’s look at player Defense/AC. Here, our group has 16, 11, 12, and 12 defenses, respectively. That total is 50. If you take 50 / 4, you get 12.5. So, 13, which means a good bonus for the enemies to hit is +3 (10+3=13). This means the monster odds to hit on a d20 are closer to 50/50.

What this simple analysis tells me is that I should run a 13 target with enemies that have +3 bonuses to-hit most of the time. Obviously, this changes as the players get better stat bonuses and armor.

Next, I consider player versus monster numbers. If I have four players, then four monsters is a good ballpark.

And then I consider monster health. If the players have two hearts each, then the monsters can have two hearts each.

And finally, damage. If the players are rolling D6s, then the monsters can roll D6s.

However, you obviously will want more variety, so what I recommend is keeping the odds even (in our example, Target 13 with +3 to-hit bonus for the baddies), but then tuning your dials for enemy number, health, and damage. Less monsters, more health and damage. More monsters, less health and damage. And remember that a glass canon or two is always terrifying (and awesome).

Obviously, these are all ballparks. If you run a baseline one encounter with the odds and strengths even, and your players crush through it, then adjust a dial up by one. If they barely survive, tone it down the next encounter.

But my key advice is to keep the ODDS close to even and keep your eye on this rudder. Where you run into trouble is: low player odds and high enemy odds (high target and high enemy to-hit bonus). Because if the DM’s dice suddenly get hot, and the players’ dice suddenly go cold in that scenario, you don’t have any wiggle room for the players to overcome your encounter.