I filter log entries for GET and HEAD requests to the feed’s path, filter it to only unique User-Agents and IP pairs, and then count the number of matches.

I also do some adjustment to account for User-Agents containing subscription counts (for example, “19 subscribers” or “82 readers”).
The biggest data omission is Feedly that doesn’t report subscription number in their User-Agent. They have an API for extracting subscription number, but I just manually check their website once in a while to get the number.

Here is the script I use to parse nginx access logs. It’s written in Python.

So does this sound like what you’re doing? Are you counting subscribers differently? Are you filtering out bots?