Documentation for BallroomSkatingSystem.

This package implements the skating system of compiling scores in ballroom dance competitions.


This package has not been tested against all corner cases that might emerge in real dancing tournaments.


No sanity checks are performed on the data, like ensuring the correct number of judges for every dance, or making sure that starter numbers coincide. Make sure to feed sanitized data to the functions.


BallroomSkatingSystem.jl is a registered package. To install, type ] at the Julia REPL to enter package mode, and type

add BallroomSkatingSystem

Exported Functions

skating_single_dance(results, majority_from; [initial_place, initial_column, depth])

Calculates a skating tableau and placement for judgment results of a single dance contained in the DataFrame results. It must contain the starter numbers of the dancers as a first column named :Numbers, and the places assigned by the different judges in the following columns, for example as in

DataFrame(Number = [11, 12, 13, 14, 15],
        JudgeA = [1, 2, 3, 4, 5],
        JudgeB = [1, 3, 2, 4, 5],
        JudgeC = [1, 3, 2, 5, 4],
        JudgeD = [5, 1, 2, 3, 4],
        JudgeE = [2, 1, 5, 3, 4])

Returns a DataFrame with the skating tableau represented as strings, as well as a DataFrame with the starter numbers and places.

For calculations on cropped tables, the majority of votes, the initial placement to fill, the initial column in the tableau where skating should start as well as the desired depth of the calculation can be defined by keyword arguments.

skating_combined(dances, results_single_dances)

Calculates the final placement of competitors in a dancing competition based on the skating rules. dances is a vector of strings, containing the names of the dances. results_single_dances is a vector of DataFrames, containing the results for the individual dances. See skating_single_dance for the correct input format.

Outputs a DataFrame with the accumulated skating tableau as strings, a vector containing tableaus containing the application of Rule 10 and Rule 11, the skating results for the individual dances as well as a DataFrame with the starter numbers and final places.

More Information