{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://askcalculators.com/calculator/probability-calculator/schema.json",
  "title": "Probability Calculator inputs",
  "description": "Calculate independent-event relationships, repeated-event probabilities, normal-distribution areas, or binomial probabilities.",
  "type": "object",
  "properties": {
    "mode": {
      "title": "Probability model",
      "type": "string",
      "default": "two-events",
      "enum": [
        "two-events",
        "repeated-events",
        "normal",
        "binomial"
      ],
      "x-optionLabels": {
        "two-events": "Two independent events",
        "repeated-events": "Repeated independent events",
        "normal": "Normal distribution interval",
        "binomial": "Binomial distribution"
      }
    },
    "probabilityA": {
      "title": "Probability of A",
      "type": "number",
      "default": 0.5,
      "minimum": 0,
      "maximum": 1,
      "x-step": 0.001,
      "x-showWhen": {
        "field": "mode",
        "equals": "two-events"
      }
    },
    "probabilityB": {
      "title": "Probability of B",
      "type": "number",
      "default": 0.4,
      "minimum": 0,
      "maximum": 1,
      "x-step": 0.001,
      "x-showWhen": {
        "field": "mode",
        "equals": "two-events"
      }
    },
    "seriesProbabilityA": {
      "title": "Event A probability",
      "type": "number",
      "default": 0.5,
      "minimum": 0,
      "maximum": 1,
      "x-step": 0.001,
      "x-showWhen": {
        "field": "mode",
        "equals": "repeated-events"
      }
    },
    "seriesRepeatsA": {
      "title": "Event A repeat count",
      "type": "number",
      "default": 3,
      "minimum": 0,
      "maximum": 10000,
      "x-step": 1,
      "multipleOf": 1,
      "x-showWhen": {
        "field": "mode",
        "equals": "repeated-events"
      }
    },
    "seriesProbabilityB": {
      "title": "Event B probability",
      "type": "number",
      "default": 0.4,
      "minimum": 0,
      "maximum": 1,
      "x-step": 0.001,
      "x-showWhen": {
        "field": "mode",
        "equals": "repeated-events"
      }
    },
    "seriesRepeatsB": {
      "title": "Event B repeat count",
      "type": "number",
      "default": 2,
      "minimum": 0,
      "maximum": 10000,
      "x-step": 1,
      "multipleOf": 1,
      "x-showWhen": {
        "field": "mode",
        "equals": "repeated-events"
      }
    },
    "normalMean": {
      "title": "Mean (μ)",
      "type": "number",
      "default": 0,
      "x-step": 0.01,
      "x-showWhen": {
        "field": "mode",
        "equals": "normal"
      }
    },
    "normalStandardDeviation": {
      "title": "Standard deviation (σ)",
      "type": "number",
      "default": 1,
      "minimum": 0.000001,
      "x-step": 0.01,
      "x-showWhen": {
        "field": "mode",
        "equals": "normal"
      }
    },
    "leftBound": {
      "title": "Left bound",
      "type": "string",
      "description": "Use -inf for negative infinity.",
      "default": "-1",
      "x-showWhen": {
        "field": "mode",
        "equals": "normal"
      }
    },
    "rightBound": {
      "title": "Right bound",
      "type": "string",
      "description": "Use inf for positive infinity.",
      "default": "1",
      "x-showWhen": {
        "field": "mode",
        "equals": "normal"
      }
    },
    "trials": {
      "title": "Number of trials (n)",
      "type": "number",
      "default": 10,
      "minimum": 0,
      "maximum": 1000,
      "x-step": 1,
      "multipleOf": 1,
      "x-showWhen": {
        "field": "mode",
        "equals": "binomial"
      }
    },
    "successProbability": {
      "title": "Probability of success (p)",
      "type": "number",
      "default": 0.5,
      "minimum": 0,
      "maximum": 1,
      "x-step": 0.001,
      "x-showWhen": {
        "field": "mode",
        "equals": "binomial"
      }
    },
    "successes": {
      "title": "Number of successes (x)",
      "type": "number",
      "default": 5,
      "minimum": 0,
      "maximum": 1000,
      "x-step": 1,
      "multipleOf": 1,
      "x-showWhen": {
        "field": "mode",
        "equals": "binomial"
      }
    }
  },
  "required": [
    "mode"
  ],
  "allOf": [
    {
      "if": {
        "properties": {
          "mode": {
            "const": "two-events"
          }
        },
        "required": [
          "mode"
        ]
      },
      "then": {
        "required": [
          "probabilityA"
        ]
      }
    },
    {
      "if": {
        "properties": {
          "mode": {
            "const": "two-events"
          }
        },
        "required": [
          "mode"
        ]
      },
      "then": {
        "required": [
          "probabilityB"
        ]
      }
    },
    {
      "if": {
        "properties": {
          "mode": {
            "const": "repeated-events"
          }
        },
        "required": [
          "mode"
        ]
      },
      "then": {
        "required": [
          "seriesProbabilityA"
        ]
      }
    },
    {
      "if": {
        "properties": {
          "mode": {
            "const": "repeated-events"
          }
        },
        "required": [
          "mode"
        ]
      },
      "then": {
        "required": [
          "seriesRepeatsA"
        ]
      }
    },
    {
      "if": {
        "properties": {
          "mode": {
            "const": "repeated-events"
          }
        },
        "required": [
          "mode"
        ]
      },
      "then": {
        "required": [
          "seriesProbabilityB"
        ]
      }
    },
    {
      "if": {
        "properties": {
          "mode": {
            "const": "repeated-events"
          }
        },
        "required": [
          "mode"
        ]
      },
      "then": {
        "required": [
          "seriesRepeatsB"
        ]
      }
    },
    {
      "if": {
        "properties": {
          "mode": {
            "const": "normal"
          }
        },
        "required": [
          "mode"
        ]
      },
      "then": {
        "required": [
          "normalMean"
        ]
      }
    },
    {
      "if": {
        "properties": {
          "mode": {
            "const": "normal"
          }
        },
        "required": [
          "mode"
        ]
      },
      "then": {
        "required": [
          "normalStandardDeviation"
        ]
      }
    },
    {
      "if": {
        "properties": {
          "mode": {
            "const": "normal"
          }
        },
        "required": [
          "mode"
        ]
      },
      "then": {
        "required": [
          "leftBound"
        ]
      }
    },
    {
      "if": {
        "properties": {
          "mode": {
            "const": "normal"
          }
        },
        "required": [
          "mode"
        ]
      },
      "then": {
        "required": [
          "rightBound"
        ]
      }
    },
    {
      "if": {
        "properties": {
          "mode": {
            "const": "binomial"
          }
        },
        "required": [
          "mode"
        ]
      },
      "then": {
        "required": [
          "trials"
        ]
      }
    },
    {
      "if": {
        "properties": {
          "mode": {
            "const": "binomial"
          }
        },
        "required": [
          "mode"
        ]
      },
      "then": {
        "required": [
          "successProbability"
        ]
      }
    },
    {
      "if": {
        "properties": {
          "mode": {
            "const": "binomial"
          }
        },
        "required": [
          "mode"
        ]
      },
      "then": {
        "required": [
          "successes"
        ]
      }
    }
  ],
  "additionalProperties": false,
  "x-askcalculators": {
    "version": "2.0.0",
    "calculatorUrl": "https://askcalculators.com/calculator/probability-calculator/",
    "queryExample": "https://askcalculators.com/calculator/probability-calculator/?mode=two-events&probabilityA=0.5&probabilityB=0.4",
    "migrationStatus": "migrated",
    "reviewStatus": "pending",
    "pageStatus": "live",
    "workStatus": "pending",
    "migratedDate": "2026-08-25",
    "formula": {
      "expression": "Independent events: P(A∩B)=P(A)P(B), P(A∪B)=P(A)+P(B)−P(A∩B); normal areas use Φ(z); binomial P(X=x)=C(n,x)pˣ(1−p)ⁿ⁻ˣ."
    },
    "quality": {
      "availability": "live",
      "technicalReviewRecord": "/reviews/probability-calculator.json",
      "qualifiedReview": "pending",
      "qualifiedReviewer": null,
      "qualifiedReviewDate": null,
      "formulaVersion": "2.0.0",
      "referenceCoverage": "references-listed",
      "releaseTestScope": "Catalog and regression checks are not a professional formula audit; consult release evidence.",
      "historicalMetadataDate": "2026-08-25",
      "historicalMetadataNotice": "The imported date is not evidence of a completed human review."
    },
    "outputs": {
      "primaryProbability": {
        "title": "Primary probability",
        "type": "number",
        "x-format": "percent",
        "x-digits": 6,
        "x-primary": true
      },
      "intersection": {
        "title": "P(A ∩ B)",
        "type": "number",
        "x-format": "percent",
        "x-digits": 6
      },
      "union": {
        "title": "P(A ∪ B)",
        "type": "number",
        "x-format": "percent",
        "x-digits": 6
      },
      "exclusiveOr": {
        "title": "Exactly one event",
        "type": "number",
        "x-format": "percent",
        "x-digits": 6
      },
      "neither": {
        "title": "Neither event",
        "type": "number",
        "x-format": "percent",
        "x-digits": 6
      },
      "complementA": {
        "title": "P(A′)",
        "type": "number",
        "x-format": "percent",
        "x-digits": 6
      },
      "complementB": {
        "title": "P(B′)",
        "type": "number",
        "x-format": "percent",
        "x-digits": 6
      },
      "secondaryProbability": {
        "title": "Secondary probability",
        "type": "number",
        "x-format": "percent",
        "x-digits": 6
      },
      "exactProbability": {
        "title": "P(X = x)",
        "type": "number",
        "x-format": "percent",
        "x-digits": 6
      },
      "atMostProbability": {
        "title": "P(X ≤ x)",
        "type": "number",
        "x-format": "percent",
        "x-digits": 6
      },
      "atLeastProbability": {
        "title": "P(X ≥ x)",
        "type": "number",
        "x-format": "percent",
        "x-digits": 6
      },
      "expectedValue": {
        "title": "Expected value",
        "type": "number",
        "x-format": "number",
        "x-digits": 6
      },
      "variance": {
        "title": "Variance",
        "type": "number",
        "x-format": "number",
        "x-digits": 6
      }
    }
  }
}
