Site Updates - Drop Point Handicap System and More

6 minute read

Release Overview (1.1.30-beta)

Lots of updates with this new release, so buckle up for a long post (or jump around using the links above).

First and foremost, as of today BullseyeTracker can support leagues who use the NRA Drop Point Handicap System. I’m thrilled to have this working. In the past i’ve had to turn away several leagues who required it, so I’m happy to report that now I can finally start saying “yes” when I get that request!

Second, I’m officially launching the BullseyeTracker Shop! I wanted to have some shirts, pistol box stickers, etc for folks who want to share the BullseyeTracker love.

Third, as the code-base for the site has grown, the speed I can churn out features and supporting documentation has slowed. I’m starting to take steps to remedy that.

Finally, bug fixes - lots of bug fixes.

Drop Point System

The Drop Point System is the NRA’s recommended approach to handicaps for Bullseye/Precision Pistol Leagues.

  1. The general rule in calculating a competitor’s handicap score is: ((300 - Score) x DPS Multiplier) + Score
  2. The “Drop Point System Multiplier” (DPS Multiplier) is a value selected from the NRA Drop Point System Table and is driven by the competitor’s average (which will be shown in the Handicap column of the match).
  3. The competitor’s average for the first match of a season will be the average of all their eligible scores from the previous season. From then on the competitor’s average will be the average of all eligible scores for the current season. E.g. If a competitor’s average going into the new season is 264, that is their average for the first match. If the competitor shoots a 262 in that first match, their average for the second match becomes a 262. A score of 264 in the second match results in an average of 263 for the third match, and so on.
  4. To start, Leagues will have two options for customizing the way this calculation works:
    • Minimum Handicap Average: Leagues can define the lowest average used for the purpose of calculating a handicap score (e.g. if a competitor has an average of 98, but the league’s minimum is 100, then the average used in the Drop Point Table for that competitor will be 100)
    • Default Handicap Average: Leagues can define the average to be used for any competitor without an average from a previous seasons (i.e. a new shooter)

Currently the way this approach calculates averages is inflexible. It works exactly as described above, and the averages are recalculated after every match.

Future versions of the Drop Point System in BullseyeTracker will provide League’s flexibility with:

  1. the method of average calculation itself
  2. the frequency of when averages are calculated
  3. the minimum number of matches needed from a previous season for a competitor’s average to be used in the new season.

BullseyeTracker Shop

Several folks in the Summer League expressed interest in some SWAG. This is something I’ve been interested in trying out for a while, so figured why not - worst case I’ll get a couple cool shirts out of it!

Current options for gear include:

  • Several colors and styles of Men and Women’s T-Shirts, Hoodies, etc (large center logo, or small logo on left side)
  • Two different Water Bottle options
  • Two different Sticker Options
  • Masks

To test out the quality I ordered a T-shirt, long sleeve shirt, and a sticker for my pistol box.

The shirts are both super soft (T-Shirt a slight winner in comfort) and run more-or-less true to size (they were a little snug, but I think that’s more due to my COVID-19-lbs than an issue with the shirts). The lettering “BTSPL” in the logo is more subtle on the dark color shirts than you’d think from the store, but I’m kind of into it. Other than that, they came out as good or better than I thought!

For the sticker, I went with the Die Cut version. It came a bit smaller than I expected, so I updated the design and it should be good to go!

One thing to note is that payments/orders/shipping/etc are all handled through Spring (the industry leader with this type of thing). Shipping can take a couple weeks (since it’s print to order), and customer service related to orders is handled by them exclusively.

Here are a couple pictures of the actual products:

Large Logo T-Shirt Large Logo, Long Sleeve T-Shirt Die Cut Pistol Box Sticker

If you’re interested in rocking some BullseyeTracker SWAG at the range (shirts, stickers, water bottles, etc), check out the store here.

For those interested in some baseball hats, unfortunately this is a thing where to get the quality I want I’d have to order in bulk. Shoot me a note if you’re interested (price will be around $30) and if I get enough orders, I’ll get some made up!

Accelerating Development

As the site has grown, so have a few other things:

  • The Amount of Code
  • The Number of Dependencies
  • The Amount of Information and Content users need to get up to speed

So within the next few releases there are going to be changes you notice, and changes you don’t.

For starters, Code volume. There’s a lot of code here, as I go I’m working on cleaning things up and promoting re-use. This will accelerate things by making the code easier to change and easier to debug. Add this to the “changes you won’t notice” column.

Second is Dependencies. Dependencies are great when you want to get something done fast. They’re not so great when all of a sudden you have to maintain/upgrade those dependencies, and reconcile the dependencies’ dependencies (which can conflict). This had made upgrading the underlying platform really time consuming (which is frustrating when you’d rather be building cool stuff). With this release I’ve removed 2 large dependencies (which actually translated to removing ~20 independently maintained libraries) by simply moving my “News and Updates” section to If you’ve bookmarked old links, don’t worry! I’ve set it up so they will redirect to the correct article in this new space automatically.

Finally, the site has grown to a point where it needs a proper “help” section. There are A LOT of features, settings, etc. As I onboard new leagues, the time I spend educating and answering questions is significant. Over the next few months I’m hoping to create a proper knowledge repository with how-to articles and videos, a more robust FAQs section, etc so customer support can become more “self service.” While this isn’t done yet, I’ve started researching my approach and outlining how things will be structured. Fewer “customer support” hours translates directly to more development hours!

Of course, I’ll continue to be as available as I am now in answering questions, etc - I just hope I can make things more obvious and easy to find, so that there are fewer questions for users to ask!

Bug Fixes

Recently squashed bugs:

  • Selects/Dropdowns on latest iOS
    • Menu dropdowns are still an issue and will be addressed in next release
  • Personal Best calculations incorrect when scores uploaded through BullseyeMatch
  • Error “You already have scores logged for this match” when score is zero
  • Tooltips on the team practice and match pages contain raw HTML
  • Weekly Stats tabs break after changing the week