The original version of Loadout Analytics was something I threw together as a "I wonder if I can make this work" once I had finished the Loadout Database. It worked, but as it became more popular the hacks I used to build it started to cause performance issues for the whole site. Certain combinations of filters could result in querying actual billions of records, and if multiple people did that at one time, the servers could go boom.
While I could have made some restrictions to the existing system to protect from these scenarios, that's not really the light.gg style. I want you all to be able to pick 20 different filters for 4 different seasons and not have to enter suspended animation to still be alive when the results come back. So, instead of forcing the issue with the existing system, I made the tough call to disable it for a while to protect the servers while I worked on what amounts to a full rewrite.
The process of rewriting Loadout Analytics created a set of queries that are so fast* that I'm now able to build more interesting stuff than just a top 5 for each category.
New stuff includes:
The big catch is that Loadout Analytics is now no longer 100% in sync with the Loadout Database. Analytics will now update once a week before the weekly reset. The Loadout Database will continue to update hourly.
While having them be in sync is ideal, I don't think it's a dealbreaker given that the goal of Analytics is to be a more "zoomed out" look at the trends of what's popular. That's not really changing hour-to-hour.
Beyond that, the tech that powers V2 of Analytics does make it a lot faster overall, but immediately after updating it will still hang from time to time while it rebuilds its caches. I've been working on getting around this by trying to pre-warm the data before making it publicly visible, but that's still a work in progress. Generally after an hour or so things get back up to full speed.
Each chart contains "datasets" which represent one entry in the category you select (like Weapons or Subclasses) and its usage over time. Each dataset is color-coded so you can follow it through the different charts. From there, the Charts view basically provides the same data presented in three different ways.
Currently, the Usage Chart only includes an entry if it was ever in the top 5 within the date range your filters cover.
When the category you're looking at has very diverse usage, like Weapon Combos, the number of individual entries is so high that if I were to return everything just for the sake of filling the chart up to 100% a) you wouldn't even be able to physically see the lowest % entries as they are so small relative to the highest % and b) your browser would likely die. It's for your own good!
Hovering over the Usage Chart will update the other two charts to show the details for that particular date point (season/week/day). You can also click anywhere on this chart to "lock" a specific datepoint so that you can mouse around on the chart without having it change dates constantly. Click again to unlock.
Yes, with a slight catch. In the Filters bar (or on mobile, the Filters modal), you can change the Period by clicking Season/Week/Day.
However, the Season and Day periods have restrictions on them to make sure the result makes any sense (and to keep the amount of data coming back from blowing up your browser).
"Season" can only be used in a result set that has more than one Season selected. "Day" can only be used in a result set with ONLY one Season selected.
By default, the Detail Chart is sorted to show the most popular entries for that particular datepoint first. This can cause items to jump around a lot if what's popular changes a lot from date to date.
However, you can change how the Detail Chart is sorted by clicking any of the columns in its header.
Filters do affect what shows up in the charts. For example, you can add more seasons to your filters to see results graphed across a larger timespan.
It is worth noting though that some filters will make some charts look weird or pointless. If you filter to only show Hunter loadouts, charting Popularity: Classes is pretty useless, as your filtered result set only has one class: Hunter. There's other examples, but hopefully you can get what I'm warning you of here and not start screaming the charts aren't working 🙃