Felo 1.0


Up: (dir)

The Felo program for estimating sport fencers objectively

Felo calculates Felo ratings for fencers. Felo ratings give a good impression about a fencer's fencing strength. The program is intended for fencing groups for having an additional incentive, or even for having a criterion for team selections and seedings.

Quite reliable ratings for a couple of fencers is already possible after a few intensive training days. There is no real upper limit. The only thing necessary is that the results of as many bouts as possibly must be collected and typed into the computer; the calculation itself is very quick.

The program can be used conveniently through a graphical user interface. Additionally, for the enthusiasts among you, it is possible to use just the core of this program in order to build own applications around it, e.g. for updating a club webpage automatically.

The Felo program is Free Software. In particular, this means that it can be distributed freely, and everybody is allowed to download the source code and to modify it. Its author, however, would be very happy if you – in case you use the program – send him a postcard (T. Bronger, Lochnerstraße 7, 52064 Aachen, Germany; please include the RWTH fencers in your greetings, we are glad to hear from fellow fencing groups). Additionally, you can help by providing a translation to a foreign language.

This manual also exists as Collection of HTML files (also zipped), as one single HTML page, and as PDF file.

Table of Contents

This manual is about the Felo program which allows to estimate sport fencers in an objective manner. It is inspired by the Elo rating system in chess.

Copyright © 2006 Torsten Bronger <bronger@physik.rwth-aachen.de>.

This documentation is Free Software; you can distribute it and modify it freely under the terms of the MIT license.


Next: , Previous: Top, Up: Top

1 Quick start

  1. Download Felo and install it.
  2. Start Felo. In the editor window, you enter a row of equal signs. Then, you enter the fencers of your group. The name, a tab stop <Tab>, and the initial estimate (as estimated by you):
              ====================================
              Alexander          1600
              Julia              1400
              Christian          1600
              Mike               1300
              ...
    

    The initial estimates typically lie between 1300 and 1800 points. The greater, the better the fencer.

  3. Enter another row of equal signs, and after it the bout results:
              ====================================
              2006-05-01      Alexander -- Julia   5:3
                              Alexander -- Mike    5:1
                              Julia -- Mike        5:3
                              Julia -- Alexander   1:5
                              Mike -- Alexander    2:5
                              Julia -- Mike        5:10
                              Alexander -- Mike    9:10
              
              2006-05-08      Christian -- Mike    10:5
                              ...
    

    Dates and result must be separated by tab stops <Tab>, and opponents by two dashes.

  4. Click in the menu on “Calculate” – “Calculate Felo ratings”. A window opens with the current Felo ratings for all fencers. After the next training day, you can append the new bout results and calculate the then current Felo ratings. And so on.


Next: , Previous: Quick start, Up: Top

2 What are Felo ratings?

Felo ratings are a wonderful new method to estimate the strength of sport fencers, without this annoying luck component which is typical of elimination tournaments and single bouts. The new Felo rating is calculated after every training day. Thus, it is always present and up-to-date. As a result, the fencer has a quite clear impression about how good he or she is currently. Whithin a group, the Felo ratings are very accurate, however, they can even be compared globally.

The underlying idea isn't new. It is inspired by the Elo ratings in chess. There, they have been used for 40 years for determining the official word ranking list, which works terrificly. Not only that it yields a plausible ranking, it also allows for precise calculations of chances in upcoming chess matches.

Over the years, the Elo ratings have been adapted successfully to other sports such as Go, college football, and international soccer. With the Felo program, they can now be used in fencing, too. “Felo” is nothing else but “fencing Elo”. In contrast to other Elo sports, Felo ratings take also the exact bout result into account. Therefore, a 15:14 win is rated lower than a 15:0. This sounds obvious but in chess, there's only win, loss, and draw.

In typical leisure fencing groups, the Felo ratings will be between 1300 and 1800. Here is a rough overview of how Felo ratings should be interpreted:

above 2500
fencing like a young god
above 2400
international masters
above 2200
national masters
above 1800
very good club fencers
above 1600
strong leisure fencers
above 1400
weak and average leisure fencers
above 1300
beginners
1200
lower limit

The tables shouldn't be taken too seriously because there isn't much experience with Felo ratings so far.


Next: , Up: Felo ratings

2.1 Getting help

If you have problems or questions regarding the Felo ratings in general and the Felo program in particular, there are the following places where to ask:

http://sourceforge.net/forum/forum.php?forum_id=638727
A web-based forum for the Felo program
https://lists.sourceforge.net/lists/listinfo/felo-general
The Felo mailing list. This is explicitly not only for discussions about the program but also for discussions about the Felo rating concept. By the way, you can get this mailing list also as a so-called newsgroup (including the possibility of using a web interface and getting an RSS feed).
http://sourceforge.net/tracker/?group_id=183431&atid=905214
Here, you can report bugs in the Felo program and its documentation. Additionally, you can browse through bugs that others have already reported.
http://sourceforge.net/tracker/?atid=905217&group_id=183431
Here, you can submit feature requests.

Moreover, bronger@physik.rwth-aachen.de is the email address of the current maintainer of Felo. So in case you want to become a co-developer ...


Previous: Getting help, Up: Felo ratings

2.2 Acknowledgements

By and large, Felo is – sigh – the product of a lone fighter so far. (Please no pity, it was fun.) However, I did have some help from others. Help still is welcome, just have a look at the Felo translation guide.

Marc Ensenbach
being a skilled mathematician, has verified my concept as far as this was at all possible, and has pointed out errors (which I corrected).
Stefan Mainka
has archived the bout results in my university fencing group long before the Felo program came into existence. For me, this was a great luck of course because I could test the concept rather quickly. I also thank the RWTH fencing group in general for allowing me to publish our Felo ratings on the (internal) web pages, which was pretty encouraging.


Next: , Previous: Felo ratings, Up: Top

3 Using Felo

3.1 The Felo file – fencers and bouts

Start the Felo program. This opens the program window with an empty editor area. There you can enter the Felo file. The Felo file contains all fencers and bouts of a fencing group for which Felo ratings should be calculated. Over time, the felo file will grow further and further while new bouts are continually appended to it.

At the moment you probably don't know yet how a Felo file looks like. No problem. Just click an the menu “File” – “New”. This loads a sample Felo file into the editor:

Sample Felo file

A Felo file consists of three parts:

  1. parameters
  2. fencer list
  3. bout list

These three parts are separated by lines made of equal signs (their length is irrelevant). Let's have a look at what the parts contain:

parameters
Parameters can be the name of the group (e.g. for the distinction between the three weapons, and/or between men and women), or settings which change the appearance of the plots, or settings modifying the calculation of the Felo ratings.

Every parameter is in a row of its own, with two columns. In the first column, the name of the parameter (e.g. “groupname”), and in the second column, the value of this parameter (e.g. “foil”) is given.

You may well leave the parameter part empty. In this case, Felo assumes default values which will be sensible mostly. For more info, see List of all parameters.

fencer list
Here, you have to list all fencers of the group, one per row. This part, too, has two columns, for the fencer's name and his or her initial Felo rating. At the beginning, nobody has a Felo rating yet, but I'll explain below how to get them, see Getting initial Felo ratings.

An important feature is that all fencers whose names are put in parentheses ‘(...)’ won't get a Felo number. This is for fencers who are afraid of knowing their fencing strength, or who are concerned about their privacy. Nevertheless, their bouts should be included anyway because it helps with calculating the other's Felo ratings, unless of course they object to it.

bout list
Here you list all bouts and their results, one per row. Empty lines inbetween are allowed, as is also the case for the rest of a Felo file. Every line consists of three columns, namely the date of the bout, the opponents, and the result. The date must be given in the form ‘YYYY-MM-DD’, i.e. year, month, day, separated by dashes.

The opponents must be given in the form ‘first -- second’, i.e. both fencers are separated by two dashes.

Important: In Felo files, columns are separated by tab stops <Tab>. It doesn't matter how many, but it must be at least one.

You may add comments at arbitrary places in a Felo file. For example, you may mark bouts for which you'd like to double-check the result, or you may mark places where a couple of bouts are still missing. Lines with commens start with a ‘#’ sign. Felo ignores such lines completely.


Next: , Up: Using Felo

3.2 Additional data for bouts

Most of the time you will enter bouts. There are a couple of further things you should know about it. In principle, the format of a bout is very straightforward:

     2006-12-24      Jesus -- Gabriel        15:3

The three columns are separated by tab stops <Tab>.

If you have a sequence of bouts of the same day, only the first one needs to have a date. This makes the bout list somewhat clearer:

     2006-05-01      Anakin -- Elmer         5:3
                     Anakin -- Wile Coyote   5:1
                     Elmer -- Wile Coyote    5:3
                     Elmer -- Anakin         1:5
                     Wile Coyote -- Anakin   2:5
                     Elmer -- Wile Coyote    5:10
                     Anakin -- Wile Coyote   9:10

Day index

If you know the chronological order of the bouts of one day, you can be very fussy and add a so-called day index to the date, counting from 1:

     2006-12-07.1    Peter -- Mike           15:12
                2    Peter -- Julia          13:15
                3    Julia -- Mike           8:15
                4    Mike -- Max             10:15

(Bouts without an index get the index `0' internally.)

Single bouts in a team match

Every single bout within a team relay match is a quite ordinary single bout – so why not use it for the Felo rating. Unfortunately, it happens that a strong player beats a weak player with an extremely high result, say, 18:1. Mathematically, this doesn't effect the fairness and reliability of Felo ratings, however, beginners could become reluctant to take part in a team match at all. Therefore, you can mark team bouts with a ‘*’:

     2006-10-12.1    Anakin -- Elmer         5:0 *
                2    Wile Coyote -- Anakin   3:10*
                3    Wile Coyote -- Elmer    5:5 *
                4    Anakin -- Elmer         8:0 *
                5    Wile Coyote -- Anakin   3:10*
                6    Wile Coyote -- Elmer    3:5 *

Such bouts are weighted like a 5 point bout, no matter of the result. Weighting them not too highly probably is a good idea anyway since team matches seem to follow their own rules.

Foreign fencers and fencing in a foreign group

Foreign fencers are fencers who belong to another club or college (for example) but they visit the local group. They may also be fencers you meet on a tournament. Be that as it may, they have a current Felo rating, yet they are not listed in the Felo file. It wouldn't make sense to add them since they fence in another group normally, so you cannot keep track of their Felo rating.

Despite this, bouts with them should be used in the calculation:

     2006-10-14      Anakin -- Riker <1764>      0:5

Thus, you give their Felo rating (hopefully they don't fib about it) in angle brackets ‘<...>’. You can add their name, too; the Felo program doesn't care.

This works in both directions of course. If a fencer of your group reports to have won in another group or on a tournament against a 1452 fencer 15:11, you can add it accordingly.

By the way, it may be appropriate to mark bouts with foreign fencers with a ‘*’ as well because their Felo rating is not as credible and/or compatible as a local Felo rating.


Next: , Previous: Additional data for bouts, Up: Using Felo

3.3 Calculating Felo ratings

Calculating the current Felo numbers is almost trivial. Click on the menu “Calculate” – “Calculate Felo ratings”. A window with the Felo ratings table for the current group opens. Freshman are excluded from this list, see Estimating freshmen, as are fencers who doesn't want to have a Felo rating.

Calculated Felo ratings

By clicking on “copy to clipboard”, the table is copied to the Windows clipboard in a form which can easily be inserted into Word or Excel, in order to make it fancier, or to print or archive it.


Next: , Previous: Calculating Felo ratings, Up: Using Felo

3.4 Putting the Felo ratings on the Web

The simplest way to tell all fencers in the group their Felo ratings is to publish in on a Web page. How to get webspace and how to manage it is beyond this manual, however, the Felo program can help you with generating the Web page itself.

Click on the menu “Calculate” – “Generate HTML”. The following dialog window opens:

Generate HTML dialog

First you should check whether the folder Felo wants to write the Web page makes sense. Per default, it is the folder of the Felo file. You can set this folder explicitly with the parameter “output folder”. For example, you can say in the parameters part of your Felo file

     output folder           C:\Documents and Settings\myname\My Files

Then all Web-relevant files are written to your “My Files” folder.

But let's go back to the dialog window above. When you click on “Okay”, the HTML file with the Felo ratings list is written to the given folder and – in case your marked the checkbox – a preview window is displayed.

A special feature is the generation of plots on which the fencer can see the chronological development of his or her Felo rating. Attention: Gnuplot, Ghostscript, and ImageMagick must be installed so that this works, see Installation of auxiliary programs. On the screenshot below you can see the whole picture, i.e. with plot.

At the same time, Felo reports in an extra windows which files must be uploaded to the Web server.

By the way, the HTML file includes a CSS stylesheet called felo.css. If it exists, it influences the whole layout of the Web page. I cannot discuss it in further detail here, people capable of CSS will know what to do anyway.

HTML preview with plot


Next: , Previous: Putting the Felo ratings on the Web, Up: Using Felo

3.5 Getting initial Felo ratings

There are two quite different situations where it is necessary to estimate an initial Felo rating: First, when the whole fencing group must get initial values, and secondly, when a freshman without a Felo rating arrives at a group with Felo ratings.


Next: , Up: Getting initial Felo ratings

3.5.1 Initial Felo ratings for the whole group

Estimating the initial Felo ratings for a fencing group is the only tricky part when using Felo. Fortunately, it has to be done only once. It is necessary because the Felo system can only calculate changes in the Felo rating, hence the initial value must come from somewhere else.

So, the starting point is a bunch of fencing Felo-virgins. Somebody of the group who is trustable must estimate everybody with preliminary initial values. This shouldn't be too critical since Felo will recalculate all numbers anyway; more or less, it is only about determining the mean fencing strength of the group.

I recommend to use the table in section Felo ratings as a guide, and to round all values to 100 points. Thus, a possible result could be:

     Alexander          1600
     Julia              1400
     Christian          1600
     Mike               1300
     Max                1500
     George             1500
     Peter              1700
     Christine          1400
     William            1700

The second important ingredient are bout results, the more the better, although they should not be spread over a too long period of time. Five to ten bouts per fencer are a soft minimum, having taken place within half a year. It's not a big deal if you don't fulfil these preconditions, though. You enter the bout results and do the so-called bootstrapping. It means that the Felo program calculates the best initial values from the preliminary ones provided by you.

For doing this, click on “Calculate” – “Bootstrapping”:

clicking on bootstrapping

Then you click on “Yes” and wait for a couple of seconds (at most). The new initial values are inserted into the file. You should save the file and you shouldn't touch the initial Felo ratings again, unless you know what you're doing. From now on, only bouts and new fencers are added to the file.

If you haven't recorded any bouts for far, you can use the preliminary initial values, too, however, you must expect some wild behaviour during the first weeks, until the Felo ratings have found their true values.

On the other hand, if you already have a lot of bouts data, you should use only the first part of it (e.g. the first six months) for the bootstrapping.


Previous: Initial Felo ratings for the whole group, Up: Getting initial Felo ratings

3.5.2 Estimating freshmen

A completely different task is adding freshmen (well, this includes all fencers who come new into the group of course). If the freshman already has a current Felo rating, this is used for his or her initial value. However, if he has not, it must be estimated. Bootstrapping is impossible since not all fencers must get a new initial value.

This works this way: The fencer is included into the fencer list as “freshman”, which means that his initial value is set to a symbolic `0'. After approx. ten 5 point bouts (or, e.g., four 15 point bouts), the Felo program can estimate an initial value. Just click on the menu “Calculate” – “Estimate freshmen”:

Estimate freshmen

In this case, Obi Wan hasn't had a Felo rating yet. After the “Estimate freshmen”, his estimate is inserted into the file.1 If the number of bouts of Obi Wan is not yet enough for estimating a reliable initial value, his initial value remains `0'. In this case, he simply has to fence a little bit more, and you must try again a couple of training days later.


Previous: Getting initial Felo ratings, Up: Using Felo

3.6 List of all parameters

General parameters

groupname
The name of the group that this Felo file belongs to. A fencing club is divided in the weapons, i.e. one group for each weapon and thus one Felo file. If appropriate, you may distinguish between women and men as well, however, we didn't do this because we fence mixed anyway.

If you don't give a groupname, Felo constructs one from the filename. For example, the file foil.felo gets the groupname “Foil”.

Plot and HTML parameters

These parameters modify the appearance of the plot and the handling of the HTML output, see Putting the Felo ratings on the Web.

output folder
The folder to which the HTML files as well as the plot (if there is one) are written. Its default is the folder of the Felo file.
min distance of plot tics
The shotest distance in days between two training days in the plot that get a text label. This avoids two labels to overlap. (Default: 7)
earliest date in plot
The start day in the plot, i.e. from this day on training days are included in the plot. The format must be YYYY-MM-DD as usual. (Default: 1980-01-01)
maximal days in plot
The maximal number of day being included in the plot. This prevents the plot from becoming too tight due to a large time interval being covered. (Default: 366)
fencers per plot
Maximal number of fencers in one plot. (Default: 30)
overlap in plots
Number of fencers who are present in both of two adjacent plots. (Default: 5)

The following parameters are only interesting to Windows users. On Linux, these programs are usually found without problems. For information about installing these programs, see Installation of auxiliary programs.

path of gnuplot
The full path to gnuplot. On Windows, the file is called wgnuplot.exe. If Felo doesn't find the file, it says in the error message where it looked for it. This should give you a clue how to remedy.
path of convert
The full path to convert of ImageMagick. On Windows, the file is called convert.exe. If Felo doesn't find the file, it says in the error message where it looked for it. This should give you a clue how to remedy.

Parameters for estimating initial Felo ratings

5 point bouts for estimate
The number of 5 point bouts that a freshman must have in order to be estimated by Felo, see Estimating freshmen. This bout number is only a guiding value as the exact number depends on the actual results. Besides, 10 or 15 point bouts count more. (Default: 10)
threshold bootstrapping
The minimal accuracy of the initial Felo ratings that Felo calculates during bootstrapping, see Initial Felo ratings for the whole group. If the bootstrapping fails, you should increase this parameter, e.g. by a factor of 10. (Default: 0.001)

Special parameters for calculating Felo ratings

These parameters should only be used if you really know what you're doing.

k factor top fencers
The k factor which is used for very good fencers. (Default: 25)
felo rating top fencers
The minimal Felo rating of a top fencer. If a fencer exceeds this limit once, he or she is listed as a top fencer. This only changes the k factor. (Default: 2400)
k factor others
The k factor used for ordinary fencers. (Default: 32)
k factor freshmen
The k factor used for (already estimated) freshmen. Because their number must find its true value yet, their k factor usually is a little bit higher than for ordinary fencers. (Default: 40)
5 point bouts freshmen
The number of 5 point bouts that a freshman must have fenced in order to become an ordinary – or regular – fencer. This only changes the k factor. This bout number is only a guiding value as the exact number depends on the actual results. Besides, 10 or 15 point bouts count more. (Default: 15)
minimal felo rating
The lowest possible Felo rating. If a fencer would drop below this limit, his rating is set exactly to this limit. (Default: 1200)
weighting team bout
Single bouts within a team match – or other bouts – are weighted like 5 point bouts if they are marked with ‘*’, see Additional data for bouts. This parameter is the number of typical 5 point bouts which are supposed to be equivalent to a bout marked with ‘*’. (Default: 1.0)


Next: , Previous: Using Felo, Up: Top

4 Installation


Next: , Up: Installation

4.1 Installation on Windows

First, download the program from Felo's project page on Sourceforge as an EXE file, and start it. There are two alternatives: You can start is as an ordinary user or as an administrator. In the latter case, it is installed for all users on this computer.

Installation itself is very simple. It should be sufficient to click on “Ok” a couple of times. The uninstallation is equally simple but assure that you are logged in on the same account you used for the installation because otherwise, Felo may not be completely removed.

If you are not interested in graphical plots of the Felo ratings, you can skip the rest of this chapter.


Next: , Previous: Installation on Windows, Up: Installation

4.2 Installation of auxiliary programs

Gnuplot

First you have to download Gnuplot as a ZIP file. The file name is gp400win32.zip or something similar, where 400 is the version number. Extract this ZIP file into the folder C:\Programme\gnuplot.

Ghostscript

Ghostscript can be downloaded from the FTP mirror for Ghostscript (you need the EXE file). It is important to be administrator when executing this file!

ImageMagick

On the homepage of ImageMagick you click on “Binary Releases” – “Windows”, download one of the EXE files and start is (as administrator if possible).


Previous: Installation of auxiliary programs, Up: Installation

4.3 Installation on Linux

The program is available at Felo's project page in two variants for Linux, namely as an RPM and as a tar ball. The RPM contains Python as its only dependency, however, it also needs wxPython, at least for the GUI part. Since this has become a standard package, it shouldn't be a problem.

If you are interested in having plots, you need the very same three programs as the Windows users, namely Gnuplot, Ghostscript, and ImageMagick. They are standard packages, too, so it shouldn't be a problem either.


Previous: Installation, Up: Top

5 Felo ratings – some background


Next: , Up: Felo ratings -- some background

5.1 The calculation

The calculation of new Felo ratings is a three-steps process:

  1. The result value for the fencer is calculated. This is the fraction of single hits that he won. For example, if the fencer won 15:10, his result value is 15/(15+10)=0.6.
  2. The difference of the Felo ratings of both fencers yields the expected result value. The formula for this can be found e.g. in the Wikipedia article about the Elo rating system.
  3. Let us call the difference between the result value and the expected result value the surprise. The surprise is multiplied by the total number of points in the bout, and the so-called k factor, see List of all parameters. The result is added to the old Felo rating. This yields the new one.

This k factor is some sort of damping parameter. If it is too high, the Felo ratings will oscillate too heavily. If it is too low, the Felo ratings will converge too slowly.

Why does the Felo rating take the score into account?

Some find it unusual or even irritating that the Felo ratings uses the complete score rather than just using win or loss.

The rationale for this is very simple: It makes Felo ratings converge very quickly, i.e., they find their true value much earlier. This is advantageous when a fencing group starts with Felo ratings, so that everybody has a real Felo rating quite soon. Similarly, it means that the Felo ratings reflect changes in your abilities or condition rather accurately. If Felo counted only wins and losses, such subtle developments would not be noticeable.

There is another mathematical issue with pure win/loss ratings. Normally, you have bouts with 5, 10, and 15 win points. Sometimes, even other values are possible. Unfortunately, they are incompatible because the win/loss probability in a 15 point bout is more extreme than that in a 5 point bout. Consequently, the ratings calculated from 5 point bouts only are much closer together than for longer bouts. Putting them all into one ratings would mean you measure tallnesses both to the head and to the shoulders, and calculate an average tallness from the whole set of values. This is ridiculous obviously.

Thus, you'd have to make the results compatible first. Mathematically, this works, however, it means that you estimate the single-hit probability for every bout. Thus, you end up with the single hit again, just with less accuracy. So you gain little (if anything at all) and lose much.

The Felo ratings – as they are – are a good combination of rapid adaption and accuracy.


Next: , Previous: The calculation, Up: Felo ratings -- some background

5.2 Universal comparison of Felo ratings

Felo ratings can only compare relatively fencers within a fencing group. In order to compare between groups (e.g. between two fencing clubs), the initial values must have been estimated realistically and carefully. Unfortunately, descriptions like “above 1600 are the strong leisure fencers” are not very precise. The comparison should work quite well nevertheless.

Of course, it is much better if some fencers fence in both groups. They connect the groups statistically and make the Felo ratings compatible. If appropriate, you may merge the groups in one Felo file, although only few fencers fence in both groups. Theoretically, one common fencer is sufficient, however, he has a lot to do then. For example, if one of both groups was estimated too highly, he shovels the points to the other group until everything is consistent.

Additionally, you can use tournaments for this but it is a lot of work: You must collect all current Felo ratings of all opponents of your fellow fencers.

Be this as it may, the experience with Felo ratings is still to little in order to know how well you can make Felo ratings of different groups comparable by common fencers or tournaments. At least, within a group they work very nicely.

By the way, Felo ratings of different weapons can never be made really comparable because they can never fence against each other. Here, a good initial estimation is the only way to get close to it.


Next: , Previous: Universal comparison of Felo ratings, Up: Felo ratings -- some background

5.3 Felo for other sports

Can one use the Felo program for other sports, too?

Yes, one can, however, Felo doesn't work well with team sports. Moreover, sports that are ended after a certain amount of time doesn't work well either.

As far as team sports are concerned, Felo isn't usable at all if you have a group of people, and on every training day, you compose two completely new teams out of it. The only possible situation is a set of teams rather than people. Every team can be treated like one fencer in a Felo file. This limits Felo heavily in team sports, especially for leisure sport groups.

As far as sports with time limit are concerned, you can only use the three possible results 1:0, 0:1, and 1:1 for win, loss, and even. However, I don't know a sport with time limit that isn't a team sport at the same time.

For all other sports with a sportsman vs. sportsman bout like tennis, badminton, table tennis, arm wrestling, and staring contest, there shouldn't be problems. If there is no real score but only winner and loser, see above, in all other cases you simply put the result in the Felo file.

By the way, it is not very important whether you count single point, (tennis) games, or sets. It won't make much difference. For example, in tennis you may record a 6:4 6:3 either as 2:0 or as 12:7. (If you have too much time, you may even count the single points.) On the other hand, the more information, the better.


Previous: Felo for other sports, Up: Felo ratings -- some background

5.4 Felo for programmers

This section is intended for programmers who want to use Felo in their own programs.

A graphical user interface is a nice thing to have but you cannot automate anything with it. For example, it is impossible to get really custom-made web pages, maybe with all weapons on a single HTML page.

For most of Felo's users, this limitation is unimportant. However, those who want to have full control will get it, and even in two ways.

First, you can call the Python module felo_rating.py as a command-line program. This is its help text:

     usage: felo_rating.py [options]
     
     options:
       -h, --help            show this help message and exit
       -p, --plots           Generate plots with the Felo ratings
       -b, --bootstrap       Try to estimate good initial values for all fencers
       --max-cycles=NUMBER   Maximal iteration steps during bootstrapping.
                             Default: 1000
       --estimate-freshmen   Try to estimate freshmen
       --write-back          Write the new initial values back into the Felo file
       --version             Print out version number and copying information
       -o FILENAME, --output=FILENAME
                             Name of the output file.  Default: output to the
                             screen (stdout)

If you have understood the GUI version of this program, you should intuitively know what the options mean. Of course, its input file format is the very same used by the GUI version. The output format is very simple and can be parsed by an own program.

Secondly, you can write a program in Python that imports the felo_rating module. You can then use Felo's API to write own Felo rating programs.


Footnotes

[1] This needn't be the same number which is calculated as the current Felo rating after calculating all bouts but it should be very close to it.