时之砂 · 交易类公式独立交付(A 模型 + B 模型 + 积分价值反算)
版本:v1.5
日期:2026-05-05
Owner:Lawrence
交付对象:研发评审 / 精算(Winn)/ 商城(V2)/ 财务
1. 文档定位
1.1 文档范围
本文档仅收录与"用户交易"直接相关的公式与汇率方法:
- A 模型 — 交易触发的积分产生公式
- B 模型 v3.3 — 交易触发的体验金返还公式
- 积分价值反算 — 1 积分 ↔ 1 USD 的换算方法与 V1 内部参考汇率
KYC 种子、邀请奖励、赛季继承、监控告警、后台调权等非交易触发的公式见主精算 Brief v3.0;本文档不重复。
1.2 与主精算 Brief 的关系
| 文档 | 范围 | 定位 |
|---|---|---|
| 《时之砂_精算 Brief_Winn_v3.0》 | 全 V1 经济模型(19 个公式) | 精算视角 single source of truth |
| 《时之砂_公式与参数清单_v1.5》 | 全 V1 公式清单 | 业务侧 single source of truth |
| 本文档 v1.0 | 仅交易类公式 + 积分价值反算 | 研发 / 商城 / 财务的轻量交付 |
本文档中的公式定义与 v3.0 §1 / §2 严格一致。任何冲突以 v3.0 为准。
1.3 公式呈现规范
每个公式按三阶段递进呈现:
| 阶段 | 形式 | 用途 |
|---|---|---|
| ① 构成公式 | 变量级抽象表达 | 业务方理解逻辑骨架 |
| ② 中文具体公式 | 中文术语 + 完整算式 | PM / 运营 / 商务 沟通 |
| ③ 英文具体公式 | 编程符号 + 完整算式 | 研发评审与实施 |
所有计算精度统一为 DECIMAL(20, 4)(4 位小数 Decimal,防浮点误差,见《时之砂_积分精度规范_v1.0》)。
1.4 术语对照
| 中文术语 | 英文符号 | 含义 |
|---|---|---|
| 交易量 | trade_volume_usd | 该仓名义价值(USD 计价)= 开仓价 × 数量。永续合约 / CFD 统一口径;A 模型用此字段,详见 §1.5 |
| 手续费 | fee_usd | 该仓实际手续费或等效手续费(USD 计价)。永续合约:按 maker/taker 费率 × 名义价值的实际手续费;CFD:点差(spread)× cfd_spread_ratio 折算的等效手续费;B 模型用此字段;详见 §1.5 |
| 损益 | pnl | 该仓已实现损益(USD,盈利正 / 亏损负) |
| 客损绝对值 | loss_abs | max(0, -pnl),仅取亏损部分 |
| 占用保证金 | margin_used | 该仓占用保证金(USD) |
| 持仓时长 | t_holding | 该仓持仓时长 |
| 积分余额 | p_balance | 用户当前积分余额(时之砂数量) |
| 段位 | tier | 1 尘土 / 2 细沙 / 3 流沙 / 4 金沙 / 5 琥珀 / 6 紫晶 / 7 钻晶 / 8 永恒 |
| 90 天净盈亏 | net_pnl_90d | 用户最近 90 天滚动已平仓累计净 PnL |
| 90 天累计手续费 | total_fee_90d | 用户最近 90 天滚动累计手续费 |
| 历史战绩比 | history_ratio | net_pnl_90d / total_fee_90d |
| 损益强度 | loss_pct | loss_abs / margin_used,该仓亏损占占用保证金比例 |
1.5 产品差异化口径(v1.5 重写 · A 按交易量 / B 按手续费双口径)
Bitunix 平台 V1 期涉及三类交易产品,A 模型与 B 模型在数据口径上分工不同:
1.5.1 A 模型 vs B 模型口径分工(v1.5 关键变化)
| 模型 | 输入字段 | 设计理由 |
|---|---|---|
| A 模型(积分发放) | trade_volume_usd(交易量) | 行为数据——用户做了多少交易就奖励多少积分;与产品类型解耦;CFD 0 点差期仍能拿积分;VIP 跃升后手续费率降低不会让积分变少 |
| B 模型(体验金返还) | fee_usd(手续费) + loss_abs(客损) | 结果数据——体验金返还经济本质是"做市商赚的部分分润给用户",按手续费 + 客损更合理 |
1.5.2 三类产品 trade_volume_usd 与 fee_usd 上报口径
| 产品类型 | trade_volume_usd | fee_usd | 上报责任方 |
|---|---|---|---|
| 永续合约 | 开仓价 × 数量(名义价值) | maker/taker 费率 × 名义价值的实际手续费 | 交易撮合引擎 |
| CFD 交易 | 开仓价 × 数量(同合约口径) | 点差(spread)× cfd_spread_ratio 折算 | CFD 业务侧 |
| 跟单交易 | 跟随主单口径 | 跟随主单口径 | 跟单业务侧 |
A 模型不再依赖
fee_usd,所以 v1.4 引入的cfd_spread_ratio仅在 B 模型范围内发挥作用,不影响 A 模型计算。
1.5.3 关键边界
| 场景 | A 模型行为 | B 模型行为 |
|---|---|---|
永续 fee_usd = 0(理论极少) | 不受影响(按交易量计算) | fee_part = 0,仅 loss_part 触发 |
| CFD 0 点差 promo 期 | 正常发积分(按交易量)✓ | fee_part = 0,仅 loss_part 触发 |
trade_volume_usd < min_trade_volume_for_grant(如 < 100 USD) | A 模型不发积分(零保护) | B 模型不受 min_trade_volume_for_grant 影响 |
| 0 交易量 + 0 客损(理论极少 / 异常单) | 不发积分 | 不发体验金 |
| CFD 0 点差 + 亏损 + 交易量 ≥ 100 USD | 正常发积分 ✓ | 仅 loss_part 触发,有体验金且有积分 |
v1.5 关键变化:CFD 0 点差期用户做交易就能拿积分,跟"用户做了交易必有反馈"的产品哲学一致;v1.4 之前"0 点差期有体验金但无积分"的反直觉行为消除。
1.5.4 工程实现要点
- A 模型计算服务接收
trade_volume_usd,不需要fee_usd - B 模型计算服务仍接收
fee_usd+loss_abs,逻辑保持不变 cfd_spread_ratio由 CFD 业务侧在上报fee_usd前应用(仅影响 B 模型);变更需 PM + 财务 + CFD 业务侧三签- 财务 monthly accrual 对账拆账:A 模型按
source = TRADE_REBATE+ 产品类型标签;B 模型按source = SHIZHISHA_REBATE - 交易引擎上报字段需扩展:原
fee_usd字段不变,新增trade_volume_usd字段(NTP 同步时点为完全平仓时)
1.5.5 待业务对齐的 Open Item
| # | 问题 | 影响 |
|---|---|---|
| 1 | trade_volume_usd 取开仓时点 vs 平仓时点的名义价值?两者在波动行情下差异显著 | 影响 A 模型 grant 数额,需与撮合引擎 + 后端联合签字 |
| 2 | 点差 spread 取开仓时点 vs 平仓时点? | 影响 B 模型 fee_usd,同 v1.4 Open Item |
| 3 | 跟单交易归属规则(主单平仓 vs 跟单平仓时点) | 影响 trigger_at + season_id 归属 |
| 4 | A 模型杠杆放大是否折算?例:100x 杠杆开仓 5 USD 保证金 = 500 USD 名义价值,但用户实际"风险敞口"仅 5 USD | 当前公式按名义价值算;如不符合预期需引入折算系数 |
2. 公式 A — 交易积分产生公式(A 模型)
2.1 构成公式(v1.5 重写 · 按交易量)
v1.5 关键变更:A 模型输入从"手续费 fee_usd"改为"交易量 trade_volume_usd"。理由:①行为数据(交易量)比结果数据(手续费)更准确反映用户活跃;②CFD 0 点差期间用户仍能拿积分;③VIP 跃升后手续费率下降不再让积分变少;④与产品类型解耦(永续 / CFD 都按名义价值);详见 §1.5。
2.2 中文具体公式
2.3 英文具体公式(研发评审版)
2.4 参数解释表
| 参数 | 中文名 | 取值 | 取值依据 / 工程实现要点 |
|---|---|---|---|
trade_volume_usd | 交易量(USD 计价) | 交易引擎传入 | 完全平仓时名义价值 = 开仓价 × 数量;永续 / CFD 同口径;不再使用 fee_usd(A 模型 v1.5 关键变化);详见 §1.5 |
base_coef | 基础系数 | 0.0001 | v1.5 重新校准:每 1 USDT 交易量 = 0.0001 积分,即每 1 万 USDT 交易量 = 1 积分。VIP3 月手续费 500 USD ≈ 月交易量 833K USDT → 月积分 ~156;运营后台可配置(V1-E06 模块 6 + V1-E02 §9.1 a_model_config 表,PM + Winn + 财务三签变更) |
min_trade_volume_for_grant | 最小交易量门槛(防套利) | 100 USD | 交易量 < 100 USD 不发积分(零保护);过滤极小套利仓 + 反作弊 95% 拦截作为第二道防线;合约最小开仓 ~50 USD 名义价值,用户单仓 > 100 USD 是常态,不伤新手体感 |
m_vip | VIP 乘数(8 档) | VIP1=1.0 / VIP2=1.2 / VIP3=1.5 / VIP4=1.8 / VIP5=2.1 / VIP6=2.4 / VIP7=2.7 / VIP8=3.0 | 线性递增 0.3/档,与现有 VIP 体系对齐 |
m_activity | 活跃度乘数(月活天数) | 0-7 天=1.0 / 8-15 天=1.1 / 16-23 天=1.25 / 24-30 天=1.5 | 阶梯式,避免连续假动作 |
m_audience | 人群包系数 | 默认=1.0 / 高价值客群=1.2 / VIP 重点维护=1.3 / 反作弊 SUSPECT=0.7 / BLOCK=0 | 合规允许 ±30%(R06);BLOCK 由 V1-E08 前置拦截 |
m_coldstart | 冷启动乘数 | V1 = 1.0(常规);V2+ EARLY_7DAY_BOOST=2.0 / FIRST_ORDER_BOOST=5.0 | V1 极简化:首单 5x + 7 日 2x 全部 V2+ 候选 |
fee_usd | v1.5 移除 | A 模型不再依赖;B 模型仍消费 fee_usd(含 cfd_spread_ratio 折算),详见 §3 + §1.5 |
2.5 触发与归属规则
| 项 | 取值 |
|---|---|
| 触发事件 | 单仓完全平仓(部分平仓不触发) |
trigger_at | 仓位完全平仓时间(NTP 同步,业务方时钟漂移 < 1 秒) |
| 幂等键 | position_id(按仓位幂等) |
source | TRADE_REBATE |
| 必填字段 | trade_volume_usd(v1.5 新增) + trigger_at + season_id + antisybil_decision |
| 赛季归属 | 按 trigger_at vs season_metadata.end_at 决定 season_id(决策 6 原子快照规则) |
| 反作弊钩子 | grant 必带 antisybil_decision(业务层调风控反作弊后签名传 L1,L1 仅校验签名格式) |
2.6 用户场景计算(A 模型 · v1.5 重算 · 按交易量)
取
m_audience = 1.0(除标注外)、m_coldstart = 1.0(V1 默认)、不含 noise 浮动,便于对照。
本节展示的是 计算精度积分(DECIMAL 4 位)。实际发放整数积分见 §2.7 取整规则。
月交易量按 VIP 平均 taker 费率约 0.06% 反推自旧"月手续费"口径。
| 场景 | 用户画像 | 月交易量 | A 模型月积分 | 算式说明 |
|---|---|---|---|---|
| 2.6.1 新手轻度 | VIP1 / 月活 5 天 | 80,000 USD | 80,000 × 0.0001 × 1.0 × 1.0 × 1.0 × 1.0 = 8.0 积分 | 比 v1.4 4.0 略友好;新手低活跃单纯交易激励 |
| 2.6.2 中度活跃 | VIP3 / 月活 20 天 | 800,000 USD | 800,000 × 0.0001 × 1.5 × 1.25 × 1.0 × 1.0 = 150 积分 | 一年 ~1,800 积分,约 2 年到流沙 |
| 2.6.3 高度活跃 | VIP6 / 月活 28 天 / 高价值 | 5,000,000 USD | 5,000,000 × 0.0001 × 2.4 × 1.5 × 1.2 × 1.0 = 2,160 积分 | 一年 ~26,000 积分,1 年内触琥珀 |
| 2.6.4 永恒鲸鱼 | VIP8 / 月活 30 天 / 高价值 | 17,000,000 USD | 17,000,000 × 0.0001 × 3.0 × 1.5 × 1.2 × 1.0 = 9,180 积分 | 一年 ~110K 积分,约 2.7 年触永恒 300K(匹配"3-5 年达成"目标) |
单仓粒度示例(典型单仓名义价值):
| 场景 | 单仓交易量 | 用户画像 | A 模型积分增量 |
|---|---|---|---|
| 防套利门槛触发(< 100 USD) | 50 USD | VIP1 默认 | min_trade_volume_for_grant 拦截 → 0 积分(不发) |
| 新手小仓 | 500 USD | VIP1 / 月活 5 天 / 默认 | 500 × 0.0001 × 1.0 × 1.0 × 1.0 × 1.0 = 0.05 积分(ceil 后实发 1) |
| 中度单仓 | 5,000 USD | VIP3 / 月活 20 天 / 默认 | 5,000 × 0.0001 × 1.5 × 1.25 × 1.0 × 1.0 = 0.94 积分(ceil 后实发 1) |
| 高度单仓 | 30,000 USD | VIP6 / 月活 28 天 / 高价值 | 30,000 × 0.0001 × 2.4 × 1.5 × 1.2 × 1.0 = 12.96 积分(ceil 后实发 13) |
| 永恒单仓 | 100,000 USD | VIP8 / 月活 30 天 / VIP 重点 | 100,000 × 0.0001 × 3.0 × 1.5 × 1.3 × 1.0 = 58.5 积分(ceil 后实发 59) |
| CFD 0 点差 promo 期 | 5,000 USD(CFD) | VIP3 / 月活 20 天 / 默认 | 5,000 × 0.0001 × 1.5 × 1.25 × 1.0 × 1.0 = 0.94 积分(ceil 后实发 1)— 不再因 0 fee 失分 ✓ |
2.7 整数取整规则与防套利硬约束(v1.5 重写 · ceil + 交易量门槛 + 零保护)
2.7.1 前提与问题
前提:用户视角积分只展示整数(不展示小数)。
核心约束(v1.5 升级):
- 小仓位用户友好度:用户做了交易必须有 ≥ 1 积分的可见反馈;不能出现"做了 0 积分"的扭曲体感
- 套利护城河:哪怕用户故意做交易量极小的微型仓刷分,单仓套利 ROI 必须 ≤ -90%
- 工程极简:ceil 取整算法在数据库层面无状态
- CFD 0 点差 / 0 fee 不再影响积分(v1.5 按交易量后自然消除)
v1.5 vs v1.2 方向调整:v1.2 防套利靠
max_points_per_fee_ratio(每 fee 最多 X 积分)。v1.5 A 模型不再用 fee,改用trade_volume_usd,防套利改为min_trade_volume_for_grant(最小交易量门槛,低于不发)+ 反作弊钩子双层护城河。
2.7.2 取整规则(ceil + 交易量门槛 + 零保护)
门槛拦截 · 防微型套利] GATE -- 否 --> Step2[Step 2: raw_points = trade_volume × 0.0001 × 综合乘数] Step2 --> CHK{"raw_points <= 0?"} CHK -- 是 --> NOOP2[grant = 0 · 不写流水
零保护 · 反作弊 BLOCK / 异常 volume] CHK -- 否 --> CEIL[Step 4: ceil(raw_points) · L1 grant 写流水] NOOP1 --> DONE[结束] NOOP2 --> DONE CEIL --> DONE
Step 1: 最小交易量门槛(防套利第一道闸)
if trade_volume_usd < min_trade_volume_for_grant:
grant = 0
不写流水(小于 100 USD 交易量的微型套利仓直接拦截)
return
Step 2: 计算原始积分
raw_points = trade_volume_usd × base_coef
× m_vip × m_activity × m_audience × m_coldstart
Step 3: 零保护判定
if raw_points <= 0:
grant = 0
不写流水(反作弊 BLOCK 即 m_audience = 0 / 异常 trade_volume 等场景自然过滤)
return
Step 4: 向上取整 + 写流水
grant = ceil(raw_points)
L1 grant(amount = grant, source = TRADE_REBATE,
trade_volume_usd = ..., trigger_at = ..., season_id = ..., antisybil_decision = ...)
算法无状态;幂等键沿用
position_id。
2.7.3 参数取值
| 参数 | 含义 | PM 初值 | 推算依据 |
|---|---|---|---|
min_trade_volume_for_grant | 最小交易量门槛(防套利硬约束) | 100 USD | 套利 ROI 含反作弊 95% 拦截后 ~0.15%(远低于做单成本);合约最小开仓 ~50 USD 名义价值,用户单仓 > 100 USD 是常态,不伤新手体感;CFD 微型仓 < 100 USD 点差成本占比过高不会做 |
min_grant_threshold | 起发阈值(积分量级) | 0 | 任何 raw_points > 0 都向上取整到至少 1;零保护已足够 |
max_points_per_fee_ratio | v1.5 移除 | A 模型不再用 fee;改为 min_trade_volume_for_grant 替代防套利 |
2.7.4 防套利护城河(v1.5 重新论证 · 基于 1 积分 = 0.0015 USD)
v1.5 护城河变化:v1.2 靠"低汇率 + max_points_per_fee_ratio";v1.5 靠"低汇率 + min_trade_volume_for_grant + 反作弊"。本质护城河更厚——交易量门槛是绝对硬约束,根本进不来。
最坏情形:用户开最小交易量仓位(刚过门槛)刷分套利
| 套利场景 | trade_volume_usd | 实际成本(点差+滑点) | raw_points(VIP8 满档) | ceil 实发 | 单仓积分价值 | ROI |
|---|---|---|---|---|---|---|
| 门槛下小仓 | 50 USD | ~0.025 USD | 0.029 | 0(门槛拦截) | 0 USD | -100% 不发 |
| 刚过门槛 | 100 USD | ~0.05 USD | 0.059 | 1 积分 | 0.0015 USD | -97% |
| 普通新手单仓 | 500 USD | ~0.25 USD | 0.292 | 1 积分 | 0.0015 USD | -99.4% |
| 中度单仓 | 5,000 USD | ~2.5 USD | 2.93 | 3 积分 | 0.0045 USD | -99.8% |
| 永恒单仓 | 100,000 USD | ~50 USD | 58.5 | 59 积分 | 0.089 USD | -99.8% |
护城河厚度(含反作弊冗余):
- 单仓套利 ROI ≤ -97%(最坏情形)
- 反作弊 95% 拦截 → 漏网攻击期望 ROI ≤ -97% × 5% = -99.85%
- 加上时间 / 机器人 / 滑点 / 市场风险,理性攻击者绝对不划算
汇率灰度安全边际:
- 当前汇率 0.0015 USD/积分 → 最坏 ROI -97%
- 汇率上调到 0.05 USD/积分(V2 商城)→ ROI 仍 -10% 量级
- 汇率破 5 USD/积分(理论临界)才有套利空间—— 比 V2 商城 SKU 定价高 ~3000 倍,业务上不可能
v1.5 护城河比 v1.2 厚 ~10 倍,主要靠
min_trade_volume_for_grant把微型仓套利路径直接堵死。
2.7.5 单仓体感示例(ceil 后用户实际拿到的积分)
本节以中位场景示意。所有"实发积分"是用户在 APP 上一笔交易完成后立即看到的数字。
新手 VIP1 / 月活 5 天 / 默认人群(综合乘数 = 0.0001 × 1.0 × 1.0 × 1.0 × 1.0 = 0.0001)
| 单仓交易量 | raw_points | 门槛拦截? | ceil 实发 | 体感 |
|---|---|---|---|---|
| 50 USD | 0.005 | 是(< 100 USD) | 0 积分 | 不发,避免微型套利 |
| 100 USD | 0.010 | 否 | 1 积分 | 起步保底 |
| 500 USD | 0.050 | 否 | 1 积分 | "做了就有" |
| 5,000 USD | 0.500 | 否 | 1 积分 | — |
| 50,000 USD | 5.00 | 否 | 5 积分 | 大单回报匹配 |
中度 VIP3 / 月活 20 天 / 默认人群(综合乘数 = 0.0001 × 1.5 × 1.25 = 0.000188)
| 单仓交易量 | raw_points | ceil 实发 |
|---|---|---|
| 100 USD | 0.019 | 1 积分 |
| 1,000 USD | 0.188 | 1 积分 |
| 10,000 USD | 1.88 | 2 积分 |
| 100,000 USD | 18.8 | 19 积分 |
永恒 VIP8 / 月活 30 天 / VIP 重点维护(综合乘数 = 0.0001 × 3.0 × 1.5 × 1.3 = 0.000585)
| 单仓交易量 | raw_points | ceil 实发 |
|---|---|---|
| 100 USD | 0.0585 | 1 积分 |
| 10,000 USD | 5.85 | 6 积分 |
| 100,000 USD | 58.5 | 59 积分 |
| 1,000,000 USD(极端大单) | 585 | 585 积分 |
与 v1.2 对比:v1.5 没有 max_points_per_fee_ratio 硬上限了,因为按交易量算积分本来就不会爆——交易量越大积分越多是合理设计。
2.7.6 §2.6 各场景的实际发放整数对照
| 场景 | 用户画像 | 单仓交易量 | raw_points 计算精度 | ceil 实发整数 |
|---|---|---|---|---|
| 防套利门槛 | 任意画像 | < 100 USD | 任意 | 0(门槛拦截) |
| 新手 | VIP1 / 月活 5 天 / 默认 | 500 USD | 0.05 | 1 |
| 中度 | VIP3 / 月活 20 天 / 默认 | 5,000 USD | 0.94 | 1 |
| 高度 | VIP6 / 月活 28 天 / 高价值 | 30,000 USD | 12.96 | 13 |
| 永恒 | VIP8 / 月活 30 天 / VIP 重点 | 100,000 USD | 58.5 | 59 |
| CFD 0 点差期 | VIP3 / 月活 20 天 / 默认 | 5,000 USD (CFD) | 0.94 | 1 ✓ |
v1.5 关键改进:CFD 0 点差期用户正常发积分,与永续合约用户一视同仁。
2.7.7 月度发放总量与财务 accrual 缓冲
ceil 取整长期多发的量级估算(按 100K MAU 平台规模,v1.5 重算):
| 用户分群 | 占比 | 月真实计算积分 | 月 ceil 实发积分 | 多发率 | 多发 USD 等值(1 积分 = 0.0015 USD) |
|---|---|---|---|---|---|
| 轻度 VIP1-2 | 70K 用户 | 8 / 人 / 月 | ~25 / 人 / 月 | +210% | 0.026 USD / 人 / 月 |
| 中度 VIP3-5 | 25K 用户 | 150 / 人 / 月 | ~200 / 人 / 月 | +33% | 0.075 USD / 人 / 月 |
| 重度 VIP6-8 | 5K 用户 | 4,000 / 人 / 月 | ~4,300 / 人 / 月 | +7.5% | 0.45 USD / 人 / 月 |
| 合计 | 100K MAU | — | — | — | ~6K USD / 月 ≈ 72K USD / 年 |
⚠️ 轻度用户多发率高(+210%)是因为单仓积分常 < 1 全部 ceil 到 1。但总量级仍然很小(年成本 < 2K USD),可接受。
v1.5 总多发成本比 v1.2 低 25 倍(v1.2 是 1.8M USD/年 vs v1.5 是 72K USD/年),原因:base_coef 按交易量校准后,重度用户的"多发率"显著下降。
财务 accrual 要点:
- 月度 monthly accrual 按 ceil 实发积分总量 × 内部参考汇率 × 兑换率 0.8 计提
- 多发量自然反映在 accrual 中,不需要单独"准备金"
- §13 异常发放阈值 / §16 季度预算 按 ceil 实发量监控
2.7.8 数据模型与工程实现要点
v1.2 移除 v1.1 引入的尾差账本表(user_points_fraction_ledger)。
ceil 算法无状态:
- A 模型 grant 计算时只读取本仓输入(fee / vip / activity / audience / coldstart)
- 不需要查询任何用户级历史状态
- L1 grant 调用与现有接口一致(不需要新增字段)
- 幂等键沿用
position_id - 单点写入,不需要跨表事务
对 V1-E01 / V1-E02 的影响:
- V1-E01 §9 数据模型:不需要新增
user_points_fraction_ledger表 - V1-E02 §4.2 取整步骤:从 6 步简化为 4 步(见 §2.7.2)
B 模型不受影响:B 模型输出 USD 等值体验金(最小单位 cent),非积分整数,沿用 DECIMAL(20, 4) 精度,不需要取整规则。
2.7.9 用户体感与对客说明
| 维度 | 说明 |
|---|---|
| 用户看到的积分余额 | 整数累计(ceil 实发值之和) |
| 用户看到的单仓积分增量 | 整数(几乎所有单仓都有 ≥ 1 积分反馈) |
| 对客文案(首页 / 流水) | "本次交易获得 X 时之砂" — 直观 |
| 对客文案(产品规则页) | "每笔交易至少获得 1 时之砂;具体数量与手续费、VIP 等级、活跃度相关" |
| 客服 FAQ | 不需要"为什么显示 0 积分"的解释了 ✓ |
用户体感跃升:从 v1.1 的"做了 0 积分要解释" → v1.2 的"做了就有 1 积分起步",对私域代理获客 / KOL 社群裂变场景尤其重要。
2.7.10 实施 PRD
- V1-E02 §4.2 A 模型计算:取整逻辑按本节 §2.7.2 4 步实施
- V1-E01 §9 数据模型:不新增
user_points_fraction_ledger表(v1.1 计划已废止) - V1-E04 段位计算:使用实发整数积分余额(与 v1.1 一致)
- V1-E06 后台调权:作用于整数余额(与 v1.1 一致)
- V1-E04 / V1-E05 对客文案:按 §2.7.9 表述
3. 公式 B — 交易返回体验金公式(B 模型 v3.3)
3.1 构成公式(v1.3 简化 · 砍掉 m_balance)
v1.3 重要变更:v1.2 公式中的"积分余额乘数 m_balance"已砍掉。原因:段位本身就由积分余额决定(§4 段位 8 档阈值),m_balance 与 m_tier 高度共线(Pearson > 0.95);m_balance 的连续平滑奖励在 ceil 取整后用户视角不可感知,而段位心智(沙漏视觉 + 跨段位推送)是产品哲学核心,应让 m_tier 独自承担"积分越多越值"的放大职责。m_tier 8 档数值已重新校准(见 §3.4)。
结构语义:
- 手续费部分(fee_part)— 所有仓位都拿,"持续交易激励"
- 客损部分(loss_part)— 只在亏损单触发;用户长期战绩 + 损益强度独立放大
- 全局硬上限 — 哪怕所有参数最佳,最终发放永远不超过 (手续费 + 客损绝对值) × 20%
3.2 中文具体公式
3.3 英文具体公式(研发评审版)
3.4 完整参数解释表
| 参数 | 中文名 | 取值 | 取值依据 / 工程实现要点 |
|---|---|---|---|
fee_usd | 手续费 | 交易引擎传入 | 同 A 模型 |
loss_abs | 客损绝对值 | max(0, -pnl) | 仅取亏损部分;盈利或持平时 = 0 |
fee_floor | 手续费保底系数 | 0.05 | 盈利单按 fee × 5% 兜底,保住"持续交易激励"心智 |
loss_share | 客损分润系数 | 0.04 | 用户每亏 1 USD,base 维度分 4 cent 给体验金;中位场景 × 综合乘数 ≈ 12-15%,capping 在 20% |
global_cap_ratio | 全局硬上限比例 | 0.20 | 死约束:哪怕所有参数最佳,发放 ≤ (fee + loss_abs) × 20%;做市商每仓净留 ≥ 80% |
m_balance(p_balance) | v1.3 砍掉 | 与 m_tier 高度共线(Pearson > 0.95);ceil 取整后用户不可感知;放大职责合并到 m_tier | |
m_tier(tier) | 段位乘数(v1.5 段位外显 = 技能等级) | LV1 尘土 1.00 / LV2 细沙 1.20 / LV3 流沙 1.45 / LV4 金沙 1.75 / LV5 琥珀 2.15 / LV6 紫晶 2.65 / LV7 钻晶 3.30 / LV8 永恒 4.20 | 跨段位跳变 20-27%(递增);v1.5 起段位外显("技能等级 + 中文段位名"双显),但进度阈值不公示(防反算);具体加成倍数也不公示,跨段位时模糊告知"积分更值钱,体验金返还会有正向影响",详见 §3.10 段位外显与升级叙事 |
m_holding(t_holding) | 持仓时长乘数 | <1min 0.5 / 1-10min 0.8 / 10-60min 1.0 / 1-24h 1.2 / >24h 1.5 | 短仓压制刷量,长仓奖励持有 |
m_audience | 人群包系数 | 默认 1.0 / 高价值 1.2 / VIP 重点 1.3 / SUSPECT 0.7 / BLOCK 0 | 同 A 模型,合规允许 ±30% |
m_history | 历史画像乘数 | 5 档:重盈 0.70 / 轻盈 0.85 / 平衡 1.00 / 轻亏 1.15 / 重亏 1.30 | 仅作用于 loss_part;判定逻辑见 §3.5 |
m_loss_pct | 损益强度乘数 | 4 档:0-20% 1.00 / 20-50% 1.10 / 50-80% 1.20 / >80% 1.30 | 仅作用于 loss_part;判定逻辑见 §3.6 |
noise | 防反算随机扰动 | 均匀分布 ∈ [-0.05, +0.05](V1 ±5%) | 灰度后视反算难度可调到 ±10% |
3.5 历史画像乘数 m_history 判定逻辑
3.5.1 为什么不用"胜率"作为判定变量
胜率(盈利单数 / 总单数)有三个致命问题:
| 问题 | 真实场景 | 用胜率判定的错误 |
|---|---|---|
| 盈亏比掩盖 | 用户 2 笔:盈 5 + 亏 100 | 胜率 50% 判"平衡",实际是 -95 USD 亏损 |
| 大样本下盈亏比失真 | 1000 笔,胜率 55%,单笔均盈 1 + 均亏 -3 | 胜率"健康"但总净亏 -1100 USD |
| 高赔率玩家被误判 | 100 笔,胜率 30%,单笔均盈 50 + 均亏 -5 | 胜率"差"但总净盈 +1150 USD |
胜率维度无法表达"用户每出 1 USD 手续费最终赚 / 亏多少"——这才是经济意义上的"长期战绩"。
3.5.2 历史战绩比定义
直观语义:"用户每出 1 USD 手续费,最终净赚/净亏多少 USD"。
3.5.3 五档判定区间
| 用户画像 | history_ratio 区间 | 含义 | m_history |
|---|---|---|---|
| 重度盈利(赢家) | > +1.0 | 每出 1 USD 手续费净赚 > 1 USD | 0.70 |
| 轻度盈利 | (+0.2, +1.0] | 略有盈利 | 0.85 |
| 大致平衡 | [-0.2, +0.2] | 中位散户基线(约 70% 用户在此档) | 1.00 |
| 轻度亏损 | [-1.0, -0.2) | 略有亏损 | 1.15 |
| 重度亏损 | < -1.0 | 每出 1 USD 手续费净亏 > 1 USD | 1.30 |
3.5.4 边界处理(覆盖所有特殊样本)
| 情形 | 判定逻辑 | m_history 结果 |
|---|---|---|
| 90 天 0 笔交易(无历史) | 数据不足,强制默认 | 1.00 |
| 90 天 < 30 笔交易(小样本,含 1-2 笔) | 不参与画像判定,强制默认 | 1.00 |
| 90 天 ≥ 30 笔,但 total_fee_90d 异常为 0 | 工程兜底:分母用 max(total_fee_90d, 1.0) 避免除零 | 按 ratio 取档 |
| 90 天 1000 笔,胜率 55% 但净盈亏负 | ratio < 0 → 进亏损档 | 1.15 或 1.30 |
| 90 天 500 笔,胜率 30% 但净盈亏正 | ratio > 0 → 进盈利档 | 0.85 或 0.70 |
| 90 天 50 笔,全部小赚 + 1 次大亏 → net 平 | ratio ≈ 0 → 平衡档 | 1.00 |
| 90 天 30 笔刚跨门槛 + 严重亏损 | 跨过样本门槛 → 按 ratio 取档 | 1.30(若 ratio < -1.0) |
样本门槛 30 笔的依据:行业惯用窗口(参考 Bybit / Bitget 跟单交易统计);小于 30 笔时单笔波动占比过大,画像不稳定,强制按"中位"处理。
3.5.5 数据更新时机
| 项 | 取值 |
|---|---|
| 计算窗口 | 滚动 90 天(按 UTC 自然日) |
| 更新频率 | 每日 UTC 03:00 batch 重算 |
| 与日内 grant 关系 | 日内 grant 使用昨日快照值(不实时计算) |
| 接入路径 | V1-E08 反作弊画像旁的 user_trading_profile_90d 快照表 |
| 字段 | user_id / net_pnl_90d / total_fee_90d / trade_count_90d / history_ratio / m_history_bucket / snapshot_at |
3.6 损益强度乘数 m_loss_pct 判定逻辑
3.6.1 损益强度定义
直观语义:"这笔亏损吃掉用户该仓本金的百分之多少"。
3.6.2 四档判定区间
| 损益强度 | loss_pct 区间 | 含义 | m_loss_pct |
|---|---|---|---|
| 盈利 / 持平 | loss_abs = 0 | 无亏损 | 1.00(实际不参与,loss_part = 0) |
| 小回撤 | (0%, 20%] | 用户痛感低 | 1.00 |
| 中度回撤 | (20%, 50%] | "亏的不少"心理 | 1.10 |
| 大幅回撤 | (50%, 80%] | 明显痛感 | 1.20 |
| 接近爆仓 | > 80% | "差点爆仓"强体感 | 1.30 |
3.6.3 边界处理
| 情形 | 处理 |
|---|---|
无杠杆现货交易 margin_used = 0 | 兜底用 loss_abs / fee_usd 估算(极少触发,因合约/CFD 必有保证金) |
| 全仓爆仓 loss_pct > 100% | 强制截断为 100%,取 m_loss_pct = 1.30 |
| 部分平仓的 loss_pct | 按完全平仓时点的累计 loss / 仓位最终占用保证金计算 |
3.7 触发与归属规则
| 项 | 取值 |
|---|---|
| 触发事件 | 单仓完全平仓(部分平仓不触发) |
trigger_at | 仓位完全平仓时间 |
| 幂等键 | position_id(按仓位幂等) |
source | SHIZHISHA_REBATE(体验金流水) |
| 调用关系 | A 模型 grant 成功后并行触发;调本公式计算 final_bonus_usd → 调 V1-E03 体验金写入 |
| 防反算组合拳 | 多变量化(7 项乘数)+ noise + 24h 聚合 + 段位升段话术 + 阈值不公示 |
3.8 用户场景计算(B 模型,10 个覆盖各边界)
所有场景取
noise = 0(中位)以便对照;实际发放有 ±5% 浮动。所有金额单位 USD。
场景 3.8.1 — 新手 KYC 后首单小盈利(边界:新用户 + 盈利单 + 0 笔历史)
新手盈利单返还偏低(4 分钱),符合"先建立段位再放大"的设计意图。配套 A 模型按交易量算(fee 1 USD ≈ 交易量 ~1,667 USD → 0.17 积分计算精度,ceil 取整后 1 积分),整体新手单仓激励仍弱但有 ≥ 1 积分起步保底。
场景 3.8.2 — 新手中亏(边界:新用户 + 亏损单 + 2 笔历史 / 小样本强制默认)
关键演示:90 天只交易了 2 笔即使全亏,也强制按"平衡"画像处理 —— 不因小样本噪音被误打成重亏,防止"新人输 2 笔反而被强补偿"的扭曲激励。
场景 3.8.3 — 刚跨过样本门槛的重亏用户(边界:30 笔恰好达标 + 重亏画像)
跨过 30 笔门槛后,长期亏损画像激活,同等单仓 loss 下补偿比同画像但小样本场景高 8 倍以上。
场景 3.8.4 — 高胜率但低盈亏比的"长亏者"(边界:胜率 55% 但总亏)
关键演示:虽然胜率 55%(看似健康),但盈亏比 1:3 导致总净亏 -800 USD,history_ratio = -1.6 → 进重亏档。这就是为什么不能用胜率判定—— 胜率 55% 在此场景下其实是"长期被市场打击"的画像。
场景 3.8.5 — 低胜率但高盈亏比的"高赔率玩家"(边界:胜率 30% 但总盈)
关键演示:胜率 30%(看似差)但赢得多输得少,总净盈 +5750 USD,history_ratio = +7.2 → 进重盈档(赢家)。即使这次单仓亏 50 USD,补偿被压到 3.76 USD,符合"赢家少返"逻辑。同一仓位下三种历史画像的对比详见场景 3.8.10。
场景 3.8.6 — 中度活跃 baseline(平衡画像,无大盈无大亏)
这是公式设计的"中位坐标"——大多数用户落在这档,单仓返还约该仓亏损的 10.3%。
场景 3.8.7 — 高段位大亏长仓触发 capping
算到 83.77 USD 但被全局 20% 上限拍死到 64 USD。做市商账面赚 300 USD 让出 64 USD(20%),净留 80%。
场景 3.8.8 — 永恒鲸鱼超大爆仓(边界:极端组合 + 强 capping)
极端鲸鱼场景:raw_bonus 算到 1128 USD 但被砍到 410 USD。做市商赚 2000 USD 让出 410 USD(20%),净留 80%。
场景 3.8.9 — 高频赢家小亏(边界:重盈画像 + 小回撤)
高频赢家小亏单:m_history 0.70(赢家削减)+ m_loss_pct 1.00(小回撤不放大)→ 体验金约该仓亏损的 11.1%,不触 capping。
场景 3.8.10 — 中度用户三种历史画像对比(同一仓位)
固定仓位:fee 5 USD / pnl -50 USD / 占用保证金 150 USD → loss_pct 33% / 持仓 4h
固定画像:VIP3 / 金沙 / 积分余额 5000 / 默认人群
| 用户长期战绩 | history_ratio | m_history | 客损部分 | 应发体验金 | 最终发放 | vs 平衡画像 |
|---|---|---|---|---|---|---|
| 重度盈利(赢家) | > +1.0 | 0.70 | 50 × 0.04 × 2.10 × 0.70 × 1.10 = 3.23 | 3.76 | 3.76 USD | -27% |
| 轻度盈利 | (+0.2, +1.0] | 0.85 | 3.93 | 4.45 | 4.45 USD | -14% |
| 大致平衡 | [-0.2, +0.2] | 1.00 | 4.62 | 5.15 | 5.15 USD | 基线 |
| 轻度亏损 | [-1.0, -0.2) | 1.15 | 5.31 | 5.84 | 5.84 USD | +13% |
| 重度亏损(长亏者) | < -1.0 | 1.30 | 6.01 | 6.53 | 6.53 USD | +27% |
赢家 vs 长亏者单仓返还差 1.74 倍(3.76 vs 6.53)— 显著但不夸张,给重亏用户清晰的"被照顾"信号,又不至于让赢家觉得"被惩罚"。比 v1.2(4.69 vs 8.15 = 1.74x)量级整体下降 ~20%,源于砍 m_balance 后整体放大缩水,但画像差异化比例完全保持。
3.9 跨场景观察总结
3.10 段位外显与升级叙事(v1.5 新增)
v1.5 关键产品决策:段位从"隐藏 8 档"改为"段位外显 + 技能等级心智 + 进度不公示"。
3.10.1 段位外显的内容边界
| 维度 | v1.4 之前(隐藏段位) | v1.5(段位外显) |
|---|---|---|
| 段位身份 | 不显示,仅通过沙漏视觉材质暗示 | 显式展示:"LV3 流沙"(技能等级 + 中文段位名) |
| 段位数值乘数(m_tier) | 不公示 | 仍不公示(防 KOL 反算) |
| 段位升级阈值(300 / 1000 / 3000 ... 300K) | 不公示 | 仍不公示(防反算) |
| 升级进度("距离下一段位还差 X 积分") | 不显示 | 仍不显示 ⭐(v1.5 关键决策) |
| 沙漏视觉材质 | 段位的唯一表达 | 保留 + 加段位徽章 + LV 标识 |
| 跨段位 APP 推送 | "您的时之砂更珍贵了"(隐式) | 明示"您的技能等级提升到 LV3 流沙!您的时之砂更值钱了,每次交易的体验金返还会有正向影响" |
3.10.2 8 档段位与技能等级对应
| 技能等级 | 中文段位名 | 阈值(不对客) | m_tier(不对客) |
|---|---|---|---|
| LV1 | 尘土 | < 300 积分 | 1.00 |
| LV2 | 细沙 | 300-1000 | 1.20 |
| LV3 | 流沙 | 1000-3000 | 1.45 |
| LV4 | 金沙 | 3000-10000 | 1.75 |
| LV5 | 琥珀 | 10000-30000 | 2.15 |
| LV6 | 紫晶 | 30000-80000 | 2.65 |
| LV7 | 钻晶 | 80000-300000 | 3.30 |
| LV8 | 永恒 | ≥ 300000 | 4.20 |
阈值取自公式清单 v1.5 §4 PM 推荐 baseline。v1.5 段位外显后阈值仍不公示,仅 PM/精算/财务/风控内部知晓。
3.10.3 用户视角的对客文案设计
首页 / 个人中心 显式展示:
┌─────────────────────────────┐
│ 🏆 LV3 流沙 │
│ 当前时之砂:1,847 │
│ [沙漏视觉] │
└─────────────────────────────┘
跨段位升级推送(APP push + 首页 banner):
恭喜!您的技能等级提升到 LV3 流沙!🎉
您的时之砂变得更值钱了,每次交易的体验金返还
会有正向影响。
[查看我的沙漏]
关键叙事规则(v1.5 锁定):
- 不公示具体加成倍数(如"返还提升 21%"是禁用文案)
- 不公示阈值进度(如"距离 LV4 金沙还差 1,153 积分"是禁用文案)
- 仅用"更值钱 / 有正向影响 / 倍数提升"等模糊表述
- 沙漏视觉随段位变化(材质从尘土质感 → 钻石材质 + 时光冻结)作为隐式锚点
3.10.4 与防反算组合拳的协同
v1.5 段位外显本身不破坏防反算策略:
| 防反算手段 | v1.5 是否生效 |
|---|---|
| 7 项乘数多变量化 | ✅ 保留(不公示具体值) |
| ±5% 随机噪声 | ✅ 保留 |
| 24h 累计聚合(用户协议表述) | ✅ 保留 |
| 段位升段话术("更值钱"模糊表述) | ✅ 加强(外显后跨段位心智更强) |
| 阈值与权重不公示 | ✅ 保留 |
结论:v1.5 段位外显 = 心智锚点强化 + 防反算策略不变。
3.10.5 影响范围(联动文档清单)
| 文档 | 改动 |
|---|---|
| 本文档 §3.4 m_tier 表 | 段位名加 "LV X" 副标题 ✓ |
| V1-E04 沙漏视觉与段位徽章 PRD | 新增"段位徽章 + LV 标识"UI 组件 |
| V1-E05 推送 / 通知 PRD | 跨段位升级推送文案落本节 §3.10.3 |
| V1-E07 段位判定业务层 | 跨段位事件需触发 push + banner(实时穿越触发 + 每日 batch 兜底) |
| V1-E09 用户协议 | 段位外显但阈值与具体加成不公示的声明 |
| 时之砂_产品架构_v1.1 | 段位外显作为关键决策记录入卷宗 |
| 时之砂_关键决策_v1.X | 新增"段位外显 + 技能等级心智"决策 |
4. 积分价值反算
4.1 方法论决策:混合路径
PM 最终决策:混合路径 C —— V1 期公式先行 + 反算"内部参考汇率"(不对客披露);V2 商城 SKU 定价显性锚定汇率。
4.1.1 三条路径对比
| 路径 | 描述 | V1 适配度 | 缺点 |
|---|---|---|---|
| A. 先定汇率 → 反推公式参数 | 业务先锚 1 U = X 积分 | ❌ 不适配 | 公式参数被绑架;与 LTV backtest 结论冲突 |
| B. 先有公式 → 反推汇率 | 公式按 LTV 演化,汇率 emergent | ⚠️ 部分适配 | 用户无"积分值多少钱"心智锚 |
| C. 混合(已决) | V1 公式先行 + 反算参考汇率;V2 商城锚定显性汇率 | ✅ 适配 | V1 期内部参考汇率非显性,但 V1 本来就无 consume 路径,不影响用户体感 |
4.1.2 V1 vs V2 期汇率角色
| 期 | 汇率角色 | 用途 | 是否对客 |
|---|---|---|---|
| V1(2026-07 ~ 2027-Q1) | 内部参考汇率 | 精算 monthly accrual / §13 异常发放阈值 USD↔积分换算 / §16 季度预算估算 | ❌ 不对客披露(V1 无 consume,对客无意义) |
| V2(2027-Q1 起) | 商城 SKU 定价 | 用户首次看到"积分能换什么"的真实接口;自然反映"积分含金量" | ✅ 显性公示(SKU 价格表) |
4.2 V1 内部参考汇率反算
4.2.1 反算逻辑
V1 期积分本身的成本为 0(纯累积,不消耗)—— 但形成"未消耗负债"。负债的真实成本由 V2 商城兑换时点决定:
其中:
- 商城 SKU 面额 = V2 商城上线时 SKU 标定的 USD 价值(如 10 USD 体验金券)
- 估算兑换率 = 1 - breakage 率 = 0.8(V1 目标 breakage 20%,公式 §15)
- SKU 积分价格 = V2 商城上线时定的积分价格(PM 预设区间 1000-1500 积分 / 10 USD 券)
4.2.2 V1 期内部参考汇率预设初值(v1.2 重算)
v1.2 升级:v1.1 给的 0.005-0.01 USD/积分 是按"10 USD 体验金券 = 1200 积分"反推。v1.2 用 5 个约束多维度推算后,收敛到 1 积分 = 0.0015 USD(即 1 USDT ≈ 670 积分)。
第一性原理 5 约束推算:
| # | 约束 | 推导 | 允许区间 |
|---|---|---|---|
| 1 | 永恒 USD 价值匹配 VIP7 鲸鱼终身礼遇 | 永恒 300K 积分 = 500-3000 USD(参考 SKP 黑卡 / Amex Centurion) | 0.0017 - 0.01 USD/积分 |
| 2 | 中度用户 1 年攒到最低 SKU(10 USD 券) | VIP3 月 75 积分 × 12 = 900 积分 = 10 × 0.8 折损 | ≈ 0.009 USD/积分 |
| 3 | 防套利护城河(反作弊后 ROI < 5%) | 最小套利仓 fee 0.01 → ceil 1 积分 | ≤ 0.005 USD/积分 |
| 4 | ceil 多发量年成本 < 季度预算 5% | 100K MAU × 多发 35% × 月 6.65M 积分 | ≤ 0.002 USD/积分 |
| 5 | 用户体感"数字够大但不离谱" | 1 USDT 兑 100-10000 积分均合理 | 0.0001 - 0.01 USD/积分 |
约束交集中位数:1 积分 = 0.0015 USD(即 1 USDT ≈ 670 积分)
| 用途 | V1 推荐参考值 | 说明 |
|---|---|---|
| 月度 monthly accrual 估算 | 1 积分 = 0.0015 USD | 财务对账中位口径 |
| §13 异常发放监控阈值 USD→积分换算 | 1 积分 = 0.0015 USD | 与 accrual 统一口径 |
| §16 季度预算 USD→积分发放量上限 | 1 积分 = 0.0015 USD | 同上 |
| 永恒长期负债估算(公式 §18) | 1 积分 = 0.0015 USD | 中位口径,永恒 300K = 450 USD |
⚠️ 本汇率值仅用于 V1 期内部精算,不对客披露。V2 商城上线前 3 个月按真实数据反向校准(见 §4.3)。
4.2.3 §13 / §16 USD ↔ 积分换算表(v1.2 重算)
按"1 积分 = 0.0015 USD"统一口径换算(V1 精算用,可灰度后调整):
| 公式参数 | USD 值 | 等值积分 | 用途 |
|---|---|---|---|
§13 scope_hour_threshold | 70 USD/小时 | 46,667 积分/小时 | 小时级异常告警阈值 |
§13 scope_day_threshold | 1,450 USD/天 | 966,667 积分/天 | 日级异常告警阈值 |
§13 scope_week_threshold | 9,200 USD/周 | 6,133,333 积分/周 | 周级异常告警阈值 |
§16 quarterly_budget_cap | 100,000 USD/季度 | 66,666,667 积分/季度 | 季度预算指标(非熔断) |
§14 single_op_user_limit | — | ±1,000 积分 | 后台单次单用户调权上限(已是积分单位) |
| 月度 monthly accrual(典型 100K MAU) | ~13,500 USD | ~9,000,000 积分 | 按 ceil 实发量 + 兑换率 0.8 推算 |
| 永恒 300K 积分 USD 等值 | 450 USD | 300,000 积分 | 永恒长期负债估算锚点 |
4.2.4 汇率调整流程与护城河联动
v1.2 新增章节。
任何汇率上调动作(如商城 SKU 锚点调整、breakage 实际值偏离等)必须按以下流程:
| 步骤 | 操作 |
|---|---|
| 1. 触发事件 | V2 商城 SKU 价格调整 / 反作弊画像数据偏差 > 30% / 月度 accrual 偏差 > 20% |
| 2. 联合评估 | PM Lawrence + Winn + 风控负责人 + CFO 评估新汇率下 §2.7.4 护城河是否仍然成立 |
| 3. 红线 | 新汇率必须保证:单仓最坏套利 ROI ≤ -50%(含反作弊冗余) |
| 4. 联动调整 | 如新汇率会破红线,则 §2.7.3 max_points_per_fee_ratio 必须下调到 0.3 或更低 |
| 5. 签字落库 | 三方签字 → §4.2.2 / §4.2.3 重算 → §2.7.4 护城河表重算 |
4.3 V2 商城上线时的反向校验
V2 商城上线(约 2027-Q1)时,SKU 定价反向校验流程:
4.3.1 校验步骤
Step 1: 拉 V1 末期数据
- 中位用户积分余额(P50)
- 高段位用户积分余额(P90)
- 平台总积分流通量
Step 2: 反推商城最低 SKU 价格
- 最低 SKU 价格 = 中位用户半年累计积分 × 70-90%
- 保证半年活跃用户能在商城至少换到一个最低价 SKU
Step 3: SKU 阶梯定价
- 体验金券:10 USD / 50 USD / 100 USD 三档面额
- 手续费折扣券:24h / 7d 两档
- VIP 体验券:7 天 / 30 天 两档
- 0 费率卡:24h
- 仓位券:按平均赔付成本 × 2-3 倍
Step 4: 反向校准内部参考汇率
- 1 积分 USD 等值 = SKU 面额 × 0.8 ÷ SKU 积分价格
- 内部精算系统更新参考汇率
4.3.2 校验通过标准
| 维度 | 目标 |
|---|---|
| 中位用户半年内可消耗占比 | 70-90% |
| 商城 breakage 率 | 15-25%(航司基准) |
| 永恒用户兑换覆盖度 | ≥ 50%(永恒用户半年内能消耗 ≥ 50% 当期积分) |
| 积分通胀控制 | V2 上线后 3 个月内,平台总流通积分下降 30-50% |
4.4 关键风险与缓解
| 风险 | 缓解 |
|---|---|
| V1 期"参考汇率"被运营/财务误用为对客披露 | 文档明确标注"V1 期不对客披露"+ 培训运营/客服话术 |
| V2 商城 SKU 定价偏离反向校验,导致内部参考汇率漂移过大 | V2 上线前 1 个月联合 PM + Winn + CFO 走一次校验流程,偏离 > ±30% 触发回调 |
| 商城兑换率(0.8)实际值偏低(< 0.6),导致内部参考汇率高估 | 上线后 6 个月数据回测兑换率,调整参考汇率 |
| 永恒用户 breakage 极低(< 10%),永恒长期负债被低估 | 永恒用户独立精算 discount_factor(公式 §18),用 0.6 折现 |
4.5 落地工作项
| # | 工作项 | Owner | 时点 |
|---|---|---|---|
| 1 | V1 期内部参考汇率写入财务系统精算配置 | Winn + CFO | V1 上线前 |
| 2 | V1-E06 后台 §异常发放监控阈值配置面板,支持 USD ↔ 积分换算 | V1-E06 PM + 后端 | V1 上线前 |
| 3 | V2 商城 SKU 定价反向校验流程 SOP | PM Lawrence + Winn | V2 上线前 3 个月 |
| 4 | 永恒长期负债估算专项报告(含 discount_factor backtest) | Winn + CFO | V1 上线后 6 个月 |
5. 修订记录
| 版本 | 日期 | 变更 | 作者 |
|---|---|---|---|
| v1.0 | 2026-05-05 | 初稿:A 模型 + B 模型 v3.3 + 积分价值反算(路径 C 混合);含 10 个用户场景计算(覆盖小样本 / 胜率高总亏 / 高赔率玩家 / 永恒爆仓等边界) | Lawrence + AI 辅助 |
| v1.1 | 2026-05-05 | §2.7 新增 A 模型整数取整规则(floor + 用户尾差账本)+ max_points_per_fee_ratio = 0.5 防套利硬上限;§2.6 标题改为"计算精度视图"并补"实发整数见 §2.7";新增 user_points_fraction_ledger 数据表;新增累积发放示例 / 月度对账 / 对客文案 | Lawrence + AI 辅助 |
| v1.1.1 | 2026-05-14 | HTML 内审发现 §3.6.2 区间表与 §3.8 场景表对 loss_pct = 50% 边界值的归属不一致:表写 (20%, 50%] 归 1.10 但场景算式用了 1.20。统一为严格大于判定(HTML 计算器实现):①§3.8.2 / §3.8.4 / §3.8.5 三场景 m_loss_pct 从 1.20 改为 1.10,重算客损部分 + 应发 + 最终发放;②§3.4 参数表 m_loss_pct 行加边界归属注;③§3.6.2 表后加边界规则说明;④§3.9 跨场景统计更新;⑤区间表统一用 (a, b] 代码格式表达 | Lawrence + AI 辅助 |
| v1.2 | 2026-05-14 | §2.7 取整规则方向调整:基于"小仓位用户体感"考量,从 v1.1 的 floor + 用户尾差账本 改为 ceil + 零保护。①§2.7 整章重写(10 个小节);②起发阈值 min_grant_threshold = 0;③max_points_per_fee_ratio = 0.5 保留;④移除 user_points_fraction_ledger 数据表;⑤§4.2 内部参考汇率重写为第一性原理 5 约束推算,PM 推荐初值 1 积分 = 0.0015 USD(1 USDT ≈ 670 积分);⑥§4.2.3 §13/§16 USD↔积分换算表全部按 0.0015 重算;⑦新增 §4.2.4 汇率调整流程与护城河联动;⑧用户体感改"做了就有 1 积分起步",对客文案不再需要"为什么 0 积分"FAQ | Lawrence + AI 辅助 |
| v1.3 | 2026-05-14 | B 模型砍 m_balance:基于"m_balance 与 m_tier 高度共线(Pearson > 0.95)+ ceil 取整后 m_balance 连续奖励用户不可感知 + 段位心智应主导经济权重"的判断,砍掉积分余额乘数。①§3.1/3.2/3.3 公式去 m_balance;②§3.4 参数表移除 m_balance 行;③m_tier 8 档重新校准:尘土 1.00 / 细沙 1.20 / 流沙 1.45 / 金沙 1.75 / 琥珀 2.15 / 紫晶 2.65 / 钻晶 3.30 / 永恒 4.20(跨段位跳变 20-27% 递增);④§3.8 全部 10 场景重算;⑤§3.9 跨场景统计更新(典型分润 10-13% → 9-11%);⑥§3.8.10 五画像对比新值 3.76/4.45/5.15/5.84/6.53 USD,1.74x 比例保持;⑦HTML 计算器 Tab B 移除"积分余额"输入 + m_tier 8 档按新值;⑧HTML 图 12 删除(m_balance 函数曲线已无意义) | Lawrence + AI 辅助 |
| v1.4 | 2026-05-14 | 产品差异化口径明示:将永续合约与 CFD 两类产品的 fee_usd 上报口径在 PRD 中显性化。①§1.4 术语对照表 fee_usd 行补充两类口径;②新增 §1.5 "产品差异化口径"独立小节(含三类产品对照表 + 关键边界 + 工程实现要点 + 3 个待业务对齐 Open Item);③§2.4 A 模型参数表新增 cfd_spread_ratio = 0.10;④§3.4 B 模型 fee_usd 行引用 §1.5;⑤公式本身不变;⑥"0 fee + 0 客损"场景明示为"不发体验金" | Lawrence + AI 辅助 |
| v1.5 | 2026-05-14 | 三个重大决策:①A 模型按交易量 —— 从 fee_usd × 0.08 × ... 改为 trade_volume_usd × 0.0001 × ...(行为数据替代结果数据,CFD 0 点差期不再失分,VIP 跃升不再让积分变少);§1.4 新增 trade_volume_usd 术语;§1.5 重写为"A 按交易量 / B 按 fee_usd"双口径;§2.1-§2.4 公式与参数表重写;移除 max_points_per_fee_ratio;新增 min_trade_volume_for_grant = 100 USD 防套利门槛;§2.5-§2.7 触发场景与取整规则重算(含 CFD 0 点差期场景)。②B 模型保持现状(仅 A 模型改),cfd_spread_ratio 仍保留供 B 模型使用。③段位外显 + 技能等级心智 —— 段位从"隐藏 8 档"改为"LV1-LV8 + 中文段位名"双显(如 LV3 流沙),但阈值/进度/具体加成倍数仍不公示;跨段位升级用"积分更值钱、体验金返还有正向影响"模糊文案;新增 §3.10 段位外显与升级叙事独立小节;§3.4 m_tier 表加 LV 副标题。④联动改动:HTML 计算器 Tab A 输入字段 fee_usd 改 trade_volume_usd;base_coef 默认 0.0001;新增 min_trade_volume_for_grant = 100 USD 阈值;A 模型场景表全部按交易量重算 | Lawrence + AI 辅助 |
文档结束
研发评审请重点关注 §2.3 / §3.3 英文公式 + §3.4 参数表 + §3.5 历史画像数据接入。
精算(Winn)请重点关注 §3.8 场景行为分布 + §4 内部参考汇率。
商城(V2)请重点关注 §4.3 V2 上线时反向校验流程。
— Lawrence