Initial commit

This commit is contained in:
Zhongwei Li
2025-11-30 08:57:54 +08:00
commit 8f952ee727
50 changed files with 11199 additions and 0 deletions

View File

@@ -0,0 +1,15 @@
# Additional Income Templates
Select MULTIPLE templates for additional income sources beyond your primary income.
## Available Templates
- `side-hustle.yaml` - Freelancing, consulting, gig work
- `property-investor.yaml` - Rental income, negative gearing, CGT
- `share-investor.yaml` - Dividends, franking credits, share CGT
- `crypto-investor.yaml` - Cryptocurrency trading and staking
- `trust-structures.yaml` - Family trust, company distributions
## YAML Schema
Same structure as primary templates, with `layer: additional` and higher priority values (3+).

View File

@@ -0,0 +1,175 @@
name: Airbnb Host
layer: additional
description: |
Short-term rental income tracking for Airbnb, Stayz, and similar platforms.
Includes expense apportionment for owner-occupied properties and CGT considerations.
categories:
- name: "Airbnb:Income"
parent: null
description: "Short-term rental income from Airbnb, Stayz, etc."
- name: "Airbnb:Cleaning & Laundry"
parent: null
description: "Cleaning services and laundry for guests"
- name: "Airbnb:Guest Amenities"
parent: null
description: "Toiletries, coffee, tea, snacks for guests"
- name: "Airbnb:Linen & Towels"
parent: null
description: "Linen, towels, bedding for guest accommodation"
- name: "Airbnb:Platform Fees"
parent: null
description: "Airbnb/Stayz service fees and commissions"
- name: "Airbnb:Repairs & Maintenance"
parent: null
description: "Repairs and maintenance related to rental use"
- name: "Airbnb:Utilities"
parent: null
description: "Utilities attributable to rental use (apportioned)"
- name: "Airbnb:Insurance"
parent: null
description: "Host insurance and additional coverage"
- name: "Airbnb:Marketing & Listings"
parent: null
description: "Photography, listing fees, advertising"
rules:
- id: airbnb-income
pattern: "Airbnb.*payout|Airbnb.*income|Stayz.*payout|booking.com.*payout|short.*term.*rental.*income"
category: "Airbnb:Income"
confidence: high
labels: ["Assessable Income", "Rental Income"]
description: "Detect short-term rental income"
- id: airbnb-cleaning
pattern: "cleaning.*Airbnb|laundry.*guest|linen.*service|professional.*clean.*rental"
category: "Airbnb:Cleaning & Laundry"
confidence: high
labels: ["Tax Deductible", "Apportioned"]
description: "Detect cleaning and laundry expenses"
- id: guest-amenities
pattern: "toiletries.*guest|coffee.*Airbnb|tea.*guest|snacks.*guest|welcome.*pack"
category: "Airbnb:Guest Amenities"
confidence: medium
labels: ["Tax Deductible", "Apportioned"]
description: "Detect guest amenity purchases"
- id: linen-towels
pattern: "linen.*rental|towels.*guest|bedding.*Airbnb|sheets.*accommodation"
category: "Airbnb:Linen & Towels"
confidence: high
labels: ["Tax Deductible", "Apportioned"]
description: "Detect linen and towel purchases"
- id: platform-fees
pattern: "Airbnb.*service.*fee|Airbnb.*commission|Stayz.*fee|booking.*commission"
category: "Airbnb:Platform Fees"
confidence: high
labels: ["Tax Deductible"]
description: "Detect platform service fees"
- id: rental-repairs
pattern: "repair.*rental|maintenance.*Airbnb|fix.*guest.*room|handyman.*rental"
category: "Airbnb:Repairs & Maintenance"
confidence: medium
labels: ["Tax Deductible", "Apportioned", "Repairs vs Improvements"]
description: "Detect repairs related to rental use"
- id: rental-utilities
pattern: "electricity.*rental|gas.*rental|water.*rental|internet.*rental"
category: "Airbnb:Utilities"
confidence: low
labels: ["Tax Deductible", "Apportioned"]
description: "Detect utilities for apportionment (requires manual review)"
- id: host-insurance
pattern: "Airbnb.*insurance|host.*insurance|short.*term.*rental.*insurance"
category: "Airbnb:Insurance"
confidence: high
labels: ["Tax Deductible", "Apportioned"]
description: "Detect host insurance premiums"
- id: listing-marketing
pattern: "photography.*listing|Airbnb.*listing|property.*photos.*rental"
category: "Airbnb:Marketing & Listings"
confidence: medium
labels: ["Tax Deductible"]
description: "Detect marketing and listing expenses"
tax_tracking:
income_tracking: true
expense_apportionment_required: true
apportionment_basis: "days_rented"
cgt_main_residence_exemption_impact: true
record_keeping_days_rented: true
record_keeping_days_personal: true
alerts:
- type: apportionment_reminder
schedule: quarterly
message: "Calculate expense apportionment: days rented vs personal use"
- type: days_rented_tracker
schedule: monthly
message: "Record days rented this month for expense apportionment"
- type: eofy_airbnb_reminder
schedule: annual
before_date: "06-15"
message: "EOFY - compile Airbnb income, calculate apportioned expenses, document days rented vs personal use"
- type: cgt_exemption_warning
trigger: annual
message: "Using main residence for income may affect CGT main residence exemption. Keep detailed records."
- type: gst_threshold_warning
trigger: annual_income_exceeds
threshold: 75000
message: "Airbnb income + other business income exceeds $75k - GST registration may be required"
labels:
- name: "Assessable Income"
description: "Income assessable for tax purposes"
color: "green"
auto_apply: true
- name: "Rental Income"
description: "Short-term rental income"
color: "lightgreen"
auto_apply: false
- name: "Tax Deductible"
description: "Deductible expense (may require apportionment)"
color: "green"
auto_apply: false
- name: "Apportioned"
description: "Expense requiring apportionment by rental vs personal use"
color: "orange"
auto_apply: true
- name: "Repairs vs Improvements"
description: "Requires classification: repairs (deductible) vs improvements (capital)"
color: "orange"
auto_apply: false
dependencies:
requires: []
conflicts_with: ["property-investor"]
notes: "Use property-investor for long-term rentals. Use airbnb-host for short-term/part-time hosting."
metadata:
created: "2025-11-25"
version: "1.0.0"
author: "Agent Smith"
priority: 3
ato_guidance: "Airbnb income is assessable. Expenses must be apportioned if property is also used privately. Keep records of days rented vs personal use."

View File

@@ -0,0 +1,175 @@
name: Crypto Investor
layer: additional
description: |
Cryptocurrency investment tracking with ATO-compliant CGT and income reporting.
Covers exchanges, staking, DeFi yields, and NFT transactions.
categories:
- name: "Crypto:Purchases"
parent: null
description: "Cryptocurrency purchases (establishes cost base)"
- name: "Crypto:Sales"
parent: null
description: "Cryptocurrency sales (CGT events)"
- name: "Crypto:Staking Income"
parent: null
description: "Staking rewards and interest (ordinary income)"
- name: "Crypto:DeFi Yields"
parent: null
description: "DeFi protocol yields and liquidity rewards (ordinary income)"
- name: "Crypto:Airdrops & Forks"
parent: null
description: "Airdropped tokens and fork distributions (ordinary income at receipt)"
- name: "Crypto:NFT Purchases"
parent: null
description: "NFT purchases (establishes cost base)"
- name: "Crypto:NFT Sales"
parent: null
description: "NFT sales (CGT events)"
- name: "Crypto:Gas Fees"
parent: null
description: "Network gas fees (adds to cost base)"
- name: "Crypto:Exchange Fees"
parent: null
description: "Trading and platform fees"
rules:
- id: crypto-purchase
pattern: "CoinSpot|Binance|Coinbase|Kraken|Independent.*Reserve|Swyftx|BTC.*Markets|crypto.*buy|BTC.*purchase|ETH.*purchase"
category: "Crypto:Purchases"
confidence: medium
labels: ["Crypto", "Cost Base"]
description: "Detect cryptocurrency purchases on Australian exchanges"
- id: crypto-sale
pattern: "crypto.*sell|BTC.*sale|ETH.*sale|sold.*crypto"
category: "Crypto:Sales"
confidence: medium
labels: ["Crypto", "CGT Event"]
description: "Detect cryptocurrency sales (CGT event)"
- id: staking-rewards
pattern: "staking.*reward|staked.*income|validator.*reward|POS.*reward"
category: "Crypto:Staking Income"
confidence: high
labels: ["Crypto", "Ordinary Income"]
description: "Detect staking rewards (ordinary income)"
- id: defi-yields
pattern: "DeFi|yield.*farming|liquidity.*pool|lending.*interest|Aave|Compound|Uniswap.*reward"
category: "Crypto:DeFi Yields"
confidence: medium
labels: ["Crypto", "Ordinary Income"]
description: "Detect DeFi protocol yields"
- id: airdrops
pattern: "airdrop|token.*distribution|fork.*distribution"
category: "Crypto:Airdrops & Forks"
confidence: high
labels: ["Crypto", "Ordinary Income"]
description: "Detect airdrops and fork distributions"
- id: nft-purchase
pattern: "NFT.*purchase|OpenSea.*buy|Rarible.*buy|digital.*art.*purchase"
category: "Crypto:NFT Purchases"
confidence: medium
labels: ["Crypto", "NFT", "Cost Base"]
description: "Detect NFT purchases"
- id: nft-sale
pattern: "NFT.*sale|OpenSea.*sale|sold.*NFT"
category: "Crypto:NFT Sales"
confidence: medium
labels: ["Crypto", "NFT", "CGT Event"]
description: "Detect NFT sales"
- id: gas-fees
pattern: "gas.*fee|network.*fee|ETH.*fee|transaction.*fee.*crypto"
category: "Crypto:Gas Fees"
confidence: high
labels: ["Crypto", "Cost Base Addition"]
description: "Detect blockchain gas fees"
- id: exchange-fees
pattern: "trading.*fee.*crypto|exchange.*fee|platform.*fee.*crypto"
category: "Crypto:Exchange Fees"
confidence: high
labels: ["Crypto"]
description: "Detect exchange and trading fees"
tax_tracking:
cgt_tracking: true
cgt_discount_eligible: true
cgt_discount_holding_period: 365
cost_base_tracking: true
cost_base_includes_fees: true
income_tracking: true
separate_income_vs_capital: true
alerts:
- type: crypto_cgt_event
trigger: sale_detected
message: "Crypto sale detected - calculate CGT (12-month holding = 50% discount)"
- type: crypto_income_reminder
schedule: quarterly
message: "Report crypto staking/DeFi income on quarterly basis"
- type: eofy_crypto_reminder
schedule: annual
before_date: "06-15"
message: "EOFY - compile all crypto CGT events and income. ATO requires detailed records."
- type: cost_base_reminder
trigger: purchase_detected
message: "Record AUD value at time of purchase for accurate cost base"
labels:
- name: "Crypto"
description: "Cryptocurrency transaction"
color: "bitcoin-orange"
auto_apply: false
- name: "CGT Event"
description: "Capital gains tax event (crypto disposal)"
color: "gold"
auto_apply: true
- name: "Cost Base"
description: "Establishes or adds to CGT cost base"
color: "lightblue"
auto_apply: false
- name: "Cost Base Addition"
description: "Expense that adds to CGT cost base"
color: "skyblue"
auto_apply: false
- name: "Ordinary Income"
description: "Taxed as ordinary income (not CGT)"
color: "green"
auto_apply: true
- name: "NFT"
description: "Non-fungible token transaction"
color: "purple"
auto_apply: false
dependencies:
requires: []
conflicts_with: []
metadata:
created: "2025-11-25"
version: "1.0.0"
author: "Agent Smith"
priority: 3
ato_guidance: "ATO treats cryptocurrency as CGT asset. Staking/interest = ordinary income. Keep records of all transactions in AUD."

View File

@@ -0,0 +1,129 @@
name: Property Investor
layer: additional
description: |
Rental property income and expenses tracking.
Includes negative gearing calculation and CGT cost base tracking.
categories:
- name: "Rental Income"
parent: null
description: "Rent received from investment properties"
- name: "Property:Interest"
parent: null
description: "Mortgage interest on investment loans"
- name: "Property:Rates & Strata"
parent: null
description: "Council rates and strata fees"
- name: "Property:Repairs & Maintenance"
parent: null
description: "Repairs and maintenance expenses"
- name: "Property:Property Management"
parent: null
description: "Property management fees"
- name: "Property:Insurance"
parent: null
description: "Landlord insurance premiums"
- name: "Property:Depreciation"
parent: null
description: "Depreciation (manual entry from schedule)"
rules:
- id: rental-income
pattern: "rent.*received|rental.*income|tenant.*payment"
category: "Rental Income"
confidence: high
labels: ["Property: {address}"]
description: "Detect rental income payments"
- id: property-loan-interest
pattern: "investment.*loan|property.*mortgage|loan.*interest"
category: "Property:Interest"
confidence: medium
labels: ["Tax Deductible", "Property: {address}"]
description: "Detect investment property loan interest"
- id: council-rates
pattern: "council.*rates|strata|body.*corporate"
category: "Property:Rates & Strata"
confidence: high
labels: ["Tax Deductible", "Property: {address}"]
description: "Detect rates and strata fees"
- id: property-repairs
pattern: "plumber|electrician|handyman|repairs.*property|maintenance.*rental"
category: "Property:Repairs & Maintenance"
confidence: medium
labels: ["Tax Deductible", "Property: {address}", "Repairs vs Improvements"]
description: "Detect repair and maintenance expenses"
- id: property-management-fee
pattern: "property.*management|real.*estate.*fee|letting.*fee"
category: "Property:Property Management"
confidence: high
labels: ["Tax Deductible", "Property: {address}"]
description: "Detect property management fees"
tax_tracking:
negative_gearing_calculation: true
cgt_cost_base_tracking: true
cgt_discount_eligible: true
cgt_discount_holding_period: 365
depreciation_schedule_tracking: true
alerts:
- type: rental_schedule_reminder
schedule: annual
before_date: "06-15"
message: "EOFY - prepare rental property income/expense schedule for tax return"
- type: cgt_event_reminder
trigger: property_sale_detected
message: "Property sale detected - calculate CGT on disposal"
- type: negative_gearing_summary
schedule: quarterly
message: "Quarterly negative gearing summary available"
labels:
- name: "Tax Deductible"
description: "Property expense claimable on tax return"
color: "green"
auto_apply: false
- name: "Negative Gearing"
description: "Deductible loss against other income"
color: "darkgreen"
auto_apply: false
- name: "Capital Improvement"
description: "Adds to CGT cost base (not immediately deductible)"
color: "gold"
auto_apply: false
- name: "Repairs vs Improvements"
description: "Requires classification for tax treatment"
color: "orange"
auto_apply: false
- name: "Property: {address}"
description: "Expense for property at {address}"
color: "brown"
auto_apply: false
requires_configuration: true
configuration_prompt: "Enter property address:"
dependencies:
requires: []
conflicts_with: []
metadata:
created: "2025-11-22"
version: "1.0.0"
author: "Agent Smith"
priority: 3

View File

@@ -0,0 +1,103 @@
name: Share/ETF Investor
layer: additional
description: |
Share and ETF portfolio tracking with dividend income and CGT events.
Includes franking credit extraction and wash sale detection.
categories:
- name: "Dividends:Franked"
parent: null
description: "Fully franked dividend income"
- name: "Dividends:Unfranked"
parent: null
description: "Unfranked dividend income"
- name: "Share Sales"
parent: null
description: "Capital gains/losses from share sales"
- name: "Brokerage Fees"
parent: null
description: "Trading and brokerage fees"
rules:
- id: franked-dividends
pattern: "dividend.*franked|franking.*credit|DRP|dividend.*reinvestment"
category: "Dividends:Franked"
confidence: high
labels: ["Franked Dividend"]
description: "Detect franked dividend payments"
- id: unfranked-dividends
pattern: "dividend.*unfranked|distribution.*trust"
category: "Dividends:Unfranked"
confidence: high
description: "Detect unfranked dividend payments"
- id: share-sale
pattern: "share.*sale|stock.*sale|sold.*shares|CGT.*event"
category: "Share Sales"
confidence: medium
labels: ["Capital Gain"]
description: "Detect share sale transactions (CGT event)"
- id: brokerage
pattern: "CommSec|SelfWealth|Stake|brokerage|trading.*fee"
category: "Brokerage Fees"
confidence: high
labels: ["Tax Deductible"]
description: "Detect brokerage and trading fees"
tax_tracking:
dividend_tracking: true
franking_credit_extraction: true
cgt_tracking: true
cgt_discount_eligible: true
cgt_discount_holding_period: 365
wash_sale_detection: true
wash_sale_period: 30
alerts:
- type: dividend_income_summary
schedule: quarterly
message: "Quarterly dividend income summary with franking credits"
- type: cgt_event_detected
trigger: share_sale_detected
message: "Share sale detected - track CGT event and holding period"
- type: wash_sale_warning
trigger: repurchase_within_30_days
message: "Warning: Share repurchased within 30 days - potential wash sale"
labels:
- name: "Tax Deductible"
description: "Share trading expense claimable"
color: "green"
auto_apply: false
- name: "Capital Gain"
description: "Capital gains event (CGT applicable)"
color: "gold"
auto_apply: true
- name: "Capital Loss"
description: "Capital loss (offset against gains)"
color: "brown"
auto_apply: false
- name: "Franked Dividend"
description: "Dividend with franking credits attached"
color: "teal"
auto_apply: true
dependencies:
requires: []
conflicts_with: []
metadata:
created: "2025-11-22"
version: "1.0.0"
author: "Agent Smith"
priority: 3