To give you the best experience, we use cookies to remember your settings and personalise your pages and social media. Please click Accept if you are happy for us to do this. To find out more about our use of cookies please see our cookie policy.
SquashLevels connection

How to join the community


In order for SquashLevels to be a fully inclusive system it needs player details and match results from all players. We already have quite a few systems sending us results from events, leagues and boxes (see the community overview page. for details) and are actively working with others to bring them on line as well.

There are good reasons to get connected:

  • Your results will be on the system giving you a combined history of all your results wherever you played. That could be from a number of different leagues, county tournaments and even PSA events. They're all there together on one system.
  • You will have a level and detailed, graphical level history. No other system calculates 'current level of ability' to this level of accuracy.
  • You will be part of a very large community of like-minded squash players.
  • You will be able to compare yourself with anyone else in the country who plays squash - and who also has results on the system. So you could travel to a different area and know which box to join or which team to sign up for or just who to have a good game with without all those painful 'how good are you?' conversations.
  • England Squash and Racketball use the participation data to justify their funding. You will be helping a greater cause!

Note that we're trying to hard to link all English systems together using ES membership number as this is a unique number available to all players across England. See linkage information below on how to include ES membership number with player results.

It's surprisingly easy to get connected so please ask your webmaster to take a look at the guidelines below and get in touch with us. We'll have you on board in no time!

Automated upload of results

The is the first step for being able to pull your results from the system that collects them. That system (such as a league management system or internal club boxes system) needs to provide a dedicated web page that has the most recent results (and any that have been updated recently) in CSV format.

A live example of such a URL is: badsquash.co.uk/info?action=list_matches&days=3. Note the days parameter which allows us to use a moving window of 3 days. This covers the odd night if links aren't working and also allows use to go back in time to re-read results in case of corruption or even right to the start to do a full read and pull in everyone's full history thereby providing all your players a complete and accurate record of their playing career. Note that the moving window needs to include updated matches so a match that was played last week but was updated yesterday is included in the feed and can therefore be updated on SquashLevels too.

SquashLevels reads that page every night and pulls the results in. Simple! We normally advise some undocumented parameters to keep the data unavailable to unauthorised systems but these are also simple.

Here's an example of the provided page

2019-11-01,11:10:00,Giles Taylor,10891,,Redland Squash,Senior,Male,Sarah Trevelyan,1565,ES0123456,Redland Squash,Senior,Female,"5-9,9-5,9-7,9-5",Redland Green Boxes,33647770
2019-11-05,14:40:00,Paul Redmore,3769,ES0123456,Bradley Stoke Squash Club,Senior,Male,Ken Guy,2501,,Workout Harbourside,Senior,Male,"3-1",Workout Harbourside Lunch Time Boxes,33648769
2019-11-05,19:40:00,Viri Chauhan,7894,ES0123456,Redland Squash,Senior,Male,Lester Griffiths,9349,ES0123456,Redland Squash,Senior,Male,"11-15,10-15,15-12,8-15",Redland Green Boxes,33648790
2019-11-05,20:30:00,Cez Kocialkowski,11400,,Redland Squash,Senior,Male,Ross Rakauskas,12591,,Redland Squash,Senior,Male,"4-9,3-9,3-9",Redland Green Boxes,33648810
2019-11-05,20:50:00,Mark Woodard,3906,ES0123456,Redland Squash,Senior,Male,Steve Gale,10829,ES0123456,Gordano,Senior,Male,"17-15,16-18,11-15,7-15",Redland Green Boxes,33648830
2019-11-05,21:00:00,Phil Martin,9471,,Workout Harbourside,Senior,Male,Adam Sharpe,12990,,Workout Harbourside,Senior,Male,"17-15,14-16,10-15,15-12,13-15",Workout Harbourside Boxes,33648850
2019-11-05,21:10:00,Ross Rakauskas,12591,,Redland Squash,Senior,Male,Paul Matthews,6155,,Redland Squash,Senior,Male,"7-9,9-4,9-3,9-1",Redland Green Boxes,33648870
2019-11-06,05:50:00,Martin Evans,10647,,Westbury David Lloyd,Senior,Male,Anthony Fairweather,10475,,Westbury David Lloyd,Senior,Male,"1-9,2-9,3-9,9-5",Westbury David Lloyd Boxes,33648890
2019-11-06,08:10:00,Jean Paul Thorogood,12899,,Workout Harbourside,Senior,Male,Andy Chesters,13191,,Workout Harbourside,Senior,Male,"12-15,15-12,7-15,15-13,10-15",Workout Harbourside Boxes,33648910
2019-11-06,19:00:00,Dave Allman,4216,ES0123456,Redland Squash,Senior,Male,Emma Chorley,4624,ES0123456,David Lloyd,Senior,Female,"11-1,11-2,11-5",Mixed Autumn 2019-20,33512650
2019-11-06,19:00:00,Tom Gogarty,11685,ES0123456,Redland Squash,Senior,Male,Simon Hygate,76,ES0123456,David Lloyd,Senior,Male,"8-11,11-9,11-7,11-3",Mixed Autumn 2019-20,33512651
2019-11-06,19:00:00,Mike Nichols,456,ES0123456,Redland Squash,Senior,Male,Jason Mathias,73,ES0123456,David Lloyd,Senior,Male,"11-6,11-5,11-7",Mixed Autumn 2019-20,33512652
2019-11-06,19:00:00,Phil Rea,8668,ES0123456,Redland Squash,Senior,Male,Ross Morrell,608,ES0123456,David Lloyd,Senior,Male,"11-6,13-11,6-11,17-15",Mixed Autumn 2019-20,33512653

Each row represents a single match result between two players. Each column contains the data for each of the players, the result and the type of match. If data about a player is received then that player's information on the system can be updated. That way, player data can be maintained by the source system without individual players having to maintain it themselves. Provide as much of the following data as you have available on the source system:

  • Date - Date of the match. E.g. 2014-12-19. Month in the middle please.
  • Time - Time of the match. E.g. 19:30:00. Defaults to 19:00:00.
  • Player1 - Name of the first player. E.g. John Smith. Name will be auto-capitalised.
  • ID1 - ID of the first player on the source system. E.g. 326. Used to ensure results go to correct player.
  • ESM1 - ES membership number of the first player. E.g. ES6005472. ES only.
  • Privacy1 - [true|false] If the player's name should be withheld.
  • Club1 - Club of the first player. E.g. David Lloyd Grimsby. New clubs will be added as they are encountered.
  • County1 - County of the first player. E.g. Avon. Will be auto-abbreviated to ES standard county names.
  • Country1 - Three letter country code of the club/county about. This is for locating the club. E.g. NLD.
  • PlayerCountry1 - Three letter country code of the player. The player's country can be different to the country they are playing in.- E.g. ENG.
  • Category1 - Age group of the first player. E.g. O45. Will update if older but not younger!
  • Sex1 - Male or female for the first player.
  • DoB1 - Date of birth for first player. E.g 1983-04-20. Note this is stored encrypted and not accessible by anyone. Will override category.
  • Clubaddress1 - Address of the player's club for auto-lookup of club location.
  • Lat1 - Latitude of the player's club for auto-lookup of club location.
  • Lng1 - Longitude of the player's club for auto-lookup of club location.
  • Player2 - Same fields as above but for the second player.
  • Results - Points scores if available otherwise game scores. Need pairs of numbers. E.g. "9-5, 9-7, 10-8".
  • Matchtype - Type of match in text. E.g. Surrey Mens League 2018/19. Name will be parsed and abbreviated and re-ordered to maintain consistency across the system. This is used for match weighting but is really very useful for the players to know what match it was.
  • Sanctioned - If the match is for a sanctioned event, include the sanctioning body here. E.g. ES, SBN.
  • Exclude - Record the match but exclude it from the level processing. Player levels will not be affected.
  • FixtureID - ID of the match/fixture ID on the source system. Needs to be unique for every match and is used to identify a match that's being updated rather than a new one. If you use the same fixture ID for all the strings then multiply by 10 and add the string number to make them unique. E.g. 493074. It is very useful to be sure that an updated match is really the same match - otherwise we have to go by a comparison of the other values in the match.

Ideally the source system can provide all of this information but SquashLevels will assume players are senior, males with no country or membership number. MatchtypeID and FixtureID are also optional but very useful for connecting our respective systems. The absolute minimum fields are; Date, PlayerN, IDN, Results, Matchtype but that does leave it to the player to fill out and maintain the rest manually on the system.

The source system IDs are mapped to their SquashLevels ID by SquashLevels and these mappings are maintained for all source systems. This is done automatically if they have the same name and the same county otherwise they are left as separate players to be merged later. If ES membership number is included in the player results then that will be used to match up possible duplicate players. All source systems are allocated a name when they link up.

Note that some information about the players can be derived from the match type such as Mens O45 is for O45. Or, for instance, York Ladies is for ladies!

Automated upload of tournament positions

SquashLevels is predominently all about receiving match results and calculating levels based on those. We also support tournament based rankings where the information we need is focused on the final position that a player reached in each event. We pull the results in the same way (see results upload above) but in this case we need the following fields in the returned CSV.

  • EventName - Name of the event. Needs to match the event name that comes in with the player results.
  • StartDate - First day of the event. E.g. 2023-05-02.
  • EndDate - Last day of the event. E.g. 2023-05-05.
  • Level - Level of the event - one of the standard levels from Bronze to Platinum.
  • DrawSize - The number of players in the draw. E.g. 37.
  • Draw - this is the name of the draw so could be based on divisions or age groups. This is used as a label in the rankings (as the players will be referencing it) rather than for any points calculations. E.g. U17 boys.
  • AgeGroup - Age group entered by the player. I.e. use U17 if an U15 enters an U17 draw. This is the one we use to look up the points awarded based on final position. Not shown in the rankings but is critical to them. If using divisions that represent age group equivalents, please provide the age group here and put the division name (e.g. Division 4) in the Draw field above.
  • PlayerName - The name of the player. Only used to validate the player ID.
  • PlayerID - The ID of the player used by the source system. More reliable than federation IDs which can be a but wayward. You don't need to know our IDs.
  • County1 - County of the first player. E.g. Avon. Will be auto-abbreviated to ES standard county names.
  • Gender - Male/Female.
  • DoB - E.g. 2008-04-20.
  • Position - Finishing position of the player in the event. E.g. 7.

Inter-linking the community systems

So that the systems form a community for the players (and not just a set of isolated systems) there should be two way links between the source systems and SquashLevels. This is part of the requirements of getting connected.

Links from SquashLevels to the source systems

These links provide single click access back to the source systems allowing the players fast access to the pages that are of most interest and specific to them. If you have a page you'd like us to link to then please let us know.

  • From the player profile page to the equivalent source system page.
  • From the Community page to the home page of the source system.
  • From the Community page to a page of the source system advertising it's features in detail along with contact numbers and anything else you'd like to have such as discount codes - it's your page.
  • The community page will also list and summarise the features of all the connected source systems (you'll need to give us the content!).

By default, players are referenced by their source system ID so it is easy to create links from the source system.

If you have a logo URL we would like to use it!

Links from the source systems to SquashLevels

These links provide single click access to SquashLevels pages of most interest to the players such as rankings and player history. Note that any links can be used but page content will depend on whether the player has previously logged on to SquashLevels. If so then then full page content will be available otherwise it will be slightly reduced. This feature relies on the player using cookies.

These links work well from the source system home page.

  • SquashLevels home page. Use squashlevels.com.
  • County or league rankings. Any ranking list available on SquashLevels can be linked to using your source system name as a reference. Use squashlevels.com/players.php?all&source=<source name>&list=county. Click here for example.

Please use our full logo (squashlevels.com/logo-combimark.png) with your links.

If you're short of space you can use just our logo icon (squashlevels.com/logo.png).

These links work well from the source system player detail page.

  • Player history. Use squashlevels.com/player_detail.php?player=<source player ID>&source=<source name>.
    Click here for example.
  • Club rankings with player highlighted. Use squashlevels.com/players.php?all&player=<source player ID>&source=<source name>&list=club.
    Click here for example. Non members will not have their position highlighted.
  • County rankings with player highlighted. Use squashlevels.com/players.php?all&player=<source player ID>&source=<source name>&list=county.
    Click here for example. Non members will not have their position highlighted
  • Head to head prediction. This is particularly nice to use from your tournament page when there is a match-up between two players. This head to head comparison will show both player's histories on a single chart and give a prediction on how the results is expected to pan out. Use squashlevels.com/player_detail.php?source=<source name>&player=<source player ID&h2hid=<source opponent ID>&show=last24m. Note this is a feature of SquashLevels premium members.
    Click here for example.