Warnings and considerations:
This is only a sample of the total player population and the final figures, when taken into consideration, may paint a different picture. Do not take this to be 100% accurate and perfectly indicative of the player population because I only looked at a pseudo-random ~10% of the player base (so far).
Sample Size:
The current sample size, at the time of posting this is 1,307,165 Destiny 2 accounts (not characters, but accounts). There are roughly 12,000,000 total accounts (estimated) which makes this sample about 10.9% (give or take) of the population.
How the sample was gathered:
I simultaneously scraped the Bungie.net API for
membershipIds (/User/GetMembershipsById/{membershipId}/-1/) starting a new thread every 500,000 from ID #1 to ID # 17,500,000 (35 concurrent threads). Once the
membershipIds were requested, I took the
destinyMemberships list from the response, and made subsequent requests for each Destiny 2 Profile (/Destiny2/{membershipType}/Profile/{destinyMembershipId}/) and recorded the
dateLastPlayed, converted that to a UNIX Timestamp and stored it in a database.
How the data was parsed:
Because the Bungie.Net API doesn't indicate when an account was created, I made the assumption that any account for XBox or PS4 started at game launch (Sept. 6th 2017) and any account for PC started on PC Launch (Oct. 24th 2017).
The total number of accounts was my starting point. Each account was then viewed and the
dateLastPlayed for that account was checked against the start of day timestamp for each date between Sept. 6th and Dec. 31st. 2017. If the date was greater than the last played date, the account was subtracted from the total for each subsequent day afterward.
Additional Considerations:
There are a lot of entries that appear to be accounts that were never played. The dateLastPlayed reported on them is 0001-01-01T00:00:00Z, which leads me to believe that they have no previously recorded activity, but I can't guarantee that assumption is correct, so for the sake of my analysis, I simply excluded them.
All the accounts that I've viewed were checked a second time to make sure none of them had played
after 2017-12-31, and another chunk was removed from the results for having recorded new activity. (My initial data set was 1,500,000+ accounts, of which, only 1,307,165 were included in the chart)
What the data shows (i.e. TL;DR):
Total player count dropped from 1,307,165 to 321,843 from launch to the end of the year, which is a drop of 75.37%.
PS4 player count dropped from 712,431 to 158,523, which is a drop of 77.74%.
XBox player count dropped from 594,987 to 127,428, which is a drop of 78.58%.
PC player count dropped from 194,607 to 35,892, which is a drop of 81.55%.
EDIT: The reason the chart does not show an increase for the DLC is because of the way the data was parsed;
Because the Bungie.Net API doesn't indicate when an account was created, I made the assumption that any account for XBox or PS4 started at game launch (Sept. 6th 2017) and any account for PC started on PC Launch (Oct. 24th 2017).
This does not change the end result of the chart, which correctly shows the final player drop off. It does not however, show the increase for people coming back for the DLC at the start of December.