Skill detail
accountant-expert
Provides expert accounting guidance on GAAP/IFRS principles, double-entry bookkeeping, financial statement preparation, and tax and compliance topics.
Why we recommend it: Expert accounting guidance covering GAAP/IFRS, double-entry bookkeeping, financial statements, and tax compliance.
Inspect before use
Read the source instructions and check the requirements before you install this skill.
SKILL.md
The saved excerpt is a snapshot from when this skill was listed. The external source remains the complete and most current version.
---
name: accountant-expert
version: 1.1.0
description: >-
Expert-level accounting, tax, financial reporting, and accounting systems. Use when the
user mentions accounting, tax, financial reporting, GAAP, or IFRS, or when the task
involves Accounting Principles, Financial Statements, Tax & Compliance, or Accounting
Systems.
category: professional
tags: [accounting, tax, financial-reporting, gaap, ifrs]
allowed-tools:
- Read
- Write
- Edit
---
# Accountant Expert
Expert guidance for accounting systems, financial reporting, tax compliance, and modern accounting technology.
## Core Concepts
### Accounting Principles
- GAAP (Generally Accepted Accounting Principles)
- IFRS (International Financial Reporting Standards)
- Double-entry bookkeeping
- Accrual vs cash accounting
- Financial statement preparation
- Audit and assurance
### Financial Statements
- Balance sheet (Statement of Financial Position)
- Income statement (P&L)
- Cash flow statement
- Statement of changes in equity
- Notes to financial statements
### Tax & Compliance
- Corporate tax planning
- VAT/Sales tax management
- Payroll tax compliance
- Tax filing and reporting
- Transfer pricing
- International taxation
## Double-Entry Bookkeeping
```python
from decimal import Decimal
from datetime import datetime
from enum import Enum
from typing import List
class AccountType(Enum):
ASSET = "asset"
LIABILITY = "liability"
EQUITY = "equity"
REVENUE = "revenue"
EXPENSE = "expense"
class Account:
def __init__(self, code: str, name: str, account_type: AccountType):
self.code = code
self.name = name
self.type = account_type
self.balance = Decimal('0')
self.debit_total = Decimal('0')
self.credit_total = Decimal('0')
def is_debit_normal(self) -> bool:
"""Check if account has normal debit balance"""
return self.type in [AccountType.ASSET, AccountType.EXPENSE]
class JournalEntry:
def __init__(self, date: datetime, description: str):
self.id = self.generate_entry_id()
self.date = date
self.description = description
self.lines = []
self.posted = False
def add_line(self, account: Account, debit: Decimal = None,
credit: Decimal = None):
"""Add line to journal entry"""
if debit and credit:
raise ValueError("Cannot have both debit and credit")
self.lines.append({
"account": account,
"debit": debit or Decimal('0'),
"credit": credit or Decimal('0')
})
def validate(self) -> bool:
"""Validate journal entry (debits must equal credits)"""
total_debits = sum(line["debit"] for line in self.lines)
total_credits = sum(line["credit"] for line in self.lines)
return total_debits == total_credits
def post(self) -> bool:
"""Post journal entry to ledger"""
if not self.validate():
raise ValueError("Entry does not balance")
for line in self.lines:
account = line["account"]
if line["debit"]:
account.debit_total += line["debit"]
if line["credit"]:
account.credit_total += line["credit"]
# Update balance based on account type
if account.is_debit_normal():
account.balance = account.debit_total - account.credit_total
else:
account.balance = account.credit_total - account.debit_total
self.posted = True
return True
```
## Financial Statement Generation
```python
class FinancialStatements:
def __init__(self, company_name: str, period_end: datetime):
self.company_name = company_name
self.period_end = period_end
self.accounts = []
def generate_balance_sheet(self) -> dict:
"""Generate balance sheet"""
assets = self.sum_accounts_by_type(AccountType.ASSET)
liabilities Read the full source on GitHub (opens external page)