Provides tax knowledge and deduction validation for Harry's multi-entity Australian business ecosystem (MOKAI PTY LTD, MOK HOUSE PTY LTD, SAFIA Unit Trust, HS Family Trust, Harrison Robert Sayers sole trader). Integrates with Graphiti MCP for entity relationship memory and Serena MCP for calculation patterns. Automatically validates tax deductions, monitors GST thresholds, optimizes trust distributions, and tracks APRA/SAFIA royalty income. Triggers when discussing deductions, tax brackets, GST registration, trust distributions, business expenses, UpBank transactions, or Australian tax optimization. Uses lazy-loading knowledge architecture for token efficiency.
Tax knowledge system for Harry's multi-entity business with automatic knowledge building via Graphiti (facts) and Serena (patterns).
Automatically activate when user mentions:
What Graphiti stores:
Query pattern:
mcp__graphiti__search_memory_facts({
query: "[entity/asset/income] tax deductible rules ownership"
})
What Serena stores:
Query pattern:
mcp__serena__read_memory({
memory_file_name: "harry_tax_deduction_patterns"
})
What skill provides:
Load pattern: Reference files on-demand only
User asks: "Is [expense] tax deductible?"
Steps:
Check Graphiti first (instant answer if rule exists):
mcp__graphiti__search_memory_facts({
query: "[expense] tax deductible Harry business"
})
If no rule in Graphiti, apply general tax principles:
Validate against known patterns (from Serena if complex calculation):
mcp__serena__read_memory({
memory_file_name: "harry_tax_deduction_patterns"
})
Provide answer with reasoning:
✅/❌ [Expense] is/is not tax deductible
**Reasoning**: [Why based on tax law + Harry's situation]
**Category**: [Expense type]
**Apportionment**: [If partial, show %]
**Evidence required**: [Receipt, logbook, etc.]
Store new rule (automatic):
// Store in Graphiti for instant future lookup
mcp__graphiti__add_memory({
name: "Deduction Rule Discovery",
episode_body: "[Expense] is [deductible/not deductible] because [reason]",
source: "message",
group_id: "harry-financial-entities"
})
Suggest pattern (if recurring expense type):
💡 **Pattern detected**: This expense type appears regularly.
Should I store the calculation method in Serena?
- Pattern: "[Expense category] → [Deduction method]"
- Future benefit: Instant validation without re-analysis
[Store pattern] [Skip]
See: workflows/deduction-validation.md for detailed workflow
User mentions: entity name, turnover, GST registration
Steps:
Query Graphiti for current status:
mcp__graphiti__search_memory_facts({
query: "[entity] GST registered turnover threshold FY2025-26"
})
Calculate threshold percentage:
python scripts/validate_gst_threshold.py [current_turnover]
Returns:
{
"current_turnover": 52000,
"threshold": 75000,
"percentage": 69.3,
"should_alert": false,
"recommendation": null
}
If >70% threshold:
⚠️ **GST Threshold Alert**
**Entity**: [Name]
**Progress**: 69.3% of $75,000 threshold
**Current turnover**: $52,000 (FY2025-26)
**Recommendations**:
- Monitor monthly turnover closely
- Project annual turnover based on current rate
- Register for GST if projection indicates threshold breach
- Prepare for GST obligations (pricing, invoicing, BAS)
Store status in Graphiti:
mcp__graphiti__add_memory({
name: "GST Threshold Update",
episode_body: "[Entity] turnover $52K (69.3% of threshold) as at [date]",
source: "message",
group_id: "harry-financial-entities"
})
See: workflows/gst-threshold-check.md for monitoring schedule
User asks: "Optimize trust distributions" or "What's best tax structure?"
Steps:
Query Graphiti for income data:
mcp__graphiti__search_memory_facts({
query: "Harry Wife income FY2025-26 salary APRA SAFIA"
})
Query Serena for distribution strategy:
mcp__serena__read_memory({
memory_file_name: "harry_tax_deduction_patterns"
})
Calculate tax scenarios:
python scripts/optimize_trust_distribution.py \
--harry-income 35000 \
--wife-income 48000 \
--trust-income 40000
Present optimization:
## Trust Distribution Analysis
### Current Structure (No Trust Distribution)
- Harry: $35K APRA + $0 MOK HOUSE = $35K → Tax: $3,420
- Wife: $48K employment → Tax: $7,020
- **Total family tax**: $10,440
### Optimized (With Trust Distribution)
- Harry: $35K APRA + $10K trust = $45K → Tax: $5,520
- Wife: $48K employment + $0 trust = $48K → Tax: $7,020
- Trust distributes: $40K (Wife $30K, Harry $10K)
- **Total family tax**: $12,540
### Analysis
⚠️ Trust distribution increases tax by $2,100 in this scenario
**Reason**: Both already in 19% bracket, trust income pushes toward 32.5%
**Better strategy**: Retain income in company, pay when beneficial
Store strategy in Serena (if user confirms):
mcp__serena__write_memory({
memory_name: "harry_tax_deduction_patterns",
content: "## Trust Distribution Strategy\n\n..." // Append pattern
})
See: workflows/trust-optimization.md for calculation method
Store in Graphiti when detecting:
| Trigger Pattern | Example | Storage |
|---|---|---|
| Asset detail + date | "Tesla balloon payment $41,676 due Dec 14, 2026" | mcp__graphiti__add_memory() |
| Deduction rule | "Gym membership NEVER deductible" | Fact: Gym → not_deductible (reason: personal) |
| Income threshold | "Harry targets <$45K for 19% bracket" | Fact: Harry → income_target → $45K |
| Entity status change | "MOK HOUSE registered for GST on [date]" | Fact: MOK HOUSE → gst_registered → true |
| Financial event | "SAFIA show paid $60K on [date]" | Fact: SAFIA → income_event → $60K |
| Ownership change | "MOK HOUSE transferred to Trust [date]" | Relationship: MOK HOUSE → owned_by → Trust |
Storage pattern:
mcp__graphiti__add_memory({
name: "[Fact Category]",
episode_body: "[Detailed fact with context]",
source: "message",
group_id: "harry-financial-entities"
})
Silent feedback:
🔗 **Stored**: [Brief fact description]
Suggest Serena when detecting:
| Trigger Pattern | Example | Suggestion |
|---|---|---|
| Method preference | "Use logbook for Tesla, not cents/km" | Store calculation method |
| Workflow improvement | "Always check Apple charges monthly" | Store review pattern |
| Strategy decision | "Distribute to Wife first (lower bracket)" | Store tax strategy |
| Calculation approach | "APRA: 6-month rolling average ±30%" | Store forecasting method |
Suggestion format:
💡 **Pattern Detected**
Should I store this in Serena for future efficiency?
**Pattern**: "[Description]"
**Benefit**: [Why this helps future analysis]
**Applies to**: [Future scenarios]
[Yes - Store pattern] [No - Just this time] [Customize]
If user confirms "Yes":
mcp__serena__write_memory({
memory_name: "harry_tax_deduction_patterns",
content: `
## [Pattern Category]
### [Specific Pattern]
- **Method**: [How to do it]
- **Reason**: [Why this method]
- **Benefit**: [Quantified advantage]
- **Added**: ${date}
`
})
Based on question type, route to appropriate knowledge source:
User: "When is my Tesla balloon payment due?"
→ Query Graphiti for Tesla → balloon_payment → date
→ Instant answer: "December 14, 2026 ($41,676.82)"
User: "How should I calculate vehicle deductions?"
→ Query Serena for "vehicle deduction method"
→ Returns: "Logbook method for Tesla (better than cents/km)"
User: "What's the tax-free threshold?"
→ Load reference/tax-rates-fy2025.md
→ Returns: "$18,200 (FY2025-26)"
User: "Should I register for GST?"
→ Graphiti: Current turnover for entity
→ Serena: GST calculation pattern
→ Reference: GST threshold rules
→ Combine: Comprehensive recommendation
Never load all references upfront. Load specific file when needed:
User mentions: "tax bracket", "marginal rate", "company tax"
→ Load: reference/tax-rates-fy2025.md
User asks: "Is [specific expense] deductible?"
→ Check Graphiti first
→ If not found, load: reference/deduction-rules.md (general principles)
User mentions: "ABN", "GST registration", "entity structure"
→ Load: reference/entity-structure.md
User asks: "When should I register?", "BAS requirements"
→ Load: reference/gst-compliance.md
Loading pattern:
*Loading tax rate reference for FY2025-26...*
[Reference content used to answer question]
*Reference stored in skill context for this conversation*
Core entities to query from Graphiti:
MOK HOUSE PTY LTD (ABN: 38690628212)
"MOK HOUSE PTY LTD ownership GST structure"MOKAI PTY LTD
"MOKAI PTY LTD operational status GST Indigenous"Harrison Robert Sayers - Sole Trader (ABN: 89 184 087 850)
"Harrison sole trader APRA SAFIA income GST"SAFIA Unit Trust
"SAFIA Unit Trust Harry member GST royalties"HS Family Trust
"HS Family Trust beneficiaries distributions structure"Tesla Model 3
"Tesla Model 3 loan balloon business use deduction"If Graphiti returns no data: Use fallback from reference/entity-structure.md
Quick reference (keep in skill for instant access):
For detailed rates: See reference/tax-rates-fy2025.md
⚠️ No stored information found for [entity/asset]
Using general tax principles...
💡 After this analysis, I'll store the details for instant future lookup.
No established calculation pattern for [scenario]
Applying standard approach...
💡 Should I store this method for future efficiency?
⚠️ **Gray Area Detected**
[Expense] deductibility depends on specific circumstances:
- ✅ Deductible IF: [Condition]
- ❌ Not deductible IF: [Condition]
**Your situation**: [Analysis based on Graphiti facts]
**Recommendation**: [Conservative or aggressive approach]
⚠️ **Specialist review recommended** for [reason]
[✅/❌/⚠️] **[Expense]** is [fully/partially/not] tax deductible
**Reasoning**: [Tax law principle + Harry's specific situation]
**Category**: [Expense classification]
**Apportionment**: [Percentage if partial, e.g., "50% business use"]
**Evidence required**: [Receipt, logbook, invoice, contract]
**Timing**: [When to claim: immediate, depreciation, prepaid rules]
**Example calculation**:
- Expense: $[amount]
- Deductible portion: $[amount × %]
- Tax benefit: $[deductible × marginal_rate] saved
🔗 Stored in knowledge graph for future reference
⚠️ **GST Threshold Alert**
**Entity**: [Name]
**Current turnover** (FY2025-26): $[amount]
**Threshold progress**: [X]% of $75,000
**Projected breach date**: [Estimate based on current rate]
### Recommendations
1. ⏰ **Monitor monthly**: Track invoices to project annual total
2. 📋 **Prepare for registration** (if projection >$75K):
- Update pricing (include GST or absorb 10%)
- Set up GST-compliant invoicing
- Prepare for quarterly BAS
3. 💡 **Consider voluntary registration** if:
- Clients expect GST invoices (government contracts)
- Want to claim input tax credits immediately
**Next review**: [Date for next threshold check]
## Tax Optimization Analysis
### Current Structure
[Breakdown of current income and tax by entity/beneficiary]
**Total family tax**: $[amount]
### Optimized Structure
[Proposed distribution strategy]
**Total family tax**: $[amount]
### Benefit
💰 **Annual tax saving**: $[difference]
📊 **Effective rate reduction**: [X]% → [Y]%
### Implementation Steps
1. [Step with timeline]
2. [Step with timeline]
3. [Step with timeline]
⚠️ **Specialist review required**: [If Div 7A, CGT, or complex structures involved]
Always flag for registered tax agent when:
| Scenario | Flag Reason |
|---|---|
| Trust distributions | Complex beneficiary tax implications |
| Div 7A loans | Legal compliance required |
| CGT events | Capital gains calculation complexity |
| FBT application | Fringe benefits tax rules |
| International income | Tax treaty implications |
| Business structure change | Entity restructure consequences |
| Large deductions (>$10K) | ATO audit risk management |
Flag format:
⚠️ **Registered Tax Agent Review Required**
**Issue**: [What triggers the flag]
**Complexity**: [Why specialist needed]
**Risk**: [Potential consequences if wrong]
**Timing**: [When review should occur]
This analysis provides directional guidance only.
The /accountant slash command uses this skill:
# /accountant command workflow
1. **Load tax intelligence** (this skill activates automatically)
2. **Query Supabase** for real-time financial data
3. **Analyze** using skill's tax knowledge + Graphiti facts + Serena patterns
4. **Generate report** with recommendations
5. **Save** to vault (01-areas/finance/analysis/)
This skill provides the tax intelligence layer.
The command provides the workflow orchestration.
Division of labor:
This skill provides preparatory tax guidance only.
- Not formal accounting or tax advice
- Based on general principles and Harry's known situation
- May not account for all circumstances or recent law changes
- Always engage registered tax agent (TPB) for final decisions
- Always engage CPA/CA for financial structure advice
Skill purpose: Enable informed discussion with tax professionals, not replace them.
/accountant (uses this skill for tax intelligence)harry-financial-entitiesharry_tax_deduction_patternsgshsshaodoyttdxippwx (SAYERS DATA)Skill ready. Knowledge graph building automatically.