{
  "id": "tip-calculator",
  "version": "1.0.0",
  "name": "Tip Calculator",
  "shortName": "Tip",
  "description": "Calculate gratuity, total bill, and an optional split per person.",
  "category": "Lifestyle",
  "categorySlug": "lifestyle",
  "keywords": [
    "gratuity",
    "restaurant",
    "bill split",
    "per person"
  ],
  "status": "live",
  "workStatus": "pending",
  "reviewStatus": "pending",
  "migrationStatus": "new",
  "engine": "native",
  "creator": null,
  "reviewer": null,
  "quality": {
    "availability": "live",
    "technicalReviewRecord": "/reviews/tip-calculator.json",
    "qualifiedReview": "pending",
    "qualifiedReviewer": null,
    "qualifiedReviewDate": null,
    "formulaVersion": "1.0.0",
    "referenceCoverage": "references-pending",
    "releaseTestScope": "Catalog and regression checks are not a professional formula audit; consult release evidence.",
    "historicalMetadataDate": "2026-08-18",
    "historicalMetadataNotice": "The imported date is not evidence of a completed human review."
  },
  "urls": {
    "page": "/calculator/tip-calculator/",
    "definition": "/calculator/tip-calculator/definition.json",
    "schema": "/calculator/tip-calculator/schema.json",
    "llms": "/calculator/tip-calculator/llms.txt",
    "legacyDefinition": "/calculator/tip-calculator.json"
  },
  "queryExample": "https://askcalculators.com/calculator/tip-calculator/?bill=85&tipPercent=20&splitBill=1&people=2",
  "queryParameters": {
    "bill": {
      "label": "Bill amount",
      "type": "money",
      "required": true,
      "default": 85
    },
    "tax": {
      "label": "Tax amount",
      "type": "money",
      "required": false
    },
    "tipPercent": {
      "label": "Tip",
      "type": "percent",
      "required": true,
      "default": 20
    },
    "splitBill": {
      "label": "Split the bill",
      "type": "checkbox",
      "required": false,
      "default": true
    },
    "people": {
      "label": "Number of people",
      "type": "number",
      "required": true,
      "default": 2,
      "showWhen": {
        "field": "splitBill",
        "equals": true
      }
    }
  },
  "inputs": [
    {
      "id": "bill",
      "label": "Bill amount",
      "type": "money",
      "required": true,
      "defaultValue": 85,
      "min": 0,
      "step": 0.01,
      "width": "half"
    },
    {
      "id": "tax",
      "label": "Tax amount",
      "type": "money",
      "min": 0,
      "step": 0.01,
      "help": "Optional",
      "width": "half"
    },
    {
      "id": "tipPercent",
      "label": "Tip",
      "type": "percent",
      "required": true,
      "defaultValue": 20,
      "min": 0,
      "max": 50,
      "step": 1,
      "control": "slider-number",
      "width": "full"
    },
    {
      "id": "splitBill",
      "label": "Split the bill",
      "type": "checkbox",
      "defaultValue": true,
      "width": "full"
    },
    {
      "id": "people",
      "label": "Number of people",
      "type": "number",
      "required": true,
      "defaultValue": 2,
      "min": 1,
      "max": 100,
      "step": 1,
      "showWhen": {
        "field": "splitBill",
        "equals": true
      },
      "width": "full"
    }
  ],
  "outputs": [
    {
      "id": "perPerson",
      "label": "Per person",
      "format": "currency",
      "primary": true
    },
    {
      "id": "tipAmount",
      "label": "Tip amount",
      "format": "currency"
    },
    {
      "id": "totalBill",
      "label": "Total bill",
      "format": "currency"
    },
    {
      "id": "tipPerPerson",
      "label": "Tip per person",
      "format": "currency"
    }
  ],
  "formula": {
    "expression": "Tip = bill × tip rate; total = bill + tax + tip",
    "note": "The tip is calculated from the bill amount before the optional tax amount."
  },
  "examples": [
    {
      "label": "Reproducible default-input example (not a personal recommendation)",
      "inputs": {
        "bill": 85,
        "tipPercent": 20,
        "splitBill": true,
        "people": 2
      }
    }
  ],
  "sources": []
}
