Deferred tax agent

A Python tool that asks Claude to research local GAAP depreciation rules for every country and asset category in a fixed asset register, then calculates each asset's deferred tax position against IFRS.

Status
Working demo
Built with
Python, Claude API, openpyxl

This version runs on a fictional asset register. It is a from-scratch rebuild of a tool first made for an employer, with no company data. The depreciation rules it returns are typical figures to check, not tax advice.

The problem

Group accounts follow IFRS, but each subsidiary also depreciates its assets under local GAAP, the statutory and tax basis. When the two useful lives differ, an asset's carrying amount differs from its tax base, and that temporary difference creates deferred tax.

In a group with entities in many countries, finding the local rule for every country and asset category means separate research for each pair, often in the local language. That lookup is the slow part, and it is what this tool automates.

How it works

  1. Load the register

    Read the fixed asset register from an internal system through an authenticated API when one is configured, or use a sample register of six assets in five countries.

  2. Research the rules

    Send every unique country and asset category pair to Claude in one request. For each pair it returns a typical useful life, the depreciation method and a source a reviewer can check, and it leaves the source empty rather than invent a link.

  3. Cache

    Save the researched rules locally, so the next run only asks about pairs it has not seen.

  4. Calculate book values

    Work out each asset's net book value under IFRS and under local GAAP, both straight-line, and take the difference.

  5. Apply the tax rate

    Multiply the temporary difference by a 25% tax rate. A positive result is a deferred tax liability, a negative one a deferred tax asset.

  6. Export for review

    Write an Excel workbook with one row per asset and a linked source for every rate, so a controller can spot-check the rates without redoing the research.

Worked example

Office furniture in Mexico from the sample register, bought on 1 June 2020 for 8,000 in local currency and measured at 31 December 2025. The 10-year local life matches the 10% a year that Mexican income tax law sets for office furniture.

Office furniture, Mexico IFRS Local GAAP
Cost8,000.008,000.00
Useful life7 years10 years
Depreciation after 5.58 years6,379.974,465.98
Net book value1,620.033,534.02
Temporary difference, IFRS minus local GAAP
(1,913.99)
Deferred tax asset at 25%
478.50

Local rules depreciate the furniture more slowly, so its tax base is higher than its IFRS carrying amount. The difference will be deductible in later years, which gives a deferred tax asset.

Try it

The calculation the agent runs, in the browser. It opens on the worked example above; change anything and the figures and the entry follow.

At the measurement date IFRS Tax base
Cost
Useful life
Depreciation after years
Net book value
Temporary difference, carrying amount minus tax base
The entry to recognise this balance from nil
Account Debit Credit

Straight-line on both bases with no residual value, one asset at one date, and time in service measured as days divided by 365.25, the same convention the agent uses. A real close would post the movement in the balance rather than the balance itself, and would net assets and liabilities by tax jurisdiction.

Limitations

  • Depreciation is straight-line only; declining-balance and other methods are not modelled yet.
  • The rules Claude returns are typical figures for a demo, not jurisdiction-specific tax advice, and every source needs checking before it is relied on.
  • One 25% tax rate applies to every country, while real rates differ. Mexico's is 30%.
  • Asset age is measured to the day the script runs, so the results change with the run date.