How Are User Numbers Calculated on Audius?

How Are User Numbers Calculated on Audius?

We’ve noticed some confusion in the community about the user numbers on dashboard.audius.org - what defines a user? And how is this data being counted / aggregated? While the code is all open-source for generating and aggregating the data, and we would encourage you to read that directly to understand this from the primary source, we put together the below explainer that summarizes how this works in plain english.

What is a unique user of the Audius network?

The unique user number is the sum of unique IP addresses per time interval interacting with discovery nodes on the Audius network.

Why does this make sense as a measurement?

There are some constraints to consider here that make any user measurement challenging, namely:

  1. fully decentralized architecture of the network
  2. many users of Audius use the first-party product logged-out
  3. many different frontends existing atop the same network / catalog (some examples) - many of these users may not even be aware that Audius is powering their experience, and developers integrate this API in a myriad of ways

Given these constraints, how can you best track usage in all the different contexts that it can happen? Our community felt that the best nexus for measuring usage was the metadata layer (discovery nodes) to understand directional changes in usage across the aggregate of all the different ways folks can use Audius. And the only unique identifier available across all these different types of interactions is IP address, which the metadata layer implicitly receives from every request made.

Like any measurement methodology, however, this has important limitations that are worth understanding, which come down to some forms of counting one user where there may be multiple behind a NAT (eg. many mobile users on the same cell tower, or developers who build server-side proxies to the API) and counting multiple users where there may be one that moves between different locations and/or IPs (e.g. the single user on mobile LTE and desktop home internet).

So long as you understand the limitations, we think this methodology is the best indicator of overall network activity and especially of directional changes in activity.

Comparing user numbers across services

Without following the same methodology between services, user numbers quickly become apples and oranges comparisons. For example, many have been confused about mismatches between Audius user numbers and Solana spender numbers - this is quite simple to understand with the context above; most Audius network users are not interacting with Solana on a regular basis. The Audius user numbers have directional value within the context of the network, but cannot meaningfully be compared with “spender” data that many others with primarily on-chain products follow. Similarly, folks have often compared daily numbers to weekly or monthly numbers - this obviously will have mismatched results because they are measuring different things.