{
  "dataset": {
    "id": "calculators",
    "name": "Calculators",
    "description": "Every deterministic calculator with its inputs and documented formula.",
    "license": "CC BY-SA 4.0",
    "version": "1.0.0",
    "status": "published",
    "provenance": "First-party; generated from the tools registry. Formulas are documented and attributed."
  },
  "fields": [
    "slug",
    "title",
    "category",
    "formula",
    "source",
    "url"
  ],
  "records": [
    {
      "slug": "running-pace-calculator",
      "title": "Running Pace Calculator",
      "category": "running",
      "formula": "pace = total time ÷ distance",
      "source": "Definition of average pace",
      "url": "https://socialsporthub.com/tools/running-pace-calculator"
    },
    {
      "slug": "race-time-predictor",
      "title": "Race Time Predictor",
      "category": "running",
      "formula": "T₂ = T₁ × (D₂ ÷ D₁)^1.06",
      "source": "Peter Riegel, \"Athletic Records and Human Endurance\" (1981)",
      "url": "https://socialsporthub.com/tools/race-time-predictor"
    },
    {
      "slug": "vo2max-estimator",
      "title": "VO₂max Estimator (Cooper test)",
      "category": "running",
      "formula": "VO₂max ≈ (distance_m − 504.9) ÷ 44.73",
      "source": "Cooper, K.H. (1968), JAMA",
      "url": "https://socialsporthub.com/tools/vo2max-estimator"
    },
    {
      "slug": "training-pace-calculator",
      "title": "Training Pace Calculator",
      "category": "running",
      "formula": "zone pace = threshold pace ± documented offset",
      "source": "Widely-taught endurance-coaching relationships (educational ranges)",
      "url": "https://socialsporthub.com/tools/training-pace-calculator"
    },
    {
      "slug": "cadence-calculator",
      "title": "Running Cadence Calculator",
      "category": "running",
      "formula": "cadence = steps ÷ (duration ÷ 60); stride = distance ÷ steps",
      "source": "Definitions",
      "url": "https://socialsporthub.com/tools/cadence-calculator"
    },
    {
      "slug": "heart-rate-zones",
      "title": "Heart-Rate Zone Calculator",
      "category": "running",
      "formula": "zone = (HRmax − HRrest) × %intensity + HRrest",
      "source": "Karvonen et al. (1957); Tanaka et al. (2001) for max-HR",
      "url": "https://socialsporthub.com/tools/heart-rate-zones"
    },
    {
      "slug": "split-calculator",
      "title": "Split Calculator",
      "category": "running",
      "formula": "split time = (total time ÷ distance) × split length",
      "source": "Constant-pace model",
      "url": "https://socialsporthub.com/tools/split-calculator"
    },
    {
      "slug": "marathon-predictor",
      "title": "Marathon Time Predictor",
      "category": "running",
      "formula": "T_marathon = T₁ × (42.195 ÷ D₁)^1.06",
      "source": "Peter Riegel (1981)",
      "url": "https://socialsporthub.com/tools/marathon-predictor"
    },
    {
      "slug": "bike-size-calculator",
      "title": "Bike Size Calculator",
      "category": "cycling",
      "formula": "road frame(cm) ≈ inseam × 0.665; MTB frame(in) ≈ inseam × 0.226",
      "source": "Long-standing LeMond / MTB sizing heuristics",
      "url": "https://socialsporthub.com/tools/bike-size-calculator"
    },
    {
      "slug": "bike-gearing-calculator",
      "title": "Bike Gearing & Speed Calculator",
      "category": "cycling",
      "formula": "speed = cadence × (chainring ÷ sprocket) × circumference",
      "source": "Drivetrain geometry",
      "url": "https://socialsporthub.com/tools/bike-gearing-calculator"
    },
    {
      "slug": "cycling-power-zones",
      "title": "Cycling Power Zones",
      "category": "cycling",
      "formula": "each zone = a fixed % band of FTP",
      "source": "Allen & Coggan, \"Training and Racing with a Power Meter\"",
      "url": "https://socialsporthub.com/tools/cycling-power-zones"
    },
    {
      "slug": "ftp-estimator",
      "title": "FTP Estimator",
      "category": "cycling",
      "formula": "FTP ≈ 0.95 × 20-minute power",
      "source": "Allen & Coggan (widely used field convention)",
      "url": "https://socialsporthub.com/tools/ftp-estimator"
    },
    {
      "slug": "cycling-calorie-calculator",
      "title": "Cycling Calorie Calculator",
      "category": "cycling",
      "formula": "kJ = power × time; kcal ≈ kJ",
      "source": "The kJ≈kcal relationship (~24% gross efficiency)",
      "url": "https://socialsporthub.com/tools/cycling-calorie-calculator"
    },
    {
      "slug": "ride-pace-calculator",
      "title": "Ride Pace & Speed Calculator",
      "category": "cycling",
      "formula": "speed = distance ÷ time",
      "source": "Definition",
      "url": "https://socialsporthub.com/tools/ride-pace-calculator"
    },
    {
      "slug": "swim-pace-calculator",
      "title": "Swim Pace Calculator",
      "category": "swimming",
      "formula": "pace = time ÷ (distance ÷ 100)",
      "source": "Definition",
      "url": "https://socialsporthub.com/tools/swim-pace-calculator"
    },
    {
      "slug": "critical-swim-speed",
      "title": "Critical Swim Speed (CSS) Calculator",
      "category": "swimming",
      "formula": "CSS = (400 − 200) ÷ (T₄₀₀ − T₂₀₀)",
      "source": "Wakayoshi et al. (1992); popularised by Swim Smooth",
      "url": "https://socialsporthub.com/tools/critical-swim-speed"
    },
    {
      "slug": "pool-distance-converter",
      "title": "Pool Distance Converter",
      "category": "swimming",
      "formula": "1 yard = 0.9144 metres",
      "source": "International yard definition",
      "url": "https://socialsporthub.com/tools/pool-distance-converter"
    },
    {
      "slug": "swim-split-calculator",
      "title": "Swim Split Calculator",
      "category": "swimming",
      "formula": "split = (time ÷ distance) × split length",
      "source": "Constant-pace model",
      "url": "https://socialsporthub.com/tools/swim-split-calculator"
    },
    {
      "slug": "tennis-grip-size",
      "title": "Tennis Grip Size Finder",
      "category": "tennis",
      "formula": "nearest standard grip to your measurement",
      "source": "Standard racquet grip sizing (L0–L5)",
      "url": "https://socialsporthub.com/tools/tennis-grip-size"
    },
    {
      "slug": "string-tension-guide",
      "title": "String Tension Guide",
      "category": "tennis",
      "formula": "higher tension → control; lower tension → power",
      "source": "Established racquet-stringing principle",
      "url": "https://socialsporthub.com/tools/string-tension-guide"
    },
    {
      "slug": "racquet-balance-explainer",
      "title": "Racquet Balance Explainer",
      "category": "tennis",
      "formula": "points = |balance − length ÷ 2| ÷ 3.18 mm",
      "source": "Standard racquet-balance convention (1 point = ⅛ inch)",
      "url": "https://socialsporthub.com/tools/racquet-balance-explainer"
    },
    {
      "slug": "match-duration-estimator",
      "title": "Match Duration Estimator",
      "category": "tennis",
      "formula": "time = games × average game length",
      "source": "Simple estimate from your own assumptions",
      "url": "https://socialsporthub.com/tools/match-duration-estimator"
    },
    {
      "slug": "serve-speed-converter",
      "title": "Serve Speed Converter",
      "category": "tennis",
      "formula": "1 mph = 1.609344 km/h; 1 m/s = 3.6 km/h",
      "source": "Exact definitions",
      "url": "https://socialsporthub.com/tools/serve-speed-converter"
    },
    {
      "slug": "shooting-percentage-calculator",
      "title": "Shooting Percentage Calculator",
      "category": "basketball",
      "formula": "eFG% = (FGM + 0.5·3PM) ÷ FGA; TS% = PTS ÷ (2·(FGA + 0.44·FTA))",
      "source": "Standard basketball analytics (Oliver; Basketball-Reference)",
      "url": "https://socialsporthub.com/tools/shooting-percentage-calculator"
    },
    {
      "slug": "possession-estimator",
      "title": "Possession Estimator",
      "category": "basketball",
      "formula": "POSS ≈ FGA − ORB + TOV + 0.44·FTA",
      "source": "Dean Oliver, \"Basketball on Paper\"",
      "url": "https://socialsporthub.com/tools/possession-estimator"
    },
    {
      "slug": "league-points-calculator",
      "title": "League Points Calculator",
      "category": "football",
      "formula": "points = wins × points-per-win + draws",
      "source": "Standard league scoring",
      "url": "https://socialsporthub.com/tools/league-points-calculator"
    },
    {
      "slug": "penalty-shootout-order",
      "title": "Penalty Shootout Order Generator",
      "category": "football",
      "formula": "ABBA swaps first kicker each round; ABAB fixes it",
      "source": "IFAB shootout procedures",
      "url": "https://socialsporthub.com/tools/penalty-shootout-order"
    },
    {
      "slug": "volleyball-rotation-helper",
      "title": "Volleyball Rotation Helper",
      "category": "volleyball",
      "formula": "on each side-out, every player moves one zone clockwise",
      "source": "Volleyball rotation rules",
      "url": "https://socialsporthub.com/tools/volleyball-rotation-helper"
    },
    {
      "slug": "volleyball-lineup-builder",
      "title": "Volleyball Lineup System Explainer",
      "category": "volleyball",
      "formula": "setters vs attackers by rotation",
      "source": "Standard volleyball systems",
      "url": "https://socialsporthub.com/tools/volleyball-lineup-builder"
    },
    {
      "slug": "golf-handicap-explainer",
      "title": "Golf Course Handicap Explainer",
      "category": "golf",
      "formula": "CH = Index × (Slope ÷ 113) + (Course Rating − Par)",
      "source": "World Handicap System (USGA/R&A)",
      "url": "https://socialsporthub.com/tools/golf-handicap-explainer"
    },
    {
      "slug": "round-robin-generator",
      "title": "Round Robin Generator",
      "category": "tournaments",
      "formula": "total matches = N(N − 1) ÷ 2; rounds = N − 1 (even)",
      "source": "Round-robin scheduling algorithm",
      "url": "https://socialsporthub.com/tools/round-robin-generator"
    },
    {
      "slug": "single-elimination-bracket",
      "title": "Single Elimination Bracket Builder",
      "category": "tournaments",
      "formula": "rounds = ⌈log₂N⌉; matches = N − 1",
      "source": "Single-elimination bracket maths",
      "url": "https://socialsporthub.com/tools/single-elimination-bracket"
    },
    {
      "slug": "double-elimination-bracket",
      "title": "Double Elimination Bracket Builder",
      "category": "tournaments",
      "formula": "matches = 2N − 2 (or 2N − 1 with a bracket reset)",
      "source": "Double-elimination bracket maths",
      "url": "https://socialsporthub.com/tools/double-elimination-bracket"
    },
    {
      "slug": "swiss-tournament-pairings",
      "title": "Swiss Tournament Pairing Guide",
      "category": "tournaments",
      "formula": "rounds ≈ log₂N; round 1 pairs top vs upper half",
      "source": "Swiss-system tournament rules",
      "url": "https://socialsporthub.com/tools/swiss-tournament-pairings"
    },
    {
      "slug": "league-scheduler",
      "title": "League Scheduler",
      "category": "tournaments",
      "formula": "double fixtures = N(N − 1); single = N(N − 1) ÷ 2",
      "source": "Round-robin scheduling",
      "url": "https://socialsporthub.com/tools/league-scheduler"
    },
    {
      "slug": "training-load-calculator",
      "title": "Training Load Calculator",
      "category": "training-health",
      "formula": "load = RPE × minutes; ACWR = acute ÷ (chronic ÷ 4)",
      "source": "Foster (1998); Gabbett (2016) acute:chronic ratio",
      "url": "https://socialsporthub.com/tools/training-load-calculator"
    },
    {
      "slug": "rest-day-planner",
      "title": "Rest Day Planner",
      "category": "training-health",
      "formula": "rest = at least 1 (2 if high-intensity), scaled to frequency",
      "source": "General recovery guidance",
      "url": "https://socialsporthub.com/tools/rest-day-planner"
    },
    {
      "slug": "hydration-sweat-rate",
      "title": "Sweat Rate & Hydration Calculator",
      "category": "training-health",
      "formula": "sweat/hr = (weight lost + fluid drunk) ÷ hours",
      "source": "Standard sports-science sweat-testing method",
      "url": "https://socialsporthub.com/tools/hydration-sweat-rate"
    },
    {
      "slug": "calorie-tdee-calculator",
      "title": "Calorie & TDEE Calculator",
      "category": "training-health",
      "formula": "BMR = 10·kg + 6.25·cm − 5·age + s (male +5 / female −161); TDEE = BMR × activity",
      "source": "Mifflin et al. (1990)",
      "url": "https://socialsporthub.com/tools/calorie-tdee-calculator"
    },
    {
      "slug": "protein-intake-calculator",
      "title": "Protein Intake Calculator",
      "category": "training-health",
      "formula": "daily protein = body weight × g/kg for your goal",
      "source": "ACSM / ISSN position stands",
      "url": "https://socialsporthub.com/tools/protein-intake-calculator"
    },
    {
      "slug": "energy-expenditure-calculator",
      "title": "Energy Expenditure Calculator",
      "category": "training-health",
      "formula": "kcal/min = MET × 3.5 × kg ÷ 200",
      "source": "Compendium of Physical Activities; ACSM",
      "url": "https://socialsporthub.com/tools/energy-expenditure-calculator"
    },
    {
      "slug": "recovery-time-estimator",
      "title": "Recovery Time Estimator",
      "category": "training-health",
      "formula": "typical hours before hard reload, by session type",
      "source": "General exercise physiology (muscle protein synthesis, DOMS)",
      "url": "https://socialsporthub.com/tools/recovery-time-estimator"
    }
  ],
  "schemaOrg": {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Calculators",
    "description": "Every deterministic calculator with its inputs and documented formula.",
    "url": "https://socialsporthub.com/datasets/calculators",
    "license": "https://creativecommons.org/licenses/by-sa/4.0/",
    "version": "1.0.0",
    "isAccessibleForFree": true,
    "creator": {
      "@type": "Organization",
      "name": "SocialSportHub",
      "url": "https://socialsporthub.com"
    },
    "variableMeasured": [
      "slug",
      "title",
      "category",
      "formula",
      "source",
      "url"
    ],
    "distribution": [
      {
        "@type": "DataDownload",
        "encodingFormat": "application/json",
        "contentUrl": "https://socialsporthub.com/datasets/calculators/json"
      },
      {
        "@type": "DataDownload",
        "encodingFormat": "text/csv",
        "contentUrl": "https://socialsporthub.com/datasets/calculators/csv"
      },
      {
        "@type": "DataDownload",
        "encodingFormat": "application/ld+json",
        "contentUrl": "https://socialsporthub.com/datasets/calculators/jsonld"
      },
      {
        "@type": "DataDownload",
        "encodingFormat": "text/turtle",
        "contentUrl": "https://socialsporthub.com/datasets/calculators/rdf"
      }
    ]
  },
  "metrics": {
    "records": 42,
    "fields": 6,
    "completeness": 1,
    "qualityScore": 100
  }
}