年底算总账,我盯着电脑屏幕上那几十个Excel和CSV文件,一股无名火就上来了。市面上那些财务软件,界面花里胡哨,点两下就弹窗让你升级会员,鬼知道它们把交易数据打包卖给了谁。今年,老子要自己动手,用Python给自己做一份绝对私密的财务大屏,这玩意儿比任何年终总结PPT都值钱。
第一步是数据收集,也是最恶心的部分。微信支付的账单导出还算友好,支付宝的账单页面DOM树结构这几年改得亲妈都不认识,得用Selenium模拟点击,还得处理那个该死的滑动验证码。最麻烦的是Stripe,API调用有频率限制,得写个带指数退避的重试机制,一晚上才把过去三年的交易记录全拖下来。这些原始数据脏得要命,Pandas上场了。光是清洗“商户名称”这一列就写了快一百行正则表达式:把“财付通-美团点评-午餐”拆成“餐饮-外卖”,把“*Apple.com/bill”映射成“订阅-iCloud”,把那些乱七八糟的服务器厂商账单归类到“基础设施-云服务”。核心逻辑就一个:把我所有的支出和收入,打上我自己定义的标签,而不是支付宝给我定的那个鬼“消费”。
真正的快感来自用Pyecharts渲染图表的那一刻。我写了个脚本,把清洗后的DataFrame按“收入类型”和“月份”做数据透视,然后生成热力图。当那张图在浏览器里铺开时,我手都有点抖。热力图上,代表“SaaS订阅收入”的深红色区块,从2018年Q2开始,就像火山喷发一样向上蔓延,颜色越来越深,面积越来越大。旁边那个小小的、代表“一次性定制开发”的蓝色区域,几乎被淹没了。这意味着我的收入结构发生了质变:从有一单没一单的散活,变成了稳定增长的经常性现金流。
我把MRR(月度经常性收入)的折线图单独拉出来,全屏显示。那条曲线在年初还平缓得像条死鱼,从六月份开始,几乎是以70度角向上猛冲。我知道那个拐点是什么——是我上线的那个微信小程序工具,开始产生付费订阅了。看着这条自己用代码“爬”出来、“洗”出来、“画”出来的曲线,那种真实的、可触摸的成就感,比在大厂领年终奖时HR给你看那个被平均过的数字,要强烈一百倍。这不是公司给的,这是我一行行代码、一个个深夜、跟无数个支付接口和反爬策略死磕出来的结果。
最后一张图是现金流健康度分析。我把所有SaaS的月度订阅成本(服务器、各种API、软件授权)加总,作为一条基础线,然后叠加上MRR曲线。两条线之间的面积,就是我的利润空间。可以看到,在十月之前,收入线紧紧贴着成本线,甚至有几处交叉,那是我疯狂加服务器配置和买营销工具的时候;十月之后,两条线终于拉开了距离,而且缺口越来越大。这张图告诉我一个最朴素的道理:在达到某个临界点之前,你所有的增长都是在为基础设施打工;一旦冲过去,边际成本几乎为零,每一分新增收入都是纯利。
关掉浏览器,屋里只剩下屏幕的微光和机箱风扇声。这份报告不会发给任何人看,它只存在于我的本地硬盘和加密备份里。但它的价值,在我看来远超百万。它不是什么虚头巴脑的年度规划,而是一份用最硬核的技术手段完成的“物理体检报告”,清晰地标出了我这家“一人有限公司”的动脉、静脉和毛细血管。明年该往哪个方向使劲,该砍掉哪些持续失血的项目,这张热力图上写得明明白白。代码不会骗人,数据不会骗人,这才是属于极客的年终浪漫。














