Transfer Pricing Algorithm WIP: Difference between revisions

From Wiki Algonomia
Jump to navigation Jump to search
(Created page with "(WIP) == Thin-Capitalisation (“Thin-Cap”) module == === Context === This module plugs into the Transfer Pricing Algorithm ''after'' the TP-convergence loop and **before** the withholding-tax stage, adjusting ATP PBT and creating carry-forward variables where interest is disallowed. === Data structure additions === ==== Data ==== {| class="wikitable sortable mw-collapsible mw-collapsed" |+Input Data Points – Thin-Cap !Role !Label !Definition !Typing !Multiplicit...")
 
(Added and modified WIP page for Thin-Capitalisation in TP Algorithm)
Line 4: Line 4:


=== Context ===
=== Context ===
This module plugs into the Transfer Pricing Algorithm ''after'' the TP-convergence loop and **before** the withholding-tax stage, adjusting ATP PBT and creating carry-forward variables where interest is disallowed.
This module plugs into the Transfer Pricing Algorithm '''''<u>after</u>''''' the TP-convergence loop and '''<u>before</u>''' the withholding-tax stage, adjusting ATP PBT and creating carry-forward variables where interest is disallowed.


=== Data structure additions ===
=== Data structure additions ===
Line 36: Line 36:
|Couple (Decimal;ISO 3 Currency Code)
|Couple (Decimal;ISO 3 Currency Code)
|If multiple defined, are aggregated for computation
|If multiple defined, are aggregated for computation
|Yes **if** Thin-Cap in scope; otherwise optional
|Yes, if Thin-Cap in scope; otherwise optional
|-
|-
|Financials
|Financials
Line 43: Line 43:
|Couple (Decimal;ISO 3 Currency Code)
|Couple (Decimal;ISO 3 Currency Code)
|If multiple defined, are aggregated for computation
|If multiple defined, are aggregated for computation
|Yes **if** Thin-Cap in scope
|Yes, if Thin-Cap in scope
|-
|-
|Financials
|Financials
Line 50: Line 50:
|Couple (Decimal;ISO 3 Currency Code)
|Couple (Decimal;ISO 3 Currency Code)
|If multiple defined, are aggregated for computation
|If multiple defined, are aggregated for computation
|No required only for EBITDA-based rules
|No, required only for EBITDA-based rules
|-
|-
|Financials
|Financials
Line 82: Line 82:
|Boolean
|Boolean
|Only one value acceptable per segment
|Only one value acceptable per segment
|No, default **False**
|No, default False
|-
|-
|Thin-Cap
|Thin-Cap
Line 144: Line 144:


=== Computational step – Thin-Cap limitation ===
=== Computational step – Thin-Cap limitation ===
This step is performed **entity-by-entity at the “Declaring Entity” level**.
This step is performed '''entity-by-entity''' at the “Declaring Entity” level.
 
# **Compute the Allowable Interest Ceiling (AIC)**
#* *Debt-Equity rule*: <nowiki>AIC = min(NI ; (Debt/Equity Safe-Harbour × ATP Equity – Thin-Cap))</nowiki>
#* *Fixed-Ratio / EBITDA rule*: <nowiki>AIC = min(NI ; Fixed-Ratio % × ATP EBITDA)</nowiki>
#* *Group-Ratio election*: substitute the higher of Fixed-Ratio % and Group-Ratio % in the above.
# **Apply the de-minimis threshold** 
  If <nowiki>NI ≤ De-minimis</nowiki> → entire NI is deductible → skip to step 4.
# **Determine current-year disallowance** 
  <nowiki>Disallowed_N = max(0 ; NI – AIC)</nowiki>
# **Utilise prior-year carry-forward** 
  <nowiki>Allowed_from_carry = min(Excess Carry-forward N-1 ; AIC – (NI – Disallowed_N))</nowiki> 
  <nowiki>Disallowed_N = Disallowed_N – Allowed_from_carry</nowiki>
# **Update variables** 
  * <nowiki>ΔPBT_Thin-Cap = (-1) × Disallowed_N</nowiki> 
  * <nowiki>ATP Disallowed Interest N = Disallowed_N</nowiki> 
  * <nowiki>ATP Excess Interest Carry-forward N = Disallowed_N</nowiki> (subject to carry-forward period) 
  * Replace <nowiki>ATP PBT</nowiki> in the downstream **Tax losses** stage with 
    <nowiki>New_ATP_PBT = ATP PBT + ΔPBT_Thin-Cap + ΔPBT_WHT (paid + due)</nowiki>


# '''Compute the Allowable Interest Ceiling (AIC)'''
#* Debt-Equity rule: AIC = min(Net Interest (NI) ; (Debt/Equity Safe-Harbour × ATP Equity – Thin-Cap))
#* Fixed-Ratio / EBITDA rule: <nowiki>AIC = min(NI ; Fixed-Ratio % × ATP EBITDA)</nowiki>
#* Group-Ratio election: substitute the higher of Fixed-Ratio % and Group-Ratio % in the above.
# '''Apply the de-minimis threshold'''
#* If <nowiki>NI ≤ De-minimis</nowiki> → entire NI is deductible → skip to step 4.
# '''Determine current-year disallowance'''
#* <nowiki>Disallowed_N = max(0 ; NI – AIC)</nowiki> 
# '''Utilise prior-year carry-forward:'''
#* <nowiki>Allowed_from_carry = min(Excess Carry-forward N-1 ; AIC – (NI – Disallowed_N))</nowiki>
#* <nowiki>Disallowed_N = Disallowed_N – Allowed_from_carry</nowiki> 
# '''Update variables''':
## <nowiki>ΔPBT_Thin-Cap = (-1) × Disallowed_N</nowiki> 
## <nowiki>ATP Disallowed Interest N = Disallowed_N</nowiki> 
## <nowiki>ATP Excess Interest Carry-forward N = Disallowed_N</nowiki> (subject to carry-forward period) 
## Replace <nowiki>ATP PBT</nowiki> in the downstream '''Tax losses''' stage with <nowiki>New_ATP_PBT = ATP PBT + ΔPBT_Thin-Cap + ΔPBT_WHT (paid + due)</nowiki> 
=== Interaction with other modules ===
=== Interaction with other modules ===
* **Transfer Pricing convergence**: thin-cap uses the *post-TP* interest figures; it does **not** trigger another TP iteration.
* '''Transfer Pricing convergence''': thin-cap uses the '''post-TP''' interest figures; it does NOT trigger another TP iteration.
* **Withholding-tax engine**: unchanged – WHT remains computed on gross interest flows.
* '''Withholding-tax engine''': unchanged – WHT remains computed on gross interest flows.
* **Tax-loss computation**: use <nowiki>New_ATP_PBT</nowiki> that includes thin-cap adjustment.
* '''Tax-loss computation''': use <nowiki>New_ATP_PBT</nowiki> that includes thin-cap adjustment.
* **Genetic optimiser**: may treat the *Debt/Equity ratio*, *interest rate*, or *Group-Ratio election* as additional variables, bounded by statutory rules.
* '''Genetic optimiser''': may treat the '''Debt/Equity ratio''', '''interest rate''', or '''Group-Ratio election''' as additional variables, bounded by statutory rules.


=== Summary of new labels ===
=== Summary of new labels ===

Revision as of 13:15, 13 June 2025

(WIP)

Thin-Capitalisation (“Thin-Cap”) module

Context

This module plugs into the Transfer Pricing Algorithm after the TP-convergence loop and before the withholding-tax stage, adjusting ATP PBT and creating carry-forward variables where interest is disallowed.

Data structure additions

Data

Input Data Points – Thin-Cap
Role Label Definition Typing Multiplicity behavior Mandatory
Financials ATP Debt – Related-party Average book value of debt owed to associated enterprises during the period Couple (Decimal;ISO 3 Currency Code) If multiple defined, are aggregated for computation No, if absent and Thin-Cap in scope, assumed 0
Financials ATP Debt – Third-party Average book value of debt owed to independent lenders Couple (Decimal;ISO 3 Currency Code) If multiple defined, are aggregated for computation No, if absent, assumed 0
Financials ATP Equity – Thin-Cap Book or tax equity relevant for thin-cap calculations (may differ from accounting equity) Couple (Decimal;ISO 3 Currency Code) If multiple defined, are aggregated for computation Yes, if Thin-Cap in scope; otherwise optional
Financials ATP Net Interest Expense Net interest expense (interest expense – interest income) *after* TP adjustments, *before* thin-cap limitation Couple (Decimal;ISO 3 Currency Code) If multiple defined, are aggregated for computation Yes, if Thin-Cap in scope
Financials ATP EBITDA Earnings before interest, tax, depreciation & amortisation (post-TP, pre-thin-cap) Couple (Decimal;ISO 3 Currency Code) If multiple defined, are aggregated for computation No, required only for EBITDA-based rules
Financials ATP Excess Interest Carry-forward N-1 Disallowed interest from the previous year still available for future deduction Couple (Decimal;ISO 3 Currency Code) If multiple defined, are aggregated for computation No, default 0

Rules

Input Rules – Thin-Cap
Role Label Definition Typing Multiplicity behavior Mandatory
Thin-Cap ATP Thin-Cap rule type Specifies which national limitation applies Single choice Enum : {Debt-Equity ; Fixed-Ratio ; EBITDA ; Group-Ratio ; Safe-Harbour-None} Only one value acceptable per analysis segment Yes if any entity flagged Thin-Cap in scope
Thin-Cap ATP Thin-Cap in scope Flags whether thin-capitalisation rules apply to the entity Boolean Only one value acceptable per segment No, default False
Thin-Cap ATP Debt/Equity Safe-Harbour ratio Maximum Debt ÷ Equity allowed (e.g. 3 : 1) for Debt-Equity type Decimal Only one value acceptable per segment Mandatory for Debt-Equity rules
Thin-Cap ATP Fixed-Ratio % EBITDA Maximum percentage of EBITDA deductible as net interest (e.g. 30 %) percentage Only one value acceptable per segment Mandatory for Fixed-Ratio / EBITDA rules
Thin-Cap ATP De-minimis interest threshold Amount of net interest always deductible regardless of ratios Couple (Decimal;ISO 3 Currency Code) Only one value acceptable per segment Optional – default 0
Thin-Cap ATP Group-Ratio election Allows use of a group ratio if more favourable than fixed ratio Boolean Only one value acceptable per segment Optional – default False
Thin-Cap ATP Group-Ratio % Group net-interest ÷ EBITDA ratio when election taken percentage Only one value acceptable per segment Required if Group-Ratio election = True
Thin-Cap ATP Excess Interest carry-forward period Number of years disallowed interest may be carried forward Integer Only one value acceptable per segment Optional – default ∞

Taxation / Output

New Output Data Points
Role Label Definition
Taxation ATP Disallowed Interest N Net interest expense denied in the current year (negative adjustment to ATP PBT)
Taxation ATP Excess Interest Carry-forward N Disallowed interest to carry forward to future years, after utilisation tests

Computational step – Thin-Cap limitation

This step is performed entity-by-entity at the “Declaring Entity” level.

  1. Compute the Allowable Interest Ceiling (AIC)
    • Debt-Equity rule: AIC = min(Net Interest (NI) ; (Debt/Equity Safe-Harbour × ATP Equity – Thin-Cap))
    • Fixed-Ratio / EBITDA rule: AIC = min(NI ; Fixed-Ratio % × ATP EBITDA)
    • Group-Ratio election: substitute the higher of Fixed-Ratio % and Group-Ratio % in the above.
  2. Apply the de-minimis threshold
    • If NI ≤ De-minimis → entire NI is deductible → skip to step 4.
  3. Determine current-year disallowance
    • Disallowed_N = max(0 ; NI – AIC)
  4. Utilise prior-year carry-forward:
    • Allowed_from_carry = min(Excess Carry-forward N-1 ; AIC – (NI – Disallowed_N))
    • Disallowed_N = Disallowed_N – Allowed_from_carry
  5. Update variables:
    1. ΔPBT_Thin-Cap = (-1) × Disallowed_N
    2. ATP Disallowed Interest N = Disallowed_N
    3. ATP Excess Interest Carry-forward N = Disallowed_N (subject to carry-forward period)
    4. Replace ATP PBT in the downstream Tax losses stage with New_ATP_PBT = ATP PBT + ΔPBT_Thin-Cap + ΔPBT_WHT (paid + due)

Interaction with other modules

  • Transfer Pricing convergence: thin-cap uses the post-TP interest figures; it does NOT trigger another TP iteration.
  • Withholding-tax engine: unchanged – WHT remains computed on gross interest flows.
  • Tax-loss computation: use New_ATP_PBT that includes thin-cap adjustment.
  • Genetic optimiser: may treat the Debt/Equity ratio, interest rate, or Group-Ratio election as additional variables, bounded by statutory rules.

Summary of new labels

Data
ATP Debt – Related-party • ATP Debt – Third-party • ATP Equity – Thin-Cap • ATP Net Interest Expense • ATP EBITDA • ATP Excess Interest Carry-forward N-1
Rules
ATP Thin-Cap rule type • ATP Thin-Cap in scope • ATP Debt/Equity Safe-Harbour ratio • ATP Fixed-Ratio % EBITDA • ATP De-minimis interest threshold • ATP Group-Ratio election • ATP Group-Ratio % • ATP Excess Interest carry-forward period
Outputs
ATP Disallowed Interest N • ATP Excess Interest Carry-forward N • ΔPBT_Thin-Cap