{
  "$comment": "Machine-readable companion to https://valem.run/calculators/india/vat. Formula, inputs, outputs, engine-verified test vectors, cited sources and the re-runnable Valem ModelSpec behind the page.",
  "url": "https://valem.run/calculators/india/vat",
  "dataUrl": "https://valem.run/calculators/india/vat.json",
  "license": {
    "name": "CC BY 4.0",
    "url": "https://creativecommons.org/licenses/by/4.0/",
    "attribution": "India gst model by Valem (https://valem.run/calculators/india/vat), CC BY 4.0.",
    "note": "Covers the model — the expression of each rule and the arrangement of the catalog. The rates and thresholds themselves are law and are not licensed by anyone; the cited sources are where they come from."
  },
  "verificationUrl": "https://valem.run/calculators/india/vat/verify",
  "country": "india",
  "countryName": "India",
  "formula": "vat",
  "formulaName": "GST",
  "title": "GST Calculator India 2026 — All Seven Rate Schedules",
  "answer": "Indian GST has seven rates, not three. Schedule II at 18% is the general case, with 5%, 28%, 40%, 3%, 1.5% and 0.25% for goods listed in the other schedules of the rate notification in force since 22 September 2025.",
  "lang": "en",
  "currency": "INR",
  "taxYear": "2026",
  "verification": {
    "claim": "internal-consistency",
    "statement": "The Valem engine reproduces this model's stated formula through 9 self-test cases (below, and re-runnable against the spec). That asserts internal consistency, NOT that the formula matches current law — the cited sources are the evidence for that, and carry the date each was last checked.",
    "selfTestCases": 9,
    "ratesAreIllustrative": false,
    "sourcesCheckedOn": "2026-10-05"
  },
  "sources": [
    {
      "label": "CBIC - Notification No. 9/2025-Integrated Tax (Rate), 17.09.2025: all seven rate schedules",
      "url": "https://courier.cbic.gov.in/ECCS/advisory/2025/NOTIFICATION%20NO.%209_2025-INTEGRATED%20TAX%20(RATE)%20-1759486719.pdf",
      "checked": "2026-10-05"
    }
  ],
  "terminalOutput": "grossAmount",
  "headlineOutput": "vatAmount",
  "inputs": [
    {
      "name": "amount",
      "type": "number",
      "label": "Amount",
      "minimum": 0
    },
    {
      "name": "direction",
      "type": "string",
      "label": "Direction",
      "enum": [
        "add",
        "remove"
      ]
    },
    {
      "name": "category",
      "type": "string",
      "label": "Which rate schedule applies",
      "enum": [
        "standard",
        "scheduleI",
        "scheduleVII",
        "scheduleIII",
        "scheduleIV",
        "scheduleVI",
        "scheduleV"
      ]
    },
    {
      "name": "reverseCharge",
      "type": "boolean",
      "label": "B2B reverse charge applies"
    }
  ],
  "outputs": [
    {
      "name": "rate",
      "type": "number",
      "formula": "category = 'scheduleI' ? $const.scheduleI : category = 'scheduleIII' ? $const.scheduleIII : category = 'scheduleIV' ? $const.scheduleIV : category = 'scheduleV' ? $const.scheduleV : category = 'scheduleVI' ? $const.scheduleVI : category = 'scheduleVII' ? $const.scheduleVII : $const.standardRate"
    },
    {
      "name": "effectiveRate",
      "type": "number",
      "formula": "reverseCharge ? 0 : rate"
    },
    {
      "name": "netAmount",
      "type": "number",
      "formula": "direction = 'remove' ? $round(amount / (1 + effectiveRate), 2) : $round(amount, 2)"
    },
    {
      "name": "vatAmount",
      "type": "number",
      "formula": "$round(netAmount * effectiveRate, 2)"
    },
    {
      "name": "grossAmount",
      "type": "number",
      "formula": "$round(netAmount + vatAmount, 2)"
    }
  ],
  "testCases": [
    {
      "description": "S1 1000.00 INR at the general 18% (Schedule II)",
      "given": {
        "amount": 1000,
        "direction": "add",
        "category": "standard",
        "reverseCharge": false
      },
      "expect": {
        "vatAmount": 180,
        "grossAmount": 1180,
        "netAmount": 1000
      }
    },
    {
      "description": "S2 1180.00 INR gross back to net at 18%",
      "given": {
        "amount": 1180,
        "direction": "remove",
        "category": "standard",
        "reverseCharge": false
      },
      "expect": {
        "netAmount": 1000,
        "vatAmount": 180
      }
    },
    {
      "description": "S3 1000.00 INR at 5% (Schedule I)",
      "given": {
        "amount": 1000,
        "direction": "add",
        "category": "scheduleI",
        "reverseCharge": false
      },
      "expect": {
        "vatAmount": 50,
        "grossAmount": 1050
      }
    },
    {
      "description": "S4 28% survives the 2025 reform (Schedule VII)",
      "given": {
        "amount": 1000,
        "direction": "add",
        "category": "scheduleVII",
        "reverseCharge": false
      },
      "expect": {
        "rate": 0.28,
        "vatAmount": 280
      }
    },
    {
      "description": "S5 1000.00 INR of demerit goods at 40% (Schedule III)",
      "given": {
        "amount": 1000,
        "direction": "add",
        "category": "scheduleIII",
        "reverseCharge": false
      },
      "expect": {
        "vatAmount": 400,
        "grossAmount": 1400
      }
    },
    {
      "description": "S6 100000.00 INR of gold at 3% (Schedule IV)",
      "given": {
        "amount": 100000,
        "direction": "add",
        "category": "scheduleIV",
        "reverseCharge": false
      },
      "expect": {
        "vatAmount": 3000
      }
    },
    {
      "description": "S7 100000.00 INR of rough diamonds at 0.25% (Schedule V)",
      "given": {
        "amount": 100000,
        "direction": "add",
        "category": "scheduleV",
        "reverseCharge": false
      },
      "expect": {
        "rate": 0.0025,
        "vatAmount": 250
      }
    },
    {
      "description": "S8 100000.00 INR at 1.5% (Schedule VI)",
      "given": {
        "amount": 100000,
        "direction": "add",
        "category": "scheduleVI",
        "reverseCharge": false
      },
      "expect": {
        "vatAmount": 1500
      }
    },
    {
      "description": "S9 reverse charge: the supplier charges no GST",
      "given": {
        "amount": 1000,
        "direction": "add",
        "category": "standard",
        "reverseCharge": true
      },
      "expect": {
        "vatAmount": 0,
        "grossAmount": 1000
      }
    }
  ],
  "spec": {
    "id": "vat-india",
    "version": "1.0.0",
    "schema": {
      "type": "object",
      "properties": {
        "amount": {
          "type": "number",
          "minimum": 0
        },
        "direction": {
          "type": "string",
          "enum": [
            "add",
            "remove"
          ]
        },
        "category": {
          "type": "string",
          "enum": [
            "standard",
            "scheduleI",
            "scheduleVII",
            "scheduleIII",
            "scheduleIV",
            "scheduleVI",
            "scheduleV"
          ]
        },
        "reverseCharge": {
          "type": "boolean"
        },
        "rate": {
          "type": "number",
          "readOnly": true
        },
        "effectiveRate": {
          "type": "number",
          "readOnly": true
        },
        "netAmount": {
          "type": "number",
          "readOnly": true
        },
        "vatAmount": {
          "type": "number",
          "readOnly": true
        },
        "grossAmount": {
          "type": "number",
          "readOnly": true
        }
      }
    },
    "constants": {
      "standardRate": 0.18,
      "scheduleI": 0.05,
      "scheduleIII": 0.4,
      "scheduleIV": 0.03,
      "scheduleV": 0.0025,
      "scheduleVI": 0.015,
      "scheduleVII": 0.28
    },
    "defaultValues": [
      {
        "path": "$",
        "expr": "{ 'amount': 100, 'direction': 'add', 'category': 'standard', 'reverseCharge': false }"
      }
    ],
    "derivations": [
      {
        "path": "$.rate",
        "expr": "category = 'scheduleI' ? $const.scheduleI : category = 'scheduleIII' ? $const.scheduleIII : category = 'scheduleIV' ? $const.scheduleIV : category = 'scheduleV' ? $const.scheduleV : category = 'scheduleVI' ? $const.scheduleVI : category = 'scheduleVII' ? $const.scheduleVII : $const.standardRate"
      },
      {
        "path": "$.effectiveRate",
        "expr": "reverseCharge ? 0 : rate"
      },
      {
        "path": "$.netAmount",
        "expr": "direction = 'remove' ? $round(amount / (1 + effectiveRate), 2) : $round(amount, 2)"
      },
      {
        "path": "$.vatAmount",
        "expr": "$round(netAmount * effectiveRate, 2)"
      },
      {
        "path": "$.grossAmount",
        "expr": "$round(netAmount + vatAmount, 2)"
      }
    ],
    "constraints": [],
    "viewDefinition": {
      "renderer": "builtin",
      "defaultView": "main",
      "views": [
        {
          "id": "main",
          "label": "VAT",
          "layout": "vertical",
          "components": [
            {
              "id": "note",
              "type": "staticText",
              "text": "SEVEN rates, the widest schedule in this catalog, and 0.25% is the lowest rate anywhere in it. The figures come from the rate notification in force since 22 September 2025, which superseded the 2017 one. Be careful with summaries of that reform: it is widely described as reducing GST to 5%, 18% and 40% plus nil, and the notification plainly keeps 28% for Schedule VII as well as 3%, 1.5% and 0.25% for precious metals and stones. Which schedule a good falls in is decided by its tariff heading, so the labels here name the schedule rather than guessing at categories. These are the INTEGRATED tax rates charged on inter-state supplies; an intra-state supply carries the same total split equally between CGST and SGST, so the figure on the invoice is the same. This page covers the rate schedule only."
            },
            {
              "id": "inputs",
              "type": "fieldSet",
              "label": "Your figures",
              "components": [
                {
                  "id": "amount",
                  "type": "numericField",
                  "label": "Amount",
                  "bind": "$.amount",
                  "helperText": "Net amount when adding VAT, gross amount when removing it."
                },
                {
                  "id": "direction",
                  "type": "selectField",
                  "label": "Direction",
                  "bind": "$.direction",
                  "options": [
                    {
                      "value": "add",
                      "label": "Add VAT (net → gross)"
                    },
                    {
                      "value": "remove",
                      "label": "Remove VAT (gross → net)"
                    }
                  ]
                },
                {
                  "id": "category",
                  "type": "selectField",
                  "label": "Which rate schedule applies",
                  "bind": "$.category",
                  "helperText": "GST rates are set per schedule of the rate notification, by tariff heading. Schedule II at 18% is the general case; the rest are listed goods.",
                  "options": [
                    {
                      "value": "standard",
                      "label": "Schedule II - 18% (the general rate)"
                    },
                    {
                      "value": "scheduleI",
                      "label": "Schedule I - 5%"
                    },
                    {
                      "value": "scheduleVII",
                      "label": "Schedule VII - 28%"
                    },
                    {
                      "value": "scheduleIII",
                      "label": "Schedule III - 40% (demerit and luxury goods)"
                    },
                    {
                      "value": "scheduleIV",
                      "label": "Schedule IV - 3% (precious metals)"
                    },
                    {
                      "value": "scheduleVI",
                      "label": "Schedule VI - 1.5%"
                    },
                    {
                      "value": "scheduleV",
                      "label": "Schedule V - 0.25% (rough diamonds)"
                    }
                  ]
                },
                {
                  "id": "reverseCharge",
                  "type": "checkboxField",
                  "label": "B2B reverse charge applies",
                  "bind": "$.reverseCharge",
                  "helperText": "The customer accounts for the VAT, so you charge none."
                }
              ]
            },
            {
              "id": "sep",
              "type": "separatorLine"
            },
            {
              "id": "vatTile",
              "type": "statTile",
              "label": "VAT",
              "value": "$.vatAmount"
            },
            {
              "id": "netTile",
              "type": "statTile",
              "label": "Net",
              "value": "$.netAmount"
            },
            {
              "id": "grossTile",
              "type": "statTile",
              "label": "Gross",
              "value": "$.grossAmount"
            },
            {
              "id": "breakdown",
              "type": "keyValueList",
              "label": "Detail",
              "items": [
                {
                  "label": "Rate applied",
                  "value": "$.effectiveRate"
                },
                {
                  "label": "Statutory rate for this category",
                  "value": "$.rate"
                }
              ]
            },
            {
              "id": "sources",
              "type": "sourceList",
              "label": "Sources",
              "layers": 1,
              "items": [
                {
                  "label": "CBIC - Notification No. 9/2025-Integrated Tax (Rate), 17.09.2025: all seven rate schedules",
                  "url": "https://courier.cbic.gov.in/ECCS/advisory/2025/NOTIFICATION%20NO.%209_2025-INTEGRATED%20TAX%20(RATE)%20-1759486719.pdf",
                  "date": "2026-10-05",
                  "covers": [
                    "standardRate",
                    "scheduleI",
                    "scheduleIII",
                    "scheduleIV",
                    "scheduleV",
                    "scheduleVI",
                    "scheduleVII"
                  ]
                }
              ]
            }
          ]
        }
      ]
    },
    "tests": [
      {
        "description": "S1 1000.00 INR at the general 18% (Schedule II)",
        "given": {
          "$.amount": 1000,
          "$.direction": "add",
          "$.category": "standard",
          "$.reverseCharge": false
        },
        "expect": {
          "$.vatAmount": 180,
          "$.grossAmount": 1180,
          "$.netAmount": 1000
        }
      },
      {
        "description": "S2 1180.00 INR gross back to net at 18%",
        "given": {
          "$.amount": 1180,
          "$.direction": "remove",
          "$.category": "standard",
          "$.reverseCharge": false
        },
        "expect": {
          "$.netAmount": 1000,
          "$.vatAmount": 180
        }
      },
      {
        "description": "S3 1000.00 INR at 5% (Schedule I)",
        "given": {
          "$.amount": 1000,
          "$.direction": "add",
          "$.category": "scheduleI",
          "$.reverseCharge": false
        },
        "expect": {
          "$.vatAmount": 50,
          "$.grossAmount": 1050
        }
      },
      {
        "description": "S4 28% survives the 2025 reform (Schedule VII)",
        "given": {
          "$.amount": 1000,
          "$.direction": "add",
          "$.category": "scheduleVII",
          "$.reverseCharge": false
        },
        "expect": {
          "$.rate": 0.28,
          "$.vatAmount": 280
        }
      },
      {
        "description": "S5 1000.00 INR of demerit goods at 40% (Schedule III)",
        "given": {
          "$.amount": 1000,
          "$.direction": "add",
          "$.category": "scheduleIII",
          "$.reverseCharge": false
        },
        "expect": {
          "$.vatAmount": 400,
          "$.grossAmount": 1400
        }
      },
      {
        "description": "S6 100000.00 INR of gold at 3% (Schedule IV)",
        "given": {
          "$.amount": 100000,
          "$.direction": "add",
          "$.category": "scheduleIV",
          "$.reverseCharge": false
        },
        "expect": {
          "$.vatAmount": 3000
        }
      },
      {
        "description": "S7 100000.00 INR of rough diamonds at 0.25% (Schedule V)",
        "given": {
          "$.amount": 100000,
          "$.direction": "add",
          "$.category": "scheduleV",
          "$.reverseCharge": false
        },
        "expect": {
          "$.rate": 0.0025,
          "$.vatAmount": 250
        }
      },
      {
        "description": "S8 100000.00 INR at 1.5% (Schedule VI)",
        "given": {
          "$.amount": 100000,
          "$.direction": "add",
          "$.category": "scheduleVI",
          "$.reverseCharge": false
        },
        "expect": {
          "$.vatAmount": 1500
        }
      },
      {
        "description": "S9 reverse charge: the supplier charges no GST",
        "given": {
          "$.amount": 1000,
          "$.direction": "add",
          "$.category": "standard",
          "$.reverseCharge": true
        },
        "expect": {
          "$.vatAmount": 0,
          "$.grossAmount": 1000
        }
      }
    ]
  }
}
