跳转到主要内容

WRITING

我给儿子做了个「资产盘面」:83 条家规变成一个会涨跌的账本

2026年8月11日15 分钟阅读曾田力
教育产品育儿积分系统工程
我给儿子做了个「资产盘面」:83 条家规变成一个会涨跌的账本

贴纸和小红花的问题不是不管用,是攒不住。

攒到第十七张就没人记得第一张是为什么给的,更没人记得上周到底是涨了还是跌了。 孩子看不见自己在变好,只看得见今天有没有拿到那一张。

所以我把它做成了一个账本 —— 每一笔加分扣分都有事由、有时间、有当时的余额, 攒起来的那个总数摆在最上面,像看盘一样。他现在每天回家自己点开看涨了多少。

一、打开是这样

积分首屏:最上面是「他的家」,下面是总市值、今日涨跌
打开第一屏:最上面是「他的家」,下面是总市值和今日涨跌。

页面顶上是一幅「家」的场景 —— 一共 11 档,从破帐篷一路到金碧辉煌的宫殿, 住哪一档只看总市值:挣分升级,花分回落,没有购买、没有解锁。 底下那行永远写着「还差 N 分升级到下一档」,升档的那一刻会弹「🎉 乔迁新居」。 这是财富的诚实具象化 —— 数字还太抽象的年纪,房子看得懂。

家的下面是大数字:总积分、今天涨了多少、涨了百分之几、折合多少钱, 以及一个「历史新高」的标记 —— 破了自己的记录就会亮出来。

再往下是三十天的走势。这条线是这套东西真正起作用的地方:单看今天加了 10 分没什么感觉, 看见这条线从月初一路爬到现在,感觉完全不一样。 点一下总市值还能重放一遍:

动图:点一下总市值,数字从 0 滚到现在,走势线一笔画出
点一下总市值就重放「从 0 涨到现在」:数字滚上去,三十天的线一笔画出来。

再往下按学科拆开,语文挣了多少、体育挣了多少一目了然。哪一栏一直是矮的,不用说他自己也看得见。

二、一次完整的加分是怎么走的

分不是随手给的,是照着一张表给的。家里本来就有一张《积分条例》, 语文数学英语科学体育小号道法劳动一直到「爸爸特别奖励」,奖分扣分都写着。 我把那张表整个搬进了系统 —— 83 条规则,一条不改,一条不漏。

家长面板锁着的样子:要密码才能加分
「给他加分」打开的第一眼:规则能看,加不了,要先输家长密码。

打开「给他加分」,第一眼是锁着的。规则能看,加不了 —— 要先输家长密码。

解锁后的规则墙:按学科分组,奖分扣分并列
解锁后的规则墙:按学科分组,奖分扣分并列,每条一个按钮。

解锁之后整面墙铺开。每条规则一个按钮,点一下就记上。 按钮上那些小标签是这条规则怎么算的:

标签什么意思例子
(无)固定分,点一下就记听写全对一次 +10
按个数你填个数,按个算听写错字 −1/个
自己填表里给了区间,你在区间里定诗歌小古文背诵 10~50
算一下有档位,填完自动算跳绳、仰卧起坐、考试
换时间换的不是分,是看电视的时间认识生字 +1 分钟/2 个字

「算一下」这类最能说明问题。原表里跳绳写着七个档位,末尾一句「不重复累计」:

跳绳计算器:填 3 组、每分钟 190 个,服务端算出 +120
跳绳计算器:填完组数和个数,自动命中档位,并告诉你为什么是这个数。

填「跳了 3 组、每分钟 190 个」,它自己算出 +120 分, 并且告诉你为什么是 120 —— 「3 组 190 个以上」这一档。 不用去翻表,也不用担心把 180 那一档和 190 那一档记混。

落账那一下是这样的 —— 彩带满屏、加分飘字、余额当场更新:

动图:加分落账——彩带撒下来,+100 飘上去,余额当场更新
「参加演出一次 +100」落账:彩带、飘字、余额跳到 1,540 —— 全是页面自己的动画,真请求真到账。

三、这本账,防刷分也防赖账

一个能自己给自己加分的积分系统,第二天就会变成刷分游戏。所以这几条是硬的:

会发生的事它怎么处理
孩子拿到已登录的平板,自己加分加分要家长密码,而且每次现输。孩子这边登录多久都加不了一分
分不够还想换东西换不了,卡片上写着「还差 N 分」
靠刷题无限挣分做题挣的分服务端每天封顶 30,前端报多少都不算数
一道题不做直接交卷不给分
记错了、点错了每条流水后面有「撤销」—— 那笔直接删掉,分数回去,曲线上不留痕迹(后台留底,家长查得到)
扣分扣成负数允许,欠着下次挣回来 —— 表里的扣分条款就是这么定的

撤销这条,我们改过一次主意。一开始做的是会计那套「红冲」:撤销不删记录, 反向再记一笔冲掉。上线一用就发现不对 —— 记错的那笔和它的红冲会在孩子的走势线上 凿出一对毛刺,像他真的大起大落过一样。现在撤销就是真删(后台 deleted 区留底): 审计的痕迹留给家长,干净的曲线留给孩子。

反过来,每一分是怎么来的,也都查得到:

全部流水:时间、事由、分数、当时余额,每笔可撤销
全部流水:每一笔的时间、事由、分数、当时余额,每笔都能撤销。

每一笔都有时间、有事由、有当时的余额。不是「你有 1440 分」, 是「8 月 8 号爸爸特别奖励 +300,余额从 1080 变成 1380」。

余额这一列不是单独存的一个数字,是从流水一笔一笔加出来的。 所以账本和余额永远不可能对不上 —— 对不上的账本比没有账本更糟。 上面还能筛「只看加分」「只看花掉的」,想知道这个月钱都花哪儿去了,一点就出来。

四、快到手的那一件,一直摆在眼前

兑换商店:12 件,买得起的亮着,买不起的写着还差多少
兑换商店:150 分的动画片到 20000 分的短途旅行,买不起的写着还差多少。

商店里 12 件东西,从 150 分的「多看一集动画」到 20000 分的「一次短途旅行」。 买得起的亮着,买不起的灰着 —— 但灰的那些写着还差多少分

图里这个状态是我特意摆出来的,因为它是这套东西最有效的一屏: 「满足一个心愿」1500 分,还差 60 分。

60 分是什么概念?听写全对一次 +10,洗全家碗筷 +10,晨跑半小时 +20。 也就是说今天再做几件事就够了。这比「继续加油」有用得多。

真换到手那一下,也要风光 —— 祝贺横幅加彩带。攒了几个星期换来的东西, 兑现的瞬间就该像个仪式,而不是账本上冷冰冰扣一笔:

动图:兑换成功——祝贺横幅 + 彩带 + 余额更新
换「一个冰淇淋」:确认 → 「🎉 换到手」祝贺横幅 + 彩带 → 还剩 1,240 分。只庆不罚 —— 花掉的数字自己会掉,不用再教训一遍。

五、研究和成熟 App,都指向同一件事

攒分换奖励不是我发明的,它在心理学里有个正式名字,叫代币制 —— 先给一个能攒的中间物(分数、贴纸、筹码),攒够了换真正想要的东西。 1968 年两位行为心理学家 Ayllon 和 Azrin 把它做成第一套完整系统并写成了书 (The Token Economy), 之后半个多世纪,它一直是教育研究里被反复测量的对象。

它到底管不管用,是有数的。研究里衡量「管不管用」的尺子叫效果量 —— 0.2 算小,0.5 算中,0.8 以上算大:

几项关键研究量出的效果量:代币制 0.82,游戏化 0.25~0.49,预期物质奖励对已有兴趣 −0.34
绿的是它管用的证据,红的是它最有名的坑。数字出处见下文链接。
  • 汇总 28 项小学课堂研究(1980–2014)的元分析算出平均效果量 0.82 —— 到了「大」这一档; 而且 6–15 岁的孩子比 3–5 岁效果更好,正好覆盖小学 (Soares 等,School Psychology Review,2016)。
  • 另一篇汇总 2000–2019 年 24 项研究的综述结论一样: 普通班和特教班都是大效果。
  • 范围再放宽到游戏化(把分数、勋章、关卡这些游戏零件搬进学习): Sailer 和 Homner 2020 年的元分析给出的数是 —— 对成绩 0.49、对动机 0.36、对行为 0.25。有用,但没到魔法的程度。
  • 规模上的旁证:美国 95% 的 K-8 学校在用 ClassDojo —— 它本质就是老师手里的加分器。

丑话说两句:课堂那几篇是小样本研究攒出来的(28 项研究合计才 90 个孩子), 数字别当精确值看,方向一致才是重点。而且 Sailer 那篇特意指出: 光发分数和勋章,效果最弱;配上清晰的目标和够得着的挑战才强。 这正是「资产盘面 + 走势线 + 还差多少」想比「一张分数表」多做到的那部分。

但这套东西有一个研究得同样充分的坑:奖励会把本来就有的兴趣弄没。 1973 年斯坦福那个著名的幼儿园实验 (Lepper、Greene 和 Nisbett): 本来就爱画画的孩子,提前告诉他「画了有奖状」, 拿完奖之后自由活动时间里画画的时间掉了差不多一半 —— 奖励把「我想画」偷换成了「我为奖状画」。

1999 年 128 项实验的元分析 (Deci、Koestner 和 Ryan,Psychological Bulletin)确认了这件事, 也把边界画清楚了:侵蚀发生在本来就有兴趣的事上; 对本来就不爱干的事(订正作业、收拾书桌、每天跳绳),没有兴趣可供侵蚀; 口头表扬不但不侵蚀,还略有增益。

对着这条边界看这张规则表:分的大头落在习惯和任务上; 「得赞 / 被表扬」这类条目,记的是表扬这件事本身,分数只是把它记下来。 汇率压到 100 分 = 1 元也有这层考虑 —— 钱味越淡,分数越像「你做到了」的记号,越不像工钱。

产品这边我也翻了翻把「让人天天来」做到极致的那几个,挑两个最值得抄的。 多邻国把「连续打卡」做成了公司级的核心功能,官方博客给过数: 连续学满 7 天的用户,完成整门课程的概率是别人的 3.6 倍; 光是给连击数字加一段庆祝动画,新用户 7 天后还在用的比例就多了 1.7%。 它的心法就一句:让进度看得见,让人舍不得断。 ClassDojo 的心法则是当场加分:行为发生的那一刻老师手机上点一下, 孩子立刻看到,家长同步看到 —— 反馈隔得越久越没用。

它们的做法搬进这套系统的样子
多邻国:连击数字 + 里程碑庆祝走势线 + 「历史新高」标记;配套的练习站里有连续天数打卡
多邻国:每日任务永远写着「还差 N 题」商店卡片写着「还差 60 分」,够得着的目标一直摆在眼前
多邻国:断签可以用道具续上没抄。 扣分就是扣分,账本不粉饰 —— 但欠着可以挣回来
ClassDojo:当场加分,家长同步规则墙一点就记上,全家看同一份流水
两家都有:虚拟货币 + 兑换商店三种币(积分 / 电视时间 / 心愿),走同一条流水线

也有明确不抄的:多邻国的排行榜没有搬 —— 家里就一个孩子, 他要比的对象是上个月的自己,那条走势线就是他的排行榜。

六、想用的话,以及给同行的几句

这套东西跑在我自己的服务器上,这篇不放地址 —— 里面是一个具体的小孩的账本、他的错题和他的试卷。 前阵子刚把它改成了多账号:每人一本独立的账,做题进度也跟着账号走,换设备不丢。 想试的话跟我说,可以给你开一个账号,也可以帮你搭一份完全自己的 —— 一张你家自己的规则表,一个你自己的账本,数据在你自己手里。 我这份是从家里现成的 Excel 一条条搬进去的。

现在有什么。口径:下面数的是规则表和商店的条目数, 不含系统自带的机制(做题积分、每日上限、撤销这些不算规则),也不含练习平台那边的题库:

数量说明
规则83 条全部来自家里那张表,逐条搬进来的
覆盖学科9 门语文 28 · 数学 13 · 劳动 10 · 英语 9 · 体育 8 · 道法品德 7 · 小号 4 · 日常 3 · 爸爸特别奖励 1
其中扣分条款23 条奖分扣分并列,不是只报喜
规则形态5 种固定分 49 · 家长填区间 17 · 按个数 9 · 档位计算器 5 · 换电视时间 3
档位计算器5 个跳绳 · 仰卧起坐 · 语文考试 · 比上次进步 · 作文字数
兑换商品12 件150 分(多看一集动画)到 20000 分(一次短途旅行)
货币3 种积分 · 电视时间 · 心愿,走同一条时间线
汇率100 分 = 1 元表里原写 10:1,按表里的分值估下来约 1700 分/月,那就是 170 元/月,判定偏高,压了十倍

还空着的:规则表里「科学」这一栏一条规则都没有 —— 家里那张表就没写。 首页那张卡会一直显示 0,等补。

给同行的几句。零第三方依赖:服务端是一个 Python 标准库写的 HTTP 服务, 静态文件和接口都归它发,数据是一个 JSON 账本文件,整套东西一条 pip install 都没有。 几条自己觉得值得说的约束:

  • 登录门在应用层,不在 nginx。auth_request 的话,登录门在本地根本测不到,等于没有门。 现在本地起一份就能跑同一条路径,冒烟测的是真的那道门。
  • 家长密码不发 cookie。 这是有意的:能自己给自己加分的积分系统当场失效。
  • 分值一律服务端算,页面预览和真正记账是同一个函数。 两边各算各的, 迟早算出不同的数,而家长看到的是预览、孩子拿到的是记账。
  • 档位表达式用 ast 白名单求值,绝不用 eval 表达式来自配置文件 —— eval 等于把任意代码执行权交出去。
  • 余额永远从流水现算,不单独存一个数。 单独存的 balance 字段迟早和流水漂移。 撤销是真删 + deleted 区留底 —— 对账能力给家长,零痕迹的曲线给孩子。
  • 每个分值都能在原表里指出出处。 原表没给的(比如「其他酌情加分」没给数), 必须在那条规则上标明「这个值是我们定的」—— 有一道机器门盯着,标不出来就红。

关于这些图

全部是真页面跑真操作截下来的,不是画的示意图:起一个真的服务端、真的登录、 真的点解锁和点规则。图里的账本是造出来的演示数据,一个字节真实账本都没有: 服务端跑在临时目录里,跑完就没;规则和商品全从产品自己的配置现取,取不到就报错退出,不编。 唯一一张画出来的图是第五节那张研究数据图,数字逐个对过原文。

订阅

新文章都先发在这里。用 RSS 订阅: /feed.xml

作者

曾田力

水利工程师。在这里写 AI 方法论、投资日复盘和工程实践。

这篇写错了、写漏了,或者你有别的想法?