GunSpec
Transparency

Data quality

This tab documents the quality programme behind the catalog: what every record is tested for, how those tests are defined, and what a passing result establishes. Results are published in three groups: each catalog in the database, the checks that read records and the sources they cite, and the systems built on the data. The calculations the checks rest on are set out on the Methods tab. This page explains how the pieces fit.

The current size of the programme, read live at page load. These counts describe how much is measured, not how good the data is. Each group's index carries its totals: checks holding, failing and skipped, records flagged, and review tasks open.

MeasureCurrent
catalogs measured
checks run
checks failing

A specification database is only suitable to build on when its completeness can be established rather than assumed. The programme is designed around four commitments.

  • Publish the report we act on internally. The same figures drive our own remediation queue, and the summary is served without an API key so the claim can be independently verified.
  • Report records rather than scores. A score indicates how far the data can be trusted. A list of identifiers tells an engineer or an automated process exactly what to correct. Every failure names the records responsible.
  • Preserve the distinction between unknown and false. A value nobody has established remains null rather than receiving a default, because a default converts an open question into a settled answer and the record is never revisited.
  • Report completeness and consistency separately. A combined index would allow a contradiction in the data to be offset by strong coverage elsewhere.

What is done to the catalogue, on a schedule and by hand, and where you can check each one yourself. None of it edits a record on its own: every automated step files a proposal or a plan, and a person decides.

PracticeWhat it doesWhere to check it
Record rulesEvery file is validated against its schema daily, no company may appear under two ids, and no firearm may carry fields that cannot all be true at once (a rimfire cartridge in a locked short-recoil action, a rail on a gun made before rails existed).Record checks
Checks against modelsA record's figures are held to models of the physics: what a magazine of rounds weighs, how dense a gun of its size and materials can be, the energy a bullet at a velocity carries, how far anything flies with no air. Each model's constants are quoted from a published source, and a figure outside its band is a finding for a person, never a correction.Plausibility checks
CorroborationA figure stated by one source is compared with an independent one. Agreement within the published tolerance is evidence; a disagreement is listed for a person to settle from a quoted source.Corroboration checks
Link checksEvery manufacturer website and every cited source is asked weekly whether it still answers and is still the page cited. Dead pages, parked or hijacked domains (casino and betting pages on lapsed maker domains) and moved sites are findings; a site that refuses an automated reader is counted as unverified, never as passing.Link checks
Archived copiesA source that no longer answers is replaced by its last Wayback Machine capture that answered 200, so the citation still shows what its author read. The capture keeps the original page's kind. A source the archive never captured is removed only where the record cites something else.provenance.sourceKinds[].archivedFrom
Manufacturers against WikidataEvery manufacturer is compared with Wikidata for its website, founding year, country and whether it still trades. A match is trusted only when Wikidata records the company making something and its country agrees; only empty fields are filled, and every disagreement goes to a person.Manufacturer checks
Source hierarchyEvery cited page is classed by what it is: the maker, a standards body, a government, a reference work, press, a retailer or a forum. Each maker's own website is known from its record. Sites the catalogue leans on that have no class yet are listed to be classified.Source checks provenance.sourceKinds
Cited from the makerA record citing a page on its own manufacturer's website (a page, not the front door, and never another maker's) carries the mark. Cited is not verified: the page may still disagree with a figure.Source checks provenance.makerSource
Verification against the maker's pageRedback, the data agent, reads a record's maker page and reports what it states for each figure, with the sentence it came from. A figure whose sentence is not on the page is dropped, the model is never shown our value, and agreement uses the published tolerances. Every task, what it proposed and the pages it read are published on the record.Redback provenance.checks
A person decidesNothing an agent or check proposes reaches a record until a person accepts it. An accepted verification lists the confirmed figures in verifiedFields; a figure the maker states differently is a correction for a person, never an automatic change.provenance.verifiedFields
Fitment scenariosThe compatibility engine is asked realistic questions with known answers on a schedule, and every fit it returns is held to rules about the whole catalogue.Fitment
Published, failures includedEvery run is published as it happened, and each is compared with the run before it, so a report says what was fixed, what is new and what is still open rather than a number that moved for reasons nobody wrote down.Records and sources index

Every catalog page applies the first two measures, in the same order. The record and source checks and the systems add four more, each asking a different question of the same data.

MeasureQuestionExample finding
What is missingWhether a value is present at all. Null and empty string are both treated as absent, so a column of blanks is never reported as complete.594 manufacturers hold no website. This is an outstanding gap rather than an error in the data.
What contradicts itselfWhether a statement the catalog makes contradicts another statement it makes.A company recorded as closing before it was founded, or a firearm attributed to a manufacturer the catalog does not hold.
PlausibilityWhether a record's figures could all be true at once, judged against a model of the physics: a loaded weight against its empty weight and a magazine of rounds, a weight against the gun's size and materials, a cartridge's energy against its bullet and velocity.A rifle's empty weight recorded as its loaded weight, so a full magazine appears to weigh nothing.
CorroborationWhether an independent source states the same figure. One source is a claim; two agreeing within tolerance is evidence.A barrel length that no second source repeats, or that a reference work states 15 percent differently.
ProvenanceWhere each figure comes from and whether that source still says it: the kind of source cited, whether the maker's own page states it, and whether the page is still there.A figure whose only citation is a retailer listing, or a maker domain that now serves a casino.
SystemsWhether what is built on the data answers correctly: the compatibility engine asked questions with known answers, and the API and MCP server held to their published contract.A rail optic reported to fit a gun with no rail, or an endpoint answering in a shape its reference does not describe.

The two are reported separately by design. A catalog can be 98 percent complete and still record a company as closing eleven years before it opened, and a single combined figure would move for only one of those conditions.

Results are published in three groups, as the sidebar lists them, so an assessment of one dataset does not require reading the others. Each group opens with an index: one table of everything in it, with what holds, what fails and what was skipped.

Database

Each catalog's own report: how full its fields are and whether its records contradict each other, read live from the database.

Records and sources

The suites that read every record and the sources it cites: rules, invented data, physical plausibility, cartridge arithmetic, materials, agreement between sources, source quality and dead links.

Records and sources indexEvery record and source suite on one table: checks holding, failing and skipped, findings, the methods each rests on and when it last ran.Record checksThe rules every record is held to: every file against its schema, no company under two ids, and no firearm carrying fields that cannot all be true.Integrity checksWhether a record could have come from a source or was filled in by a generator: figures cloned across makers, repeated filler sentences, impossible densities.Plausibility checksWhether a firearm's figures could all be true at once: loaded against empty weight, units, energy against velocity, variants against their family, physical bounds.Statistical anomaliesFigures unusually far from their family or from guns of the same kind, each one a figure to verify rather than one shown wrong.Cartridge checksWhether cartridges and loads agree with physics and with themselves: energy, pressure, sectional density and velocity worked from the record's own figures.MaterialsThe density every mass check reads, each quoted from a page that states it, and the records whose materials the registry cannot place.Corroboration checksEach firearm's figures compared with an independent source, agreeing within a published tolerance or listed for a person to settle.Source checksWhere each record's figures come from, measured on the source hierarchy: records citing the maker, the kinds of source cited, and sites not yet classified.Link checksWhether every published link still leads where it claims: dead pages, lapsed domains turned casino or parking page, and moved maker sites.Manufacturer checksEvery manufacturer held against Wikidata for website, founding year, country and whether it still trades, with every disagreement left to a person.

Systems

What is built on the data, tested on a schedule, and the agent that works the review queue the other pages fill.

A check that calculates is only as good as its model, and an answer the API works out is only as good as its formula. Each has a page on the Methods tab with its equations, the published figures a model was fitted to, the sources of every constant, and the checks or endpoints that use it. The evidence pages set out how sources are ranked and every reference the methods cite.

Cartridge massThe mass of one loaded round from its bullet and its case, fitted to cartridges whose mass a source states.Loaded weightHow much a full magazine should add to a gun's empty weight, and the test a record's two weights must pass.Apparent densityA gun's empty weight over its bounding box, judged against guns of the same category and frame material.Cartridge arithmeticEnergy, pressure, sectional density, calibre and velocity: the figures a cartridge record holds that must agree with one another.Physical boundsLimits no gun can break: how far a projectile can fly with no air, how fast a gun is pushed back by its bullet, and the order things happen in.Statistical anomaliesHow a figure is judged unusual for its kind: a robust score on logarithms against a family or a cohort of like guns, the figures it reads and the ones it leaves alone, and what a record may say to explain itself.TrajectoryHow the API flies a bullet: the drag it steps through, the air it flies in, how a drop becomes a path from the line of sight, and what it assumes.Ballistic figuresThe figures printed beside a trajectory: the effective range, and the energy, momentum, knock-out factor, sectional density, relative stopping power and energy density at the muzzle. How each is worked out, and which inputs a record may not hold.Similar firearmsHow the similar firearms answer is ranked: a weighted sum of what two guns share, each trait with a band for its whole weight and one for half, worked through on two real records.Name matchingHow a name becomes a record: the score the resolver gives each spelling it knows, when it answers, when it says the name is ambiguous, and the order search results come back in.Fitment engineHow the compatibility engine decides whether a part fits a gun: the order it asks in, the caliber gate, where a part may sit, one adapter at most, and how a fit's confidence is set.ComparisonsWhat the compare answers compute: the spread of each figure across the compared records, and the head-to-head's winner per figure, with the direction it treats as better stated as the choice it is.Load carriageWhat a foot march costs in energy carrying each firearm, its full magazines and its attachments on top of the rest of the kit, by two published load-carriage equations, and what those equations leave out.Free recoilHow fast, how hard and with how much energy a firearm free to move is pushed back by one shot, by the formula SAAMI publishes, and why without a powder charge the figure is a lower bound.Point-blank rangeThe furthest distance a bullet stays within a target's radius of the line of sight with no holdover, the zero that gives it, and how far the bullet stays supersonic, on the computed trajectory.Ammunition per kilogramRounds per kilogram of full magazines and what a weight budget holds, derived from the record, and a basic load's mass estimated by the fitted cartridge-mass model with its error as a range.Check thresholdsThe thresholds the record and source checks judge by: plausibility, integrity, manufacturers against Wikidata, corroboration and links. What each measures, where the line is, and what crossing it means.Material densitiesThe density of every material a mass check reads, each quoted from the page that states it.Sources and quotesHow a figure's evidence is ranked, how a reference work is followed to the pages it cites, and the quote every figure must carry.Source registryEvery site the catalogue cites, what kind of source it is and on what basis, and how many records cite it. Authorities carry the verified mark.ReferencesEvery page the methods take a figure from, numbered once, with what it supports.

Every check that rests on a method links to it from its own row, and every finding it raises carries the figures it read, so a reader can redo the arithmetic. A check marked as rules with no calculation holds a record to a stated rule and needs no model.

Each check returns one of three verdicts. None of them says anything about whether the values themselves are accurate.

ResultWhat it means
Passconfirms that no record in the catalog fails the check. It does not establish that the values are correct.
Failindicates that at least one record does, and the affected identifiers are listed alongside it. Failures are published rather than suppressed, and most warrant review before correction, since the check itself is sometimes the stricter of the two.
Skippedmeans the run could not ask the question: a plan it held no key for, a record the catalogue does not have yet, or a source that refused an automated reader. A skip is neither a pass nor a failure, and each page names what was skipped and why.

Coverage bars encode width only and carry no colour. Colour would grade a field as good or poor, and a description nobody has written yet is not a defect.

Every figure is read from the database when the page loads. The summary is public and needs no API key, so the claims on these pages can be verified directly. The two endpoints that return full identifier lists are the operational worklist and require an Enterprise plan. Each row links to its entry in the API reference.

EndpointPlanReturns
GET/v1/data/gapsPublicThe complete report: coverage for every tracked field, the verdict for every check, and up to five identifiers behind each failure.
GET/v1/data/gaps/historyPublicOne row per day from the daily snapshot: how many checks ran and failed, how many records were behind those failures, and weighted field coverage. This is how the figures above are judged over time.
GET/v1/data/gaps/recordsEnterpriseThe records missing a given field, returned as identifiers with pagination. This is the endpoint an automated pipeline consumes.
GET/v1/data/gaps/checks/{checkId}EnterpriseEvery identifier failing a given check, returned in full rather than as a sample.
GET/v1/data/coverageEnterprisePer-field completeness for each table as a single percentage. The same question the coverage tables above answer, in the shape a dashboard wants.
GET/v1/data/confidenceEnterpriseThe records whose confidence score falls below a threshold you set, so a sourcing run can start with the weakest.

The trend endpoint returns this. No key, no signup, no sales call.

GET /v1/data/gaps/history
json
{  "success": true,  "data": {    "days": 90,    "runs": [      {        "ranOn": "2026-09-15",        "ranAt": "2026-09-15 03:00:00",        "scope": "all",        "checksTotal": 8,        "checksFailing": 1,        "recordsFailing": 3,        "coveragePct": 62.4      }    ]  }}

Full reference, parameters and error responses

Nothing on this tab is a build time snapshot, so a record corrected today is reflected the next time the page is opened.

Firearms specification data is fragmented, inconsistently recorded and frequently contradictory across sources. Any catalog built from it has gaps. Publishing ours is a deliberate position, and it rests on four things.

  • The source material is the hard part. Specifications differ by year, factory, batch and market; manufacturers retire pages; importers and retailers restate figures they did not measure. A catalog that claimed to be complete would be describing a body of data that does not exist in that form.
  • A vendor who will not say what is missing is not a vendor without gaps. Every dataset in this field has them, so the difference between suppliers is whether you find out before you build or afterwards.
  • Every figure on these pages is served by a public endpoint. You can fetch the same report we act on, disagree with it, and hold us to it, without an account and without asking.
  • The snapshot is daily and the history is published with it, so the claim is not that the data is perfect today. It is that the direction is visible and on the record.
  • A filled field is not necessarily a correct one. Coverage records whether a value is present, never whether it is accurate. A firearm with the wrong founding year is counted as fully covered.
  • These checks find records that disagree with each other. A record that is confidently, consistently wrong passes every one of them.
  • Whether a cited website still resolves is not part of a catalog's report. The link checks ask every published link weekly, and their results are on their own page.
  • These figures are our own measurement of our own data and do not constitute a third party audit. The endpoints behind them are public so that the results can be verified rather than accepted.