复式借贷记账法 Beancount (5) - ESPP
本篇介绍如何在Beancount对Employee Stock Purchase Plan(ESPP)来建模。
ESPP
ESPP是公司提供给员工的一种股票补偿计划.
- 员工可以打折购买公司的股票. 一般是 15% off 某一个价格. 这个价格, 并不是市场价, 是根据一定定价策略来定的, 每个公司还不太一样.
- 员工需要自掏腰包, 资金是从每张paycheck中扣除
- 一年两次, 每次一般是$7500
至于更多ESPP的工作原理, 尤其是股票价格的定价策略, 每个公司都有不同, 也不是本文的关注的重点. 本文主要关注如何在Beancount中记录ESPP.
对ESPP的建模比较简单, 一般就是3点:
- 这$7500的钱是怎么来的 - 从工资中扣除的
- 这$7500的钱是怎么花的 - 等价于股票购买交易, 只需要注意这笔交易有一个特殊价格即可.
- 到手的ESPP的股票和普通股票无差, 可以随时出售.
初始化
假设A君在Hooli工作,其股票代码是Hool 其公司提供ESPP计划, 每年两个时间点, 可以ESPP股票购买价的基础上再85折购买.
创建商品
1990-12-02 commodity HOOL
name: "Common shares of Hooli Inc."
quote: USD
首先我们用commodity来定义股票。
创建需要的账户
2020-01-01 open Income:US:Hooli:ESPP # 记录你从ESPP中额外得到的收益(算income)
2020-01-01 open Assets:US:ETrade:ESPP:Cash USD # 存放ESPP你贡献的资金
2020-01-01 open Assets:US:Etrade:HOOL # 资产账户用来存放ESPP购买的股票
ESPP 贡献
只需要再发工资的时候, 记录ESPP的贡献即可.
2020-01-01 * "Hooli" "Bi-monthly salary payment"
Assets:MyBank:Checking 3062.68 USD
Income:Hooli:Salary -4615.38 USD
...
Assets:US:ETrade:ESPP:Cash 750.00 USD ; 每张paycheck你贡献的用于ESPP的钱
...
Expenses:Taxes:TY2014:Federal 920.53 USD
Expenses:Taxes:TY2014:SocSec 286.15 USD
Expenses:Taxes:TY2014:Medicare 66.92 USD
Expenses:Taxes:TY2014:StateNY 277.90 USD
Expenses:Taxes:TY2014:SDI 1.20 USD
ESPP 购买
这里只需要注意一点就是正确的计算cost basis, 这样capital gain才是正确的 (报税的时候也是同样的, 避免double tax)
2020-02-28 * "ESPP Purchase"
Assets:US:ETrade:ESPP:Cash -7425.39 USD ; 根据broker给的交易确认信息, 没用掉的钱会roll over
Assets:Stock:HOOL 57 HOOL {130.27 USD} ; 记录正确的cost basis
ESPP 出售
ESPP的出售和普通的股票出售无差,
2020-09-10 * "Selling shares"
Assets:US:Etrade:HOOL -26 HOOL {130.27 USD USD} @ 300.23 USD
Assets:US:Etrade:Cash 3946.54 USD
Income:US:Etrade:Gains
系列介绍
准备用一个系列的文章来介绍这个工具和一些技巧。 这些技巧有一些是我从已有的模版中找出来,也有一些是在Google Group里看到大家的推荐,自己又尝试出来的方法。