Releases: jslater89/shooting-sports-analyst
6.5.5: parse IPSC divisions as the closest USPSA division
Changes
- Parse IPSC divisions as USPSA divisions, to allow viewing/rating IPSC matches and combining IPSC+USPSA in rating sets
- Open, PCC, Revolver, and Production map to themselves
- PO maps to CO
- Standard maps to Limited
- Classic maps to Single Stack
6.5.4: match history in rater dialog, points series fixes
Features
- Toggle between rating event view and match history view on shooters' rating cards
- 'Optic Handgun' rating group that includes Open, CO, and LO
Fixes
- Rating UI fails more gracefully when presented with shooters who have only ever appeared alone in their division
- Points series UI points-per-match divisor is limited to the number of matches counted for score
- Points series UI notes how many matches count for score
Future
- I'm working on multiple-sport support, and there will be other big news around that too
Full Changelog: 6.5.3...6.5.4
6.5.3: bugs, the Racaza Rule
Fixes
- The Racaza Rule: DNFing a match disables match blend for your completed stages in that match
- Because a DNF yields a very low overall position, match blend drags ratings down unfairly: your stage performances are weighed down by the lack of a score on stages you didn't complete. Disabling match blend means that your rating changes according to your performances on the stages you were able to complete.
- Fix multi-element query searches in rater view
6.5.2: miscellaneous features, fixes, and quality-of-life improvements
Features
- 'Date of entry' option in division stats dialog, to display when shooters in a rating set first appeared at a major match
- Rater default window is now 'since January 1 of the prior year', instead of 365 days
- Select rater groups directly in project configuration
- Indicate different divisions in shooter stats dialog when viewing combined rater groups (e.g. Locap)
- Lifetime statistics for shooters
- Query-based searching in rating view page
Fixes
- Match URL display when adding URLs to project configuration from parsed source code, or refreshing in other ways, should update more quickly
6.5.0: experimental Elo features and more
Features
Experimental Elo stuff
These are not enabled for 2023's official ratings, but are under consideration for 2024. All three have the effect of making ratings more responsive to recent events, at the cost of making them less accurate at predictions. You can see my analysis of accuracy here, and my qualitative analysis of responsiveness here.
- Streak awareness: when a shooter is on a long positive or negative streak, error awareness will not reduce K for events in that direction. This means that a shooter who has low error but gets much better between appearances in the Elo ratings will gain Elo much faster.
- Direction awareness: when a shooter is on a long positive or negative streak, K will be increased for events in that direction and/or decreased for events in the opposite direction.
- Bomb protection: shooters whose expected percentage is 75% or up receive a reduction in K when a stage would result in a negative rating change would be greater than 40% of K, assuming no multipliers to K. This helps prevent overcorrection on individual bad stages. Bombs will eventually lead to high error, which will lead to large K changes anyway.
These do make predictions less accurate, because most streaks are flukes, and most stage bombs are predictive of more stage bombs, but tracking streaks more closely and forgiving one or two errors over the course of a few matches produces ratings that map more directly to what's happening in the sport, and the difference in predictive accuracy is small enough that I'll overlook it in pursuit of a better leaderboard.
Other
- Select all/select none options in match cache chooser dialog
- When entering a single match URL in dialogs, submit the URL on 'Enter'
- Match predictions now display low, middle, and high expected ordinal places, rather than percentages
- This is better-supported by the math.
- Row numbers and name search in prediction view
- Match list filtering in rating project configuration
- You can now filter a dataset by match level and date, so the L2s-since-2019 dataset is also a nationals-and-area-matches set, and a year-by-year set.
- Match list filters are not saved—you have to set them up before calculating ratings.
- Points series rating engine now supports CSV export
- Match in progress features for Elo rater
- Not currently enabled in the UI.
Fixes
- Remove implicit DQ penalty with match blend in by-stage mode
- That's a dense note. In by-stage mode, with match blend greater than 0, a shooter could receive rating changes for stages they finished before the DQ. Previously, those stages would have a portion of the DQed shooter's match performance blended in—match performance that is artificially tanked because it only includes scores for the stages the shooter finished. DQed shooters now ignore match blend, and only receive/contribute to rating changes based on the stages they finished. This results in a large increase in rating for shooters who DQed early in matches, and a small-to-imperceptible decrease in ratings for shooters who competed against the ones who DQed.
- Count subminor shooters as DNFs
- Go subminor and you neither receive nor contribute to rating changes.
- Standardize on one icon for 'filter data'
- Simple query language on match results screen now supports up to 1000 quoted-name elements instead of 10
6.4.7: Mid-Atlantic fix, other random stuff
I wanted to work on 6.5.0 and points beyond, but some Hall of Shame tablet work at Mid-Atlantic necessitates another hotfix release.
Changes
- Data file updates (through Mid-Atlantic/Remember the Fallen)
- Fix incomplete settings screen on first visit to rating project screen
- Add classification and rating (when applicable) sorts to match results view
- Vastly improved performance on shooter rating detail dialog chart
- Match cache chooser dialog now always saves downloaded matches when closing
6.4.5/6.4.6: miscellaneous fixes and improvements
This release mostly answers a few bug reports, and lays the groundwork for 7.0.0, which will contain more tools for analyzing shooter results head-to-head at a single match. There's a tiny preview of that in this release, too.
Changes (6.4.6)
- Hotfix for web result viewer and direct results viewing in desktop app
- Fix 'Max Michel' and 'Maxient Michel' getting matched in CO Nationals registration parsing
Changes (6.4.5)
- Super-early shooter comparison in match results
- Highlight 'histogram' on rater stats dialog, since it's clickable
- Correctly parse subminor
- You should now be able to edit subminor/unknown PFs to minor or major in what-if mode.
- Add filter controls/simple query parsing for Limited Optics
- Show shooter ratings in match results viewed from rating projects
- Options to view pre-match rating, post-match rating, and match/stage rating change.
- Options for different views of 'available points'
- "Ignore penalties" matches PractiScore, I think.
- "Improved for fixed-time stages" uses the stage winner's score as the 100% value, e.g. if the winner scores 80 points on a 100-point fixed-time stage, 60 points is 75%, not 60%.
- Fix by-match mode not updating connectedness/last-seen
- Shooter ratings show best classification in a division/group, rather than last classification
- Use different data source for find-registrations in match prediction
- Fix escaped HTML entities in find-registrations data
- Fix issue where match URLs with query strings would be incorrectly cached
- Put proper padding around the MacOS icon, because Apple is awful and doesn't bother to keep its design guidelines consistent even when it 100% controls both platforms
6.4.4: Limited Optics fixes, filtering by 'Lady' category
All the changes are in the title.
6.4.2/6.4.3: Limited Optics, bugfixes
Changes
- Add Limited Optics, with several ways to combine it with existing similar divisions.
- Add points per match column and sort to points series rater.
- Add Direction measure in rating view.
- Direction is another way to evaluate a shooter's trend: direction of 100 is 'all of the shooter's last 30 events were positive rating changes', direction -100 is 'all were negative'.
- Use consistent seed for prediction generator RNG.
- This means that predictions will be identical from run to run.
- The seed used is the date of the most recent match in the dataset.
- Add 'refresh' button to match entries in match cache dialog, to update a cached match entry with the latest PractiScore data.
- Match cache improvements.
- The match cache is now a two-layer thing: a small, fast-loading index, and a larger, slow-loading full match store. The app loads the index first, then only loads full matches as needed.
- Add alphabetic sort option to various match lists.
- [6.4.3] Fix match cache chooser dialog not saving newly-downloaded matches.
6.4.1: fixes and quality of life improvements
6.4.0 had a few warts, most of which I have fixed for this release.
Changelog
- MacOS build now available! See the README on the main page of the repository for install instructions.
- Add 'direction' feature for CSV export
- It's another view of trend, essentially the proportion of the last 30 rating events that are positive vs. negative, where 1 is all positive and -1 is all negative. If it proves to be sufficiently interesting, I'll promote it to the UI.
- Add Limited Optics behind the scenes
- I'll enable it in a release on or around May 1.
- Allow multiple data entry error fixes per name/member number combo
- Certain people who I will not shame publicly have, in the major match data set, entered their member numbers incorrectly in multiple ways (i.e., John Doe A12345 enters A1245 and A1235 at various matches). Now both corrections will save and load as expected.
- Match cache and match download improvements
- The match cache now loads in two stages. On application start, it loads an index, so that it knows what matches it has in the cache, and only fully loads matches on demand.
- It also better tracks what URLs it's currently trying to download, to avoid certain cases where it would repeatedly attempt to download the same match.
- Correctly handle dismissing the select-project dialog
- Confirm leaving various data-entry dialogs if there is unsubmitted information in text fields
- Abort/skip options for member number error dialog