Overview
The ping package creates two main registries:
- Club registry: a snapshot of all AFTT clubs and their metadata.
- Players registry (Messieurs): a snapshot of all players with their points and rankings
Each registry can be updated once per month (one recording per month maximum otherwise overwritten) knowing players’ points are updated monthly (first days of the month) in the AFTT. AFTT clubs are likely updated yearly.
For both registries a latest snapshot, and an archive containing all past snapshots are stored.
How the registries are built
The registries are generated by running two scripts
build.club.registry.R and
build.players.registry.R (available within the
data-raw folder available on github repository)
build.club.registry.R creates a new club registry
snapshot from AFTT annuaire
https://data.aftt.be/annuaire/membres.php. The process
involves
- fetching club indices, names, and provinces (one web page)
- scraping postal addresses and team counts from every club’s page.
- Merging into a consolidated club registry
build.club.registry.R calls the function:
get.club.list.R
build.players.registry.R retrieves the Messieurs player
list for every club in current club_registry. Iterate
through provinces then clubs. Enriches the data with classement
letters/numbers separation and within-province ranking.
build.players.registry.R calls the functions:
get.club.player.list.m
What the outputs look like
Loading the registries
All registry datasets are stored in the ‘data’ folder, included in the installed package and made available to users.
Users can load the latest snapshots with:
## [1] 516
#For a specific province
head(club_registry[club_registry$province=="N",])## indice label province
## 351 N021 N021 - Namur St-Georges N
## 352 N023 N023 - Forbot Dinant N
## 353 N025 N025 - Mickey N
## 354 N027 N027 - E.B.S. N
## 355 N028 N028 - Les Isnes N
## 356 N034 N034 - Mazy-Spy N
## address equipes_messieurs equipes_dames
## 351 Rue Saint Donat, 56 - 5002 St Servais 4 0
## 352 Rue Arthur Defoin, 215 - 5500 Anseremme 11 0
## 353 Rue Vigneron 23 - 5060 FALISOLLE 12 2
## 354 Rue de Falisolle, 73 - 5060 SAMBREVILLE 11 0
## 355 Rue Jennay, 108 - 5032 ISNES 6 1
## 356 Rue St-Martin 21 - 5190 JEMEPPE-SUR-SAMBRE 6 0
or for players:
## [1] "position" "position_bis" "nom"
## [4] "classement" "club" "match"
## [7] "points" "licence" "prov"
## [10] "classement_lettre" "classement_chiffre" "position_bis_p"
players_m[order(players_m$position_bis)[1:5],]## position position_bis nom classement
## L.L119.1 001 001 RASSENFOSSE ADRIEN A3
## L.L323.1 002 002 ALLEGRO MARTIN A1
## A.A176.1 003 003 ROBINOT QUENTIN (Joueur étranger) As5
## OVL.OVL032.1 003 003 NUYTINCK CEDRIC A2
## L.L323.2 004 004 LAMBIET FLORENT A4
## club match points licence prov classement_lettre
## L.L119.1 L119 99 3037.5 140691 L A
## L.L323.1 L323 99 3007.5 110538 L A
## A.A176.1 A176 29 2987.4 531030 A A
## OVL.OVL032.1 OVL032 99 2990.0 504553 OVL A
## L.L323.2 L323 99 2970.0 120001 L A
## classement_chiffre position_bis_p
## L.L119.1 99 1
## L.L323.1 99 2
## A.A176.1 99 1
## OVL.OVL032.1 99 1
## L.L323.2 99 3
The archived versions are obtained with
or for specific snapshots once the dataset is loaded:
club_registry_archive[["2026_04"]]
players_m_archive[["2026_04"]]