这是一个帮助您处理税务季的库。目前,它可以列出应税销售额,并根据您的 Beancount 文件生成预期的税单。 这使您可以轻松验证您收到的税单,以检查提供商方面或您跟踪方面的错误。
该库依赖于 Beancount 文件中的元数据和自定义指令进行配置。
在您进行销售的账户上,添加 "tax-sale"
元数据,指定销售额应按哪个名称分组显示,通常是经纪人的名称。
示例
2020-01-01 custom "tax-slip-settings" "slip-names" "t3" "t5"
2020-01-01 custom "tax-slip-settings" "slip-currency" "t3" "CAD"
2020-01-01 custom "tax-slip-settings" "slip-currency" "t5" "CAD"
2020-01-01 open Income:Interest:Taxable:BankABC CAD
t5: "Interest from Canadian sources (Box 13)"
tax-slip-issuer: "BankABC"
某些税单按个别股票/ ETF 进行拆分。 要配置此项,帐户名称的最后或倒数第二个部分必须与配置的商品匹配,或者您将 tax-symbol
元数据添加到帐户。
除了交易代码之外,您还可以添加描述。 对于商品,添加 name
,对于帐户,添加 tax-description
元数据。
示例
2020-01-01 commodity ETFABC
name: "ETF ABC @ Exchange"
2020-01-01 open Income:Dividend:Taxable:ETFABC:ForeignNonBusinessIncome CAD
t3: "Foreign Non-Business Income (Box 25)"
2020-01-01 open Income:Dividend:Taxable:Portfolio:Other CAD
t3: "Other Income (Box 26)"
tax-symbol: "StockTicker"
tax-description: "Stock @ Exchange"
如果您的帐户名称与商品匹配,但您不想将其视为商品,请向其添加 tax-symbol: ""
。
有时,如果您按股票拆分税单,您不想为所有内容创建一个单独的帐户。 例如,您通过不同的收入帐户跟踪股息,但不希望为每只股票创建单独的费用帐户来支付税款。 为此:
示例
2020-01-01 custom "tax-slip-settings" "account" "t3" "Foreign Non-Business Income Tax paid (Box 34)" "Expenses:Tax:ForeignNonBusiness"
2020-01-01 * "" ""
Income:Dividend:Taxable:ETFABC:ForeignNonBusinessIncome 10.00 CAD
Expenses:Tax:ForeignNonBusiness -2.50 CAD
Assets:Portfolio 7.50 CAD
如果存在同一设置的多个自定义指令,则使用截至税务年度结束之前的最新指令。 例如,在为 2021 年生成税单时,使用截至 2021-12-31 的最新指令。
税单仅支持字母和数字。 唯一的例外是圆括号 ()
。 要使用它们,请将它们添加到 slip-names
元数据中
2020-01-01 custom "tax-slip-settings" "slip-names" "t4a(p)"
在所有其他使用的地方,删除括号,例如,使用 t4ap
2020-01-01 open Income:CPP CAD
t4ap: "Taxable CPP benefits (Box 20)"
有时,收入是在一年赚取的,但仅在另一年支付; 或者销售在一年进行,但仅在下一年结算。 您可以通过交易上的 tax-year
元数据更改交易应计入的年份,例如 tax-year: "2022"
。
TaxCalculator
上的公共函数之一,例如TaxCalculator.generateTaxSlips(from ledger: Ledger, for year: Int)
TaxCalculator.getTaxableSales(from ledger: Ledger, for year: Int)
另请查看完整文档 此处。
该库支持 Swift Package Manger,因此只需在您的 Package.swift
中添加一个依赖项
.package(url: "https://github.com/Nef10/SwiftBeanCountTax.git", .exact(from: "X.Y.Z")),
注意:根据语义版本控制,所有版本更改 < 1.0.0 都可能具有破坏性,因此目前请使用 .exact