Dev.to WebDev 🛠 Dev 👁 0 📖 2 min read

Daily players fell for four days, then jumped 26% overnight — what I actually measured

For the last eighteen days I've pulled the same three numbers from the Roblox API every morning at roughly the same time, for one game, and written them down before I looked at anything else. Total visits, concurrent pla

For the last eighteen days I've pulled the same three numbers from the Roblox
API every morning at roughly the same time, for one game, and written them down
before I looked at anything else. Total visits, concurrent players, favourites.
That's it. No analytics product, no dashboard — a script, a text file, a
timestamp.

The reason I started doing it was boring: I wanted to know whether the numbers
people quote in write-ups are the numbers that were actually there that day, or
a number someone read once and carried forward. It turns out to matter more than
I expected.

Here is what the last two days looked like:

Sep 22 Sep 23 change
total visits 27,865,852 29,865,316 +1,999,464
concurrent players 17,665 22,344 +4,679 (+26%)
favourites 54,631 58,304 +3,673

The interesting part isn't the jump. It's that for four mornings before this one,
the concurrent-player line only went down — and if you had been reading only that
line, you would have written "this game is cooling off." Meanwhile the total
visit counter never stopped climbing, and yesterday it climbed faster than the
day before.

Those two lines answer different questions.

Concurrent players is an instantaneous sample. It moves with the time of day,
with the day of the week, with whether a big creator happened to be streaming an
hour ago. If you pull it at 09:45 one day and 10:30 the next, part of what you're
seeing is just the clock.

Total visits is a monotonic counter. It only goes up. The number itself is
meaningless — what carries information is the first difference, day over day.
That's the line I'd trust if I could only keep one.

Favourites sits somewhere in between, and in my log it has been the least
noisy of the three: it has not had a single down day. Which makes sense — it's
a deliberate act by a player, not a sample of who happens to be online.

The practical version of all this, if you're writing about a game or tracking
your own:

  1. Write down the timestamp of every pull, not just the date. A 45-minute difference is visible in the concurrent number.
  2. Never derive a trend from a counter you only read once.
  3. lastUpdated from the API lags, and I've watched it get revised backwards. Don't compute "hours since the last patch" from it.
  4. If two of your lines disagree, that's usually information, not an error.

I keep the running log for this one game at
ballvsballgame.com — every figure there carries
the date it was read, and I don't backfill.

Happy to hear how other people handle the sampling problem. The time-of-day
effect is the part I still don't have a clean answer for.

📰 Read the original article on Dev.to WebDev

Originally published by Dev.to WebDev. Aggregated on AIWithGhost for educational purposes — full credit and traffic to the original publisher.