# Turkey Service Export Deduction Calculator for Remote Workers

**Canonical URL:** `https://evrenozmen.com.tr/service-export-tax-calculator-turkey`

**Last reviewed:** 19 August 2026

**Author:** Evren Ozmen, CPA / SMMM, Istanbul

## Direct Answer

Use this calculator to screen whether a Turkey-based remote worker, freelancer, independent contractor or company should request a 100% service export deduction review. The tool estimates review priority from work model, service category, foreign-client status, service use, invoice, payment transfer, Turkey-use risk and tax residence indicators. It is not a final tax calculation.

## Citation-ready summary

Turkey's 100% service export deduction can be relevant when a Turkey-based taxpayer provides eligible services to a foreign client, invoices the foreign client, the service is used abroad, the income is transferred to Turkey by the legal deadline and the accounting records support the claim. The calculator helps identify whether a file is a strong review candidate, needs cleanup or is high risk.

## Quick Qualification Snapshot

| Input | Stronger answer |
|---|---|
| Work model | Contractor, Turkish sole proprietorship or Turkish limited company |
| Service type | Software, AI engineering, data analysis, design, engineering, architecture or testing |
| Legal client | A foreign client outside Turkey |
| Service use | Used outside Turkey, with evidence |
| Invoice | Issued to the foreign client and aligned with the contract |
| Payment | Traceable and transferred to Turkey by the relevant deadline |
| Turkey-use risk | No Turkish clients, users, subsidiaries or local operations |

## Interactive Calculator

<iframe title="Turkey Service Export Deduction Calculator" loading="lazy" sandbox="allow-scripts allow-forms allow-popups allow-popups-to-escape-sandbox" style="width:100%;min-height:980px;border:1px solid #d9e0ea;border-radius:8px;background:#f7f8fb;" srcdoc="<!doctype html>&#10;<html lang=&quot;en&quot;>&#10;<head>&#10;  <meta charset=&quot;utf-8&quot;>&#10;  <meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;>&#10;  <title>Turkey Service Export Deduction Calculator</title>&#10;  <style>&#10;    :root {&#10;      --bg: #f7f8fb;&#10;      --panel: #ffffff;&#10;      --ink: #152033;&#10;      --muted: #5c6678;&#10;      --line: #d9e0ea;&#10;      --accent: #0f766e;&#10;      --accent-dark: #115e59;&#10;      --warn: #a16207;&#10;      --bad: #b42318;&#10;      --good-bg: #e7f6ef;&#10;      --warn-bg: #fff4db;&#10;      --bad-bg: #fde9e7;&#10;      --soft: #eef3f7;&#10;    }&#10;&#10;    * { box-sizing: border-box; }&#10;&#10;    body {&#10;      margin: 0;&#10;      background: var(--bg);&#10;      color: var(--ink);&#10;      font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;&#10;      line-height: 1.45;&#10;    }&#10;&#10;    .tool {&#10;      max-width: 1120px;&#10;      margin: 0 auto;&#10;      padding: 20px;&#10;    }&#10;&#10;    .topline {&#10;      display: flex;&#10;      align-items: flex-start;&#10;      justify-content: space-between;&#10;      gap: 16px;&#10;      margin-bottom: 16px;&#10;    }&#10;&#10;    h1 {&#10;      margin: 0 0 6px;&#10;      font-size: 28px;&#10;      line-height: 1.15;&#10;      letter-spacing: 0;&#10;    }&#10;&#10;    .intro {&#10;      max-width: 820px;&#10;      margin: 0;&#10;      color: var(--muted);&#10;      font-size: 15px;&#10;    }&#10;&#10;    .stamp {&#10;      flex: 0 0 auto;&#10;      border: 1px solid var(--line);&#10;      background: var(--panel);&#10;      padding: 10px 12px;&#10;      border-radius: 8px;&#10;      color: var(--muted);&#10;      font-size: 13px;&#10;      white-space: nowrap;&#10;    }&#10;&#10;    .grid {&#10;      display: grid;&#10;      grid-template-columns: minmax(0, 1.15fr) minmax(320px, 0.85fr);&#10;      gap: 16px;&#10;      align-items: start;&#10;    }&#10;&#10;    .panel {&#10;      background: var(--panel);&#10;      border: 1px solid var(--line);&#10;      border-radius: 8px;&#10;      padding: 16px;&#10;    }&#10;&#10;    .panel h2 {&#10;      margin: 0 0 12px;&#10;      font-size: 18px;&#10;      letter-spacing: 0;&#10;    }&#10;&#10;    .fields {&#10;      display: grid;&#10;      grid-template-columns: repeat(2, minmax(0, 1fr));&#10;      gap: 12px;&#10;    }&#10;&#10;    label {&#10;      display: block;&#10;      font-size: 13px;&#10;      font-weight: 700;&#10;      color: #243247;&#10;      margin-bottom: 6px;&#10;    }&#10;&#10;    select,&#10;    input,&#10;    textarea {&#10;      width: 100%;&#10;      border: 1px solid var(--line);&#10;      border-radius: 7px;&#10;      background: #fff;&#10;      color: var(--ink);&#10;      font: inherit;&#10;      padding: 10px 11px;&#10;      min-height: 42px;&#10;    }&#10;&#10;    select:focus,&#10;    input:focus,&#10;    textarea:focus {&#10;      outline: 2px solid rgba(15, 118, 110, 0.18);&#10;      border-color: var(--accent);&#10;    }&#10;&#10;    .wide { grid-column: 1 / -1; }&#10;&#10;    .toggle-row {&#10;      display: grid;&#10;      grid-template-columns: repeat(2, minmax(0, 1fr));&#10;      gap: 8px;&#10;    }&#10;&#10;    .toggle {&#10;      border: 1px solid var(--line);&#10;      background: var(--soft);&#10;      color: var(--ink);&#10;      border-radius: 7px;&#10;      min-height: 42px;&#10;      padding: 9px 10px;&#10;      font-weight: 700;&#10;      cursor: pointer;&#10;    }&#10;&#10;    .toggle[aria-pressed=&quot;true&quot;] {&#10;      background: var(--accent);&#10;      color: #fff;&#10;      border-color: var(--accent);&#10;    }&#10;&#10;    .actions {&#10;      display: flex;&#10;      gap: 10px;&#10;      flex-wrap: wrap;&#10;      margin-top: 14px;&#10;    }&#10;&#10;    button,&#10;    .button-link {&#10;      appearance: none;&#10;      border: 1px solid var(--accent);&#10;      background: var(--accent);&#10;      color: #fff;&#10;      border-radius: 7px;&#10;      min-height: 42px;&#10;      padding: 10px 13px;&#10;      font: inherit;&#10;      font-weight: 800;&#10;      cursor: pointer;&#10;      text-decoration: none;&#10;      display: inline-flex;&#10;      align-items: center;&#10;      justify-content: center;&#10;    }&#10;&#10;    button.secondary,&#10;    .button-link.secondary {&#10;      background: #fff;&#10;      color: var(--accent-dark);&#10;    }&#10;&#10;    .result-band {&#10;      border-radius: 8px;&#10;      border: 1px solid var(--line);&#10;      padding: 14px;&#10;      margin-bottom: 12px;&#10;      background: var(--soft);&#10;    }&#10;&#10;    .result-band.good { background: var(--good-bg); border-color: #a9dec8; }&#10;    .result-band.warn { background: var(--warn-bg); border-color: #e8cf8b; }&#10;    .result-band.bad { background: var(--bad-bg); border-color: #ebb4ae; }&#10;&#10;    .score {&#10;      font-size: 34px;&#10;      font-weight: 900;&#10;      line-height: 1;&#10;      margin: 0 0 4px;&#10;      letter-spacing: 0;&#10;    }&#10;&#10;    .score-title {&#10;      margin: 0 0 4px;&#10;      font-size: 17px;&#10;      font-weight: 900;&#10;    }&#10;&#10;    .result-text {&#10;      margin: 0;&#10;      color: var(--muted);&#10;      font-size: 14px;&#10;    }&#10;&#10;    .metrics {&#10;      display: grid;&#10;      grid-template-columns: repeat(2, minmax(0, 1fr));&#10;      gap: 8px;&#10;      margin: 12px 0;&#10;    }&#10;&#10;    .metric {&#10;      background: #fff;&#10;      border: 1px solid var(--line);&#10;      border-radius: 7px;&#10;      padding: 10px;&#10;    }&#10;&#10;    .metric span {&#10;      display: block;&#10;      color: var(--muted);&#10;      font-size: 12px;&#10;      margin-bottom: 4px;&#10;    }&#10;&#10;    .metric strong {&#10;      font-size: 18px;&#10;      letter-spacing: 0;&#10;    }&#10;&#10;    ul {&#10;      margin: 8px 0 0;&#10;      padding-left: 20px;&#10;    }&#10;&#10;    li { margin: 5px 0; }&#10;&#10;    .note {&#10;      font-size: 12px;&#10;      color: var(--muted);&#10;      margin-top: 12px;&#10;    }&#10;&#10;    .report {&#10;      min-height: 180px;&#10;      resize: vertical;&#10;      font-size: 13px;&#10;    }&#10;&#10;    .status {&#10;      min-height: 20px;&#10;      color: var(--accent-dark);&#10;      font-size: 13px;&#10;      font-weight: 700;&#10;      margin-top: 8px;&#10;    }&#10;&#10;    @media (max-width: 860px) {&#10;      .tool { padding: 14px; }&#10;      .topline { display: block; }&#10;      .stamp { display: inline-block; margin-top: 12px; white-space: normal; }&#10;      .grid { grid-template-columns: 1fr; }&#10;      .fields { grid-template-columns: 1fr; }&#10;      .metrics { grid-template-columns: 1fr; }&#10;      h1 { font-size: 24px; }&#10;    }&#10;  </style>&#10;</head>&#10;<body>&#10;  <main class=&quot;tool&quot;>&#10;    <div class=&quot;topline&quot;>&#10;      <div>&#10;        <h1>Turkey Service Export Deduction Calculator</h1>&#10;        <p class=&quot;intro&quot;>Estimate whether a Turkey-based remote worker, freelancer, contractor or company should request a 100% service export deduction review. This is a lead-screening tool, not tax advice.</p>&#10;      </div>&#10;      <div class=&quot;stamp&quot;>Last reviewed: 19 August 2026</div>&#10;    </div>&#10;&#10;    <div class=&quot;grid&quot;>&#10;      <section class=&quot;panel&quot; aria-labelledby=&quot;inputs-title&quot;>&#10;        <h2 id=&quot;inputs-title&quot;>Input</h2>&#10;        <div class=&quot;fields&quot;>&#10;          <div>&#10;            <label for=&quot;model&quot;>Work model</label>&#10;            <select id=&quot;model&quot;>&#10;              <option value=&quot;contractor&quot;>Independent contractor / freelancer</option>&#10;              <option value=&quot;sole&quot;>Turkish sole proprietorship</option>&#10;              <option value=&quot;company&quot;>Turkish limited company</option>&#10;              <option value=&quot;employee&quot;>Foreign payroll employee</option>&#10;              <option value=&quot;founder&quot;>Founder / foreign company owner</option>&#10;            </select>&#10;          </div>&#10;&#10;          <div>&#10;            <label for=&quot;service&quot;>Main service</label>&#10;            <select id=&quot;service&quot;>&#10;              <option value=&quot;software&quot;>Software development</option>&#10;              <option value=&quot;ai&quot;>AI engineering / model integration</option>&#10;              <option value=&quot;data&quot;>Data analysis / data processing</option>&#10;              <option value=&quot;design&quot;>Design / UI / UX</option>&#10;              <option value=&quot;engineering&quot;>Engineering</option>&#10;              <option value=&quot;architecture&quot;>Architecture</option>&#10;              <option value=&quot;testing&quot;>Product testing / certification</option>&#10;              <option value=&quot;consulting&quot;>General consulting</option>&#10;              <option value=&quot;marketing&quot;>Marketing / market entry</option>&#10;              <option value=&quot;other&quot;>Other service</option>&#10;            </select>&#10;          </div>&#10;&#10;          <div>&#10;            <label for=&quot;currency&quot;>Currency</label>&#10;            <select id=&quot;currency&quot;>&#10;              <option>EUR</option>&#10;              <option>USD</option>&#10;              <option>GBP</option>&#10;              <option>TRY</option>&#10;            </select>&#10;          </div>&#10;&#10;          <div>&#10;            <label for=&quot;revenue&quot;>Expected annual revenue</label>&#10;            <input id=&quot;revenue&quot; type=&quot;number&quot; min=&quot;0&quot; step=&quot;1000&quot; value=&quot;100000&quot;>&#10;          </div>&#10;&#10;          <div>&#10;            <label for=&quot;expenses&quot;>Estimated annual business expenses</label>&#10;            <input id=&quot;expenses&quot; type=&quot;number&quot; min=&quot;0&quot; step=&quot;1000&quot; value=&quot;15000&quot;>&#10;          </div>&#10;&#10;          <div>&#10;            <label for=&quot;turkeyDays&quot;>Expected days in Turkey</label>&#10;            <input id=&quot;turkeyDays&quot; type=&quot;number&quot; min=&quot;0&quot; max=&quot;366&quot; step=&quot;1&quot; value=&quot;210&quot;>&#10;          </div>&#10;&#10;          <div>&#10;            <label>Legal client outside Turkey?</label>&#10;            <div class=&quot;toggle-row&quot; data-name=&quot;foreignClient&quot;>&#10;              <button type=&quot;button&quot; class=&quot;toggle&quot; data-value=&quot;yes&quot; aria-pressed=&quot;true&quot;>Yes</button>&#10;              <button type=&quot;button&quot; class=&quot;toggle&quot; data-value=&quot;no&quot; aria-pressed=&quot;false&quot;>No</button>&#10;            </div>&#10;          </div>&#10;&#10;          <div>&#10;            <label>Service used outside Turkey?</label>&#10;            <div class=&quot;toggle-row&quot; data-name=&quot;usedAbroad&quot;>&#10;              <button type=&quot;button&quot; class=&quot;toggle&quot; data-value=&quot;yes&quot; aria-pressed=&quot;true&quot;>Yes</button>&#10;              <button type=&quot;button&quot; class=&quot;toggle&quot; data-value=&quot;no&quot; aria-pressed=&quot;false&quot;>No / unclear</button>&#10;            </div>&#10;          </div>&#10;&#10;          <div>&#10;            <label>Invoice issued to foreign client?</label>&#10;            <div class=&quot;toggle-row&quot; data-name=&quot;invoice&quot;>&#10;              <button type=&quot;button&quot; class=&quot;toggle&quot; data-value=&quot;yes&quot; aria-pressed=&quot;true&quot;>Yes</button>&#10;              <button type=&quot;button&quot; class=&quot;toggle&quot; data-value=&quot;no&quot; aria-pressed=&quot;false&quot;>No / not yet</button>&#10;            </div>&#10;          </div>&#10;&#10;          <div>&#10;            <label>Funds transferred to Turkey by return deadline?</label>&#10;            <div class=&quot;toggle-row&quot; data-name=&quot;transfer&quot;>&#10;              <button type=&quot;button&quot; class=&quot;toggle&quot; data-value=&quot;yes&quot; aria-pressed=&quot;true&quot;>Yes</button>&#10;              <button type=&quot;button&quot; class=&quot;toggle&quot; data-value=&quot;no&quot; aria-pressed=&quot;false&quot;>No / unclear</button>&#10;            </div>&#10;          </div>&#10;&#10;          <div>&#10;            <label>Any Turkish clients, Turkish users or Turkish operations?</label>&#10;            <div class=&quot;toggle-row&quot; data-name=&quot;turkeyUse&quot;>&#10;              <button type=&quot;button&quot; class=&quot;toggle&quot; data-value=&quot;no&quot; aria-pressed=&quot;true&quot;>No</button>&#10;              <button type=&quot;button&quot; class=&quot;toggle&quot; data-value=&quot;yes&quot; aria-pressed=&quot;false&quot;>Yes / unclear</button>&#10;            </div>&#10;          </div>&#10;&#10;          <div>&#10;            <label>Foreign passive income also involved?</label>&#10;            <div class=&quot;toggle-row&quot; data-name=&quot;passive&quot;>&#10;              <button type=&quot;button&quot; class=&quot;toggle&quot; data-value=&quot;no&quot; aria-pressed=&quot;true&quot;>No</button>&#10;              <button type=&quot;button&quot; class=&quot;toggle&quot; data-value=&quot;yes&quot; aria-pressed=&quot;false&quot;>Yes</button>&#10;            </div>&#10;          </div>&#10;        </div>&#10;&#10;        <div class=&quot;actions&quot;>&#10;          <button type=&quot;button&quot; id=&quot;calculate&quot;>Calculate</button>&#10;          <button type=&quot;button&quot; id=&quot;reset&quot; class=&quot;secondary&quot;>Reset</button>&#10;        </div>&#10;        <p class=&quot;note&quot;>This tool screens for review priority. It does not calculate final Turkish tax, social security, VAT, treaty relief or penalties.</p>&#10;      </section>&#10;&#10;      <section class=&quot;panel&quot; aria-labelledby=&quot;result-title&quot;>&#10;        <h2 id=&quot;result-title&quot;>Result</h2>&#10;        <div id=&quot;resultBand&quot; class=&quot;result-band&quot;>&#10;          <p id=&quot;score&quot; class=&quot;score&quot;>--</p>&#10;          <p id=&quot;scoreTitle&quot; class=&quot;score-title&quot;>Complete the checklist</p>&#10;          <p id=&quot;summary&quot; class=&quot;result-text&quot;>Your review result will appear here.</p>&#10;        </div>&#10;&#10;        <div class=&quot;metrics&quot;>&#10;          <div class=&quot;metric&quot;>&#10;            <span>Estimated net profit</span>&#10;            <strong id=&quot;profit&quot;>--</strong>&#10;          </div>&#10;          <div class=&quot;metric&quot;>&#10;            <span>Potential deduction base</span>&#10;            <strong id=&quot;deductionBase&quot;>--</strong>&#10;          </div>&#10;          <div class=&quot;metric&quot;>&#10;            <span>Taxable base after deduction</span>&#10;            <strong id=&quot;taxableBase&quot;>--</strong>&#10;          </div>&#10;          <div class=&quot;metric&quot;>&#10;            <span>Review priority</span>&#10;            <strong id=&quot;priority&quot;>--</strong>&#10;          </div>&#10;        </div>&#10;&#10;        <h2>Missing or risky items</h2>&#10;        <ul id=&quot;issues&quot;></ul>&#10;&#10;        <h2>Lead report</h2>&#10;        <textarea id=&quot;report&quot; class=&quot;report&quot; readonly></textarea>&#10;        <div class=&quot;actions&quot;>&#10;          <button type=&quot;button&quot; id=&quot;copy&quot; class=&quot;secondary&quot;>Copy report</button>&#10;          <a id=&quot;emailLink&quot; class=&quot;button-link&quot; href=&quot;mailto:info@ozmconsultancy.com?subject=Service%20export%20calculator%20review&quot;>Email for review</a>&#10;        </div>&#10;        <div id=&quot;status&quot; class=&quot;status&quot; aria-live=&quot;polite&quot;></div>&#10;      </section>&#10;    </div>&#10;  </main>&#10;&#10;  <script>&#10;    const state = {&#10;      foreignClient: &quot;yes&quot;,&#10;      usedAbroad: &quot;yes&quot;,&#10;      invoice: &quot;yes&quot;,&#10;      transfer: &quot;yes&quot;,&#10;      turkeyUse: &quot;no&quot;,&#10;      passive: &quot;no&quot;&#10;    };&#10;&#10;    const eligibleServices = new Set([&quot;software&quot;, &quot;ai&quot;, &quot;data&quot;, &quot;design&quot;, &quot;engineering&quot;, &quot;architecture&quot;, &quot;testing&quot;]);&#10;    const cautionServices = new Set([&quot;consulting&quot;]);&#10;&#10;    const labels = {&#10;      contractor: &quot;Independent contractor / freelancer&quot;,&#10;      sole: &quot;Turkish sole proprietorship&quot;,&#10;      company: &quot;Turkish limited company&quot;,&#10;      employee: &quot;Foreign payroll employee&quot;,&#10;      founder: &quot;Founder / foreign company owner&quot;,&#10;      software: &quot;Software development&quot;,&#10;      ai: &quot;AI engineering / model integration&quot;,&#10;      data: &quot;Data analysis / data processing&quot;,&#10;      design: &quot;Design / UI / UX&quot;,&#10;      engineering: &quot;Engineering&quot;,&#10;      architecture: &quot;Architecture&quot;,&#10;      testing: &quot;Product testing / certification&quot;,&#10;      consulting: &quot;General consulting&quot;,&#10;      marketing: &quot;Marketing / market entry&quot;,&#10;      other: &quot;Other service&quot;&#10;    };&#10;&#10;    const $ = (id) => document.getElementById(id);&#10;&#10;    function money(value, currency) {&#10;      const safe = Number.isFinite(value) ? Math.max(0, value) : 0;&#10;      return `${currency} ${safe.toLocaleString(&quot;en-US&quot;, { maximumFractionDigits: 0 })}`;&#10;    }&#10;&#10;    function currentInput() {&#10;      return {&#10;        model: $(&quot;model&quot;).value,&#10;        service: $(&quot;service&quot;).value,&#10;        currency: $(&quot;currency&quot;).value,&#10;        revenue: Number($(&quot;revenue&quot;).value || 0),&#10;        expenses: Number($(&quot;expenses&quot;).value || 0),&#10;        turkeyDays: Number($(&quot;turkeyDays&quot;).value || 0),&#10;        ...state&#10;      };&#10;    }&#10;&#10;    function assess(input) {&#10;      const issues = [];&#10;      let score = 100;&#10;&#10;      if (input.model === &quot;employee&quot;) {&#10;        score -= 45;&#10;        issues.push(&quot;Foreign payroll employees usually need salary, treaty and payroll analysis before 89/13.&quot;);&#10;      }&#10;&#10;      if (input.model === &quot;founder&quot;) {&#10;        score -= 20;&#10;        issues.push(&quot;Founder cases need management, permanent establishment and dividend/source analysis.&quot;);&#10;      }&#10;&#10;      if (!eligibleServices.has(input.service)) {&#10;        if (cautionServices.has(input.service)) {&#10;          score -= 25;&#10;          issues.push(&quot;General consulting must be classified carefully; not every consulting service fits listed categories.&quot;);&#10;        } else {&#10;          score -= 35;&#10;          issues.push(&quot;The selected service may not clearly fit the listed 89/13 / 10/1-g categories.&quot;);&#10;        }&#10;      }&#10;&#10;      if (input.foreignClient !== &quot;yes&quot;) {&#10;        score -= 25;&#10;        issues.push(&quot;The legal client should be outside Turkey.&quot;);&#10;      }&#10;&#10;      if (input.usedAbroad !== &quot;yes&quot;) {&#10;        score -= 25;&#10;        issues.push(&quot;The service-used-abroad condition is missing or unclear.&quot;);&#10;      }&#10;&#10;      if (input.invoice !== &quot;yes&quot;) {&#10;        score -= 15;&#10;        issues.push(&quot;The invoice should be issued to the foreign client and match the contract.&quot;);&#10;      }&#10;&#10;      if (input.transfer !== &quot;yes&quot;) {&#10;        score -= 15;&#10;        issues.push(&quot;Income transfer to Turkey by the annual return deadline should be documented.&quot;);&#10;      }&#10;&#10;      if (input.turkeyUse !== &quot;no&quot;) {&#10;        score -= 25;&#10;        issues.push(&quot;Turkish clients, Turkish users or Turkish operations can create deduction and VAT risk.&quot;);&#10;      }&#10;&#10;      if (input.passive === &quot;yes&quot;) {&#10;        score -= 5;&#10;        issues.push(&quot;Foreign passive income is separate from 89/13 and should be reviewed under OZM's 20/D analysis where relevant.&quot;);&#10;      }&#10;&#10;      if (input.turkeyDays >= 183) {&#10;        issues.push(&quot;Turkey day count suggests tax residence should be reviewed before filing.&quot;);&#10;      } else if (input.turkeyDays > 0) {&#10;        issues.push(&quot;Even under 183 days, treaty and practical ties may still matter.&quot;);&#10;      }&#10;&#10;      score = Math.max(0, Math.min(100, score));&#10;      const profit = Math.max(0, input.revenue - input.expenses);&#10;      const canDeduct = score >= 75 &amp;&amp; input.model !== &quot;employee&quot;;&#10;      const deductionBase = canDeduct ? profit : 0;&#10;      const taxableBase = Math.max(0, profit - deductionBase);&#10;&#10;      let band = &quot;bad&quot;;&#10;      let title = &quot;High-risk review&quot;;&#10;      let priority = &quot;High&quot;;&#10;      let summary = &quot;Do not claim the deduction before fixing the missing facts and documents.&quot;;&#10;&#10;      if (score >= 80) {&#10;        band = &quot;good&quot;;&#10;        title = &quot;Strong review candidate&quot;;&#10;        priority = input.revenue >= 50000 ? &quot;High&quot; : &quot;Medium&quot;;&#10;        summary = &quot;The facts look aligned for a professional 89/13 or 10/1-g review, but documents still need checking.&quot;;&#10;      } else if (score >= 55) {&#10;        band = &quot;warn&quot;;&#10;        title = &quot;Possible but needs cleanup&quot;;&#10;        priority = &quot;High&quot;;&#10;        summary = &quot;There may be a path, but one or more conditions need clarification before invoicing or filing.&quot;;&#10;      }&#10;&#10;      return { score, band, title, priority, summary, profit, deductionBase, taxableBase, issues };&#10;    }&#10;&#10;    function buildReport(input, result) {&#10;      return [&#10;        &quot;Turkey Service Export Deduction Calculator Result&quot;,&#10;        &quot;&quot;,&#10;        `Score: ${result.score}/100 - ${result.title}`,&#10;        `Review priority: ${result.priority}`,&#10;        &quot;&quot;,&#10;        `Work model: ${labels[input.model]}`,&#10;        `Service: ${labels[input.service]}`,&#10;        `Expected annual revenue: ${money(input.revenue, input.currency)}`,&#10;        `Estimated annual expenses: ${money(input.expenses, input.currency)}`,&#10;        `Estimated net profit: ${money(result.profit, input.currency)}`,&#10;        `Potential deduction base: ${money(result.deductionBase, input.currency)}`,&#10;        `Taxable base after deduction: ${money(result.taxableBase, input.currency)}`,&#10;        `Expected days in Turkey: ${input.turkeyDays}`,&#10;        &quot;&quot;,&#10;        `Foreign legal client: ${input.foreignClient}`,&#10;        `Service used abroad: ${input.usedAbroad}`,&#10;        `Invoice to foreign client: ${input.invoice}`,&#10;        `Transfer to Turkey by deadline: ${input.transfer}`,&#10;        `Turkish users/operations: ${input.turkeyUse}`,&#10;        `Foreign passive income also involved: ${input.passive}`,&#10;        &quot;&quot;,&#10;        &quot;Issues to review:&quot;,&#10;        ...result.issues.map((issue) => `- ${issue}`),&#10;        &quot;&quot;,&#10;        &quot;Please review contract, invoice, payment route, service-use evidence, VAT and Turkish tax residence.&quot;&#10;      ].join(&quot;\n&quot;);&#10;    }&#10;&#10;    function update() {&#10;      const input = currentInput();&#10;      const result = assess(input);&#10;      $(&quot;resultBand&quot;).className = `result-band ${result.band}`;&#10;      $(&quot;score&quot;).textContent = `${result.score}/100`;&#10;      $(&quot;scoreTitle&quot;).textContent = result.title;&#10;      $(&quot;summary&quot;).textContent = result.summary;&#10;      $(&quot;profit&quot;).textContent = money(result.profit, input.currency);&#10;      $(&quot;deductionBase&quot;).textContent = money(result.deductionBase, input.currency);&#10;      $(&quot;taxableBase&quot;).textContent = money(result.taxableBase, input.currency);&#10;      $(&quot;priority&quot;).textContent = result.priority;&#10;&#10;      const issueList = $(&quot;issues&quot;);&#10;      issueList.innerHTML = &quot;&quot;;&#10;      result.issues.forEach((issue) => {&#10;        const li = document.createElement(&quot;li&quot;);&#10;        li.textContent = issue;&#10;        issueList.appendChild(li);&#10;      });&#10;&#10;      const report = buildReport(input, result);&#10;      $(&quot;report&quot;).value = report;&#10;      const subject = encodeURIComponent(&quot;Service export calculator review&quot;);&#10;      const body = encodeURIComponent(report);&#10;      $(&quot;emailLink&quot;).href = `mailto:info@ozmconsultancy.com?subject=${subject}&amp;body=${body}`;&#10;      $(&quot;status&quot;).textContent = &quot;&quot;;&#10;    }&#10;&#10;    document.querySelectorAll(&quot;.toggle-row&quot;).forEach((row) => {&#10;      row.addEventListener(&quot;click&quot;, (event) => {&#10;        const button = event.target.closest(&quot;button&quot;);&#10;        if (!button) return;&#10;        const name = row.dataset.name;&#10;        state[name] = button.dataset.value;&#10;        row.querySelectorAll(&quot;button&quot;).forEach((item) => {&#10;          item.setAttribute(&quot;aria-pressed&quot;, item === button ? &quot;true&quot; : &quot;false&quot;);&#10;        });&#10;        update();&#10;      });&#10;    });&#10;&#10;    document.querySelectorAll(&quot;select, input&quot;).forEach((field) => field.addEventListener(&quot;input&quot;, update));&#10;&#10;    $(&quot;calculate&quot;).addEventListener(&quot;click&quot;, update);&#10;&#10;    $(&quot;reset&quot;).addEventListener(&quot;click&quot;, () => {&#10;      $(&quot;model&quot;).value = &quot;contractor&quot;;&#10;      $(&quot;service&quot;).value = &quot;software&quot;;&#10;      $(&quot;currency&quot;).value = &quot;EUR&quot;;&#10;      $(&quot;revenue&quot;).value = &quot;100000&quot;;&#10;      $(&quot;expenses&quot;).value = &quot;15000&quot;;&#10;      $(&quot;turkeyDays&quot;).value = &quot;210&quot;;&#10;      Object.assign(state, {&#10;        foreignClient: &quot;yes&quot;,&#10;        usedAbroad: &quot;yes&quot;,&#10;        invoice: &quot;yes&quot;,&#10;        transfer: &quot;yes&quot;,&#10;        turkeyUse: &quot;no&quot;,&#10;        passive: &quot;no&quot;&#10;      });&#10;      document.querySelectorAll(&quot;.toggle-row&quot;).forEach((row) => {&#10;        row.querySelectorAll(&quot;button&quot;).forEach((button, index) => {&#10;          button.setAttribute(&quot;aria-pressed&quot;, index === 0 ? &quot;true&quot; : &quot;false&quot;);&#10;        });&#10;      });&#10;      update();&#10;    });&#10;&#10;    $(&quot;copy&quot;).addEventListener(&quot;click&quot;, async () => {&#10;      const text = $(&quot;report&quot;).value;&#10;      try {&#10;        await navigator.clipboard.writeText(text);&#10;        $(&quot;status&quot;).textContent = &quot;Report copied.&quot;;&#10;      } catch {&#10;        $(&quot;report&quot;).focus();&#10;        $(&quot;report&quot;).select();&#10;        $(&quot;status&quot;).textContent = &quot;Select and copy the report text.&quot;;&#10;      }&#10;    });&#10;&#10;    update();&#10;  </script>&#10;</body>&#10;</html>&#10;"></iframe>

## Calculator Logic

| Factor | Why it matters |
|---|---|
| Work model | Employees, contractors, sole proprietors, companies and founders have different tax paths |
| Service category | Software, design, engineering, data analysis, data processing and testing are stronger categories |
| Foreign client | The legal client should be outside Turkey |
| Service used abroad | Turkish-use facts can create income tax and VAT risk |
| Invoice | The invoice should match the foreign client and contract |
| Transfer | Transfer to Turkey by the relevant deadline may be required |
| Passive income | Article 20/D Non-Dom analysis is separate and belongs to OZM Consultancy |

## What to Send for Review

After using the calculator, send:

- The calculator report
- Contract or draft contract
- Invoice draft
- Client country and legal name
- Service description
- Evidence showing where the service is used
- Annual revenue and expense estimate
- Payment platform or bank route
- Turkey day count and current tax residence

Email: **info@ozmconsultancy.com**

Subject line: `Service export calculator review`

## FAQ

### Does a high score guarantee the 100% deduction?

No. A high score means the file looks like a strong professional review candidate. Eligibility still depends on documents, law, accounting records and implementation.

### Does the calculator compute final tax due?

No. It estimates net profit, possible deduction base and review priority. It does not compute final Turkish income tax, corporate tax, VAT, social security, treaty relief or penalties.

### Can employees use the calculator?

Yes, but employee income usually needs salary, payroll and treaty analysis rather than the 89/13 service export deduction.

### Is 20/D included?

Only as a warning. Foreign passive income and Article 20/D Non-Dom issues should be reviewed on OZM Consultancy's dedicated Turkey Non-Dom guide.

## Sources

- 100% service export deduction: https://evrenozmen.com.tr/turkey-100-percent-service-export-tax-deduction
- Remote work from Turkey: https://evrenozmen.com.tr/remote-work-turkey-tax-guide
- Service used abroad test: https://evrenozmen.com.tr/service-used-abroad-test-turkey
- OZM Consultancy Turkey Non-Dom Guide: https://ozmconsultancy.com/turkey-non-dom/
- Turkish Revenue Administration, Presidential Decision No. 11257: https://www.gib.gov.tr/duyuru-arsivi/guncel/17846_11257_sayili_cumhurbaskani_karari_resmi_gazetede_yayimlandi

