GunSpec

All 5 workflows

Compare loads downrange

  • gunspec_load_compare
  • Builder
  • Up to 9 requests
  • Read-only

Workflow. Compares the ammunition loads for one cartridge fired from the same barrel, in a single call. Returns velocity, energy and drop at each distance for every load, ranked by energy at the farthest distance. The flattest and hardest-hitting loads are identified. Provide the caliber slug (use gunspec_cartridge_profile or gunspec_list_calibers to find it) and, optionally, a barrel length, distances, a bullet type and the number of loads. Replaces one ammunition list call plus one ballistics call per load.

Example usage

  1. 1

    A person asks

    • Compare three 9mm loads from a 114 mm barrel at 0, 25 and 50 metres.
  2. 2

    The assistant calls the tool

    tools/call
    json
    {  "name": "gunspec_load_compare",  "arguments": {    "caliber_id": "9x19mm-parabellum",    "barrel_length_mm": 114,    "distances": [      0,      25,      50    ],    "limit": 3  }}
  3. 3

    The server answers

    Result
    json
    {  "caliberId": "9x19mm-parabellum",  "distancesM": [    0,    25,    50  ],  "loads": [    {      "id": "federal-hst-124jhp",      "name": "Federal Premium HST 124gr JHP",      "bulletType": "JHP",      "bulletWeightG": 8.04,      "barrelLengthMm": 114,      "muzzleVelocityMps": 359,      "muzzleEnergyJ": 518,      "effectiveRangeM": 185,      "trajectory": [        {          "distanceM": 0,          "velocityMps": 359,          "energyJ": 518,          "dropCm": 0        },        {          "distanceM": 25,          "velocityMps": 333,          "energyJ": 445,          "dropCm": 2.6        },        {          "distanceM": 50,          "velocityMps": 312,          "energyJ": 392,          "dropCm": 11        }      ],      "energyAtFarthestJ": 392,      "dropAtFarthestCm": 11    },    {      "id": "hornady-critical-duty-135",      "name": "Hornady Critical Duty 135gr FlexLock",      "bulletType": "FlexLock",      "bulletWeightG": 8.75,      "barrelLengthMm": 114,      "muzzleVelocityMps": 316,      "muzzleEnergyJ": 438,      "effectiveRangeM": 178,      "trajectory": [        {          "distanceM": 0,          "velocityMps": 316,          "energyJ": 438,          "dropCm": 0        },        {          "distanceM": 25,          "velocityMps": 303,          "energyJ": 403,          "dropCm": 3.2        },        {          "distanceM": 50,          "velocityMps": 293,          "energyJ": 375,          "dropCm": 13.3        }      ],      "energyAtFarthestJ": 375,      "dropAtFarthestCm": 13.3    },    {      "id": "adi-world-class-124jhp",      "name": "ADI World Class 124gr JHP",      "bulletType": "JHP",      "bulletWeightG": 8.04,      "barrelLengthMm": 114,      "muzzleVelocityMps": 347,      "muzzleEnergyJ": 485,      "effectiveRangeM": 180,      "trajectory": [        {          "distanceM": 0,          "velocityMps": 347,          "energyJ": 485,          "dropCm": 0        },        {          "distanceM": 25,          "velocityMps": 322,          "energyJ": 416,          "dropCm": 2.8        },        {          "distanceM": 50,          "velocityMps": 303,          "energyJ": 369,          "dropCm": 11.8        }      ],      "energyAtFarthestJ": 369,      "dropAtFarthestCm": 11.8    }  ],  "leaders": {    "mostEnergyAtFarthest": {      "id": "federal-hst-124jhp",      "name": "Federal Premium HST 124gr JHP",      "energyJ": 392    },    "flattest": {      "id": "federal-hst-124jhp",      "name": "Federal Premium HST 124gr JHP",      "dropCm": 11    }  }}

    Captured from the live API on Oct 22, 2026.

Steps

The requests this workflow makes, in order. If your plan does not include an optional step, that step is omitted and listed under gaps in the response, together with the plan it requires.

  1. 1

    List ammunition loads

  2. 2

    Compute a ballistic table

  3. One response

    The workflow combines up to 9 requests into a single response for the assistant.

Arguments

  • stringrequired

    The caliber slug, e.g. "9x19mm-parabellum".

  • integer

    Barrel length for every load, in mm (50 to 2000). Omit for each load's reference barrel.

    Range
    50 – 2000
  • integer[]

    Distances in metres. Defaults to 0, 100, 200 and 300.

  • string

    Return only loads of this bullet type, e.g. "JHP" or "FMJ".

  • integerdefault5

    Number of loads to compare, from 1 to 8.

    Range
    1 – 8
json