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": 446,          "dropCm": 2.6        },        {          "distanceM": 50,          "velocityMps": 313,          "energyJ": 393,          "dropCm": 11        }      ],      "energyAtFarthestJ": 393,      "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": 304,          "energyJ": 404,          "dropCm": 3.2        },        {          "distanceM": 50,          "velocityMps": 293,          "energyJ": 377,          "dropCm": 13.3        }      ],      "energyAtFarthestJ": 377,      "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": 181,      "trajectory": [        {          "distanceM": 0,          "velocityMps": 347,          "energyJ": 485,          "dropCm": 0        },        {          "distanceM": 25,          "velocityMps": 322,          "energyJ": 417,          "dropCm": 2.8        },        {          "distanceM": 50,          "velocityMps": 304,          "energyJ": 371,          "dropCm": 11.8        }      ],      "energyAtFarthestJ": 371,      "dropAtFarthestCm": 11.8    }  ],  "leaders": {    "mostEnergyAtFarthest": {      "id": "federal-hst-124jhp",      "name": "Federal Premium HST 124gr JHP",      "energyJ": 393    },    "flattest": {      "id": "federal-hst-124jhp",      "name": "Federal Premium HST 124gr JHP",      "dropCm": 11    }  }}

    Captured from the live API on Sep 17, 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

NameTypeDescription
caliber_id (required)stringThe caliber slug, e.g. "9x19mm-parabellum".
barrel_length_mmintegerBarrel length for every load, in mm (50 to 2000). Omit for each load's reference barrel.
50 to 2000
distancesinteger[]Distances in metres. Defaults to 0, 100, 200 and 300.
bullet_typestringReturn only loads of this bullet type, e.g. "JHP" or "FMJ".
limitintegerNumber of loads to compare, from 1 to 8.
1 to 8

Default: 5