:blue_emp: Terminal Tools

I took some time just now and created a rough sketch of what could become an interesting tool.

It stores Terminal’s Metrics and Top 10 Algos on the leaderboard in a database and provides an interface with charts to look at the data.
The website’s source is available on GitHub (the current config is also contained).


Notable controls
  • By clicking on any algo in the legend at the top of the chart, you can remove its graph from the view.

  • Scrolling and zooming through the charts can be achieved by using the mouse and mouse wheel or on mobile dragging and pinching (although the charts are quite heavy for most mobile devices).

  • Time range selection controls what data is retrieved from the API. Clicking on the fields will show a date picker to assist you picking a start and end date. If you want to adjust the time to not be the default 00:00:00.000, you can do that by editing it manually.
    "Apply" will reload the page with the shown time range applied, “Reset” will remove the time range filter and thus revert to the default past week setting and “All” will show all data from all time available.

  • The “invert” button will switch between two “modes”. One of them has all algos hidden by default and the other one all shown. This allows to e.g. easily look at a single algo by tapping “invert” once and then tapping the algo in the top legend of the chart.

  • Tap on any graph to be directed to its match tracker at https://bcverdict.github.io

The data gets updated by users visiting the page (the work for that is done on the server side). This is not a necessity, but I liked that approach because it will make data most accurate when there is highest demand and also passively show when it was accessed.

It will allow for analyzing the situation of the Global Competition in Terminal a bit better.
Feedback is greatly appreciated and there will probably be updates coming through when I feel the need.

This is neat!
Some suggestions:

  1. When hovering over the graph, list out the algos in order of elo
  2. Similarly, order the colour keys at the top of the page in order of algo elo (if possible)
  3. I’m not sure if spline curves are needed here, I feel like straight lines will suit this data better (algos move a discrete number of points at once, not gradually).

Just some feedback, I like where this is going!

1 Like

Really great effort!

Did the tool break? It seems to be stuck at dec 7. Besides the awesome new base builder tool, this is my favorite 3rd party tool to use.

1 Like

In collaboration with @bcverdict, we expanded his match tracker tool so that it could be integrated in Terminal Tools:


This means that now you can click on any algo graph in Terminal Tools and you will be directed to the appropriate page in the Tracker, i.e. the algo id is already entered.

Here is a quick overview of what it does:

  • Shows a graph for elo over matches (not time like in Tools), i.e. the elo change for every match is estimated and plotted.

  • The most frequent (if tied, the first matched) opponent is displayed as the rival. That is a user and the rival table will list all matches played against algos of that user.

  • List all matches (latest hundred) played by that algo like you see it for your own algos in Terminal and provide watch links for every match.


Brilliant! Great work guys!

1 Like

A useful new addition is singling out single algo graphs and linking to them.


You can do that by right clicking any algo graph in Terminal Tools.
Remember: left click sends you to the Match Tracker. “Right click” in this case means the secondary mouse button.

As you can see in the above animation, this can be combined nicely with the “invert” button.

When focusing on an algo like this, a focus parameter is added to the url.
This mean that this is shareable.

Thus, the configuration used in the above clip is found here.


Really cool stuff man. Nice job!


I added “Matches Played over Algos Uploaded” to the Metrics diagram and this really is a minor addition, but I just want to talk about the purpose of it:

It is supposed to help illustrate the rate at which each individual algo is playing.

A good example for this is this time range, where the new metric drops by a large amount because of an unusual influx of algos uploaded.

Looking at all the data:

Preview (all)

The gap from Dec 7 to 14 is due to what @kkroep pointed out in a post earlier in this topic.

We can see a steady rise of this metric. This is really good. It means that there are more matches being played than needed to sustain the relation. Actually, a slight steady fall would still be fine because that would mean that the amount of matches does not scale with new algos being added, which seems totally reasonable.
If the playing rate does not change, we would see a turnaround from rising to falling at some point.

This sadly cannot show the rate at which a newly uploaded algo is playing, which would probably be most interesting. If there had been recorded data for that, it would look very interesting because I think that we have seen a very positive change to the playing rate of new and top algos due to nice matchmaking changes.

1 Like

This link will direct you to the time frame from official Season One end and the leaderboard cutoff.

For anyone interesting in seeing just the elo development of the Top 10 during the stabilization period (from Dec 31 11:59 PM to Jan 04:00 PM New York time).

If it looks strange because there are data points “missing” on the left side, it means that they have been removed because they would have been equal to the next one (in order to save data and performance).

Side note

I guess that this is not really the side, but hey :slight_smile:
An archive system has already been fully implemented a few days back, which will allow you to view the Season One data at blazing speeds. Currently, it uses outdated data, but I will make an update here when the time is reached (currently only make sure that you have “Current” selected if you want to view the latest still Season One data).

1 Like

Season One is now archived. This means that I also deleted all records from the database. The archived data is uploaded to the server and also to the forum:

season_one.json (975.9 KB)

All links that were shared before the feature for different seasons was added should automatically select Season One (it is time based). Otherwise, you will need to manually select the season. A good example for this is the link from the previous post, which will no longer work because I manually chose Current, which should now be Season One.

For future use it is important to notice that selecting any archived season will not update the data for the Current season.

It was great to see how many people seemed to perceive the tool as useful and used it :confetti_ball:

Regarding privacy, Heroku can probably look up exactly who visited the page at what time (even though I removed the app at one point to try to fix a bug :sweat_smile:). I thought about including usage metrics, but it is really not necessary and would just collect data that is not mandatory.

Looking at the metrics entries, you can see that the page was visited about a thousand times in the last month. Half of which occurred just this past week.
This works because metrics entries do not get removed to save data points, which leaderboard entries do as they might stay unchanged for a specific period of time. My estimation obviously only includes those that called the new endpoint (CRON job replacement).

Updated link for the stabilization phase, which also takes the delay of the cutoff into account. It will load a lot faster because the server does not have to reach out to the database nor to the Terminal API.

1 Like

As I will probably not visit again and Season Two has apparently not started yet, I activated the Current season again.

This means: if you are interested in using the tool in the following season, do not visit the site before it has started. If you do that, the season one leaderboard would be included.

Also, if there are any changes to how the leaderboard works in Season Two, this tool will break.

What do you mean with that?

The tool is broken I think. Any idea why? And do you plan to take another look at it? I do like the graph showing leaderboard progression quite a lot.


I think he left us

I do think he left. I’ve copied his code into a new github page account (under my account) and will try to get it up and running soon.



My comment above was not a 100% commitment since I wasn’t sure how much work it would be to get his 8’s code working.

However, having worked with it a bit I can say for sure now that I will maintain and get this code working. The previous project stopped working since 8’s backend is no longer up. I should have my own back-end version written and running (unfortunately without any of the previous data, of course) up by next week at the very latest.


Alrighty, I have a working version of the project. You can now access the same interface as before by going to idraper.github.io

Right now the information is stored in a local database, but since Heroku (what I’m using to host the backend) is ephemeral, the database will be reset every day (I don’t have specifics on this). I’m going to work on fixing this but for now it is should work as a temporary solution (lmk if you have suggestions :grinning:). This has been fixed, see edit below.

Also, since I have no data from season 1 that tab does nothing, it just loads the same page.
The option ‘all’ doesn’t do anything yet, I’ll add that soon.

Little note: Times on the graphs should be in your local timezone, but if you want to adjust the range of time that is in UTC (for now).

Edit: I have now made it so data persists and will not be lost.