Section 100A can treat a trust distribution as a reimbursement agreement and tax it at the top rate instead of the beneficiary’s own rate. The ATO’s finalised guideline PCG 2022/2 says where the risk sits.
The white zone, for income years ending before 1 July 2014, is out of scope because the tool does not take an income year. Division 6 shares follow the High Court’s decision in Bamford.
Where the tool does not implement a rule, such as trust capital gains and franked dividends, streamed or not, under the Division 6E carve-out, it refuses the input rather than returning a number it cannot stand behind.
What this tool does
- Classifies a trust distribution against the ATO’s section 100A green and red risk zones under PCG 2022/2, from facts you supply.
- Works out each beneficiary’s proportionate share of trust income under Division 6, following the Bamford case.
- Calculates the assessable amount on a foreign trust distribution under section 99B, after corpus and previously taxed income deductions.
Get it
Needs Python 3.10 or later. Install the reference release in your Python environment.
python -m pip install "solomons-sword==0.1.9"
Fictional worked example
With uv installed, run this pinned package directly. No clone or input file is needed.
This section 99B example assumes a beneficiary who was resident during the income year, a gross receipt of $150,000 and $50,000 of qualifying corpus. It assumes no corpus attributable to notionally assessable income and no other exclusions. The name and amounts are fictional. The command states residency with --resident-during-year because release 0.1.9 refuses a run that states neither residency flag.
uvx --from solomons-sword==0.1.9 solomons-sword s99b-check --beneficiary "Fabricated Beneficiary" --gross 150000 --corpus 50000 --resident-during-year
Selected output from release 0.1.9, verified on 27 September 2026. The command exits 0 and also prints its statutory basis, a caveat naming the amounts left at nil and its review boundaries.
Gross Receipt: $150,000.00
Corpus Exemption: $50,000.00
Assessable under s99B: $100,000.00
Try a refusal
Change --corpus 50000 to --corpus 160000. The exemptions now exceed the gross receipt. The command exits 2 and returns no assessment:
error: exemptions ($160,000.00) exceed the gross receipt ($150,000.00); check the inputs rather than assuming a nil assessable amount
This verifies the published command’s behaviour on fictional inputs. Confirm residence, the character of the corpus and each exclusion before using the tool with real facts.
Limits
Nothing this engine produces is tax, legal or financial advice, an assessment or a determination. Outputs are review aids: confirm every allocation, zone and exemption against the current law, the trust deed and the entity’s facts before acting, and leave lodgement decisions with a registered practitioner.
Source on GitHub · Primary sources: ATO PCG 2022/2 and the Income Tax Assessment Act 1936.
Software issue using fictional data? Open an issue or email with the tool named in the subject. If the email link does not open, the contact page spells the address out.
Common questions
Is there a blue zone in PCG 2022/2?
No. The blue zone appeared only in the draft, PCG 2022/D1. The finalised PCG 2022/2 has white, green and red zones only.
What is the white zone?
It covers arrangements in income years ending before 1 July 2014. This tool does not take an income year, so the white zone is out of scope here.
How is each beneficiary’s share of trust income worked out?
Proportionately, following the High Court’s decision in Bamford: a beneficiary’s share of trust income sets the proportion of the trust’s taxable income assessed to them.
What will this tool refuse to calculate?
Anything it does not implement, including trust capital gains and franked dividends, streamed or not, under the Division 6E carve-out. It refuses the input rather than returning a number it cannot stand behind.