Skip to content

Australian CGT Formulas

Technical formulas and calculation logic for Australian CGT as implemented in PrivateACB.

Each acquisition creates a parcel (lot) with a cost base calculated as:

cost_base = purchase_price × quantity + fees

Example: Buy 2.0 ETH at A$3,000 each with a A$15 exchange fee:

cost_base = (A$3,000 × 2.0) + A$15 = A$6,015
cost_base_per_unit = A$6,015 / 2.0 = A$3,007.50

The ATO recognises 5 cost base elements (Section 110-25, ITAA 1997):

  1. Money paid — purchase price and acquisition fees
  2. Incidental costs — brokerage, exchange fees, legal costs
  3. Costs of ownership — interest on money borrowed to acquire the asset (not typical for crypto)
  4. Capital costs — costs to increase or preserve the asset’s value
  5. Costs related to CGT event — disposal fees

For most crypto transactions, elements 1 and 2 (purchase price + exchange fees) are the relevant items.

When you dispose of crypto, the gain or loss per parcel is:

capital_gain = proceeds - cost_base
capital_loss = cost_base - proceeds (if proceeds < cost_base)

Where:

  • proceeds = sale price × quantity disposed from this parcel, minus selling fees
  • cost_base = cost base per unit of this parcel × quantity disposed from this parcel

When a disposal uses multiple parcels:

ParcelQty UsedCost BaseProceedsGain/Loss
Parcel 1 (oldest)1.0A$50,000A$65,000+A$15,000
Parcel 2 (next)0.2A$12,000A$13,000+A$1,000
Total1.2A$62,000A$78,000+A$16,000

Each parcel’s gain/loss is calculated independently, then aggregated.

A capital gain from a parcel is eligible for the 50% CGT discount if all of these conditions are met:

  1. The taxpayer is an Australian individual (not a company, super fund, or trust)
  2. The parcel was held for more than 12 calendar months
  3. The disposal resulted in a capital gain (not a loss — losses are never discounted)
eligible = acquisition_date + 12_calendar_months < disposal_date

This uses calendar months, not a fixed day count:

Acquisition DateDisposal DateMonths HeldEligible?
15 Jan 202415 Jan 2025Exactly 12No (must exceed 12)
15 Jan 202416 Jan 202512 months + 1 dayYes
29 Feb 20241 Mar 202512 months + 1 dayYes
1 Jul 202430 Jun 202511 months + 30 daysNo
1 Jul 20241 Jul 2025Exactly 12No
1 Jul 20242 Jul 202512 months + 1 dayYes

Net Capital Gain: The Q18 Netting Algorithm

Section titled “Net Capital Gain: The Q18 Netting Algorithm”

The ATO’s Individual Tax Return Question 18 uses a specific netting sequence. PrivateACB implements this exactly:

Step 1: Classify all gains
non_discount_gains = sum of gains from parcels held ≤12 months
discount_eligible_gains = sum of gains from parcels held >12 months
total_gains = non_discount_gains + discount_eligible_gains
Step 2: Sum all losses
total_losses = sum of all capital losses (absolute value)
Step 3: Apply losses to non-discount gains first
remaining_non_discount = max(0, non_discount_gains - total_losses)
losses_remaining = max(0, total_losses - non_discount_gains)
Step 4: Apply remaining losses to discount gains
remaining_discount = max(0, discount_eligible_gains - losses_remaining)
Step 5: Apply 50% discount
discounted_amount = remaining_discount × 50%
Step 6: Net capital gain
net_capital_gain = remaining_non_discount + discounted_amount
DisposalGain/LossDiscount Eligible?
BTC sale+A$40,000Yes (held 16 months)
ETH sale (Lot 1)+A$7,500Yes (held 19 months)
ETH sale (Lot 2)-A$2,500N/A (loss)
SOL sale+A$10,000No (held exactly 12 months)
ADA sale-A$200N/A (loss)

Step 1: Non-discount gains = A$10,000 (SOL). Discount-eligible gains = A$47,500 (BTC + ETH Lot 1).

Step 2: Total losses = A$2,700 (ETH Lot 2 + ADA).

Step 3: Apply A$2,700 losses to non-discount gains first: A$10,000 - A$2,700 = A$7,300 remaining non-discount. Losses remaining: A$0.

Step 4: No remaining losses to apply to discount gains: A$47,500 remaining discount-eligible.

Step 5: Discount: A$47,500 x 50% = A$23,750.

Step 6: Net capital gain = A$7,300 + A$23,750 = A$31,050

This is the amount that goes on Question 18 of your Individual Tax Return.

Comparison: Canada vs US vs Australia vs UK

Section titled “Comparison: Canada vs US vs Australia vs UK”
FormulaCanadaUnited StatesAustraliaUnited Kingdom
Cost basisPooled average (ACB)Per-lot costPer-parcel costSection 104 pool
Gain calculationProceeds - ACB per unitProceeds - lot costProceeds - parcel costProceeds - pool cost
Loss denialSuperficial loss (30-day)Wash sale (30-day, optional)None (mechanical)30-day rule (matching, not denial)
Holding benefitNoneST/LT rates (>365 days)50% discount (>12 cal. months)None
Inclusion rate50% of net gain100% (lower LT rate)100% (50% discount first)100% (after AEA deduction)
Loss nettingLosses offset gains freelyST/LT netted separatelyLosses to non-discount firstLosses offset same-year gains
Tax yearJan 1 – Dec 31Jan 1 – Dec 31Jul 1 – Jun 30Apr 6 – Apr 5

Why the Same Trade Produces Different Results

Section titled “Why the Same Trade Produces Different Results”

The same BTC trade history can produce different tax outcomes in each jurisdiction:

  • Canada pools all purchases, so the cost basis is a weighted average — individual lot costs don’t matter
  • US uses FIFO by default, may have wash sale adjustments, and classifies gains as short-term or long-term for different tax rates
  • Australia uses FIFO by default, has no loss denial, and applies the 50% CGT discount (reducing the gain itself, not changing the rate)
  • UK uses Section 104 pooling (similar to Canada’s ACB) but with same-day and 30-day matching rules applied first; an Annual Exempt Amount (£3,000 from 2024/25) reduces the taxable portion of the year’s net gain

Last Updated: May 2026 PrivateACB Version: 2.8.1