{"id":83490,"date":"2025-04-02T15:20:19","date_gmt":"2025-04-02T13:20:19","guid":{"rendered":"https:\/\/dexxter.be\/tool\/calculate-your-net-income-as-a-self-employed-person\/"},"modified":"2026-08-19T09:14:43","modified_gmt":"2026-08-19T07:14:43","slug":"calculate-your-net-income-as-a-self-employed-person","status":"publish","type":"tools","link":"https:\/\/dexxter.be\/en\/tool\/calculate-your-net-income-as-a-self-employed-person\/","title":{"rendered":"Calculate your net income as a self-employed person"},"content":{"rendered":"<!DOCTYPE html>\r\n<html lang=\"en\">\r\n<head>\r\n    <meta charset=\"UTF-8\">\r\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\r\n    <title>Self-Employed Net Income Calculator<\/title>\r\n    <style>\r\n        .calculator-widget-en {\r\n            font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;\r\n            background-color: transparent;\r\n            padding: 40px 20px;\r\n            line-height: 1.6;\r\n            box-sizing: border-box;\r\n        }\r\n\r\n        .calculator-widget-en * {\r\n            box-sizing: border-box;\r\n        }\r\n\r\n        .calculator-widget-en .container {\r\n            max-width: 600px;\r\n            margin: 0 auto;\r\n        }\r\n\r\n        .calculator-widget-en h2 {\r\n            color: #1a1a1a;\r\n            font-size: 1.25rem;\r\n            margin: 0 0 20px 0;\r\n            font-weight: 600;\r\n        }\r\n\r\n        .calculator-widget-en h3 {\r\n            color: #1a1a1a;\r\n            font-size: 1.1rem;\r\n            margin: 0 0 15px 0;\r\n            font-weight: 600;\r\n        }\r\n\r\n        .calculator-widget-en h3.spaced {\r\n            margin-top: 25px;\r\n        }\r\n\r\n        .calculator-widget-en .calculator-card {\r\n            background-color: white;\r\n            padding: 30px;\r\n            border-radius: 12px;\r\n            box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);\r\n            margin-bottom: 30px;\r\n        }\r\n\r\n        .calculator-widget-en .input-group {\r\n            margin-bottom: 20px;\r\n        }\r\n\r\n        .calculator-widget-en label {\r\n            display: block;\r\n            margin-bottom: 8px;\r\n            font-weight: 500;\r\n            color: #1a1a1a;\r\n            font-size: 0.9rem;\r\n        }\r\n\r\n        .calculator-widget-en input[type=\"number\"] {\r\n            width: 100%;\r\n            padding: 12px;\r\n            border: 1px solid #d1d5db;\r\n            border-radius: 8px;\r\n            font-size: 1rem;\r\n            transition: border-color 0.3s;\r\n            background-color: white;\r\n        }\r\n\r\n        .calculator-widget-en input[type=\"number\"]:focus {\r\n            border-color: #4169FF;\r\n            outline: none;\r\n        }\r\n\r\n        \/* Income year toggle *\/\r\n        .calculator-widget-en .year-toggle {\r\n            display: flex;\r\n            background-color: #f3f4f6;\r\n            border-radius: 8px;\r\n            padding: 4px;\r\n            gap: 4px;\r\n        }\r\n\r\n        .calculator-widget-en .year-toggle input[type=\"radio\"] {\r\n            position: absolute;\r\n            opacity: 0;\r\n            pointer-events: none;\r\n        }\r\n\r\n        .calculator-widget-en .year-toggle label {\r\n            flex: 1;\r\n            margin: 0;\r\n            padding: 10px 12px;\r\n            text-align: center;\r\n            border-radius: 6px;\r\n            cursor: pointer;\r\n            color: #4a5568;\r\n            font-size: 0.9rem;\r\n            line-height: 1.3;\r\n            transition: background-color 0.2s, color 0.2s;\r\n        }\r\n\r\n        .calculator-widget-en .year-toggle label small {\r\n            display: block;\r\n            font-weight: 400;\r\n            font-size: 0.75rem;\r\n            opacity: 0.8;\r\n        }\r\n\r\n        .calculator-widget-en .year-toggle input[type=\"radio\"]:checked + label {\r\n            background-color: #4169FF;\r\n            color: white;\r\n        }\r\n\r\n        .calculator-widget-en .year-toggle input[type=\"radio\"]:focus-visible + label {\r\n            outline: 2px solid #4169FF;\r\n            outline-offset: 2px;\r\n        }\r\n\r\n        .calculator-widget-en button {\r\n            background-color: #4169FF;\r\n            color: white;\r\n            padding: 12px 32px;\r\n            border: none;\r\n            border-radius: 8px;\r\n            cursor: pointer;\r\n            font-size: 0.95rem;\r\n            font-weight: 500;\r\n            transition: background-color 0.3s;\r\n            display: block;\r\n            margin: 20px auto 0;\r\n            font-family: inherit;\r\n        }\r\n\r\n        .calculator-widget-en button:hover {\r\n            background-color: #3451cc;\r\n        }\r\n\r\n        .calculator-widget-en .results {\r\n            background-color: white;\r\n            padding: 30px;\r\n            border-radius: 12px;\r\n            box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);\r\n            margin-bottom: 30px;\r\n        }\r\n\r\n        .calculator-widget-en .results.hidden {\r\n            display: none;\r\n        }\r\n\r\n        .calculator-widget-en .results-table {\r\n            width: 100%;\r\n            border-collapse: collapse;\r\n            margin-top: 15px;\r\n        }\r\n\r\n        .calculator-widget-en .results-table th {\r\n            background-color: #4169FF;\r\n            color: white;\r\n            padding: 12px;\r\n            text-align: left;\r\n            font-weight: 500;\r\n            font-size: 0.9rem;\r\n        }\r\n\r\n        .calculator-widget-en .results-table th:first-child {\r\n            border-radius: 8px 0 0 0;\r\n        }\r\n\r\n        .calculator-widget-en .results-table th:last-child {\r\n            border-radius: 0 8px 0 0;\r\n        }\r\n\r\n        .calculator-widget-en .results-table td {\r\n            padding: 12px;\r\n            text-align: left;\r\n            border-bottom: 1px solid #f3f4f6;\r\n            font-size: 0.9rem;\r\n            color: #1a1a1a;\r\n        }\r\n\r\n        .calculator-widget-en .results-table tbody tr:nth-child(even) {\r\n            background-color: #f9fafb;\r\n        }\r\n\r\n        .calculator-widget-en .results-table tr:last-child td {\r\n            border-bottom: none;\r\n            font-weight: 600;\r\n            color: #4169FF;\r\n        }\r\n\r\n        .calculator-widget-en .tax-brackets {\r\n            background-color: white;\r\n            padding: 30px;\r\n            border-radius: 12px;\r\n            box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);\r\n            margin-bottom: 30px;\r\n        }\r\n\r\n        .calculator-widget-en .tax-brackets table {\r\n            width: 100%;\r\n            border-collapse: collapse;\r\n            margin-top: 15px;\r\n        }\r\n\r\n        .calculator-widget-en .tax-brackets th {\r\n            background-color: #4169FF;\r\n            color: white;\r\n            padding: 12px;\r\n            text-align: left;\r\n            font-weight: 500;\r\n            font-size: 0.9rem;\r\n        }\r\n\r\n        .calculator-widget-en .tax-brackets th:first-child {\r\n            border-radius: 8px 0 0 0;\r\n        }\r\n\r\n        .calculator-widget-en .tax-brackets th:last-child {\r\n            border-radius: 0 8px 0 0;\r\n        }\r\n\r\n        .calculator-widget-en .tax-brackets td {\r\n            padding: 12px;\r\n            text-align: left;\r\n            border-bottom: 1px solid #f3f4f6;\r\n            font-size: 0.9rem;\r\n            color: #1a1a1a;\r\n        }\r\n\r\n        .calculator-widget-en .tax-brackets tbody tr:nth-child(even) {\r\n            background-color: #f9fafb;\r\n        }\r\n\r\n        .calculator-widget-en .tax-brackets tr:last-child td {\r\n            border-bottom: none;\r\n        }\r\n\r\n        .calculator-widget-en .tax-brackets p {\r\n            margin: 0;\r\n            font-size: 0.9rem;\r\n            color: #1a1a1a;\r\n        }\r\n\r\n        .calculator-widget-en .tax-brackets p + p {\r\n            margin-top: 10px;\r\n        }\r\n\r\n        .calculator-widget-en .note {\r\n            margin-top: 20px;\r\n            padding: 15px;\r\n            background-color: #f9fafb;\r\n            border-radius: 8px;\r\n            font-size: 0.85rem;\r\n            color: #4a5568;\r\n            line-height: 1.5;\r\n        }\r\n\r\n        .calculator-widget-en .note p {\r\n            margin: 0;\r\n        }\r\n\r\n        .calculator-widget-en .note strong {\r\n            color: #1a1a1a;\r\n        }\r\n    <\/style>\r\n<\/head>\r\n<body>\r\n    <div class=\"calculator-widget-en\">\r\n        <div class=\"container\">\r\n            <div class=\"calculator-card\">\r\n                <div class=\"input-group\">\r\n                    <label>Income year<\/label>\r\n                    <div class=\"year-toggle\" role=\"radiogroup\" aria-label=\"Income year\">\r\n                        <input type=\"radio\" name=\"taxYear-en\" id=\"year2025-en\" value=\"2025\" onchange=\"onYearChangeEN()\">\r\n                        <label for=\"year2025-en\">2025<small>assessment year 2026<\/small><\/label>\r\n                        <input type=\"radio\" name=\"taxYear-en\" id=\"year2026-en\" value=\"2026\" checked onchange=\"onYearChangeEN()\">\r\n                        <label for=\"year2026-en\">2026<small>assessment year 2027<\/small><\/label>\r\n                    <\/div>\r\n                <\/div>\r\n\r\n                <div class=\"input-group\">\r\n                    <label for=\"monthlyIncome-en\">Monthly estimated gross income (\u20ac)<\/label>\r\n                    <input type=\"number\" id=\"monthlyIncome-en\" min=\"0\" step=\"100\" value=\"6000\">\r\n                <\/div>\r\n\r\n                <div class=\"input-group\">\r\n                    <label for=\"monthlyCosts-en\">Monthly estimated business expenses (\u20ac)<\/label>\r\n                    <input type=\"number\" id=\"monthlyCosts-en\" min=\"0\" step=\"100\" value=\"500\">\r\n                <\/div>\r\n\r\n                <button onclick=\"calculateNetEN()\">Calculate your net income<\/button>\r\n            <\/div>\r\n\r\n            <div class=\"results hidden\" id=\"results-en\"><\/div>\r\n\r\n            <div class=\"tax-brackets\">\r\n                <h3 id=\"bracketsTitle-en\">Tax rates<\/h3>\r\n                <table>\r\n                    <thead>\r\n                        <tr>\r\n                            <th>Bracket<\/th>\r\n                            <th>Tax rate<\/th>\r\n                        <\/tr>\r\n                    <\/thead>\r\n                    <tbody id=\"bracketsBody-en\"><\/tbody>\r\n                <\/table>\r\n\r\n                <h3 class=\"spaced\">Tax-free allowance<\/h3>\r\n                <p id=\"taxFreeText-en\"><\/p>\r\n\r\n                <h3 class=\"spaced\">Social contributions<\/h3>\r\n                <p id=\"socialText-en\"><\/p>\r\n            <\/div>\r\n        <\/div>\r\n    <\/div>\r\n\r\n    <script>\r\n        \/\/ Tax parameters per income year.\r\n        \/\/ upTo = upper limit of the bracket (null = no upper limit).\r\n        const TAX_CONFIG_EN = {\r\n            2025: {\r\n                assessmentYear: 2026,\r\n                taxFree: 10910,\r\n                brackets: [\r\n                    { upTo: 16320, rate: 0.25 },\r\n                    { upTo: 28800, rate: 0.40 },\r\n                    { upTo: 49840, rate: 0.45 },\r\n                    { upTo: null,  rate: 0.50 }\r\n                ],\r\n                socialRate: 0.205,\r\n                socialThreshold: 1881.78\r\n            },\r\n            2026: {\r\n                assessmentYear: 2027,\r\n                taxFree: 11180,\r\n                brackets: [\r\n                    { upTo: 16720, rate: 0.25 },\r\n                    { upTo: 29510, rate: 0.40 },\r\n                    { upTo: 51070, rate: 0.45 },\r\n                    { upTo: null,  rate: 0.50 }\r\n                ],\r\n                socialRate: 0.205,\r\n                socialThreshold: 1881.78 \/\/ TODO: verify for 2026\r\n            }\r\n        };\r\n\r\n        function getSelectedYearEN() {\r\n            const checked = document.querySelector('input[name=\"taxYear-en\"]:checked');\r\n            return checked ? checked.value : '2026';\r\n        }\r\n\r\n        function formatNumber(num) {\r\n            return num.toLocaleString('en-GB', { minimumFractionDigits: 2, maximumFractionDigits: 2 });\r\n        }\r\n\r\n        function formatEuro(num) {\r\n            return '\u20ac' + num.toLocaleString('en-GB', { maximumFractionDigits: 0 });\r\n        }\r\n\r\n        \/\/ Tax on an amount according to the brackets\r\n        function taxOnAmount(amount, brackets) {\r\n            let tax = 0;\r\n            let lower = 0;\r\n            for (const b of brackets) {\r\n                const upper = b.upTo === null ? Infinity : b.upTo;\r\n                if (amount > lower) {\r\n                    tax += (Math.min(amount, upper) - lower) * b.rate;\r\n                }\r\n                lower = upper;\r\n            }\r\n            return tax;\r\n        }\r\n\r\n        function renderBracketsEN() {\r\n            const year = getSelectedYearEN();\r\n            const cfg = TAX_CONFIG_EN[year];\r\n\r\n            document.getElementById('bracketsTitle-en').textContent =\r\n                `Tax rates income year ${year} (assessment year ${cfg.assessmentYear})`;\r\n\r\n            let rows = '';\r\n            let lower = 0;\r\n            for (const b of cfg.brackets) {\r\n                const range = b.upTo === null\r\n                    ? `> ${formatEuro(lower)}`\r\n                    : `${formatEuro(lower)} - ${formatEuro(b.upTo)}`;\r\n                rows += `<tr><td>${range}<\/td><td>${Math.round(b.rate * 100)}%<\/td><\/tr>`;\r\n                lower = b.upTo;\r\n            }\r\n            document.getElementById('bracketsBody-en').innerHTML = rows;\r\n\r\n            document.getElementById('taxFreeText-en').textContent =\r\n                `The first ${formatEuro(cfg.taxFree)} of your income is tax-free.`;\r\n\r\n            document.getElementById('socialText-en').textContent =\r\n                `${(cfg.socialRate * 100).toLocaleString('en-GB')}% if your taxable income is \u20ac${formatNumber(cfg.socialThreshold)} or more.`;\r\n        }\r\n\r\n        function onYearChangeEN() {\r\n            renderBracketsEN();\r\n            \/\/ Recalculate right away if a result is already shown\r\n            if (!document.getElementById('results-en').classList.contains('hidden')) {\r\n                calculateNetEN();\r\n            }\r\n        }\r\n\r\n        function calculateNetEN() {\r\n            const year = getSelectedYearEN();\r\n            const cfg = TAX_CONFIG_EN[year];\r\n\r\n            const monthlyIncome = parseFloat(document.getElementById('monthlyIncome-en').value) || 0;\r\n            const monthlyCosts = parseFloat(document.getElementById('monthlyCosts-en').value) || 0;\r\n\r\n            const yearlyIncome = monthlyIncome * 12;\r\n            const yearlyCosts = monthlyCosts * 12;\r\n\r\n            const taxableIncome = yearlyIncome - yearlyCosts;\r\n\r\n            let socialContributions = 0;\r\n            if (taxableIncome >= cfg.socialThreshold) {\r\n                socialContributions = taxableIncome * cfg.socialRate;\r\n            }\r\n\r\n            const incomeAfterSocialContributions = taxableIncome - socialContributions;\r\n\r\n            \/\/ Tax on the full income, minus the tax on the tax-free allowance\r\n            const grossTax = taxOnAmount(Math.max(0, incomeAfterSocialContributions), cfg.brackets);\r\n            const taxFreeReduction = taxOnAmount(cfg.taxFree, cfg.brackets);\r\n            const incomeTax = Math.max(0, grossTax - taxFreeReduction);\r\n\r\n            const netYearlyIncome = incomeAfterSocialContributions - incomeTax;\r\n            const netMonthlyIncome = netYearlyIncome \/ 12;\r\n\r\n            const resultsHTML = `\r\n                <h2>Your personal calculation (income year ${year})<\/h2>\r\n                <table class=\"results-table\">\r\n                    <tr>\r\n                        <th>Description<\/th>\r\n                        <th>Annually (\u20ac)<\/th>\r\n                        <th>Monthly (\u20ac)<\/th>\r\n                    <\/tr>\r\n                    <tr>\r\n                        <td>Gross income<\/td>\r\n                        <td>${formatNumber(yearlyIncome)}<\/td>\r\n                        <td>${formatNumber(monthlyIncome)}<\/td>\r\n                    <\/tr>\r\n                    <tr>\r\n                        <td>Professional expenses<\/td>\r\n                        <td>${formatNumber(yearlyCosts)}<\/td>\r\n                        <td>${formatNumber(monthlyCosts)}<\/td>\r\n                    <\/tr>\r\n                    <tr>\r\n                        <td>Taxable income<\/td>\r\n                        <td>${formatNumber(taxableIncome)}<\/td>\r\n                        <td>${formatNumber(taxableIncome \/ 12)}<\/td>\r\n                    <\/tr>\r\n                    <tr>\r\n                        <td>Social contributions<\/td>\r\n                        <td>${formatNumber(socialContributions)}<\/td>\r\n                        <td>${formatNumber(socialContributions \/ 12)}<\/td>\r\n                    <\/tr>\r\n                    <tr>\r\n                        <td>Income after social contributions<\/td>\r\n                        <td>${formatNumber(incomeAfterSocialContributions)}<\/td>\r\n                        <td>${formatNumber(incomeAfterSocialContributions \/ 12)}<\/td>\r\n                    <\/tr>\r\n                    <tr>\r\n                        <td>Personal income tax<\/td>\r\n                        <td>${formatNumber(incomeTax)}<\/td>\r\n                        <td>${formatNumber(incomeTax \/ 12)}<\/td>\r\n                    <\/tr>\r\n                    <tr>\r\n                        <td>NET INCOME<\/td>\r\n                        <td>${formatNumber(netYearlyIncome)}<\/td>\r\n                        <td>${formatNumber(netMonthlyIncome)}<\/td>\r\n                    <\/tr>\r\n                <\/table>\r\n\r\n                <div class=\"note\">\r\n                    <p><strong>Please note:<\/strong> This is an estimate based on the data entered. For an accurate calculation, we recommend consulting an accountant.<\/p>\r\n                <\/div>\r\n            `;\r\n\r\n            const resultsElement = document.getElementById('results-en');\r\n            resultsElement.innerHTML = resultsHTML;\r\n            resultsElement.classList.remove('hidden');\r\n        }\r\n\r\n        renderBracketsEN();\r\n        <\/script>\r\n<\/body>\r\n<\/html>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"","protected":false},"featured_media":64335,"template":"","class_list":["post-83490","tools","type-tools","status-publish","has-post-thumbnail","hentry"],"_links":{"self":[{"href":"https:\/\/dexxter.be\/en\/wp-json\/wp\/v2\/tools\/83490","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dexxter.be\/en\/wp-json\/wp\/v2\/tools"}],"about":[{"href":"https:\/\/dexxter.be\/en\/wp-json\/wp\/v2\/types\/tools"}],"version-history":[{"count":2,"href":"https:\/\/dexxter.be\/en\/wp-json\/wp\/v2\/tools\/83490\/revisions"}],"predecessor-version":[{"id":98147,"href":"https:\/\/dexxter.be\/en\/wp-json\/wp\/v2\/tools\/83490\/revisions\/98147"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dexxter.be\/en\/wp-json\/wp\/v2\/media\/64335"}],"wp:attachment":[{"href":"https:\/\/dexxter.be\/en\/wp-json\/wp\/v2\/media?parent=83490"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}