Ballistics Calculator — Operator's Guide
Version: 1.1 | Last updated: 2026-04-03 Platform: iOS / iPadOS / macOS (Catalyst) / Apple Watch Distribution: US App Store only (pending ITAR/EAR review) Age Rating: 17+
Independently Verified Physics
Every ballistic solution in this app has been validated against JBM Ballistics reference data — the gold standard in exterior ballistics. A 96-test physics suite covers all 4 solvers (3DOF, 4DOF, 6DOF, Pejsa), 8 drag models (G1, G2, G5, G6, G7, G8, GL, GS), and 6 correction factors (spin drift, Coriolis, aerodynamic jump, Magnus effect, cant angle, and zero atmosphere BC correction). Multiple calibers (.308 175gr SMK, 6.5CM 140gr ELD-M, .223 77gr TMK, .338LM 300gr SMK) are tested from 100 to 1,500 yards. When you pull a firing solution from this app, the math behind it has been proven against an independent reference — not just tested against itself.
Table of Contents
- Introduction
- Getting Started
- Navigation
- Calculator
- Profiles and Databases
- Analysis Tools
- Field Tools
- PRS / Competition
- Hunting
- Law Enforcement / SWAT
- Military
- TAK Integration
- Sensor Integration
- Bluetooth Devices
- Export and Sharing
- Reticle Tools
- Inventory and Maintenance
- Settings and Preferences
- Apple Watch
- Widgets and Live Activities
- In-App Purchase
- Troubleshooting
- Appendices
1. Introduction
Ballistics Calculator is a professional-grade exterior ballistics engine for iOS, iPadOS, macOS, and Apple Watch. It is designed for long-range precision rifle shooters, competitive shooters (PRS/NRL), hunters, law enforcement precision marksmen, and military personnel who need accurate, field-deployable firing solutions.
What the App Does
At its core, the app numerically integrates the equations of motion for a projectile traveling through a moving atmosphere. From a muzzle velocity, ballistic coefficient or custom drag curve, and environmental conditions, it computes:
- Elevation and windage corrections at any distance
- Time of flight, remaining velocity, and remaining energy
- Spin drift, Coriolis deflection, aerodynamic jump, and cant error
- Transonic and subsonic crossing points
Beyond the ballistic engine, the app ships a comprehensive suite of range, analysis, field, competition, hunting, law enforcement, and military tools — all integrated into a single application that works fully offline.
Who It Is For
- Precision rifle competitors (PRS, NRL, F-Class) — stage planners, wind bracketing, competition mode, DA range cards, match score tracking
- Long-range hunters — ethical shot distance, shot placement overlays, vital zone presets, shooting light calculator
- Law enforcement / SWAT snipers — glass deflection, barrier penetration, precision offset / hold-off, cold bore tracking, NV/IR zero profiles
- Military personnel — mil relation, range estimation, wind estimation training, anti-materiel data, spotter/shooter call, DOPE book, DA Form 5517, MGRS, TAK integration
- Reloaders and gunsmiths — chrono string analysis, load development (ladder + group), recoil calculator, barrel harmonics, muzzle blast estimation
- Airgunners — dedicated pellet and slug database with 674 entries
Supported Platforms
| Platform | Support Level |
|---|---|
| iPhone (iOS 17+) | Full feature set |
| iPad (iPadOS 17+) | Full feature set, larger layout |
| Mac (macOS 14+ via Catalyst) | Designed-for-iPad mode |
| Apple Watch | QuickCalc, WindCall, synced range card |
Important Disclaimer
All ballistic solutions are mathematical approximations. Physical variables including lot-to-lot velocity variation, actual drag behavior, barrel fouling, and real-world atmospheric gradients will cause results to differ from computed values. Always verify solutions in the field before relying on them operationally. The app displays this disclaimer on every results view.
2. Getting Started
First Launch
The very first time you open Ballistics Calculator, the app presents a full-screen End User License Agreement (EULA). You must scroll to the bottom before the Accept button becomes active. This gate cannot be bypassed. If you decline, the app exits.
The EULA covers:
- Terms of Service
- Privacy Policy (location, Bluetooth, WeatherKit disclosures)
- Export Control Notice (ITAR/EAR)
- Professional Use Warning
- TAK Integration Disclaimer
- Mathematical accuracy disclaimer
EULA / Legal Acceptance screen with scroll-to-bottom requirement
Onboarding Tour
After accepting the EULA, the app launches an 8-page onboarding tour. Each page introduces a core capability:
- Welcome — App overview, "160+ Features & Tools" callout, and "Verified against JBM Ballistics" badge
- Professional Grade — Solver depth, four integrated engines, corrections list
- Connected Ecosystem — Bluetooth devices, WeatherKit, GPS, barometer
- Field Ready — HUD mode, competition mode, quick solve, target list
- Always Improving — iCloud sync, manual JSON backup, diagnostics
- Built for Speed — Tab customization, search, quick solve
- TAK Integration — CoT fire solutions, position reports, encrypted storage
- Get Started — First profile setup prompt
You can skip the tour and replay it any time from Settings → Onboarding.
Physics Verification
The ballistic engine has been independently verified against JBM Ballistics reference data using a 96-test physics suite covering all 4 solvers, 8 drag models, and 6 correction factors (spin drift, Coriolis, aerodynamic jump, Magnus effect, cant angle, and zero atmosphere BC correction). A verification badge is displayed on the Welcome onboarding page and in the More menu under "Physics Verified."
Onboarding page 1 — Welcome screen
Creating Your First Rifle Profile
After the onboarding tour, the app automatically presents the first-profile setup sheet if no profiles exist. To set up a profile:
- Enter a name for your rifle (e.g., "Ruger Precision 6.5 CM")
- Select caliber
- Enter barrel length, twist rate, and twist direction (right/left)
- Enter scope sight height above bore (in inches or millimeters)
- Set your zero range and conditions (temperature, pressure, altitude at time of zeroing)
- Configure scope click value (0.1 MRAD, 0.25 MOA, etc.)
You can use the built-in Barrel/Twist Database (110 entries) to auto-fill twist rate and barrel length from a manufacturer list.
Then add a load to the profile:
- Enter bullet weight and select drag model (G1, G2, G7, etc.)
- Enter ballistic coefficient for that drag model, or select a bullet from the 5,670-entry Bullet Database to auto-fill
- Enter muzzle velocity (fps or m/s)
- Optionally enter temperature sensitivity (fps per 10°F change) and a reference temperature
Once a profile and load exist, the calculator is ready to use.
Profile Editor with Rifle and Load fields
3. Navigation
Tab Bar
The tab bar contains five positions: the first (Calculate) and last (More) are fixed and cannot be moved or removed. The three middle slots are fully customizable.
Default tab configuration:
- Calculate (fixed)
- Profiles
- Range Card
- Log
- More (fixed)
Tab bar showing default configuration
Customizing the Tab Bar
Navigate to Settings → Tab Bar (or long-press any middle tab) to open Tab Customization.
- Add a tab — Tap any item in the Available list to pin it to the middle slots
- Remove a tab — Swipe left on a middle tab, or tap the minus button
- Reorder — Drag the handle on the right of any middle tab
- Search — Use the search bar at the top to find any of the 30+ available features
The Available list is grouped by category (Field Tools, Analysis, PRS Competition, Military/TAK, Hunting, Databases, Inventory, Tools) matching the More menu structure.
Maximum of 3 customizable middle tabs. All features are always accessible via More regardless of tab configuration.
Tab Customization view with grouped sections
More Menu
The More menu is the escape hatch to every feature not currently pinned to the tab bar. It is organized into sections:
- Recent — The last items you visited (stored across sessions)
- Field Tools — HUD Mode, Competition Mode, Quick Solve, Target List, Wind Compass, Wind Bracketing
- Ballistic Analysis — All analysis tools
- Verification — Truing, BC Back-Calc, Turret Tracking Test, Sight-In Assistant, Chrono String
- PRS Competition — Stage Planner, Match Score, Data Book, DA Range Cards, Session Tracker
- Military / TAK — All military and TAK views
- Hunting — Ethical Shot, Shot Placement, Shooting Light
- Databases — Bullet, Pellet, Cartridge, Barrel/Twist, Target Library, Reticle Library
- Inventory — Ammo, Barrel Life, Scope Click Tracking
- Tools — Recoil, Glass Deflection, Barrier Penetration, Reticle Creator, and more
- Settings — App settings shortcut
Search in More: A search bar at the top of More lets you type any feature name and jump to it directly. Results update in real time. When search is active, a flat "Results" section replaces the grouped layout.
More menu showing grouped sections
Global Search
A searchable index of 70+ screens is accessible from the magnifying glass button in the toolbar of every tab — not just the More menu. The index is grouped into 14 categories (Calculator, Field Tools, Analysis, Verification, PRS, Military, TAK, Hunting, Databases, Inventory, Tools, Maps, Devices, Settings) and includes a one-line description of each screen.
Type any keyword to filter results in real time. Tap any result to navigate directly. When the search field is empty, the full grouped browse is shown.
Access: Tap the magnifying glass icon in any tab's toolbar
4. Calculator
The Calculator is the app's primary screen and entry point. It is organized as a single vertical scroll containing all inputs, followed by the Calculate button and results. After the first solve, input sections collapse automatically and the view scrolls to the results.
Input Sections
The calculator is divided into six collapsible input sections. Tap the section header to expand or collapse any section. All sections collapse after the first solve.
4.1 Rifle / Load
- Profile picker — Select the active rifle profile. The current profile name and load are shown in the header.
- Load picker — If a rifle has multiple loads, switch between them with a quick-pick sheet.
- Zero picker — Select from saved named zeros. Each zero stores its own atmospheric conditions.
- Zero mode — Switch between Day, Night Vision, and IR Laser zero configurations. Separate correction outputs are generated for each mode.
Long-press any field to see a contextual help tooltip explaining its purpose and units.
Rifle/Load section with profile and zero pickers
4.2 Target
- Distance — Range to target in yards, meters, or feet
- Max range — Furthest distance in the trajectory table
- Increment — Table step size (e.g., every 25, 50, or 100 yards)
4.3 Atmosphere
- Temperature — Ambient air temperature in °F or °C
- Pressure — Station pressure or sea-level pressure in inHg, hPa, or mmHg
- Humidity — Relative humidity in percent (affects air density via vapor pressure)
- Altitude — Station altitude in feet or meters
- Density Altitude — Toggle to enter DA directly instead of temp/pressure/altitude. The app reverse-computes the equivalent temp/pressure via the ICAO standard atmosphere lapse rate and always displays the computed DA for reference.
- Atmosphere Presets — Tap the preset icon to save or recall named atmospheric conditions (e.g., "Sea Level Summer", "High Desert 5000 ft")
- WeatherKit — Tap the weather icon to fetch current conditions at your GPS location. Uses WeatherKit with a UserDefaults cache as fallback if the entitlement is unavailable or offline.
- Barometer auto-fill — Tap the barometer icon to read the device's built-in pressure sensor (CMAltimeter) directly into the pressure field.
Atmosphere section with DA toggle and WeatherKit button
4.4 Wind
- Wind speed — In mph, km/h, or m/s
- Wind direction — Clock-position (12 o'clock = headwind, 3 o'clock = full-value crosswind right) or compass bearing
- Wind compass picker — Tap the compass icon to open a drag-and-drop compass rose UI. Drag the wind vector to the desired direction; clock position and MPH are shown in real time.
- Multiple wind segments — Add additional wind layers for different ranges. Each segment has its own speed, direction, and start range. The solver interpolates between segments.
- Wind bracketing — Enter a minimum and maximum wind speed to compute a hold range band. The corrections summary displays the low-wind and high-wind holds, with the band shown in orange. Useful for pre-staging holds when wind is variable.
4.5 Advanced Inputs
- Muzzle velocity — Override the profile's MV for this solve only
- Temperature sensitivity — Automatically adjusts MV based on the difference between ambient temperature and the reference temperature stored in the load
- Cant angle — Scope tilt in degrees. Can be entered manually or captured live from the phone's IMU via the Can Capture Sheet (tap the gyroscope icon). The solver applies a 2D rotation to the drop/windage output vector.
- Inclination — Angle to target in degrees (positive = uphill, negative = downhill). Uses exact gravity-vector rotation rather than the cosine approximation.
- Latitude — Required for Coriolis and Eotvos corrections. Tap the GPS icon to auto-fill from device location, or tap the map icon to pick a location on a map.
- Azimuth — Compass heading to target. Required for Coriolis. Auto-filled from GPS compass.
- Solver — Choose 3DOF (standard), 4DOF (spin rate tracked), 6DOF (full rotational dynamics), or Pejsa (fast analytical). See Section 23 for solver comparison.
- Zero offset — Vertical and horizontal MOA offsets applied to all four solvers. Used for cold bore shift, suppressor POI change, or NV laser offset.
- Turret tracking — Enter your scope's actual tracking percentage (e.g., 97%) if it does not track perfectly. All click outputs are scaled accordingly.
Advanced Inputs section with cant, latitude, azimuth, and solver fields
4.6 Corrections Summary
After tapping Calculate, the corrections summary appears at the top of the results section showing:
- Elevation correction (MOA, MIL, or clicks at your configured click value)
- Windage correction (MOA, MIL, or clicks)
- Wind bracketing band (orange, when enabled)
- Speed of sound for current conditions and the bullet's Mach number
- Transonic/subsonic warning if the bullet crosses Mach 1.2–0.8 before reaching the target
- Mathematical accuracy disclaimer
Quick Action Buttons
Immediately below the corrections summary, quick action buttons provide fast access to field modes:
- HUD Mode — Opens full-screen green-on-black night-vision display
- Competition Mode — Opens landscape PRS/NRL view
- Field Mode — Opens glove-friendly roller-picker quick-solve interface (see Section 7.3)
- Target List — Opens multi-distance hold table
- Come-Up Card — Opens print/share options for the current solution
Suppressor Quick Toggle
When a rifle profile has an attached suppressor, a toggle button appears above the Quick Actions. One tap switches between suppressed and unsuppressed fire:
- ON: Applies the suppressor's vertical and horizontal POI shift to the zero offset, and adds the suppressor length to the barrel length. The solution re-solves automatically.
- OFF: Reverts to the original zero offset and barrel length. Re-solves automatically.
To attach a suppressor to a rifle, go to the rifle profile editor and select a suppressor from your saved suppressor profiles (More → Inventory → Suppressor Profiles). The attachment is stored per-rifle, so different rifles can have different suppressors. The toggle state persists between sessions.
Trajectory Table
Below the quick actions, the full trajectory table shows each range step with:
| Column | Description |
|---|---|
| Range | Distance in configured unit |
| Drop | Elevation correction (MOA, MIL, or inches) |
| Windage | Lateral correction (MOA, MIL, or inches) |
| Velocity | Remaining bullet velocity |
| Energy | Remaining kinetic energy in ft-lbs or joules |
| TOF | Time of flight in seconds |
| Mach | Bullet Mach number; color-coded (green = supersonic, yellow = transonic, red = subsonic) |
Transonic and subsonic rows are highlighted. The table is scrollable and can be exported as PDF, CSV, or XLS.
| Range | Drop | Wind | Vel | Energy | TOF | Mach |
|---|---|---|---|---|---|---|
| 100 | 0.0 | 0.3 | 2,548 | 2,569 | .113 | 2.19 |
| 300 | 4.1 MOA | 0.9 | 2,198 | 1,909 | .361 | 1.89 |
| 500 | 8.8 MOA | 1.7 | 1,887 | 1,406 | .645 | 1.62 |
| 800 | 18.1 MOA | 3.2 | 1,472 | 857 | 1.12 | 1.27 |
| 1000 | 26.5 MOA | 4.8 | 1,248 | 616 | 1.51 | 1.08 |
| 1100 | 32.8 MOA | 6.4 | 1,062 | 447 | 1.77 | 0.91 |
Trajectory Charts
Tap the Charts button to see graphical plots of:
- Drop — Elevation correction vs. range
- Velocity — Remaining velocity vs. range
- Energy — Remaining energy vs. range
- Windage — Lateral correction vs. range
Charts are built with Apple's Swift Charts framework. Pinch to zoom any chart. Tap a data point to see exact values.
Reticle Holdover Overlay
Below the trajectory charts, the Reticle Holdover section renders a visual MIL or MOA grid with color-coded dots at each range step showing the bullet's holdover and windage position relative to the crosshair.
- Color coding — Green = supersonic, yellow = transonic, red = subsonic
- Pinch to zoom — Scale the overlay to match your reticle magnification
- Pan gestures — Move the view to inspect any part of the trajectory
- Collapsed by default — Tap the section header to expand. Useful to show during holds verification, not needed for every solve.
Saved Calculations
Every time you tap Calculate, the full solve — including all inputs, solver config, and results — is saved automatically. To access saved calculations:
- Tap the history icon in the calculator navigation bar
- Browse or search past calculations
- Tap any entry to view details
- Star an entry to mark it as a Favorite
- Tap Restore to load a past calculation's inputs back into the calculator
Saved Calculations list with favorites starred
5. Profiles and Databases
Rifle Profiles
A rifle profile is the primary organizational unit in the app. Each profile stores:
- Name and caliber designation
- Barrel length and material
- Twist rate and twist direction (right/left-hand)
- Scope sight height above bore centerline
- Zero range and the atmospheric conditions present when zeroed
- Scope click value (0.1 MRAD, 0.25 MOA, 1/4 MOA, 1 cm at 100m, etc.)
- Scope make, model, and magnification range
- Notes field
Navigation: More → Profiles, or the Profiles tab (if pinned)
Profile list showing multiple rifles
Multiple Loads per Rifle
Each rifle profile can have any number of saved loads. Loads store:
- Bullet description and drag model
- Ballistic coefficient (single value or multi-step velocity-bracketed BC)
- Muzzle velocity at a reference temperature
- Temperature sensitivity (fps per 10°F or °C change)
- Powder charge, primer, case — for your records
- Notes
Switch loads in the Calculator via the Load Picker in the Rifle/Load section.
Multiple Zeros per Rifle
Each rifle profile supports multiple named zeros. Each zero stores:
- Zero distance
- The full atmospheric conditions present at time of zeroing (temperature, pressure, humidity, altitude)
- A name (e.g., "100 yd summer", "200 yd winter mountain")
Switch zeros in the Calculator via the Zero Picker. When you switch zeros, the atmospheric reference conditions update automatically. This ensures the solver accounts for the difference between your zeroing conditions and current field conditions.
Zero Modes: Day / Night Vision / IR Laser
Each profile supports three independent zero configurations:
- Day — Standard optical zero
- Night Vision — Separate hold data for NVG-equipped setups where the point of impact shifts due to a different zero distance or parallax offset
- IR Laser — Zero data for IR illuminator/designator use
Switch between modes using the Zero Mode Picker in the Calculator's Rifle/Load section. The corrections summary shows the appropriate holds for the selected mode.
Vital Zone Presets
Fifteen built-in presets define target vital zone diameters for use with MPBR, WEZ, and Ethical Shot Distance calculators:
Big Game:
- Whitetail Deer (8" vitals)
- Elk / Wapiti (12" vitals)
- Moose (14" vitals)
- Bear (10" vitals)
- Pronghorn (6" vitals)
- Caribou (10" vitals)
- Mule Deer (8" vitals)
Varmint:
- Prairie Dog (2" vitals)
- Coyote (4" vitals)
- Groundhog (3" vitals)
Steel:
- IPSC A-Zone (6" x 11")
- IPSC C-Zone (full plate)
- USPSA A-Zone
- NRL Hunter 6" Plate
- NRL Hunter 4" Plate
Vital Zone Preset picker
Bullet Database (5,670 Entries)
The bullet database is a searchable reference of production bullets with manufacturer-published ballistic data. Fields per entry: manufacturer, product line, caliber, weight, diameter, BC (G1 and/or G7), and sectional density.
Coverage includes: Hornady ELD-X, ELD-M, A-MAX, SST; Berger Hybrid, VLD, Juggernaut; Sierra MatchKing, TigerMaestro, GameKing; Nosler AccuBond, RDF, Ballistic Tip; Barnes TTSX, LRX, TSX; Lapua Scenar, Scenar-L, OTM; Federal, PMC, and additional manufacturers. Recent additions include 6mm ARC, 6.8 Western, and 350 Legend optimized projectiles.
Auto-fill: When browsing the bullet database, tap any entry to auto-fill weight, drag model, and BC into the active load editor.
Navigation: More → Bullet Database
Bullet database search with manufacturer filter
Pellet Database (674 Entries)
A dedicated database for airgun pellets and slugs. Entries include manufacturer, product line, caliber (typically .177, .22, .25, .30, or .35), weight in grains, head diameter, and BC where published.
Coverage: H&N, JSB, Crosman, RWS, NSA, FX Airguns, Air Venturi, Beeman, Gamo, AEA, Hammer, Predator, Daystate, and more.
Navigation: More → Pellet Database
Cartridge Database
A reference database of standard cartridge specifications: case length, bullet diameter, SAAMI maximum pressure, typical bullet weight ranges, and common applications. Used for quick reference when setting up a new profile.
Navigation: More → Cartridge Database
Barrel / Twist Database (110 Entries)
110 rifle entries from 27 manufacturers with factory-specified twist rates and barrel lengths. Auto-fill into the profile editor to quickly populate twist rate when you know your exact rifle model.
Navigation: More → Barrel/Twist Database
Barrel/Twist browser with manufacturer filter
Reticle Library (402 Reticles)
A visual reference library of 402 reticles across 25 manufacturers (including Elcan, ZCO, Tangent Theta, Hensoldt, IOR Valdada, Swarovski). Each entry shows the reticle name, manufacturer, subtension specification, and a rendered preview image.
Navigation: More → Reticle Library
Use the Reticle Library to identify an unknown reticle, verify subtensions before applying holds, or select a reticle for use in the Reticle Simulator.
Reticle library grid showing reticle thumbnails
Custom Drag Curves
For bullets with published Cd vs. Mach data (or from radar testing), you can define a custom drag curve instead of using a G-function approximation.
Visual drag curve editor: A live chart with draggable Cd/Mach handles. Drag any handle to adjust the curve at that Mach number. The solver immediately uses the modified curve. Supports JSON import/export.
Text import: Import drag curves in JBM CSV format, tabulated Cd-vs-Mach text format, or Lapua Doppler format.
Navigation: More → Custom Drag Curves
Visual drag curve editor with draggable handles
Lapua Doppler Radar Profiles (91 Profiles)
Lapua publishes radar-measured Cd vs. Mach curves for 91 of their projectiles. These curves are more accurate than any single-G-function BC approximation, particularly in the transonic zone where G-model errors are largest.
When a Lapua Doppler profile is selected as the drag model for a load, no BC value is needed. The solver interpolates directly from the measured curve.
Navigation: More → Lapua Doppler Data
Lapua Doppler view with bullet selection and Cd/Mach chart
Target Library
A collection of built-in target images for use in the Reticle Simulator:
- IPSC cardboard targets
- Steel plate silhouettes
- NRL Hunter targets
- Game animal outlines
- Custom targets imported from your photo library via the Photos picker
Navigation: More → Target Library
6. Analysis Tools
All analysis tools are accessible from More → Ballistic Analysis or More → Verification. Most tools read from the currently loaded profile and last solve, but also allow manual input for standalone use.
6.1 Truing
Truing is the process of adjusting your ballistic model to match observed impacts. The Truing tool offers three methods:
Muzzle Velocity Truing If your bullet hits consistently higher or lower than predicted, the most likely cause is a MV error. Enter the observed drop at a known range and let the solver binary-search for the MV that produces that exact drop. The result can be pushed directly to the active load.
BC Truing When MV is confirmed accurate (via chronograph) but impacts still don't match, BC is the adjustment target. Enter observed drop at a long range; the tool back-calculates the BC that produces that drop. Apply pushes the new BC to the active load.
Drop Scale Factor (DSF) Truing A multiplicative correction to the entire drop table. Enter a scale factor (e.g., 0.97) and all computed drops are multiplied by it. Useful as a fast field correction without changing the underlying model.
Navigation: More → Verification → Truing
Truing view with three method tabs and input fields
6.2 BC Back-Calculator
A dedicated tool for reverse-engineering ballistic coefficient from observed impacts. Unlike the Truing tool which adjusts the loaded profile, this tool is standalone and doesn't modify any saved data until you explicitly tap Apply.
- Enter observed drop (MOA or MIL) at a measured range
- Select drag model (G1, G7, etc.)
- Enter MV
- Tap Calculate — the tool binary-searches for the BC that produces the observed drop
- Tap Apply to push the result to the active load
When to use: After shooting a ladder at long range, this tool converts observed impacts directly into a usable BC with no manual iteration.
Navigation: More → Verification → BC Back-Calculator
6.3 Point Blank Range (PBR / MPBR)
The Maximum Point Blank Range calculator answers: "What is the furthest I can shoot without adjusting my hold, given a target of X inches diameter?"
Inputs:
- Vital zone diameter (select from presets or enter custom)
- Sight-in range (the midpoint zero that maximizes MPBR)
Outputs:
- Near zero (where trajectory first reaches the top of the vital zone)
- Far zero (MPBR — where trajectory drops to the bottom of the vital zone)
- Maximum point-blank range
- Trajectory chart with vital zone band overlay
Navigation: More → Ballistic Analysis → Point Blank Range
6.4 Effective Range Finder
Computes the range at which your load becomes ineffective based on two optional limits, whichever comes first:
- Energy threshold — e.g., minimum 1,000 ft-lbs for deer, 500 ft-lbs for varmint
- Maximum holdover — e.g., you only have 10 MIL of elevation on your scope
Select a vital zone preset to auto-fill common energy thresholds. The result shows the binding constraint and the effective range in large type.
Navigation: More → Ballistic Analysis → Effective Range
6.5 Hit Probability / WEZ (Wind Error Zone)
The WEZ tool runs a Monte Carlo simulation to compute the probability that your bullet hits a target of given size, accounting for all sources of variability.
Simulation parameters:
- Number of iterations (500 to 5,000)
- MV standard deviation (chrono-derived or estimated)
- Wind speed standard deviation (how accurately you can read wind)
- Ranging error (GPS, laser, estimation)
- Cant angle uncertainty
Outputs:
- P50, P90, P95 miss radius (50/90/95% of shots land within this radius)
- Scatter plot showing simulated impact distribution
- Hit probability for your selected vital zone at the target distance
The scatter plot color-codes hits (green) and misses (red) relative to the vital zone circle.
Navigation: More → Ballistic Analysis → Hit Probability / WEZ
6.6 Terminal Ballistics
Evaluates terminal performance of the current bullet/load at a given distance.
Hatcher RSP Factors: Computes Hatcher's Relative Stopping Power for handgun-caliber loads, factoring bullet shape, sectional density, and velocity.
Wound Channel Analysis: Estimates expansion diameter and penetration depth based on bullet weight, construction type (FMJ, JHP, monolithic, etc.), and remaining velocity.
Game Suitability Rating: Compares remaining energy to common threshold recommendations for different game classes. Shows a pass/fail indicator for whitetail, elk, bear, and varmint at the entered distance.
Navigation: More → Ballistic Analysis → Terminal Ballistics
6.7 Moving Target Lead Calculator
Computes the required lead for shooting a moving target, accounting for target crossing angle and bullet time of flight.
Inputs:
- Target speed (presets: walking, trotting, running, sprinting deer/elk; full-gallop horse; vehicle at 10/15/25 mph)
- Crossing angle (0° = going straight away, 90° = full crossing)
- Distance to target
Output: Lead in MOA, MIL, and linear distance at target distance.
Navigation: More → Ballistic Analysis → Moving Target
6.8 Shot Group Analysis
Enter individual shot impact coordinates (X/Y from center) for a group, or link to a shot log session.
Outputs:
- Mean impact offset (point of impact vs. point of aim)
- Standard deviation in X and Y
- Extreme spread (largest shot-to-shot distance)
- CEP (Circular Error Probable — radius containing 50% of shots)
- Visual scatter plot of the group
Use this tool after a range session to measure actual group size and compare it to your WEZ prediction.
Navigation: More → Verification → Shot Group Analysis
6.9 Turret Tracking Test
Verifies that your scope's turret tracks mechanically accurately — i.e., that one click actually moves the point of impact by the stated value.
Procedure:
- Set up a target at a measured distance
- Establish a baseline zero hold
- Dial a known number of clicks
- Shoot and measure the actual impact shift
- Enter both the expected and actual shift into the tool
The tool computes your scope's actual tracking percentage and compares it to the nominal value. Results can be saved to the profile and applied as the Turret Tracking Percentage in the Calculator.
Navigation: More → Verification → Turret Tracking Test
6.10 SDF Table (Speed-Dial Factor)
A Speed-Dial Factor (SDF) table shows how much your dial positions change when the atmospheric conditions change from your zeroing conditions. This is a quick-reference tool for shooters who memorize dial positions and want to know how much to adjust for a different density altitude.
The table computes:
- Your dialed elevation for each distance under ICAO standard atmosphere
- Actual elevation required under your current atmosphere
- Delta (color-coded green/yellow/red based on magnitude)
Covers density altitudes from 0 to 8,000 ft in 500-ft steps. Export as CSV for a printed reference card.
Navigation: More → Ballistic Analysis → SDF Table
SDF table with color-coded deltas
6.11 Sight-In Assistant
A 3-step guided zeroing wizard for new zeros or zero verification sessions.
Step 1: Group Offset Enter the measured offset of your shot group from center (inches or MOA/MIL). The tool converts to click corrections.
Step 2: Click Correction Apply the computed click correction. The tool displays exactly how many clicks to dial and in which direction.
Step 3: Confirmation Shoot a confirmation group. Enter the new group center. If within acceptable tolerance, zero is confirmed.
The wizard stores a session adjustment history so you can review how many click adjustments were made and in which direction over time.
Navigation: More → Verification → Sight-In Assistant
6.12 Group-to-MOA Calculator
A quick utility that converts a measured group size to angular equivalents.
Inputs: Group size (inches or millimeters) and range (yards or meters)
Outputs:
- MOA equivalent
- MIL equivalent
- Centimeter at 100m equivalent
- Inches at 100 yards
Toggle between imperial and metric with a single switch.
Navigation: More → Tools → Group-to-MOA
6.13 Mil Relation Estimator
Given a known target size and its measured subtension in milliradians, computes range via the mil relation formula (Range = (Target height × 1000) / MILs).
Presets for common targets:
- Standard silhouette (18" head-to-shoulder)
- E-type silhouette (20" chest)
- Military vehicle (various heights)
- Door (standard door frame height)
- Custom — enter any known height
Toggle between MIL and MOA input. Displays inverse subtension (how many mils the target subtends at the computed range) as a cross-check.
Navigation: More → Military → Mil Relation
6.14 Recoil Calculator
Computes free recoil velocity and free recoil energy for a given rifle and load.
Inputs:
- Rifle weight
- Bullet weight
- Bullet muzzle velocity
- Powder charge weight
- Ejecta velocity approximation
Outputs:
- Free recoil velocity (fps)
- Free recoil energy (ft-lbs)
- Subjective recoil rating (Mild / Moderate / Heavy / Severe) based on common shooting community thresholds
- Two-load comparison mode: enter a second load and compare side by side
Navigation: More → Tools → Recoil Calculator
6.15 Danger Space Calculator
Danger space is the range band over which a projectile trajectory stays within the height of a target. It is used to understand how far short or long you can range a target and still score a hit without correction.
Inputs: Target height (select from preset or enter custom), distance to target
Outputs:
- Near bound of danger space
- Far bound of danger space
- Danger space width in yards/meters
- Trajectory chart with target-height kill zone band overlay
Navigation: More → Ballistic Analysis → Danger Space
6.16 Load Comparison
Compare two loads side by side with a synchronized trajectory table and overlay chart.
What you get:
- Synchronized drop table showing both loads at each range step
- Delta column (color-coded): MOA difference between loads at each range
- Overlay chart showing both trajectory curves with transonic markers
- Side-by-side velocity and energy columns
When to use: Deciding between two bullet weights, comparing a factory load to a handload, or evaluating the effect of a BC change.
Navigation: More → Ballistic Analysis → Load Comparison
Load comparison with two trajectories and delta column
6.17 Glass Deflection Calculator
Computes the lateral point-of-impact shift caused by shooting through an angled glass pane (vehicle windshields, building glass). Based on Snell's law applied to the bullet's path through the glass medium.
Inputs:
- Glass type (5 options: standard plate, laminated windshield, tempered, bulletproof Level IIIA, Level III)
- Glass thickness
- Glass angle relative to the bullet's path
- Distance from glass to target
Outputs:
- Lateral shift in inches and MOA/MIL
- Estimated energy loss through glass (%)
- Qualitative penetration rating ("Will penetrate", "Marginal", "Unlikely")
Behind the Professional Gate: This tool requires the professional use acknowledgment before accessing.
Navigation: More → Law Enforcement → Glass Deflection
6.18 Cold Bore Tracking
The cold bore shot — the first shot from an unfired barrel — often hits differently from subsequent shots. This tool builds a statistical model of your cold bore behavior over time.
How it works:
- Log each cold bore shot: date, temperature, and impact offset (vertical/horizontal) from a known point of aim
- The tool builds a rolling dataset and computes mean, standard deviation, and 95% confidence interval
- A scatter chart shows the distribution of cold bore impacts
- Tap "Apply as Zero Offset" to push the mean cold bore offset into the Calculator's zero offset fields
Over time, you build a confident predictive model of where your first shot will go, allowing you to pre-dial or pre-hold the expected offset in the field.
Navigation: More → Verification → Cold Bore Tracking
6.19 Ethical Shot Distance
Computes the maximum range at which it is ethical to take a shot at game, based on the most restrictive of four independent limits:
- Energy limit — Range at which remaining energy falls below the selected vital zone threshold
- MPBR limit — Maximum point-blank range for the selected vital zone (no holdover ability assumed)
- Accuracy budget — Range at which the rifle/load's mechanical accuracy (from shot group data) covers more than half the vital zone
- Wind uncertainty — Range at which a 1 mph wind estimation error causes more than half the vital zone of deflection
The binding constraint is highlighted. The result is the minimum of these four limits — the ethically responsible maximum range.
Navigation: More → Hunting → Ethical Shot Distance
Ethical Shot Distance with four limits and binding constraint highlighted
6.20 Precision Offset / Hold-Off
A specialized tool for law enforcement precision marksmen. Computes the required hold-off from the edge of a threat to ensure the projectile path avoids a hostage or non-threat person.
Inputs:
- Distance to target
- Distance from threat to non-threat (horizontal offset at target distance, in inches)
- Safety margin (additional MOA/MIL buffer beyond the mechanical requirement)
Output: Required hold in MOA and MIL from the threat's edge toward the desired impact point.
Behind the Professional Gate. Navigation: More → Law Enforcement → Precision Offset
6.21 Chrono String Statistics
A session-based velocity string manager for organizing and analyzing chronograph data.
Creating a session:
- Name the session and link it to a rifle/load profile
- Enter velocity readings one at a time, or import from a connected chronograph (Garmin Xero, LabRadar, MagnetoSpeed)
- The tool computes ES, SD, and CV in real time
Outlier flagging: Rounds more than 2.5 SD from the mean are flagged with a warning indicator.
MV validation: Tap "Compare to Solver" to check how closely your measured mean MV matches the MV stored in your load. Discrepancies trigger a suggestion to true the load.
Navigation: More → Verification → Chrono String
6.22 Speed of Sound Indicator
Displays the local speed of sound (in fps and m/s) calculated from current air temperature via the Rankine formula. Shows the bullet's current Mach number based on remaining velocity at the entered target distance, with regime color coding:
- Green: Supersonic (Mach > 1.2)
- Yellow: Transonic (Mach 0.8–1.2)
- Red: Subsonic (Mach < 0.8)
This indicator also appears in the Calculator's Corrections Summary for immediate reference.
Navigation: More → Tools → Speed of Sound
6.23 Wind Estimation Guide
A visual reference card mapping observable indicators to wind speed estimates.
Three indicator types:
- Beaufort Scale — 0 through 12 with descriptions and mph/knot equivalents
- Mirage Types — Stationary (calm), slow boil (2–5 mph), fast boil (5–8 mph), running (8–12 mph), heat shimmer only (12+ mph)
- Flag Angle — Limp (calm), 15°/30°/45°/60°/straight-out angles mapped to speed ranges
Use this as a field reference when you don't have an anemometer.
Navigation: More → Military → Wind Estimation Guide
6.24 DSF Library
The Drop Scale Factor library contains pre-computed DSF tables for your loaded bullet across density altitudes from 0 to 8,000 feet in 500-foot increments.
Each table row shows: distance, ICAO drop (your dialed position), actual drop at the given DA, and the scale factor needed to convert.
When to use: You've confirmed your holds at one altitude and are shooting at a significantly different altitude. Instead of re-solving, look up the DSF for your current DA and scale your dialed positions.
Export the table as CSV for a printed reference card.
Navigation: More → Ballistic Analysis → DSF Library
6.25 Drag Coefficient Measurement
A two-chronograph method for measuring the actual drag coefficient of a bullet in flight — the most accurate method short of Doppler radar.
Method:
- Chronograph the bullet at the muzzle (standard position) — enter as MV
- Chronograph the same bullet at a measured downrange distance (100, 200, or 300 yards) using a second chronograph
- Enter both velocities and the separation distance
The tool binary-searches for the BC (and corresponding Cd) that, when integrated through the atmosphere, produces the observed downrange velocity. The result is your bullet's actual average Cd over the measured range.
Navigation: More → Ballistic Analysis → Drag Coefficient Measurement
6.26 Load Development Assistant
A two-mode tool for finding optimal powder charges.
Ladder Test Mode:
- Enter velocity readings at each charge weight increment
- The tool identifies velocity nodes — charge weights where MV plateaus despite increasing charge, indicating low pressure sensitivity
- Pressure spike flags warn when velocity jumps exceed expected thresholds
- Charts show velocity vs. charge weight with node markers
Group Test Mode:
- Enter group size measurements at each charge weight
- Quadratic curve fit identifies the charge weight producing the tightest groups
- Optimal charge marker shown on the curve
Navigation: More → Tools → Load Development
6.27 DOPE Trend Analysis
Automatically compares predicted trajectory data against actual impacts logged in the shot log. Over time, this reveals systematic drift in your ballistic model.
What it detects:
- MV decay (barrel wear causing slower velocities)
- Scope tracking degradation (turret mechanical wear)
- Spin drift model inaccuracy (consistent lateral bias)
Display: Scatter plot of predicted vs. actual drops with a linear trendline. If the trendline slope deviates significantly from 1.0, the tool flags a drift and suggests corrective action (re-true MV, check turret tracking, adjust spin drift model).
Navigation: More → Verification → DOPE Trends
6.28 3D Trajectory Visualization
A SceneKit-rendered three-dimensional view of the bullet's flight path, showing both vertical drop and lateral wind deflection in 3D space.
Features:
- Velocity-regime color coding (green → yellow → red as the bullet decelerates)
- Free camera rotation — drag to orbit, pinch to zoom
- Ground plane with distance markers
- Drop and windage exaggerated for visibility at user-controlled scale
Navigation: Calculator → 3D View button (below trajectory table)
6.29 MV Degradation Tracker
Tracks muzzle velocity decline over a barrel's lifetime using chronograph data linked to round count.
How it works:
- Log chronograph sessions with the barrel's current round count
- The tool builds a linear regression of MV vs. round count
- A chart shows predicted MV at any future round count
- When chrono data diverges significantly from the stored load MV, a truing flag suggests updating the load's MV value
Tap "Apply to Load" to push the current predicted MV directly into the active load.
Navigation: More → Verification → MV Degradation
6.30 Predicted vs. Actual DOPE Tracking
Extends the shot log by auto-capturing the solver's predicted elevation/windage alongside each logged shot. Over time, this builds a dataset for drift detection.
Tracking covers:
- Predicted vs. actual elevation at each range
- Predicted vs. actual windage
- Trend analysis with per-session and rolling drift indicators
- Flags for MV degradation, atmospheric model drift, or scope tracking issues
Navigation: More → Verification → DOPE Tracking
6.31 Shot Group Analyzer
A visual shot group analysis tool where you tap a target canvas to place shots and see real-time group statistics.
Target styles:
- Bullseye — Concentric scoring rings (5 rings alternating white/gray)
- Round Plate — Single steel plate circle
- Blank — Grid only for raw grouping analysis
How to use:
- Select a target style and enter the target size in inches
- Enter the distance to target in yards
- Tap the canvas to place shots — each appears as a numbered orange marker
- Stats update in real time after 2+ shots
- Undo the last shot or clear all to start over
Statistics displayed:
- Group size (inches, MOA, and MIL)
- Extreme spread width and height
- Mean radius from group centroid
- CEP (circular error probable — 50th percentile radius)
- Standard deviation from centroid
- Centroid offset from target center
Export: Tap the share button to export the canvas with stats as an image.
Navigation: More → Verification → Shot Group Analyzer
6.32 Multi-Rifle Drop Table
A side-by-side trajectory comparison table for 2 to 4 rifle/load combinations using the same atmospheric conditions.
How to use:
- Tap "Select Rifles" to choose 2–4 rifle/load combinations from your saved profiles
- Each selection is color-coded (blue, orange, green, purple)
- Tap "Compare" — the app solves each profile independently using the current atmosphere and wind conditions
- The table shows a shared range column with per-rifle elevation, windage, and velocity sub-columns
Use cases:
- Compare a .308 and 6.5 Creedmoor at the same conditions to decide which to bring
- Compare two loads for the same rifle to see where one becomes subsonic before the other
- Compare a suppressed vs. unsuppressed barrel length difference
Navigation: More → Ballistic Analysis → Multi-Rifle Drop Table
7. Field Tools
Field tools are designed for use at the range or in the field. They are accessible as standalone screens from the More menu and also launchable as sheets/covers from the Calculator's Quick Actions.
7.1 HUD Mode
A full-screen, green-on-black night-vision compatible display showing the current ballistic solution in large type.
Display elements:
- Elevation correction — large green numerals in MOA, MIL, or clicks
- Windage correction — large green numerals
- Target distance
- Wind speed and direction
- Current profile and load name
- Transonic/subsonic warning if applicable
Design intent: All white is eliminated. The display is pure green on black. This preserves dark-adapted vision and is compatible with night-vision goggles when the phone display brightness is set to minimum.
Access: Calculator Quick Actions → HUD Mode, or pin HUD Mode to the tab bar via Settings → Tab Bar.
7.2 Competition Mode
A landscape-optimized view designed for PRS/NRL stage use, where you need to rapidly adjust for range and wind and hold stage par time in your head.
Layout (landscape orientation):
- Left panel: Range stepper (+/- buttons in 25-yard increments with a slider for rapid changes)
- Center panel: Elevation and windage corrections in large type, wind hold range band when bracketing is active
- Right panel: Wind controls (speed ±1 mph buttons, direction compass)
- Bottom: PAR countdown timer
PAR timer: Set the stage par time (typically 90 seconds for PRS). Tap Start to begin the countdown. The timer pulses red in the final 15 seconds.
Access: Calculator Quick Actions → Competition Mode, or pin to tab bar.
7.3 Field Mode (Roller Quick Solve)
A full-screen, dark-background, glove-friendly quick-solve interface designed for one-handed use at the rifle. Uses large wheel pickers instead of text fields for operation with cold hands or shooting gloves.
Three wheel pickers:
- Range — 25 to 2,500 yards in 25-yard steps
- Wind Speed — 0 to 40 mph in 1-mph steps
- Wind Direction — 12 clock positions (12 o'clock = headwind, 3 = full-value right, 6 = tailwind, 9 = full-value left)
Giant readouts: Elevation and windage corrections are displayed in 48-point monospaced digits with directional prefixes (U/D for up/down, L/R for left/right) and unit labels (MOA or MIL based on your settings). Elevation is green, windage is cyan.
Atmosphere bar: A compact read-only bar at the bottom shows the current temperature, pressure, and altitude from your last atmospheric input.
How it works: Field Mode reads from the currently loaded profile and atmosphere. Every picker change triggers an instant re-solve. The solution uses the same engine and corrections as the full calculator.
Access: Calculator Quick Actions → Field Mode, or More → Field Tools → Field Mode, or pin to tab bar.
Field Mode with wheel pickers and large elevation/windage readouts on dark background
7.4 Target List
A pre-computed hold table for multiple distances from a single solve.
Using the Target List:
- Tap "Add Target" and enter a distance (or select from common presets: 100, 200, 300, 400, 500, 600, 700, 800, 1000 yards)
- The app solves for each distance using the current profile and conditions
- The table shows elevation and windage for each target
- Add, remove, or reorder targets freely
Multi-Target Solver (20 targets): The extended Multi-Target Solver (More → Field Tools → Multi-Target Solver) supports up to 20 targets simultaneously. Each target can have its own distance, inclination, and wind input. Tap "Solve All" to compute all targets concurrently. Color-coded transonic and subsonic indicators show which targets are in the danger zone. Export the table as a come-up card.
Access: Calculator Quick Actions → Target List, or pin to tab bar.
Target List with 6 distances and elevation/windage columns
7.5 Quick Solve Mode
A compact, one-handed field view stripped to the two inputs that change most often: range and wind.
What it shows:
- Range stepper (tap +/- or drag to change distance in real time)
- Wind speed slider
- Elevation and windage corrections update instantly
- Current profile/load shown at top for confirmation
How it works: The loaded profile supplies all remaining inputs (MV, BC, drag model, atmosphere, etc.). Quick Solve reads the current atmospheric conditions from the last full solve and only allows range and wind adjustment. This enables one-handed operation while maintaining consistency with your full setup.
Access: More → Field Tools → Quick Solve, or pin to tab bar.
Quick Solve Mode with range stepper and wind slider
7.6 Spotting Correction
After a miss is spotted through optics or binoculars, this tool computes the corrected hold and generates a formatted spotter call.
Workflow:
- Enter the observed miss: direction (high/low/left/right) and magnitude (MIL or MOA)
- Enter the current elevation and windage hold used for the shot
- Tap Compute — the tool adds the observed miss offset to your current hold to generate the corrected hold
- The corrected elevation and windage appear in large type
- A formatted spotter call is generated (e.g., "Left 0.2, Add 0.5")
The spotter call format follows standard military/competition convention: direction of correction (not direction of miss), magnitude.
Navigation: More → Field Tools → Spotting Correction
7.7 Virtual Turret
An animated dial display simulating the physical turret dials on your scope.
Features:
- Dual animated dials: elevation (top) and windage (right)
- Dials rotate smoothly as you change click values
- "Load from Calculator" button copies current elevation/windage corrections directly to the turret display
- AppStorage persistence: Turret position persists between app launches, so if you put 14 clicks up before closing the app, the turret still shows 14 clicks when you reopen
- Return-to-zero instructions: Tap "Return to Zero" to see exactly how many clicks to reverse to return to your mechanical zero
When to use: During rapid multi-target stages where you are dialing elevation and want a clear visual confirmation of how many total clicks you have dialed from zero.
Navigation: More → Field Tools → Virtual Turret
MOA
MOA
7.8 Wind Compass
A standalone compass-rose wind direction picker. Drag the wind vector arrow to the direction the wind is coming from. The clock-position readout updates in real time alongside the compass bearing.
Clock position convention: 12 o'clock = headwind, 3 o'clock = full-value right crosswind, 6 o'clock = tailwind, 9 o'clock = full-value left crosswind.
This picker also appears inline within the Calculator's Wind section when you tap the compass icon.
Navigation: More → Field Tools → Wind Compass
7.9 Wind Bracketing
Set minimum and maximum expected wind speeds for the current stage. The app solves at both extremes and displays the resulting hold range band in the Corrections Summary.
Example: Wind reads 6–10 mph from the right. Set Low = 6, High = 10. The app shows "Hold 0.8–1.3 MIL right" — you know the acceptable hold bracket without committing to a single wind call.
Wind bracketing is toggled within the Calculator's Wind section. The orange hold range band appears in the Corrections Summary when active.
Navigation: Calculator → Wind section → Wind Bracketing toggle
7.10 Rapid Hold Lookup (Quick Targets)
Pin up to 5 favorite ranges for instant ballistic lookups without navigating back to the full calculator.
Setup:
- Add a favorite — enter a label (e.g., "KD 600") and range in yards
- Repeat up to 5 favorites; sorted by range ascending
- Select a rifle profile from the horizontal strip at the top
Using in the field:
- Tap "Solve All" to compute holds for all pinned ranges at once using current wind conditions
- Each card shows elevation (MIL + MOA), windage (MIL + MOA), velocity, and Mach number
- Mach is color-coded: green (supersonic), orange (transonic), red (subsonic)
- Tap the copy button on any card to copy holds to the clipboard in format:
↑ 2.345 MIL / → 1.234 MIL - Wind conditions are entered via a dedicated wind sheet
Navigation: More → PRS Competition → Quick Targets, or pin to tab bar
7.11 Muzzle Blast / Noise Estimator
Estimates the sound pressure level (SPL) of a muzzle blast based on bore area, barrel length, and cartridge energy.
Outputs:
- Estimated SPL in decibels at the shooter's ear position
- OSHA permissible shots per day at that SPL (before hearing damage threshold)
- Hearing protection recommendation (NRR rating needed)
- Reference table of common calibers and their typical dB levels
Navigation: More → Tools → Muzzle Blast
7.12 Sound Delay Calculator
Computes the total time from shot break to audible impact sound reaching the shooter. See Section 11.7 for details.
Navigation: More → Military → Sound Delay
7.13 GPS Target Ranging
Mark your position and a target position on a map to compute range, bearing, and inclination without a laser rangefinder.
How it works:
- Mark shooter position (current GPS or tap on map)
- Mark target position (GPS, tap on map, or enter coordinates)
- The app computes: slant range (accounting for elevation difference), true bearing, magnetic bearing, and inclination angle
- Tap "Send to Calculator" to auto-fill range and inclination into the Calculator
Supports coordinate entry in decimal degrees, DMS, or MGRS format.
Navigation: More → Maps → Range Planning
8. PRS / Competition
PRS (Precision Rifle Series) and NRL (National Rifle League) competition shooters have dedicated tools built into the app.
8.1 Stage Planner
Plan your engagement sequence for a PRS or NRL stage before the buzzer.
What you can plan:
- Number of targets and their distances
- Wind calls per target
- Planned hold (elevation + windage) per target
- Target priority / engagement order
- Stage notes (position, props, transitions)
- Par time for the stage
During the stage: The Stage Planner displays your planned engagement in large, easy-to-read format. The PAR timer can be started directly from this view.
Saving stage plans: Named stage plans are saved to SwiftData. Browse and restore them at any time — useful for recurring stages at club matches.
Navigation: More → PRS Competition → Stage Planner
Stage Planner with target list and par timer
8.2 Match Score Tracker
Log your hit/miss results per stage and track your running match score.
Per stage:
- Name the stage
- Tap hit or miss for each available target
- Add a score modifier (procedural, miss penalty) if applicable
- Record stage time
Match summary:
- Running total score after each stage
- Percentage of hits
- Stage-by-stage breakdown
- Match result export (PDF or CSV)
Navigation: More → PRS Competition → Match Score Tracker
8.3 Digital Rifle Data Book
A structured training journal that goes beyond the basic shot log. Used to record the conditions, holds, and observations from each range session in a format that mirrors the military/competition data book.
Each data book entry records:
- Date, location, stage/drill name
- Density altitude at time of session
- Holds used for each distance (elevation and windage from dialed or held)
- Wind calls and observed conditions
- Group results
- Debrief notes
Navigation: More → PRS Competition → Data Book
8.4 DA Range Cards
Density altitude-based range cards solve for your holds across a range of density altitudes (0–8,000 ft in selectable steps), so you can arrive at a match at an unfamiliar elevation and instantly know your holds.
Inputs:
- Profile picker or manual inputs
- Target distances
- DA step size
Output table: For each DA step, the table shows elevation and windage at each distance. The row matching your current computed DA is highlighted.
Export: Plain-text ShareLink for a come-up card you can print or share.
Navigation: More → PRS Competition → DA Range Cards
DA Range Card table with current DA row highlighted
8.5 Session Tracker
Track your overall training and competition sessions over time.
Each session record:
- Date and location
- Rifle and load used
- Round count fired
- Weather conditions at session start
- Performance notes
- Links to data book entries from that session
Navigation: More → PRS Competition → Session Tracker
9. Hunting
9.1 Ethical Shot Distance
See Section 6.19 for full documentation. Access from More → Hunting → Ethical Shot Distance.
9.2 Shot Placement Reference
Canvas-rendered anatomical overlays with per-species vital zone placement showing heart/lung zones, bone structure, and ideal shot angles for common game animals. Each animal has anatomically accurate vital zone positioning based on species anatomy.
Supported animals:
- Whitetail Deer
- Mule Deer
- Elk / Wapiti
- Moose
- Black Bear
- Wild Boar / Hog
- Pronghorn
- Caribou
For each animal:
- Side-view overlay showing heart/lung vital zone, shoulder blade, spine, and hip
- Quartering-toward and quartering-away shot angles with recommended aiming points
- Vital zone diameter used in MPBR and WEZ calculations
- Angular subtension of the vital zone at an entered distance (so you know how many MOA/MIL the vitals subtend at your intended distance)
Shot Placement Reference for whitetail deer with vital zone overlay
Navigation: More → Hunting → Shot Placement Reference
9.3 Shooting Light
Calculates legal shooting light start and end times for your current GPS location, using a pure Swift solar algorithm (no network required).
Displays:
- Current time and remaining light countdown
- Sunrise / sunset
- Civil twilight start and end (most common "legal shooting light" definition)
- Nautical twilight start and end
- Visual timeline bar showing where you are in the day's shooting window
Inputs: GPS auto-fill from device location, or manual latitude/longitude/date entry for planning purposes.
Navigation: More → Hunting → Shooting Light
Shooting Light view with visual timeline and countdown to end of legal light
10. Law Enforcement / SWAT
Features in this section require the professional use acknowledgment gate. The gate presents a statement confirming you are a trained professional using the tool in an authorized professional capacity. This acknowledgment is stored per-device and persists until the app is deleted.
10.1 Glass Deflection Calculator
See Section 6.17 for full documentation.
Navigation: More → Law Enforcement → Glass Deflection
10.2 Barrier Penetration
An energy-based model for estimating whether a given projectile will penetrate a barrier type.
Barrier types (10 options):
- Vehicle door (sheet metal + glass)
- Vehicle door with frame (A/B pillar)
- 3/4" plywood
- Cinder block (hollow and filled)
- Brick
- 3/8" steel plate
- AR500 armor
- Level IIIA soft body armor
- Level III hard plate
- Level IV hard plate
Calculation:
- Residual energy after barrier penetration using exponential range decay with bullet-type multipliers
- Overpenetration warning when the projectile retains more than 80% energy after barrier
Sequential stack mode: Add multiple barriers in order. The model chains energy losses to simulate stacked barriers (e.g., vehicle glass + door skin + seat foam).
Behind the Professional Gate. Navigation: More → Law Enforcement → Barrier Penetration
10.3 Precision Offset / Hold-Off
See Section 6.20 for full documentation.
Navigation: More → Law Enforcement → Precision Offset
10.4 Cold Bore Tracking
See Section 6.18 for full documentation.
Navigation: More → Law Enforcement → Cold Bore Tracking (also accessible from More → Verification)
10.5 Night Vision / IR Laser Zero Profiles
See Section 5 (Multiple Zeros — Zero Modes) for full documentation. Day/NV/IR zero switching is per-profile and managed from the Calculator's Rifle/Load section.
Navigation: Calculator → Rifle/Load section → Zero Mode Picker
11. Military
Features in the Military section include tools designed for military trained personnel. Sensitive features (Anti-Materiel Data) require the professional use acknowledgment.
11.1 Mil Relation Range Estimator
See Section 6.13 for full documentation.
Navigation: More → Military → Mil Relation
11.2 Range Estimation Training
A drill-based training tool for building mil relation range estimation skill without a laser rangefinder.
Drill format:
- 7-object library (vehicle, human standing, human prone, door, tank, ammunition crate, oil drum) with known reference heights
- Random target presented at a random distance (100–1,200 yards)
- You measure the object's subtension in MIL using the rendered image scale
- Apply the mil relation formula to estimate range
- Submit answer — scored 0–100 based on proximity to actual range
- 10-drill session with summary chart showing accuracy over time
Navigation: More → Military → Range Estimation Training
Range Estimation Training with target image and mil measurement input
11.3 Wind Estimation Guide
See Section 6.23 for full documentation.
Navigation: More → Military → Wind Estimation Guide
11.4 Wind Estimation Training
An 8-scenario training drill for building wind reading skill from visual indicators.
Scenario types:
- Beaufort scale: Given a written description (e.g., "Leaves in constant motion, small branches moving"), estimate wind speed
- Flag angle: Given a flag photograph at a specific angle, estimate wind speed
- Mirage type: Given a mirage description, estimate wind speed
Mechanics:
- Slider input from 0–30 mph
- Pass/fail tolerance of ±2 mph
- "Hint" sheet shows the full Beaufort reference card
- Session scoring with running hit percentage
Navigation: More → Military → Wind Estimation Training
11.5 Spotter / Shooter Call Formatter
Built into the Spotting Correction tool (Section 7.5). Automatically generates a clock-position formatted spotter call when a miss offset is entered. This matches standard military and competition protocols.
Call format example: "Left two, add five" (0.2 MIL left, 0.5 MIL elevation addition).
Navigation: More → Field Tools → Spotting Correction
11.6 Anti-Materiel Data
Provides engagement data for anti-materiel applications — 5 target types with 14 vulnerable points each, showing recommended aiming point and expected effects.
Behind the Professional Gate. Content is intentionally brief in this guide; access requires professional acknowledgment.
Navigation: More → Military → Anti-Materiel Data
11.7 Sound Delay Calculator
Computes the total time from shot break to audible impact sound reaching the shooter.
Calculation:
- Time of flight (from current solver output)
- Time for the impact sound to travel back (distance / speed of sound at current temperature)
- Total observation delay = TOF + return sound travel time
Useful for observers and spotters coordinating with the shooter.
Navigation: More → Military → Sound Delay
11.8 Sniper DOPE Book
A formal mil-spec format data book for recording confirmed firing solutions at specific ranges and conditions.
Entry format follows standard sniper data book layout:
- Date, time, location
- Range, target description
- Atmospheric conditions
- Ammunition lot
- Elevation and windage held/dialed
- Point of impact offset from intended
- Spotter / observer
Export: PDFKit-generated data book pages in standard format, ready for printing.
Navigation: More → Military → DOPE Book
11.9 DA Form 5517 (Military Range Card)
Generates a US Army DA Form 5517 formatted range card from the current profile and trajectory data.
Includes:
- Unit, range, and weapon data header fields
- Range/elevation/windage table
- Sector sketch (outline only — you annotate on paper)
- Conditions header
Export as PDF via ShareLink.
Navigation: More → Military → DA Form 5517
11.10 MGRS Converter
Converts between standard decimal/DMS latitude/longitude and Military Grid Reference System (MGRS) coordinates.
- Enter lat/lon in decimal degrees → converts to MGRS string
- Enter an MGRS string → converts to lat/lon
- Supports all UTM zones
Navigation: More → Military → MGRS Converter
12. TAK Integration
Team Awareness Kit (TAK) integration connects the app to ATAK (Android TAK) and WinTAK networks via TCP/TLS Cursor-on-Target (CoT) XML messaging. This section covers the complete TAK workflow.
TAK Settings view showing connection status and certificate fields
12.1 Initial TAK Setup
Before connecting to a TAK server, configure credentials in More → TAK → TAK Settings.
Server configuration:
- Server hostname or IP address
- Port (typically 8089 for SSL, 8087 for non-SSL)
- Enable SSL toggle
Authentication options (configure as required by your server):
- Username / password — Enter credentials; stored securely in iOS Keychain
- REST API key — Secure field for API key-based authentication
- TLS client certificate — Import a .p12 certificate file. Tap "Import Certificate" and select from Files. The certificate is parsed via SecPKCS12Import and stored in the Keychain.
Server certificate validation:
- System roots (default) — Trust any certificate signed by a trusted CA
- CA chain — Provide a custom CA certificate for private CA validation
- Pinned certificate — Provide the server's specific certificate for maximum security
TAK Settings certificate import section
12.2 Connecting to a TAK Server
After configuring server settings:
- Tap Connect in TAK Settings
- The app establishes a TLS TCP connection to the server
- Connection status shows: Disconnected / Connecting / Connected
- A callsign and UID are generated for this device
Auto-reconnect: Enable the Auto-Reconnect toggle in TAK Settings. If the connection drops, the client retries with exponential backoff: 5 seconds → 10 → 20 → 40 → 60 seconds cap, up to 10 attempts. The current attempt number is shown in the UI.
Certificate expiry: If your client certificate is approaching expiry, a warning banner appears at the top of TAK Settings. Renew and re-import before the cert expires to avoid authentication failures.
CoT rate limiting: The SA update interval controls how frequently position reports are transmitted to the server (15 / 30 / 60 second options). Position reports are not sent more frequently than the configured interval.
12.3 Sending Fire Solutions via TAK
When connected to a TAK server, you can broadcast your current ballistic solution:
GeoChat broadcast:
- After solving in the Calculator, tap the TAK broadcast button
- A formatted GeoChat message is sent to all connected TAK clients
- Message includes: elevation hold, windage hold, target distance, time of flight, and remaining velocity
Target Markers:
- In TAK Settings (visible only when connected), tap "Send Target Marker"
- The TAK Marker Send sheet appears — enter the target's MGRS or lat/lon position
- A CoT "b-m-p" point marker is transmitted to the TAK network
- Tap "Send Impact Marker" to transmit a secondary marker at the predicted impact point
Fire solution CoT format: The <__ballistic> child element in the CoT XML carries: elevation (MOA/MIL), windage (MOA/MIL), target range, time of flight, and remaining velocity.
12.4 Receiving TAK Events
Incoming CoT events from connected TAK clients are parsed and stored locally:
Received Events list: More → TAK → Received Events shows all incoming CoT events with timestamp, UID, type, and location.
Ballistic solution parsing: Incoming fire solutions containing the <__ballistic> element are parsed and available for review in the Received Events list.
Encrypted storage: All received events (including friendly force positions) are stored with iOS .completeFileProtection — the data is encrypted at rest and inaccessible when the device is locked. The isEncrypted property on the store always returns true.
12.5 TAK Data Packages (.cotpkg)
TAK Data Packages are standard ATAK/WinTAK compatible bundles for sharing CoT event collections.
Exporting:
- Navigate to More → TAK → Data Packages
- Tap "Export" to package all received events as a .cotpkg (JSON) file
- Share via Files, AirDrop, or any iOS share sheet destination
Importing:
- In Data Packages, tap "Import"
- Select a .cotpkg file from Files or AirDrop
- Events are parsed and added to the local store
Re-sharing: Saved data packages can be shared from the Data Packages list view at any time.
12.6 TAK Missions
TAK Server missions are shared workspaces where team members upload data packages for collective situational awareness.
Workflow:
- Navigate to More → TAK → Missions
- The app queries the TAK server for available missions
- Tap a mission to view its details and member list
- Tap "Join" to join the mission
- Tap "Upload Package" to push a .cotpkg data package to the mission feed
- Tap "Leave" to exit the mission
Mission data (package list, member list) is fetched via the TAK Server REST API. Authentication uses the same credentials configured in TAK Settings.
Navigation: More → TAK → Missions
12.7 Secure Wipe
To purge all TAK data from the device:
- Navigate to More → TAK → TAK Settings
- Scroll to the Secure Wipe section
- Tap "Secure Wipe All TAK Data"
- Confirm the action
The secure wipe performs a zero-byte overwrite of all stored CoT event data before deletion, preventing forensic recovery. After wipe, the event store is empty and the TAK connection is reset.
13. Sensor Integration
13.1 Device Barometer
iPhone and iPad models equipped with a barometric pressure sensor (all modern iPhones from iPhone 6 onward) provide live ambient pressure readings via the CMAltimeter API.
In the Calculator: Tap the barometer icon in the Atmosphere section to auto-fill the Pressure field with the current device reading. This eliminates the need to look up or estimate station pressure.
Accuracy note: The device barometer is calibrated for altitude estimation, not precision meteorology. Accuracy is typically ±1.5 hPa (±0.044 inHg). For precision work, a dedicated Kestrel or weather station is preferred.
13.2 Camera Inclinometer
Uses the device camera combined with CoreMotion to measure incline to target.
How to use:
- Tap the inclinometer icon (camera icon) in the Advanced Inputs section
- The Camera Inclinometer sheet opens showing a live camera preview
- Point the camera at the target
- The live pitch angle is displayed in large type
- Tap "Capture" to record the angle into the Inclination field
The camera preview helps ensure you are pointing at the correct target rather than the ground. Long-press the inclinometer icon in the Calculator for a tooltip explaining the feature.
Camera Inclinometer sheet with live preview and angle readout
13.3 GPS Auto-Fill
The GPS auto-fill reads two values from CoreLocation:
- Latitude — Required for Coriolis and Eotvos effect calculations. Auto-fills the Latitude field in Advanced Inputs.
- Compass heading — Filled into the Azimuth field in Advanced Inputs, representing the bearing to your target.
Tap the GPS icon in the Advanced Inputs section to trigger a location request. The first location fix is used; the app does not track location continuously.
Alternatively, tap the map icon to open the Coriolis Map Picker — a full MapKit map where you can tap any point on Earth to set your latitude. A hemisphere note reminds you of spin drift direction changes between hemispheres.
13.4 Auto Cant from IMU
When the iPhone is mounted to a rifle rail (in a dedicated mount), the gyroscope can provide live cant angle readings.
CantCapture sheet:
- Tap the gyroscope icon in the Advanced Inputs section (Cant Angle field)
- The CantCapture sheet opens showing live roll angle from the IMU
- Hold the rifle at your shooting position
- Tap "Capture" to snap the current cant angle into the Cant Angle field
This is more accurate than estimating cant visually, particularly for shooting stances with an inherent lean (barricade positions, angled prone, etc.).
13.5 WeatherKit
WeatherKit provides current and historical weather conditions by GPS location.
Current conditions: Tap the WeatherKit icon in the Atmosphere section to fetch temperature, pressure, humidity, and wind for your current GPS location. Values are auto-filled into the atmosphere fields.
Historical hourly weather: In the Shot Log entry editor, you can pull historical weather conditions from WeatherKit for a past date/time/location — useful for reconstructing the conditions during a past range session.
Fallback behavior: If the WeatherKit entitlement is unavailable (simulator, missing provisioning), or if the device is offline, a UserDefaults cache provides the last known conditions. A status banner indicates whether live data or cached data is being used.
Apple Weather attribution: Wherever weather data is displayed, the app shows the required Apple Weather trademark ( Weather) and a link to Apple's legal attribution page, per WeatherKit usage requirements.
14. Bluetooth Devices
Navigate to More → Devices → Bluetooth Connection to manage paired BLE devices. The app uses CoreBluetooth and does not require any manufacturer companion app.
Bluetooth Connection screen with device list and scan button
14.1 Kestrel 5700 / 5500 Elite
Connects via Nordic UART Service (NUS) BLE. The Kestrel broadcasts wind speed, wind direction, temperature, pressure, and humidity.
Pairing:
- On the Kestrel, enable Bluetooth in the menu
- In the app's Bluetooth Connection screen, tap Scan
- The Kestrel appears as "Kestrel 5xxx" — tap to connect
- All weather fields are auto-filled in the Calculator when a connection is active
Data received: Wind speed (mph/km/h), wind direction (°), temperature (°F/°C), station pressure (inHg/hPa), humidity (%).
14.2 Kestrel DROP D1 / D2 / D3
Compact wireless weather sensors that connect via the standard BLE Environmental Sensing Profile (ESP). No custom protocol required.
- D1 — Temperature
- D2 — Temperature + humidity
- D3 — Temperature + humidity + pressure
Pairing: Same scan-and-connect flow as the Kestrel 5xxx. DROP sensors typically auto-advertise once the button is pressed.
14.3 WeatherFlow Tempest
A full weather station connecting via BLE. Provides wind speed, wind direction (with improved low-wind accuracy from the Tempest's ultrasonic sensor), temperature, pressure, humidity, UV index, and precipitation.
Pairing: Scan for "Tempest" in the Bluetooth Connection screen. The Tempest station must be powered on and within BLE range.
14.4 Rangefinders
Supported rangefinders auto-populate the Distance field in the Calculator upon each measurement.
SIG Sauer BDX rangefinders (KILO series):
- Range to target (yards or meters)
- Inclination (degrees)
- Azimuth (compass heading) — on models that support it
Leica CRF rangefinders:
- Range and inclination
Vortex Fury HD / Razor HD rangefinders:
- Range and inclination
Generic BLE rangefinders (ATN LRF, Bushnell CONX, and other GATT-compatible units):
- Range auto-populated on measurement; inclination supported where the GATT characteristic provides it
Pairing: Scan in the Bluetooth Connection screen. Follow rangefinder manufacturer instructions to enable BLE broadcasting (usually a button hold).
14.5 Garmin Xero C1 Chronograph
The Xero C1 connects via Garmin BLE protocol and provides:
- Individual shot velocity
- Session statistics (average MV, SD, ES)
Data is forwarded to the Chrono String Statistics tool and also updates the MV field in the Calculator (configurable in Bluetooth Settings — enable "Auto-update MV from chrono").
14.6 LabRadar and LabRadar LX
LabRadar Doppler chronographs connect via BLE and provide individual shot velocity. The LabRadar LX also provides downrange velocity at user-configured measurement distances — which feeds directly into the Drag Coefficient Measurement tool.
14.7 MagnetoSpeed V3 / Sporter, Caldwell G2
These barrel-mounted chronographs connect via generic BLE chrono protocol. Individual shot velocities are received and forwarded to the active Chrono String session.
15. Export and Sharing
All export options are accessible via the share icon in the relevant view, or via More → Settings → Export/Import.
15.1 PDF Range Card
Generates an A4 (or US Letter) multi-page PDF containing:
- Conditions header (rifle, load, atmosphere, date)
- Full trajectory table with transonic and subsonic rows highlighted
- Elevation and windage corrections in MOA and MIL
- Optional charts (drop, velocity)
Share via iOS share sheet: AirDrop to MacBook, print to AirPrint printer, send via Messages or Mail, or save to Files.
Navigation: Calculator → Share icon → Export PDF
15.2 Come-Up Card Printing
Generates a compact come-up card in three format options:
- Scope cap sticker — Small, condensed for printing on adhesive label stock that mounts to the objective lens cap
- Arm board — Sized for wrist-mounted shooter's data card
- Letter-sized — Full page for a clipboard or data book
Options:
- Column toggles: show/hide MOA, MIL, clicks, velocity, energy, TOF columns
- Monospaced font (Menlo) for clean column alignment when printed
- Conditions header toggle
Share via ShareLink to print, save, or send.
Navigation: Calculator Quick Actions → Come-Up Card
Come-Up Card in arm board format with condensed elevation table
15.3 CSV Export
Exports the trajectory table as a comma-separated values file with headers. Compatible with Excel, Numbers, Google Sheets.
Columns included: Range, Drop (MOA), Drop (MIL), Drop (in), Windage (MOA), Windage (MIL), Velocity, Energy, TOF, Mach.
Also available: shot log CSV export from the Log tab.
15.4 XLS Export
SpreadsheetML-format .xls file (compatible with Excel 2003+, Numbers, LibreOffice Calc) containing:
- Sheet 1: Trajectory table with numeric types, transonic rows colored yellow, subsonic rows colored red
- Sheet 2: Conditions metadata (rifle name, load, atmosphere, solver, date/time)
XLS export preserves number types (not strings) for direct use in formulas.
Navigation: Calculator → Share icon → Export XLS
15.5 DA Form 5517
US Army military range card format PDF. See Section 11.9.
15.6 TAK / CoT Export
Send ballistic solutions and position markers to connected TAK networks. See Section 12 for full TAK documentation.
15.7 Profile Sharing via QR Code
Any rifle profile can be exported as a QR code for sharing with another app user.
Exporting:
- Open the profile in the Profile List
- Tap Share → QR Code
- A QR code is generated using CoreImage
- Share the QR image via AirDrop, Messages, or save to Photos
Importing:
- On the receiving device, open the app
- Navigate to Profile List → Import
- Point the camera at the QR code
- The profile (rifle + all loads) is parsed and added to the profile list
Navigation: Profile List → Profile detail → Share icon
15.8 JSON Profile Export / Import
For archival or cross-platform sharing:
- Export: Produces a versioned JSON file containing the complete rifle profile (all fields, all loads, all zeros). File is saved to Files or shared via share sheet.
- Import: Select a JSON file from Files. A preview shows the profile name and load count before committing. The import is additive — it does not overwrite existing profiles.
Navigation: More → Settings → Export/Import
15.9 Data Backup
Exports the complete app dataset to a single JSON file:
- All rifle profiles, loads, and zeros
- All shot log entries
- Ammo and barrel inventory
- Saved atmosphere presets
- DOPE book entries
The file is written to the temporary export location with iOS .completeFileProtection, which protects it at rest while it lives on the device (decrypted only when the device is unlocked). The exported JSON itself is plain text — once you share it via AirDrop, save it to iCloud Drive, or move it to another device, it is no longer protected by that flag. Treat backups as sensitive files. Import is additive with a metadata preview showing what will be restored.
Navigation: More → Settings → Data Backup
16. Reticle Tools
16.1 Reticle Simulator
An interactive renderer that overlays computed ballistic holdovers on a rendered reticle image with a selectable target background.
What it shows:
- Your selected reticle from the Reticle Library (or a custom reticle)
- Color-coded holdover dots at each trajectory step (green = supersonic, yellow = transonic, red = subsonic)
- A target image (from the Target Library) at the configured scale
- Range estimation mode: tap a point on the image and the app calculates the range based on target subtension
Controls:
- Reticle picker — select from 402 library reticles or a custom DIY reticle
- Target picker — select from the Target Library
- Magnification slider — simulate different scope magnifications (subtensions change with magnification for first focal plane vs second focal plane)
- Wind overlay — toggle wind drift indicators
Navigation: More → Reticle Simulator (or pin to tab bar)
16.2 Reticle Library
See Section 5 (Reticle Library). 402 entries across 25 manufacturers for reference.
Coming soon: We are adding over 400 true-to-design reticles. Look for them in the next update.
16.3 DIY Reticle Creator
A canvas-based editor for building custom reticles.
Available elements:
- Crosshairs (horizontal and vertical lines, configurable thickness)
- Dots (filled circles at specific MIL/MOA positions)
- Lines (segments at any angle)
- BDC ladders (horizontal hash marks at specified elevation intervals)
- Text labels
Controls:
- Snap-to-grid in 0.1 MIL or 0.25 MOA increments
- Drag any element to reposition
- Tap an element to edit its properties (size, weight, position)
- Save to SwiftData with a custom name
- Custom reticles appear in the Reticle Simulator picker
DIY Reticle Creator with canvas and element palette
Navigation: More → Reticle Tools → DIY Reticle Creator
17. Inventory and Maintenance
17.1 Ammo Inventory Tracker
A lot-tracking system for managing your ammunition supply.
Per lot record:
- Manufacturer, bullet, caliber, lot number
- Round count on hand
- Cost per round (for budgeting)
- Notes (primer, powder, case source for reloads)
- Linked rifle profile (optional)
Round count management: Tap "Use Rounds" to deduct from a lot's count after a range session. Alerts when any lot drops below a configurable minimum.
Navigation: More → Inventory → Ammo Inventory
Ammo Inventory showing multiple lots with round counts
17.2 Barrel Life Tracker
Tracks rounds fired through each barrel and provides degradation alerts.
Per barrel record:
- Caliber and barrel description
- Manufacturer and barrel length
- Linked rifle profile
- Current round count
- Expected barrel life (configurable by caliber; defaults: .223/5.56 = 10,000; 6mm family = 3,000–5,000; .338 LM = 1,500)
Degradation alerts: When round count exceeds 75% of expected life, a warning indicator appears. At 100%, a critical alert suggests barrel inspection or replacement.
Navigation: More → Inventory → Barrel Life Tracker
17.3 Scope Click Tracking
A per-profile turret session log that tracks how much you are dialing your scope.
Per session:
- Date and range session
- Total clicks dialed (elevation + windage)
- Running total clicks on the turret
- Linked barrel round count at time of session
- Turret health percentage (decreases with cumulative click count, based on manufacturer-estimated turret cycle life)
Use this to know when a turret is approaching end of service life, and to document turret use for warranty purposes.
Navigation: More → Inventory → Scope Click Tracking
17.4 Suppressor POI Shift Profiles
Suppressors change the point of impact compared to a bare muzzle. This tool stores per-suppressor POI shift profiles.
Per suppressor profile:
- Suppressor name and make
- Vertical POI shift (±5 MOA range, slider input)
- Horizontal POI shift (±5 MOA range)
- Length in inches (used for barrel length adjustment when toggled)
- Notes
Attach to Rifle: In the rifle profile editor, select a suppressor to attach. This enables the one-tap Suppressor Quick Toggle in the Calculator (see Section 4, Suppressor Quick Toggle). The attached suppressor's POI shift and length are applied/removed with a single tap.
Manual Apply: You can also tap "Apply" on any suppressor profile to manually push its POI shift values to the Calculator's Zero Offset fields without attaching it to a rifle.
Navigation: More → Inventory → Suppressor Profiles
17.5 Barrel Harmonics / OCW Node Finder
A data-driven tool for finding your barrel's optimal charge weight (OCW) node and the oscillation point that produces the most consistent groups.
Inputs:
- Dwell time (time bullet is in contact with the barrel muzzle, derived from barrel length and velocity)
- Empirical frequency estimate (from group testing at multiple charges)
- SD and ES data from chrono strings at each charge weight
- Group center shift measurements across the charge ladder
Analysis:
- Oscillation chart showing how group center moves with charge weight
- Node detection — charge weights where the barrel oscillation puts the muzzle in a consistent exit position
- Recommended optimal charge weight range
Navigation: More → Tools → Barrel Harmonics
17.6 NV / IR Zero Profiles
See Section 10.5 and Section 5 (Zero Modes). Managed per-profile from the Calculator.
18. Settings and Preferences
Navigate to More → Settings or the Settings icon in the tab bar (if pinned).
Settings view main sections
18.1 Units
Configure display units globally:
- Distance: yards / meters / feet
- Velocity: fps / m/s
- Pressure: inHg / hPa / mmHg / kPa
- Temperature: °F / °C
- Energy: ft-lbs / joules
- Angular: MOA / MIL (affects all correction displays)
- Weight: grains / grams
18.2 Tab Bar Customization
See Section 3 for full documentation. Accessed from Settings → Tab Bar.
18.3 Default Solver
Set the default solver for all new calculations:
- 3DOF (Recommended for most users)
- 4DOF (Recommended for VLD/Hybrid bullets, or when spin drift accuracy matters)
- 6DOF (For research or high-precision work; slower)
- Pejsa (For quick estimates without waiting for numerical integration)
The solver can also be changed per-solve in the Calculator's Advanced Inputs section.
18.4 iCloud Sync
Toggle iCloud sync on or off. When enabled, all SwiftData records (profiles, loads, zeros, shot log, atmosphere presets, DOPE entries, etc.) are synced across your iPhone, iPad, and Mac via CloudKit using the user's personal iCloud account. Schema V16 (1.2.2+) lifted the previous CloudKit constraints by making to-many relationships optional and adding the inverse relationships CloudKit requires.
Note: On first enable, initial sync may take several minutes if you have a large dataset. The toggle preflights the iCloud account status; if iCloud is unavailable (no account, restricted, temporarily unavailable), enabling is rejected with a specific error message and the persisted setting is not touched. See Troubleshooting if sync stops working.
A separate manual JSON backup is also available at Settings → iCloud → Manual Backup & Restore for offline backups or transferring data outside iCloud. The exported JSON file is written with iOS .completeFileProtection at rest and is plain text once shared off-device — treat backups as sensitive.
18.5 Onboarding
Tap "Replay Onboarding" to re-run the 8-page first-run tour.
18.6 Analytics
The app does not collect analytics. No usage data, events, or identifiers are transmitted to any server.
18.7 Diagnostics
The Diagnostics screen shows MetricKit-delivered crash reports and performance logs. Entries are stored in the app's Documents directory as JSON files.
Sharing: Tap any diagnostic entry to view details. Tap Share to send the log via Mail, Files, or Bug Report.
18.8 Bug Reporting
The in-app bug report form generates a structured Markdown report including:
- Device model and iOS version
- App version and build number
- Description field (you write)
- Optional attachments (screenshots or diagnostic logs)
GitHub Issues integration: If you configure a GitHub Personal Access Token (Settings → Bug Report → Configure GitHub Token), bug reports are auto-submitted as GitHub Issues via the GitHub REST API. The PAT is stored in the iOS Keychain and never transmitted to any third party.
Manual bug report: Without a GitHub token, tap Send via Mail to email the report.
18.9 Dark Mode Override
Force the app to use dark or light mode regardless of the system setting. Useful for ensuring a dark interface at the range without changing your phone's global appearance.
Navigation: Settings → Appearance
18.10 Siri Shortcuts
The app registers three Siri shortcuts via AppIntents:
- "Get my hold at [range] yards" — Solves using the last-used profile and atmospheric conditions at the specified range; speaks the elevation and windage correction
- "Show drop table" — Returns a formatted multi-line drop table for the last-solved scenario
- "Open calculator" — Launches the app directly to the Calculator tab
Shortcuts use the shared App Group UserDefaults to access the last-solved ShootingScenario. They are available in the Siri & Shortcuts app immediately after the first solve.
18.11 LiDAR Target Capture
On devices equipped with LiDAR (iPhone 12 Pro and later, iPad Pro 2020+), you can physically measure target dimensions using augmented reality.
Measurement workflow:
- Point the camera at a physical target
- Tap three corners: top-left, bottom-left, bottom-right
- The app computes height and width from the 3D anchor positions
- Tap "Save as Target" to create a custom target in the Target Library with the measured dimensions
Simulator builds: LiDAR features are unavailable in the Xcode simulator; the view is guarded with a device capability check.
Navigation: More → Tools → LiDAR Capture
18.12 Push Notifications
The app can receive push notifications for TAK server disconnect events and incoming ballistic solutions sent by other TAK users. Tap Settings → Notifications to configure notification permissions.
The client-side APNS implementation is complete. Server-side notification dispatch requires a separate backend endpoint.
18.13 Legal
Settings → Legal contains:
- Terms of Service (full text)
- Privacy Policy (location, BLE, WeatherKit disclosures)
- Export Control Notice (ITAR/EAR)
- Acknowledgments (third-party libraries and data sources)
- App version and build number
19. Apple Watch
The Apple Watch app provides three watch-optimized views that sync with the iPhone app via WatchConnectivity.
Apple Watch showing QuickCalc view
19.1 QuickCalc
The primary watch view shows:
- Elevation correction (MOA or MIL) in large type
- Windage correction in large type
- Target distance
Data is populated from the last solve performed on the iPhone. If no solve has been run, fields show zero.
Usage: Glance at your wrist for hold confirmation without reaching for your phone. The watch stays synced passively via WatchConnectivity's application context transfer whenever a new solve is completed on the iPhone.
19.2 WindCall
A wind estimation tool optimized for watch input:
- Wind speed entry via Digital Crown
- Wind direction entry (4-point: head / cross right / tail / cross left)
- Corrected windage hold updates in real time based on the watch's local copy of the last profile and trajectory data
19.3 Synced Range Card
A scrollable range card on the watch showing the full distance table from the last iPhone solve. Swipe to scroll through ranges. Useful for quickly checking holds at a distance not shown in QuickCalc.
20. Widgets and Live Activities
20.1 Home Screen Widgets
Two WidgetKit widget sizes are available:
Small widget: Shows the last solved elevation and windage correction, and the target distance.
Medium widget: Shows elevation, windage, target distance, bullet velocity at target, and profile name.
Updating: Widgets update when a new solve is performed in the app. Data is shared via App Group UserDefaults (group.com.zimalogistics.ballisticscalc).
Adding a widget: Long-press the Home Screen → tap the "+" button → search "Ballistics" → choose Small or Medium size.
Medium home screen widget showing last solution
20.2 Live Activity / Dynamic Island
When a ballistic solution is active, a Live Activity updates on the lock screen and in the Dynamic Island (iPhone 14 Pro and later).
Dynamic Island compact view: Shows elevation correction (up arrow + value) and windage correction (side arrow + value).
Lock screen extended view: Shows elevation, windage, target distance, and bullet velocity at target.
Activating: Live Activities start automatically when a solve is computed in the Calculator and remain active until you tap the clear button or the app background session expires.
21. In-App Purchase
21.1 Free Tier
The free tier provides access to:
- Full ballistic engine (all four solvers, all drag models)
- Calculator with full trajectory table and charts
- Rifle profiles (unlimited)
- Bullet database browsing and auto-fill
- Basic analysis tools (PBR, effective range, group-to-MOA, recoil)
- Shot log
- Basic export (PDF range card)
21.2 Pro Tier (One-Time Purchase)
The Pro tier is a single one-time payment (not a subscription) that unlocks:
- All advanced analysis tools (WEZ, terminal ballistics, load comparison, DSF library, drag coefficient measurement)
- All field tools (HUD mode, competition mode, virtual turret)
- All military and law enforcement features
- TAK integration
- Apple Watch app
- Widgets and Live Activities
- All export formats (CSV, XLS, come-up cards, DA Form 5517)
- iCloud sync and manual JSON backup
- All database features (pellet database, Lapua Doppler profiles, custom drag curves)
- Onboarding replay
21.3 How to Upgrade
- Tap More → Settings → Upgrade to Pro (or look for "Unlock Pro" prompts when tapping Pro-gated features)
- The Pro Upgrade screen shows a feature comparison table
- Tap "Buy" to initiate the App Store purchase
- Complete the purchase through your Apple ID
- Pro features unlock immediately
21.4 Restoring Purchases
If you change devices or reinstall the app:
- Navigate to More → Settings → Upgrade to Pro
- Tap "Restore Purchases"
- The app queries your Apple ID's StoreKit transaction history and unlocks Pro if a prior purchase is found
Restoration is instantaneous if you are signed into the same Apple ID that made the purchase.
22. Troubleshooting
Calculator shows zero for corrections after solve
Verify that a rifle profile is loaded in the Rifle/Load section and that the profile has at least one load with a non-zero muzzle velocity and ballistic coefficient.
iCloud sync not working
- Ensure iCloud Drive is enabled for Ballistics Calculator in iOS Settings → [Your Name] → iCloud → iCloud Drive
- In the app, toggle iCloud sync off, wait a few seconds, then toggle it back on. The app preflights account availability and surfaces a specific error if iCloud is unavailable
- Restart the app after toggling — the SwiftData container is created at launch
- If "iCloud Sync Error" appears as a red banner under the toggle, follow the message text. The flag clears automatically on the next successful CloudKit init
- If the issue persists, sign out of iCloud on the device, sign back in, and allow the initial sync to complete
Data backup file won't import
- Ensure the file you are importing is a JSON file exported from this app (not a raw profile JSON or a backup from an unrelated app)
- The import is additive — duplicates are skipped by ID. If a profile appears missing after import, check if a profile with the same ID already exists
- If iOS reports the file is unreadable, it may have been corrupted during transfer; re-export from the source device
WeatherKit shows cached or unavailable data
WeatherKit requires a provisioning profile with the WeatherKit entitlement. In TestFlight or development builds, WeatherKit may be unavailable. The app falls back to the UserDefaults cache. A status banner in the Atmosphere section indicates which source is active.
Bluetooth device not appearing in scan
- Ensure Bluetooth is enabled in iOS Settings
- Verify the device is powered on and actively advertising (many rangefinders require a button press to advertise)
- If the device previously paired to another app, the iOS Bluetooth system may have assigned it to that app. Try forgetting the device in iOS Settings → Bluetooth and then scanning again in the app.
- Some Kestrel models require the Bluetooth menu to be active on the Kestrel display during pairing.
TAK connection dropping repeatedly
Check:
- Server hostname/IP is correct and reachable on your network
- Client certificate is valid (check expiry banner in TAK Settings)
- Server port is open through any firewall
- Auto-Reconnect is enabled for automatic recovery
- Check iOS background app refresh settings if connections drop when the app is backgrounded
"Mathematical approximation" disclaimer — what does it mean?
The ballistic solver integrates differential equations of motion using a model of atmospheric drag, gravity, Coriolis, spin drift, and other forces. The models are based on measured data and established physics but cannot perfectly replicate the infinite complexity of real-world conditions. Your barrel, bullet, and atmosphere will differ from the model in ways that accumulate at distance. Always true your solution (Section 6.1) against confirmed long-range impacts before trusting it operationally.
Watch app shows zeros
The watch app populates from the last iPhone solve via WatchConnectivity. No data appears until at least one solve has been performed and the iPhone and watch are paired and within range of each other. Open the watch app after completing a solve on the iPhone.
Live Activity not appearing
Live Activities require iOS 16.2 or later. Verify that Live Activities are enabled for Ballistics Calculator in iOS Settings → Notifications → Live Activities.
Profile QR code won't scan
Ensure the QR image is displayed at sufficient brightness and that the scanner view is not obstructed. The QR code contains the full profile JSON, which may produce a dense QR code for profiles with many loads. Try increasing screen brightness or printing the QR code for scanning.
23. Appendices
Appendix A — Glossary of Ballistic Terms
Aerodynamic Jump — Vertical deflection of the bullet path induced by the bullet's spin axis being misaligned with the velocity vector at the muzzle due to crosswind. The bullet gyroscopically "jumps" perpendicular to the crosswind. Generally small (sub-0.1 MIL) but measurable at long range.
Ballistic Coefficient (BC) — A dimensionless number expressing a bullet's ability to overcome air resistance relative to a standard projectile. G1 BCs use a flat-base reference projectile; G7 BCs use a long-range boat-tail reference projectile more representative of modern high-BC bullets.
Cant — Rotation of the scope/rifle around the bore axis. A canted scope displaces the optical axis from the bore axis in a direction that is no longer purely vertical, causing the computed elevation correction to produce a lateral displacement at distance.
Cd (Drag Coefficient) — The dimensionless aerodynamic drag coefficient of a projectile at a given Mach number. Varies with velocity; the drag function (G1, G7, etc.) is a standardized Cd vs. Mach curve. Custom drag curves express bullet-specific Cd vs. Mach data from radar measurement.
CEP (Circular Error Probable) — The radius of a circle centered on the mean impact point that contains 50% of shots. A 1 MOA rifle at 500 yards has a CEP of approximately 2.5 inches.
Coriolis Effect — Deflection of projectile flight caused by the rotation of the Earth. At ranges beyond 600 yards, Coriolis causes a measurable lateral (and minor vertical) deflection depending on latitude, azimuth, and time of flight. The app uses a full vector model integrated in the RK4 loop.
Density Altitude (DA) — A pressure altitude corrected for temperature deviation from the ICAO standard atmosphere. Higher DA (hotter, lower pressure, higher humidity) means less dense air, which reduces drag and results in higher remaining velocity and energy — but also reduces projectile drop (the bullet "flies flatter"). Computed from temperature, pressure, and humidity.
Drop — The vertical displacement of the bullet's path below the line of departure (bore axis) at a given range. Expressed in inches, MOA, or MIL.
Eotvos Effect — A modification to the Coriolis effect for eastward or westward travel. Bullets traveling east experience slightly less effective gravity (the Earth's rotation augments centrifugal force); westward bullets experience slightly more. The effect is larger for artillery; for small arms it is typically less than Coriolis.
ES (Extreme Spread) — The velocity difference between the fastest and slowest shot in a string. A measure of worst-case variation.
G1 / G2 / G5 / G6 / G7 / G8 / GL / GS — Standard drag model references used to characterize bullet ballistic coefficient. G1 is the oldest and most commonly published; G7 is preferred for long-range boat-tail bullets as it better models their actual drag shape.
Gyroscopic Stability (Sg) — A dimensionless ratio indicating whether a bullet is spinning fast enough (relative to its gyroscopic rigidity) to remain stable in flight. Sg > 1.5 is generally considered stable. Sg < 1.0 means the bullet is unstable and will tumble.
Magnus Effect — A lateral force on a spinning projectile caused by the interaction of the spin and the airflow over the bullet. The Magnus force acts perpendicular to both the velocity vector and the spin axis. Modeled in the 4DOF and 6DOF solvers.
Mach Number — The bullet's velocity as a fraction of the local speed of sound. Mach 1.0 is the speed of sound. Bullets enter the transonic zone (Mach 0.8–1.2) as they slow down, where the drag function becomes nonlinear and sensitive to bullet shape. The subsonic zone is below Mach 0.8.
MIL (Milliradian) — An angular unit equal to 1/1000 of a radian. At 1000 yards, 1 MIL ≈ 36 inches. Most modern tactical scopes use MRAD (same unit) turrets calibrated to 0.1 MIL clicks.
MOA (Minute of Angle) — An angular unit equal to 1/60 of a degree. At 100 yards, 1 MOA ≈ 1.047 inches. US-market scopes frequently use MOA turrets calibrated to 0.25 MOA clicks.
MPBR (Maximum Point Blank Range) — The furthest range at which a bullet stays within a vital zone height above or below the line of sight without correcting holds.
RK4 (Runge-Kutta 4th Order) — A numerical integration method used to solve the differential equations of motion for the projectile. The app integrates at 1-millisecond time steps.
SD (Standard Deviation) — A statistical measure of dispersion. For velocity strings, SD measures shot-to-shot MV consistency. For impact data, SD measures spread around the mean impact point.
Sectional Density (SD) — Bullet weight divided by the square of bullet diameter (in consistent units). Higher SD generally indicates better penetration into tissue and barriers.
Sg (Gyroscopic Stability Factor) — See Gyroscopic Stability above.
Spin Drift — Lateral drift of a bullet caused by gyroscopic precession. Right-hand twist bullets drift right; left-hand twist bullets drift left. Spin drift accumulates significantly at extended ranges. The app implements both the Litz empirical model and the McCoy analytical model.
TOF (Time of Flight) — The time in seconds from muzzle departure to reaching the target at a given range.
Transonic Zone — The velocity range between Mach 0.8 and Mach 1.2 where aerodynamic instability can occur. Bullets transitioning through this zone experience rapidly changing drag and may become dynamically unstable if not properly stabilized.
Turret Tracking — The accuracy with which a scope's turret translates click inputs into actual optical axis movement. A scope with 97% tracking applies only 0.97× the nominal correction per click.
WEZ (Wind Error Zone / Weapon Employment Zone) — A probability-based impact distribution model accounting for all sources of dispersion. The WEZ tool uses Monte Carlo simulation to compute P50/P90/P95 miss radii.
Zero — The range and conditions at which the rifle is adjusted so that the point of impact equals the point of aim with no holds or corrections. All subsequent corrections are computed as offsets from this reference.
Appendix B — Supported Drag Models
| Model | Reference Projectile | Best For |
|---|---|---|
| G1 | Flat-base, round nose (19th century standard) | Most factory ammunition BCs (widely published but not ideal for LR) |
| G2 | Aberdeen J projectile (ogival nose) | Some specialty projectiles |
| G5 | Short boat-tail, small-arm model | Intermediate range bullets with moderate boat-tail |
| G6 | Full flat-base, small caliber | Varmint and flat-base target bullets |
| G7 | Long-range boat-tail | Modern high-BC VLD and Hybrid designs (preferred for LR precision) |
| G8 | Flat-base, short ogive | Some military projectiles |
| GL | Lead round ball | Muzzleloaders, air pistols |
| GS | Short ball | Shotgun slugs and short ball projectiles |
| Custom | User-defined Cd vs. Mach | When radar or two-chrono data is available; maximum accuracy |
| Lapua Doppler | Factory radar-measured | 91 Lapua bullets; eliminates BC approximation entirely |
Recommendation by use case:
- Factory hunting ammo: Use published G1 BC as a starting point; true at long range
- Match bullets (Berger, Sierra, Lapua, Nosler RDF): Use G7 BC for best accuracy
- Lapua bullets: Use Lapua Doppler profiles to eliminate BC entirely
- Reloaded/custom bullets without published G7: Use BC back-calculator (Section 6.2) to derive your own
Appendix C — Unit Conversions Quick Reference
Angular
| Value | MOA | MIL | cm/100m | in/100yd |
|---|---|---|---|---|
| 1 MOA | 1.000 | 0.291 | 2.909 | 1.047 |
| 1 MIL | 3.438 | 1.000 | 10.000 | 3.600 |
| 1 in/100yd | 0.955 | 0.278 | 2.778 | 1.000 |
| 1 cm/100m | 0.344 | 0.100 | 1.000 | 0.360 |
Velocity
| fps | m/s | km/h | mph |
|---|---|---|---|
| 1 fps | 0.3048 m/s | 1.097 km/h | 0.682 mph |
| 1 m/s | 3.281 fps | 3.6 km/h | 2.237 mph |
Distance
| yards | meters | feet |
|---|---|---|
| 1 yd | 0.9144 m | 3.000 ft |
| 1 m | 1.0936 yd | 3.281 ft |
| 1,000 yd | 914.4 m | 3,000 ft |
| 1,000 m | 1,094 yd | 3,281 ft |
Energy
| ft-lbs | joules |
|---|---|
| 1 ft-lb | 1.3558 J |
| 1 J | 0.7376 ft-lbs |
Pressure
| inHg | hPa/mbar | mmHg | kPa |
|---|---|---|---|
| 1 inHg | 33.864 hPa | 25.400 mmHg | 3.386 kPa |
| Standard sea level | 29.921 inHg | 1013.25 hPa | 760.0 mmHg |
Appendix D — Solver Comparison
| Feature | 3DOF | 4DOF | 6DOF | Pejsa |
|---|---|---|---|---|
| Type | Numerical (RK4) | Numerical (RK4) | Numerical (RK4) | Analytical |
| Step size | 1 ms | 1 ms | 1 ms | N/A |
| Spin drift | Litz/McCoy empirical | Physics-derived | Physics-derived | Not included |
| Aerodynamic jump | Empirical | Physics-derived | Physics-derived | Not included |
| Magnus effect | Not modeled | Modeled | Fully modeled | Not included |
| Spin rate tracking | No | Yes (4th DOF) | Yes | No |
| Rotational dynamics | No | No | Full 6-axis | No |
| Speed | Fast | Moderate | Slow | Instant |
| Best for | General use, field | VLD/Hybrid bullets | Research | Quick estimates |
Recommendation: 3DOF for the vast majority of field and competition use. 4DOF when you need physics-derived spin drift and aerodynamic jump for VLD or Hybrid bullets where empirical corrections may be less accurate. 6DOF for research. Pejsa when you need an instant answer and don't need spin drift corrections.
Appendix E — Coriolis and Spin Drift: Understanding Directionality
Both Coriolis and spin drift introduce lateral deflection that must be accounted for at extended ranges. A common source of confusion is their directionality.
Coriolis (Northern Hemisphere):
- Firing north: bullet deflects east (right)
- Firing south: bullet deflects west (right for a northbound reference)
- Firing east or west: primarily vertical Eotvos effect
- Rule: In the Northern Hemisphere, Coriolis deflects bullets to the right of travel (relative to the shooter)
- In the Southern Hemisphere: deflects left
Spin drift:
- Right-hand twist: drift to the right (always)
- Left-hand twist: drift to the left (always)
- Hemisphere has no effect on spin drift direction
At 1,000 yards, these effects can be 0.2–0.5 MIL each and in the same or opposite direction depending on your latitude, azimuth, and twist direction. The app accounts for both independently.
Appendix F — Privacy and Data Security
Data stored on device:
- All profile, shot log, and inventory data is stored in SwiftData (SQLite) in the app's protected data container
- TAK received events are stored with
.completeFileProtection(encrypted when device is locked) - GitHub PAT and TAK certificates/credentials are stored in the iOS Keychain
Data transmitted:
- WeatherKit: location sent to Apple servers for weather lookup
- iCloud sync (when enabled): profile, shot log, and range card data synced via CloudKit through Apple servers to your personal iCloud account only
- TAK: ballistic solutions and position data sent to your configured TAK server only
- Bug reports: sent via GitHub Issues API only when GitHub PAT is configured and you initiate a report
- No data is ever sold or shared with advertisers
Location data: GPS location is used only for WeatherKit queries, Coriolis latitude auto-fill, and Shooting Light calculations. Location is never transmitted except to Apple's WeatherKit API. The app requests location only when you explicitly tap a "use my location" button.
End of Ballistics Calculator — Complete Reference Guide
This document covers app version current as of 2026-03-20. Features are subject to change. The app is distributed via the US App Store only, pending ITAR/EAR legal review. Rated 17+ by Apple.