← ClaudeAtlas

finance-statslisted

Use when defining 财务统计口径, GMV, 实收, 支付GMV vs 结算GMV, 退款后净额, 报表切日, or 实时 SUM 大表. Do not mix GMV with platform revenue. Settlement bills are backend-finance-settlement.
1398281322-a11y/java-backend-guardrails · ★ 2 · AI & Automation · score 71
Install: claude install-skill 1398281322-a11y/java-backend-guardrails
# 财务统计口径 ## When to Invoke GMV、销售额、实收、退款率、看板、面试「GMV 怎么算」。财务对数字,口径比 SQL 重要。 ## When NOT 渠道对账文件 → `reconciliation`。商家结算打款 → `finance-settlement`。记账分录 → `finance-ledger`。渠道分账划款 → `pay-split-account`。 ## 风险(面试考点) **GMV ≠ 平台收入 ≠ 净利润 ≠ TPV。** 平台收入通常是佣金+广告+服务费。TPV 是支付通道吞吐,可含充值、代付。把 GMV 当营收是面试扣分项。 多种 GMV,必须写清发生点。直播/电商面试常考「支付 GMV 有水分」: | 名称 | 计入时点 | 含退款? | 典型用途 | |------|----------|----------|----------| | 下单 GMV | 创单 | 含未支付 | 战报注水,少用 | | 支付 GMV | 支付成功 | 含后续退款 | 规模,默认对外口径之一 | | 结算/履约 GMV | 核销/确认收货且未退 | 净成交 | 质量、可结算、算法权重 | 同一「今日销售额」,按支付成功还是按切日时区,能差一天。`endTime=23:59:59` 会漏 1 秒。用 **`[start, nextDay)`**,时区写死(文旅默认 `Asia/Shanghai`)。 退款记哪一天必须二选一写死:**支付日冲减**���改历史日,报表会变)或 **退款日冲减**(净额另列)。禁止两套 SQL 混用。 优惠、运费、税费、平台补贴 vs 商家补贴是否计入要写进指标字典。平台券往往仍计入 GMV、不计入商家实收。客单价 = 某口径 GMV / **该口径订单数**,分母跟错会差一倍。 禁止交易库 `SELECT SUM(amount)` 扫全量当实时大屏。用流水汇总表、离线数仓、或支付成功时累加计数器(可对账校正)。金额分;跨系统禁止 float。 ## 方案选型(轻量优先) 每个指标一张口径卡:时间窗、时区、状态集合、含不含退/券/运费/补贴、一个算例、数仓表名。 ```text 支付GMV(日) = SUM(pay_trade.amount_fen) WHERE status=SUCCESS AND paid_at ∈ [D 00:00+08, D+1 00:00+08) 净GMV(日) = 支付GMV - 当日确认成功的退款(或按下单日退回冲减,二选一写死) 平台收入(日) = SUM(佣金分) 同窗 // 不是 GMV ``` 文旅:核销 GMV 常比支付 GMV 更接近可结算。门票未核销退款要从净额扣。预售/定金:只把已收金额计入支付 GMV,尾款另笔支付再计。 实时大屏:支付成功 MQ 累加 Redis;日终用明细重算覆盖。对不上进 `reconciliation`。 ## 反例 错误:看板 GMV = 订单表全部 CREATED 金额。 正确:按支付成功或核销,并注明。 错误:退款不冲减,年底对不上银行。 正确:净额指标单独命名,冲减规则写死。 错误:运营、财务、BD 各算各的,差 8%。 正确:指标字典,一个 SQL ���源。 错误:把渠道分账到账、商家提现、GMV 加在同一张「今日流水」里给老板。 正确:规模看 GMV;可打款看结算单;通道吞吐看 TPV。 ## 验证 - 同一日支付成功 10 笔、退 2 笔,支