语言 / LanguagePRD v1.7 · 2026-09-16

24 · 代理盈亏 · 优惠与净利润 · PRD

作者 Luke 版本 v1.7 日期 2026-09-16 状态 待开发评审 平台 BRAND_A & BRAND_B 类 R

需求编号 24 英文 slug agentPnlNetIncome 模板基准 prd

模板调整说明:沿用 prd 的元信息、L0 四件、规则正文、折叠附录与视觉清单;以中英文 ImageGen 资讯图取代未渲染的 Mermaid,并把重复说明收敛到唯一章节。本需求没有 Client 交付物。

版本记录
版本 日期 变更摘要
v1.7 2026-09-16 §2.3:补齐 Sonnet 对需求原文 3.2 的单点发现——字段备注可注明「亦作 NGR」,但不得作为栏名;BO 只同步上游互链至 v1.18,画面与行为不变。
v1.6 2026-09-16 L0、§1、§3.3:补齐 Sonnet 第 1/5 次指出的三条既定边界:新增三栏须在每层下钻重算、分页器不变、本需求不新建账变类型;BO 只同步上游互链至 v1.17,画面与行为不变。
v1.5 2026-09-16 L0:English PRD HTML 的资讯图移至英文快速掌握区,与中文版同构;BO 升 v1.16,筛选区保持完整可见,宽表只在结果列表内横向滚动。
v1.4 2026-09-16 §2.3:52 Manual Deposit Promo 纳入 Promo,现行基线 22 → 23;报表改读统一 Promo 账变类型组,合格新类型自动纳入。§1:以 ImageGen 中英文资讯图取代 Mermaid 源码;精简 PRD 与 BO 右侧说明,BO 升 v1.14。
v1.3 2026-09-16 L0 与附录套用正式模板 v1.0,新增 English PRD、双语 PRD HTML、关键算例与 BO v1.13。
v1.2 2026-08-22 §5落下既有无资料文案 No More Data,不新增提示语。
v1.1 2026-08-21 §2.1把 Promo 时间口径由发放时间改为领取/入账时间;§2.5补齐跨报表差异。
v1.0 2026-08-21 §2与§3定义新增三列、会员范围、计算规则与 21 列零值判定。
目录

[TOC]


L0 · 快速掌握

① 一句话需求

Backoffice ▸ ReportManagement ▸ 代理盈亏 在 公司盈亏金额 后新增:

GGR Margin → 优惠 → 净利润

全表 18 → 21 列。页面、六项筛选、下钻入口与分页器不变;新增三列在每层下钻重新计算,并自动进入既有导出。

需求 24 PRD 资讯图表:结算流水与会员奖励账变汇入代理盈亏三栏

② 术语写死表

词 唯一含义 出处
优惠 / Promo 统一 Promo 类型组中,记入该代理线会员的活动奖金(含人工补发)与 VIP 奖励;现行基线 23 项 §2.3
净利润 公司盈亏金额 − 优惠;表头不得写 NGR §2.3
领取/入账时间 账变落库时间。一般活动是会员领取时间;52 是人工补发入账时间 §2.1
团队 既有第 5–15 列包含自己与以下代理/会员;Promo 只算会员 §2.2

③ 全局红线表

不变量 违反后果 验证
G1 Promo 只算会员取得的奖励;代理取得的一律不算 代理佣金被误扣成推广成本 AC1–AC2
G2 净利润 = 公司盈亏金额 − 优惠,不减其他成本 三栏无法对账 AC3–AC4
G3 Promo 按领取/入账时间,GGR 按结算时间 成本被提前或漏记 AC5–AC6
G4 每日 05:00 先跑 VIP 升降级,再跑前一日返水 返水套到旧等级 AC7
G5 报表读取统一 Promo 类型组,不硬编码 23 个 ID;符合条件的新类型自动纳入 新活动上线后报表漏成本 AC8–AC9 AC21–AC23
G6 公司视角正绿负红;用户盈亏金额 维持会员视角正黑负红 盈亏方向被读反 AC10–AC11
G7 21 列全为 0 才隐藏该行 只有 Promo 的成本行消失 AC12

④ 适用范围与不做边界

本期做(§2–3) 明确不做(§2–3)
新增三列、每层下钻重算、Promo 类型组、21 列零值判定、导出新增三列(§2–3) 不加合计行;不加 StatisticsMethod;不拆 Promo/返水/NGR(§3)
保留当前 23 项作为可审计基线、7 项排除理由(§2.3) 不改六项筛选、下钻入口、分页器、第 14 列、既有四个金额/投注字段;不新建账变类型(§3)
后续符合条件的启用类型自动纳入(G5) 不改代理策略 Company NGR;不波及「累计有效活跃会员」(§3.3)
type=96 完成且建立合格账变类型后由 Promo 组纳入(§2.3) 未上线、代理奖励、负向扣减与非奖金类型不纳入(AC23)

L1 · 完整规格

1. 实现导航

  1. BO 送出现有报表类型、日期区间与其余四项筛选。
  2. 投注/结算流水按结算时间计算既有 15 列。
  3. 账变流水按领取/入账时间读取统一 Promo 类型组,只聚合会员。
  4. 计算 GGR Margin = 公司盈亏金额 ÷ 投注额。
  5. 计算 净利润 = 公司盈亏金额 − 优惠。
  6. 每次「查看下级」都按该层代理及其团队范围重新计算新增三列。
  7. 21 列全为 0 才丢弃该行;其余回传 BO。
开发区块 唯一口径 最大风险
Promo 查询 §2.1–2.3 硬编码 ID 或混入代理奖励
批次 §2.4 返水早于 VIP 升降级
展示/导出 §3 正负视角、零值行或导出范围做错

2. 取数口径

2.1 时间口径

列/来源 归属时间
公司盈亏金额、投注额、GGR Margin 结算时间(既有)
一般活动与 VIP 奖励 会员领取、钱入账、账变落库的时间
52 Manual Deposit Promo 人工补发入账、账变落库的时间
净利润 由同区间 GGR 与 Promo 相减,不另取时间

2.1.1 已发放但会员尚未领取的奖励不计入。设计上,日报的净利润允许同时包含结算时间与领取/入账时间;不得把 Promo 回溯分摊到投注日(G3)。

2.2 范围口径

列 算谁
既有第 5–15 列 当前代理+以下全部下级;含代理与会员
GGR Margin 随既有 公司盈亏金额 与 投注额
优惠 该代理线下全部层级会员;代理本人及下级代理取得的奖励不计
净利润 继承本行 公司盈亏金额 与上述 Promo

2.2.1 账号后来被冻结、封禁或停用,不影响期间内已入账记录。449 属会员邀请会员,不另加代理过滤。

2.3 字段、Promo 类型组与算法

新列 定义/公式 格式
GGR Margin 公司盈亏金额 ÷ 投注额;分母不是有效投注额 百分比 2 位
优惠 / Promo Promo 类型组中,记入会员的正向奖励合计 金额 2 位
净利润 / Company Net Income 公司盈亏金额 − 优惠;字段备注可注明「亦作 NGR」,但不得作为栏名 金额 2 位

现行 23 项基线

类别 编号与名称
活动类 19 项 250 Turnover Bonus;268 Referral Bonus;300 Lucky Wheel Bonus;301 Register Promo;309 Deposit Bonus;317 Red Envelope Rain;437 First Deposit Promo;438 First Deposit Bonus(Fixed);442 PayDay Bonus;448 Referrer Welcome Bonus;449 Milestone Achievement Bonus;450 Referee Welcome Bonus;456 Download App Bonus;457 Buddy Total Flow Bonus;458 Buddy Assist Reward;493 Luck Revival Bonus;498 Reload Bonus;499 REDEMPTION BONUS;501 Check-in Bonus
VIP 类 3 项 221 VIP Upgrade Bonus;451 VIP Birthday Bonus;452 VIP Cashback Bonus
人工补发 1 项 52 Manual Deposit Promo(活动奖金人工补发;不是充值)

自动纳入规则

2.3.1 报表不得硬编码上述编号,必须读取统一的 Promo 账变类型组。新增或启用的类型同时满足以下条件时,由主数据加入该组,报表自动纳入,不再修改查询逻辑:

  1. 性质是会员活动奖金(含人工补发)或 VIP 奖励;
  2. 是正向入账;
  3. 对应功能已启用,且记入会员。

明确排除 7 项

编号 名称 排除理由
302 Register Promo(出帐) 负向人工扣减,现已不用
443/444 First Deposit Rebate/Loss Rebate 其他平台遗留,本平台不用
453 VIP Level Retention Bonus 本平台没有保级奖金
323 Commission 代理佣金
454/455 Agent Achievement/Growth Bonus 代理奖励

2.3.2 类型组中若出现负值,该笔剔除并记录「优惠为负、已剔除」运行日志;不得用负数冲减 Promo。type=96 尚无完成的账变类型,现阶段不纳入。

2.4 计算顺序

2.4.1 每天 05:00 计算前一日:先完成 VIP 升降级,再跑返水。两批完成后才读取当日完整 Promo。

2.5 与其他报表的差异

报表 Promo 范围
本表 指定代理线下会员;排除代理取得的奖励
PlatformReport 全平台,可能包含代理
UserReport 按会员属性统计,不以代理属性过滤

2.5.1 三张表回答的问题不同,数字不必强行相等。


3. 页面与展示

3.1 栏位顺序

… 用户盈亏金额 → 公司盈亏金额 → GGR Margin → 优惠 → 净利润 → 实体站 → 用户线路 → 操作

3.2 格式与配色

列 显示
用户盈亏金额 既有会员视角:正黑、负红
公司盈亏金额、净利润 公司视角:正绿、负红
GGR Margin、优惠 一律黑字

3.2.1 金额用千分位与 2 位小数;Margin 用百分比与 2 位小数。Margin 允许低于 −100%,不夹到 0;公司盈亏金额 = 0 时显示 0.00%。

3.3 下钻、零值行、导出与相邻报表

3.3.1

  • 21 列全为 0 才隐藏;只有 Promo 不为 0 的行必须显示。
  • 每层「查看下级」都以该层代理及其团队范围重新计算新增三列,不沿用上层汇总值;下钻入口与分页器维持既有行为。
  • Export 导出当前查询的全部命中结果,不是当前页;包含新增三列,排除「用户线路」与「操作」。
  • 「累计有效活跃会员」独立报表的栏位、计算、权限、导出与入口均不变。
  • 23 项基线与 7 项排除均消费既有账变主数据;本需求不新建账变类型。

4. 权限

不新增权限点。新增三列随代理盈亏既有查看权限出现;无权限时入口不显示,后端仍须拒绝请求。导出沿用既有行为。


5. 提示语

本需求不新增提示语。纯展示栏位没有自己的错误或空态;沿用代理盈亏既有提示:

场景 文案 出处
查无资料 No More Data PRE 实机画面,2026-08-22 确认

6. 待确认项

无。Promo 自动纳入规则已于 2026-09-16 确认。


附录 A:验收标准(默认折叠)

验收标准

# P 验收点
AC1 P0 代理取得的奖励不计入 Promo(G1)
AC2 P0 代理线下全部层级会员的合格奖励计入(G1)
AC3 P0 每行 净利润 = 公司盈亏金额 − 优惠(G2)
AC4 P0 Promo 为 0 时,净利润等于公司盈亏金额(G2)
AC5 P0 D−3 发放、D 领取只落在 D(G3)
AC6 P0 已发放但未领取的奖励不计(G3)
AC7 P0 VIP 升降级先于返水(G4)
AC8 P0 323/454/455 不计入 Promo(G5)
AC9 P0 302/443/444/453 不计入 Promo(G5)
AC10 P0 Player GGR 与 Company GGR 的视角、颜色正确(G6)
AC11 P0 Net Income 正绿负红;Margin 与 Promo 一律黑字(G6)
AC12 P0 只有 Promo 不为 0 的行仍显示(G7)
AC13 P1 Margin 分母为 Bet Amount,不是 Valid Bet Amount
AC14 P1 Company GGR 为 0 时 Margin 显示 0.00%
AC15 P1 Margin 可低于 −100%,不夹到 0
AC16 P1 21 列全为 0 才隐藏
AC17 P1 导出全部命中结果,含新增三列、不含 Line/Operation
AC18 P1 「累计有效活跃会员」独立报表不变
AC19 P1 Promo 与 GGR 使用不同时间字段
AC20 P1 本表与 PlatformReport/UserReport 的 Promo 可不同
AC21 P0 52 Manual Deposit Promo 计入 Promo(G5)
AC22 P0 新增合格类型只改 Promo 主数据即可进入报表(G5)
AC23 P0 代理奖励、负向、非奖金或未上线类型即使新增编号也不计(G5)
AC24 P0 每层下钻都按该层代理团队范围重新计算新增三列,不沿用上层值
AC25 P1 分页器维持既有行为,且本需求不新建账变类型

附录 B:关键算例(默认折叠)
  1. GGR 123,456,789.00、Bet 1,000,000,000.00、Promo 23,456,789.00 → Margin 12.35%、Net Income 100,000,000.00。
  2. GGR −10,000.00、Bet 5,000.00 → Margin −200.00%。
  3. 其余 20 列为 0、Promo 1,000.00 → 行保留,Net Income −1,000.00、Margin 0.00%。
  4. D−3 发放、D 领取 → 只计 D。
  5. 建立新的正向会员活动奖励类型并加入 Promo 组 → 不改报表代码即可出现在 Promo;改成代理奖励或负向类型则不计。

附录 C:原型视觉清单(默认折叠)

原型视觉清单

视觉 ID 载体 用途 证据
VIS-BO-NONE BO 报表不使用内容图片槽位;表格、骨架与标注符号不算内容视觉 BO v1.18
VIS-CLIENT-NONE Client 本需求没有 Client 页面 L0 ④

文档版本:v1.7 | 日期: 2026-09-16 | 作者: Luke | 文档状态:待开发评审