How our data works
Sources {#sources}
- Prices and stock come only from affiliate network APIs and datafeeds (AvantLink first, once approved), or from rows the operator enters by hand with a source link and check date. We do not scrape retailer websites.
- Specs come from manufacturer spec pages. Each value links to the page it came from.
- Range data comes from each range’s own website or posted rules. Each field links to its source.
- Shipping policies come from each retailer’s published policy page. They are retailer policies, not legal advice.
Refresh schedule {#refresh}
Prices refresh at least once a day. If a refresh fails, the site keeps the last good data and does not publish a new build. Any price or stock row older than 48 hours is hidden, both when the site is built and again in your browser when the page loads. Range and spec data is re-checked on a rolling basis; each value shows the date it was checked.
Price per round
price per round = listed price / rounds in the package, stored to $0.001 and shown to the cent. Prices exclude shipping and tax unless a row says otherwise.
Parsing and validation {#validation}
We read caliber, grain, bullet type, case material and round count from the feed’s structured fields when they exist, and from the listing title when they don’t. Multi-box titles (“20/box x 10 boxes”) are multiplied out. Every parse gets a confidence score; anything ambiguous scores under 0.9 and is not shown.
A row is shown only when it is in stock, has a round count, has a confidence of 0.9 or more, is not flagged as an outlier, and was checked within 48 hours. Rows that fail validation are logged and never shown. Gear prices are matched to products by UPC or manufacturer part number only; title-only matches are never shown.
Outliers
A row is flagged as an outlier when its price per round is below 40% or above 300% of the caliber's trailing 30-day median. Until 30 days of history exist, we use a fixed sanity range per caliber:
- 9mm: $0.12 to $1.50 per round
- .223 / 5.56: $0.25 to $2.00 per round
- .22 LR: $0.03 to $0.40 per round
- 12 Gauge: $0.20 to $3.00 per round
- .380 ACP: $0.18 to $1.60 per round
- .45 ACP: $0.25 to $2.00 per round
- .308 / 7.62x51: $0.45 to $3.50 per round
- 7.62x39: $0.25 to $1.50 per round
- .40 S&W: $0.20 to $1.60 per round
- .300 Blackout: $0.45 to $3.00 per round
Price drops
A listing is a price drop when today's price per round is at least 15% below its own 30-day median and we hold at least 14 days of history for it.
Ranking formulas
Ranked pages use a value score from 0 to 100: the sum of weight x factor, where each factor is scaled from 0 (worst on that page) to 1 (top on that page). To be ranked, a product needs every required spec with a source and current prices from at least 2 merchants. Ties go to the lower price.
Pistol red dots
- Lowest current price (price): weight 0.4, lower is better
- Rated battery life (Battery life): weight 0.35, higher is better
- Weight (Weight): weight 0.25, lower is better
Low-power variable optics
- Lowest current price (price): weight 0.4, lower is better
- Maximum magnification (Max magnification): weight 0.3, higher is better
- Weight (Weight): weight 0.3, lower is better
Weapon lights
- Lowest current price (price): weight 0.3, lower is better
- Rated lumens (Lumens): weight 0.25, higher is better
- Rated candela (Candela): weight 0.25, higher is better
- Rated runtime (Runtime): weight 0.1, higher is better
- Weight (Weight): weight 0.1, lower is better
Electronic hearing protection
- Lowest current price (price): weight 0.4, lower is better
- Noise Reduction Rating (NRR): weight 0.4, higher is better
- Rated battery life (Battery life): weight 0.2, higher is better
Gun safes
- Lowest current price (price): weight 0.4, lower is better
- Manufacturer long-gun capacity (Long-gun capacity): weight 0.3, higher is better
- Body steel gauge (lower is thicker) (Steel gauge): weight 0.3, lower is better
Shot timers
- Lowest current price (price): weight 0.5, lower is better
- Shot memory (Shot memory): weight 0.3, higher is better
- Weight (Weight): weight 0.2, lower is better
Price history
Each day (Central time) we store the price of every displayable listing and the lowest and median price per round for each caliber.
Required specs
- Pistol red dot: Footprint, Dot size, Battery type, Battery life, Weight
- Rifle red dot: Dot size, Battery type, Battery life, Weight, Mount included
- LPVO: Max magnification, Objective, Tube, Focal plane, Weight
- Red dot magnifier: Magnification, Flip mount included, Weight
- Backup iron sights: Sight height, Co-witness, Material, Weight
- Pistol light: Lumens, Candela, Battery type, Runtime, Weight
- Rifle light: Lumens, Candela, Battery type, Runtime, Weight
- Electronic earmuff: NRR, Battery type, Battery life, Weight
- Passive ear protection: NRR, Style, Reusable
- Shooting glasses: ANSI marking, Lens tint, Weight
- Quick-access handgun safe: Lock type, Handgun capacity, Steel gauge, Weight
- Vehicle gun safe: Lock type, Mount type, Steel gauge, Weight
- Gun safe: Long-gun capacity, Steel gauge, Lock type, Weight
- Safe dehumidifier: Power type, Coverage
- Snap caps: Caliber, Material, Pack count
- Shot timer: Shot memory, Connectivity, Battery type, Weight
- Dry-fire system: System type, Platform, Caliber options
- Steel target: Steel grade, Thickness, Weight, Target shape
Ranges
Every range field links to the page we read it from, with the date we checked it. "Unknown" means no published source; we never infer a policy. A range counts as verified when its oldest field check is within 180 days.
Shipping policies
Each cell is the retailer's own published policy for that state, linked to the policy page, with the date we checked it. It is not legal advice.
When a page is published for search
A data page is open to search engines only when it has enough data: for example, an ammo table needs at least 8 listings from 3 merchants checked within 24 hours, and a price history page needs 30 days of snapshots. No more than 5 new pages open each week.
Affiliate links and sponsorship {#money}
RangeRegistry earns a commission when you buy through some links, and some placements are paid and labeled Sponsored. Neither affects our sorting, rankings, or data. Sponsored placements sit in their own labeled box, outside every ranked table, and automated tests check on every build that sort order and scores are identical with and without sponsors.
Automation {#automation}
Data is collected and checked by automated systems operated by Spartan Alliance Group LLC. “RangeRegistry Data Desk” is the name of that editorial process, not a person.
Corrections {#corrections}
Every data page has a “Report a data error” link. Confirmed corrections are applied at the next refresh and listed on the corrections log. Range owners can submit corrections to their listing the same way.