Null values for historical stats

BBGM has had real players and historical stats for a long time now. One tricky part about historical stats is that most stats were not recorded originally and only started being recorded at some later date. For instance rebounds weren't tracked until 1951, and blocks/steals weren't tracked until 1974.

The correct way to deal with missing data like that is to leave it as missing data - your system should support some data being missing or "null", and still work despite that. BBGM did not work that way originally, because back before historical data was in the game, it was all simulated data. That means I never had to worry about some stat not being tracked - everything was always tracked! That's a lot easier to deal with than data where sometimes stuff is missing, because then every time you want to do something with a stat, you need to check if it actually exists. That's especially difficult to add to an existing codebase where there are a bunch of different places you need to update to handle missing data.

So when initially adding historical stats back in 2021, I "solved" this problem the easy/lazy way. Rather than adding support for null values for stats, I just replaced all the null values with 0. So if you looked at a player from the old days, you'd see something like this:

Read more...


View career totals/averages for ranges of seasons on player profile pages

February 2, 2025-

On player profile pages, you can now view career totals/averages for ranges of seasons. First you click this button below any player stats table (except fielding in baseball, cause I didn't want to have to worry about multiple positions):

Then you get an extra row at the bottom of the table where you can select a range of seasons to sum over:

Read more...


Bulk actions from any table of players

January 28, 2025-

New UI feature! Apply bulk actions to multiple players selected on any table in the game. You can use it to:

Access this feature by clicking the ... feature to the top right of a table, and then click "Bulk select":

Read more...


Trading block filters

The trading block is one of the most commonly used features in BBGM, and one of the most common feature requests for the trading block is to add some way to filter trades. Currently teams give you a mix of different types of assets, but in some situations maybe you want to trade for draft picks, or maybe you want to trade for a point guard, or maybe you want to trade for some interior defense. Previously there was no good way to do this, but now there is! Behold, trading block filters:

Read more...


2024 usage stats

January 1, 2025-

Every year I post some usage stats here. This year, there is some (very minor) bad news. For the first time since they were released in 2013, my games declined in popularity since last year! But it was a small decline, and 2024 was still the 2nd best year ever, so that's not really a bad year.

Is ZenGM plateauing around its current usage? Or entering a period of decline? Or just experiencing a minor road bump on the way to world domination? Check back next year to see!

On the plus side, I did change the data displayed in these blog posts a bit. Previously one of the metrics I showed was Pageviews, which is something that matters to advertisers, but is kind of meaningless otherwise. I replaced Pageviews with Seasons Simulated, which is a more interesting number.

2024 usage stats:

Read more...


Some small improvements

December 23, 2024-

I've been working on some stuff, but it's not done yet. In the meantime, I've continued to do little fixes as I normally do, but nothing was big enough to make it to the changelog until today's update about the contract negotiation UI.

That's often how it is - small bug fixes or improvements don't get entries in the changelog because I don't want to bother you about every little thing. But since there haven't been other updates lately they'd been building up a bit more than normal, so I figure I'd share what these kinds of little improvements typically look like.

These are the small changes in the latest update:

Read more...


Review of Dean Oliver's "Basketball Beyond Paper"

November 2, 2024-

Dean Oliver is possibly the most famous basketball analytics guy. For any Basketball GM users who haven't heard of him - way back in the early days of basketball analytics, he invented some of the advanced stats you see in the game, such as ORtg and DRtg, and the Four Factors in box scores.

His new book Basketball Beyond Paper was just released, and because I'm a super important basketball person, I got a copy a week early, so I already read it and wrote this review! (Okay, that's not quite true, I am not a super important basketball person and I just ordered it on Amazon and they sent it to me early for some reason.)

Read more...


Improved UI for the four factors in box scores

October 15, 2024-

The four factors are stats created by Dean Oliver to give some insight into a box score. By quickly looking at 4 numbers per team, you get an idea about the story of the game and why one team won. The four factors are:

Those have long been shown in BBGM box scores, with the better value highlighted:

Read more...


Holds and blown saves in ZenGM Baseball

Until this update, ZenGM Baseball did not track blown saves (BS) or holds (HLD). Now it does.

You might be surprised to know that blown saves and holds are not "official" stats, and there are not agreed upon definitions for those stats, and different sources handle them differently. For that reason, I am writing this blog post to explain exactly how it works in ZenGM Baseball.

Read more...


Neutral site for playoff/finals games

This is yet another blog post to explain a minor new feature!

In the NFL, the Super Bowl is played at a neutral site, so neither team gets a home field advantage.

A few years ago, I added a similar feature to FBGM, so that in FBGM the championship game has no home field advantage.

The problem was, this wasn't exposed in the UI anywhere, so it wasn't clear what was happening except for people who very carefully pay attention to the changelog. Some people were even manually turning off the home field advantage before playing the championship game, even though that was not necessary because it was already silently happening behind the scenes.

Read more...