{
  "$comment": "Machine-readable companion to https://valem.run/calculators/norway/self-employed. Formula, inputs, outputs, engine-verified test vectors, cited sources and the re-runnable Valem ModelSpec behind the page.",
  "url": "https://valem.run/calculators/norway/self-employed",
  "dataUrl": "https://valem.run/calculators/norway/self-employed.json",
  "license": {
    "name": "CC BY 4.0",
    "url": "https://creativecommons.org/licenses/by/4.0/",
    "attribution": "Norway enkeltpersonforetak model by Valem (https://valem.run/calculators/norway/self-employed), 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/norway/self-employed/verify",
  "country": "norway",
  "countryName": "Norway",
  "formula": "self-employed",
  "formulaName": "Enkeltpersonforetak",
  "title": "Enkeltpersonforetak Skatt — Norway",
  "answer": "Your net income from a Norwegian enkeltpersonforetak is profit minus trygdeavgift at 10.8% — higher than the 7.6% a wage earner pays — plus the five-step trinnskatt and 22% tax on general income.",
  "lang": "en",
  "currency": "NOK",
  "taxYear": "2026",
  "verification": {
    "claim": "shape-only",
    "statement": "The rates in this model are illustrative. Its 3 self-test cases confirm the engine reproduces the shape of the charge, but the schedule is not the official one, so the amount will not match a real bill. The cited sources name the document that would replace it.",
    "selfTestCases": 3,
    "ratesAreIllustrative": true,
    "sourcesCheckedOn": "2026-08-22"
  },
  "sources": [
    {
      "label": "Skatteetaten — Personinntekt i enkeltpersonforetak",
      "url": "https://www.skatteetaten.no/en/business-and-organisation/tax-for-businesses/tax-return/deductions/income-in-business/personinntekt-i-enkeltpersonforetak/",
      "checked": "2026-08-22"
    },
    {
      "label": "Statsbudsjettet 2026 — trinnskatt, trygdeavgift for næringsinntekt og personfradrag",
      "url": "https://www.pwc.no/no/innsikt/skattenytt/skatte-og-avgiftsnyheter-i-statsbudsjettet.html",
      "checked": "2026-08-22"
    }
  ],
  "terminalOutput": "netIncome",
  "inputs": [
    {
      "name": "annualProfit",
      "type": "number",
      "label": "Annual profit (NOK)",
      "minimum": 0
    }
  ],
  "outputs": [
    {
      "name": "trygdeavgift",
      "type": "number",
      "label": "Trygdeavgift (10.8%)",
      "format": "number",
      "formula": "$round(annualProfit <= $const.trygdeThreshold ? 0 : $min([annualProfit * $const.trygdeRate, $const.trygdeShadeRate * (annualProfit - $const.trygdeThreshold)]), 2)"
    },
    {
      "name": "trinnskatt",
      "type": "number",
      "label": "Trinnskatt",
      "format": "number",
      "formula": "($p := annualProfit; $round($const.tr1 * $max([0, $min([$p, $const.t2]) - $const.t1]) + $const.tr2 * $max([0, $min([$p, $const.t3]) - $const.t2]) + $const.tr3 * $max([0, $min([$p, $const.t4]) - $const.t3]) + $const.tr4 * $max([0, $min([$p, $const.t5]) - $const.t4]) + $const.tr5 * $max([0, $p - $const.t5]), 2))"
    },
    {
      "name": "generalIncomeTax",
      "type": "number",
      "label": "Tax on general income (22%)",
      "format": "number",
      "formula": "$round($const.generalRate * $max([0, annualProfit - $const.personfradrag]), 2)"
    },
    {
      "name": "netIncome",
      "type": "number",
      "label": "Net income / year",
      "format": "number",
      "formula": "$round($max([0, annualProfit - trygdeavgift - trinnskatt - generalIncomeTax]), 2)"
    }
  ],
  "testCases": [
    {
      "description": "700,000 NOK profit — a typical full-time sole proprietor",
      "given": {
        "annualProfit": 700000
      },
      "expect": {
        "trygdeavgift": 75600,
        "trinnskatt": 16835.4,
        "generalIncomeTax": 128801.2,
        "netIncome": 478763.4
      }
    },
    {
      "description": "120,000 NOK — inside the trygdeavgift shade-in range",
      "given": {
        "annualProfit": 120000
      },
      "expect": {
        "trygdeavgift": 5087.5,
        "trinnskatt": 0,
        "generalIncomeTax": 1201.2,
        "netIncome": 113711.3
      }
    },
    {
      "description": "1,600,000 NOK — into the top trinnskatt step",
      "given": {
        "annualProfit": 1600000
      },
      "expect": {
        "trygdeavgift": 172800,
        "trinnskatt": 158250.45,
        "generalIncomeTax": 326801.2,
        "netIncome": 942148.35
      }
    }
  ],
  "spec": {
    "id": "self-employed-norway",
    "version": "1.0.0",
    "schema": {
      "type": "object",
      "properties": {
        "annualProfit": {
          "type": "number",
          "minimum": 0
        },
        "trygdeavgift": {
          "type": "number",
          "readOnly": true
        },
        "trinnskatt": {
          "type": "number",
          "readOnly": true
        },
        "generalIncomeTax": {
          "type": "number",
          "readOnly": true
        },
        "netIncome": {
          "type": "number",
          "readOnly": true
        }
      },
      "required": [
        "annualProfit"
      ]
    },
    "constants": {
      "trygdeRate": 0.108,
      "trygdeThreshold": 99650,
      "trygdeShadeRate": 0.25,
      "personfradrag": 114540,
      "generalRate": 0.22,
      "t1": 226100,
      "t2": 318300,
      "t3": 725050,
      "t4": 980100,
      "t5": 1467200,
      "tr1": 0.017,
      "tr2": 0.04,
      "tr3": 0.137,
      "tr4": 0.168,
      "tr5": 0.178
    },
    "defaultValues": [
      {
        "path": "$",
        "expr": "{ \"annualProfit\": 700000 }"
      }
    ],
    "derivations": [
      {
        "path": "$.trygdeavgift",
        "expr": "$round(annualProfit <= $const.trygdeThreshold ? 0 : $min([annualProfit * $const.trygdeRate, $const.trygdeShadeRate * (annualProfit - $const.trygdeThreshold)]), 2)"
      },
      {
        "path": "$.trinnskatt",
        "expr": "($p := annualProfit; $round($const.tr1 * $max([0, $min([$p, $const.t2]) - $const.t1]) + $const.tr2 * $max([0, $min([$p, $const.t3]) - $const.t2]) + $const.tr3 * $max([0, $min([$p, $const.t4]) - $const.t3]) + $const.tr4 * $max([0, $min([$p, $const.t5]) - $const.t4]) + $const.tr5 * $max([0, $p - $const.t5]), 2))"
      },
      {
        "path": "$.generalIncomeTax",
        "expr": "$round($const.generalRate * $max([0, annualProfit - $const.personfradrag]), 2)"
      },
      {
        "path": "$.netIncome",
        "expr": "$round($max([0, annualProfit - trygdeavgift - trinnskatt - generalIncomeTax]), 2)"
      }
    ],
    "constraints": [],
    "viewDefinition": {
      "renderer": "builtin",
      "defaultView": "main",
      "views": [
        {
          "id": "main",
          "label": "Self-employed net income",
          "layout": "vertical",
          "components": [
            {
              "id": "illustrativeNotice",
              "type": "alert",
              "variant": "warning",
              "label": "What this model leaves out",
              "text": "'A Norwegian sole proprietor pays trygdeavgift at 10.8% rather than the 7.6% a wage earner pays — the difference is the whole self-employment premium, and it is modelled here along with the shade-in rule that caps the charge at 25% of income above the lower threshold. Trinnskatt and the 22% general income tax are both applied to the profit directly; a real enkeltpersonforetak computes personal income from the business result with adjustments for capital employed, which this model does not do. Minstefradrag and deductible pension saving are not modelled. Not tax advice.'"
            },
            {
              "id": "inputField",
              "type": "numericField",
              "label": "Annual profit (NOK)",
              "bind": "$.annualProfit",
              "placeholder": "700000"
            },
            {
              "id": "tiles",
              "type": "group",
              "layout": "horizontal",
              "components": [
                {
                  "id": "netIncomeTile",
                  "type": "statTile",
                  "label": "Net income / year",
                  "bind": "$.netIncome",
                  "format": "number"
                },
                {
                  "id": "trygdeavgiftTile",
                  "type": "statTile",
                  "label": "Trygdeavgift (10.8%)",
                  "bind": "$.trygdeavgift",
                  "format": "number"
                },
                {
                  "id": "trinnskattTile",
                  "type": "statTile",
                  "label": "Trinnskatt",
                  "bind": "$.trinnskatt",
                  "format": "number"
                },
                {
                  "id": "generalIncomeTaxTile",
                  "type": "statTile",
                  "label": "Tax on general income (22%)",
                  "bind": "$.generalIncomeTax",
                  "format": "number"
                }
              ]
            },
            {
              "id": "sources",
              "type": "sourceList",
              "label": "Sources",
              "items": [
                {
                  "label": "Skatteetaten — Personinntekt i enkeltpersonforetak",
                  "url": "https://www.skatteetaten.no/en/business-and-organisation/tax-for-businesses/tax-return/deductions/income-in-business/personinntekt-i-enkeltpersonforetak/",
                  "date": "2026-08-22"
                },
                {
                  "label": "Statsbudsjettet 2026 — trinnskatt, trygdeavgift for næringsinntekt og personfradrag",
                  "url": "https://www.pwc.no/no/innsikt/skattenytt/skatte-og-avgiftsnyheter-i-statsbudsjettet.html",
                  "date": "2026-08-22"
                }
              ]
            }
          ]
        }
      ]
    },
    "tests": [
      {
        "description": "700,000 NOK profit — a typical full-time sole proprietor",
        "given": {
          "$.annualProfit": 700000
        },
        "expect": {
          "$.trygdeavgift": 75600,
          "$.trinnskatt": 16835.4,
          "$.generalIncomeTax": 128801.2,
          "$.netIncome": 478763.4
        }
      },
      {
        "description": "120,000 NOK — inside the trygdeavgift shade-in range",
        "given": {
          "$.annualProfit": 120000
        },
        "expect": {
          "$.trygdeavgift": 5087.5,
          "$.trinnskatt": 0,
          "$.generalIncomeTax": 1201.2,
          "$.netIncome": 113711.3
        }
      },
      {
        "description": "1,600,000 NOK — into the top trinnskatt step",
        "given": {
          "$.annualProfit": 1600000
        },
        "expect": {
          "$.trygdeavgift": 172800,
          "$.trinnskatt": 158250.45,
          "$.generalIncomeTax": 326801.2,
          "$.netIncome": 942148.35
        }
      }
    ]
  }
}
