[Userscript] WaniKani Workload Graph

:warning: This is a third-party script/app and is not created by the WaniKani team. By using this, you understand that it can stop working at any time or be discontinued indefinitely.

as of 2023-04-26T10:00:00Z WaniKani has announced it has disabled the Get All Reviews endpoint due to issues with undue load on the servers interfering with normal WaniKani operations (lessons/reviews). This means that the Workload Graph script, which displays a history of reviews, will not display anything new past this timepoint until further notice. As Workload Graph uses the Review Cache utility script, reviews retrieved before 2023-04-26T10:00:00Z will still be visible in the graphs.
Version 1.4.7 uses Kumirei’s new review tracking review cache version, meaning that workload graph will once again display the same information as the heatmap. Note that this workaround only displays reviews you did on the device you’re viewing the dashboard on! (for reviews done after 2023-04-26T21:00:00Z) The reviews done are no longer retrievable from a central location.

Version: 1.4.13
Displays a graph of your review workload over time.
Displays a graph of experienced level difficulty (error rate per level).
Displays a graph of your accuracy over time.

The script relies on the open framework .
Download/install the WK Workload Graph script from GreasyFork location .

Written as an addon to the brilliant

This script adds a chart button to the overview of reviews

Although you can run it without the heatmap installed, in which case a Graph button is available in the header bar

Details on the graph

The graph will look something like this:

It displays a running 7-day average of done reviews, colored based on the initial stage of the item (not the stage after review). The x axis displays years (in green) and level ups (in black), the y axis displays the number of reviews done.
Since version 1.0:
The number of days used for the running average can be altered in the options panel on the right.
Since version 1.0.3:
Added display options for the graph in the options panel on the right
Since version 1.0.5:
Added a start date to the options panel to limit the visible data. Uncheck the options to display all data.
Since version 1.1:
Added options to turn off cumulative view, to split out the detail stages of apprentice and guru and to add more details indicators for the time-based x Axis labels.
Since version 1.2:
Added ? icon with axis explanation and color legend. The icon is a toggle, clicking it again will remove the explanation.
Be sure to click ‘Redraw’ when you want to see the results.

Note: it does not take into account any number of reviews you have pending, only the ones you completed on those days. The graph displays everything the heatmap displays, as I copied handsome amounts of code from Kumirei :innocent:
It also relies on Kumirei’s review cache script, but this is linked within the script itself.

Since version 1.0:
Next to the minimize/close graph button there is a flask button to toggle to the second graph.

This graph displays your accumulated error percentage per level. Use it to figure out which are the hardest levels for you! For those that struggle to understand what can be read in this graph, in mine above you can clearly see that I’ve only done Apprentice/Guru I reviews on the last few levels and I don’t tend to get too many wrong of those. There’s a jump in difficulty for levels that have had their Guru II / Master review rounds and another massive jump (around lvl 30) for where I’m at with burning (at which point I tend to miss quite a few items).
The further back a level is, the more reliable the data.
Since version 1.1:
A coloring that indicates level stage progress can be toggled in the options panel on the right.
Be sure to click ‘Redraw’ when you want to see the results.
Again, this graph should take into account level resets (displaying the data for pre-reset levels as separate series), but I’m kind of counting on the community to help test with that.
Since version 1.2:
Added option to filter out ‘moved items’. As WaniKani has been moving items to other levels, you may spontaneously see you have an accuracy measurement at f.i. level 50 or 51. Checking the ‘Hide moved items’ makes the graph ignore all level with fewer than 20 25 (since version 1.4.4) reviews total.
Since version 1.2:
Added ? icon with axis explanation and color legend. The icon is a toggle, clicking it again will remove the explanation.

Since version 1.3:
Next to the minimize/close graph button there is a percent button to toggle to the third graph.

This graph displays your accuracy over time, split out by the stage of the reviewed items. You can choose to display a running average over any number of days (default is 30 days), you can split out the percentages by details stages (App I, II, III, IV, Gur I & II) and start at any date you wish to.

Pending items
Items that have been requested/suggested or are simply still in the works:

  • end date
  • lessons graph
  • recognizable level markers after reset
  • historic queue sizes
  • axis labels
  • default burn vs golden burn option (level difficulty graph)
  • graph naming
  • being able to move the graph around on the screen


date version description
2021-02-27 0.1 initial version
2021-03-05 0.2 added x axis labels to level resets
moved y axis labels further left
use heatmap-loaded event to move graph button into the heatmap
2021-03-06 0.3 tidied up header button, fixed integration with Level Duration 2 script
2021-03-08 1.0 added options panel for workload graph
added level difficulty graph
2021-03-08 1.0.1 added opacity for difficulty graph reset series
2021-03-09 1.0.2 add nullcheck for difficulty graph level resets
2021-03-09 1.0.3 cleaned up unnecessary lines for reset series (difficulty graph)
added reverse and fill options (workload graph)
2021-03-09 1.0.4 cleaning of vertical lines on level resets (difficulty graph) (again)
2021-03-11 1.0.5 added a start date to the options panel (workload graph)
2021-03-27 1.1 added option for level stage coloring (difficulty graph)
added option to split out apprentice / guru detail stages (workload graph)
added option to disable cumulative review mode (workload graph)
added option to add additional quarter/month x axis labels (workload graph)
hopefully fixed issue with discontinuous reset graph lines (difficulty graph)
2021-07-21 1.1.1 updated review cache dependency to the newest version
2021-08-03 1.1.2 swapped order of Graph and Levels buttons to prevent script conflicts
display options for graphs are now persistent across page reloads
2021-09-19 1.2 Added option to filter out moved items (level difficulty graph)
Added help/legend for both graphs
2021-10-05 1.2.1 updated icon classnames to Font Awesome v4
2022-03-07 1.3 Added accuracy over time graph
2022-04-19 1.4 Breeze Dark support and a initialization bugfix
2022-04-21 1.4.1 changed default color of level difficulty graph for Breeze Dark visibility
2022-05-03 1.4.2 updated version of review cache
2022-05-07 1.4.3 (bugfix) start with semicolon to avoid unclosed prior statement
2022-05-21 1.4.4 hide threshold to 25 (level difficulty), newest version of review cache
2023-01-28 1.4.5 newest version of review cache to handle 304 errors gracefully
2023-01-30 1.4.6 Prevent nullpointer for reviews on unknown items
2023-04-26 1.4.7 updated to review tracking version of review cache
2023-04-28 1.4.8 update to newest version of review cache (fix issue with locked items)
2023-04-28 1.4.9 updated review cache to skip lessons/extra study
2023-04-29 1.4.10 updated review cache ref for fix
2023-08-26 1.4.11 bugfix: clean up empty header spot after button move
2024-03-07 1.4.12 fix first review edge case
2024-03-07 1.4.13 fixed button location/style on heatmap button

Oooooh I love this! Thanks for making this


This is great! I need to remember to try it when I get home

Happy to see someone else make use of the review cache, too


Running MacBook Air MacOS Mohave 10.14.6 on Firefox 86.0.
Weird blip on first try at download, but second try was fine.
Here are my spiky spikes :sweat_smile:
Screen Shot 2021-02-27 at 10.39.45 pm


Woah, this looks wild :laughing:


Mine looks a little different :crazy_face:
Thanks for making this, I love it!
I’ve seen other graph links, but they never worked for me!


I love it. :heart:
So much variance :smiley:



works for me, though still early in WK:

running Firefox 86.0 with Tampermonkey on MacOs 10.15.7


My workload graph looks like this:


absolutely amazing userscript! I already am a big fan of the heatmat and having something else to track my progress with is just amazing, thank you!!


I’m still in the early levels but it works perfectly :crabigator:


Looks great :grin: I’ve been wondering what my review breakdown has been recently, so this is a great addition.


Cool script even if I can’t see my 600+ review day :laughing:

Edit: After changing the script a little bit :eyes:

Looks better with the longer intervals though


The longer running day average does indeed look better, my single day graph is also a bit more pointy:


I personally prefer setting runningAverageDays to 100

What a nice graph


I don’t know why, but that looks kind of trippy


I have been a bad durtle


365 days running average makes me look better


Cool, cool.


I know it looks bad…I just recently started again. Although I don’t remember doing any reviews in 2019…did I just block that year from my memory??



Thanks so much for making this @rwesterhof! I was wondering how the number of daily reviews I was doing has changed over my time on WaniKani. Was even considering manually taking the numbers from the heatmap so I could map it out. You’ve saved me a bunch of time!