🏢 Salon Chain Dashboard
16 店 · 35,172 会员 · 558,124 订单 · $2.5M 负债 · Updated:
📈 月订单趋势
🎯 RFM 分群
💳 支付方式 (top 20 consume)
| 员工 | 店 |
服务单 |
服务营收 |
制单数 |
月成本 |
3年估算 |
净贡献(3y) |
退款涉入 |
月成本 = 合计 × 1.17 CPF(雇主). 3年估算 = 月成本 × 36. 只有 41 位(new gen101)有真实薪资数据,其余员工无法算 P&L.
🏪 店铺 P&L 排行(3 年累计)
| 店 |
会员数 |
会员余额 |
沉睡% |
消费订单 |
消费营收 |
充值 |
办卡 |
次卡销售 |
毛营收 |
退款 |
主支付 |
活跃天 |
🏆 Top 50 VIP(按余额)
⚠️ 高余额 + 长期未来(流失预警)
余额 > $1000 且 180+ 天未来,$总额合计见下面
🎂 未来 30 天生日 VIP(消费≥5 次)
🚨 凌晨可疑退款(06:00 前 + 金额 > $100)
深夜的退款操作 — 可能是补账,也可能是钱走了。每一笔都值得问制单人。
⚠️ 会员消费金额与订单实际金额不符(差 > $500)
系统会员表的 consumeAmount 和真实订单 sum 对不上 — 可能是跨店迁移或重复累计
⚠️ 会员消费次数与订单实际次数不符(差 > 5)
💳 支付方式变体(需清洗)
下面重名的 VISA/Visa/ViSA/visa 等应归一。PayNow 也有 3-4 种写法。
📋 每日爬取 → 自动审计计划(180+ 条)
Gemini + Codex + Claude 三方合议,从每日爬取的数据可以自动跑以下审计。每条优先级: P1 必查 P2 警告 P3 观察
💰 金额对账 (Financial Reconciliation)
- [P1] 订单总额一致性 ·
paymentAmount == Σ paymentItem.amount · 当前 0 异常 ✅
- [P1] 会员余额流水闭环 · 当前余额 = 期初 + 充值 - 消费(实收) - 取款 + 退款 · 当前 3,380 位差额 >$100
- [P1] 实收卡金 vs 赠送卡金分账 · 充值 paymentItem[name='卡金'] 和 ['赠送卡金'] 是否匹配模板规则
- [P1] 次卡余次对账 · 会员名下次卡剩余次数 = 卖出 - 消费 - 退 - 延期
- [P1] GST 税额审计 · paymentItem 含 *GST 的应占订单 9/109 比例 (SG)
- [P1] 现金实收审计 · 日合计 现金 + 现金GST vs 收银机盘点
- [P2] 卡金扣款来源 · 消费用卡金都能追溯到某笔充值
- [P1] 退款冲销 · 每笔 refund 能找到原单号,金额 ≤ 原实付
- [P2] 次卡零元核消 · 支付方式含 "次卡抵扣" 时 paymentAmount = 0
- [P1] 余额负值 · moneyMealBalance < 0 说明超支消费
- [P2] 积分消耗 · 会员积分 = 累积充值得分 - 消费抵扣
- [P3] 分分钱舍入 · 超过 $0.05 的舍入误差
- [P1] 预收款总负债 · Σ moneyMealBalance = $2,507,256 当前
- [P1] orderSn 连续性 · 业务流水号断号检测(被删订单)
- [P2] 折扣率异常 · 折扣 < 10% 或 > 50% 触发人工审
- [P1] 充值模板一致性 · topup.amount 匹配 chain_money_meal 模板
- [P1] 欠款还款对账 · Σ repayment ≤ Σ 挂账
- [P1] 取款上限核查 · withdrawal.amount ≤ 当前余额
🔗 完整性 (Data Integrity)
- [P1] orderSn 全链唯一 · 同店同类型不重复
- [P1] memberId FK 存在 · 当前 84 笔孤儿订单 ⚠️
- [P1] employee FK 存在 · serviceEmployeeName 在员工表中
- [P2] extension JSON schema · 各类单据 extension 字段结构校验
- [P2] storeId vs storeName · id 和名字对齐,不出现换名后旧单
- [P1] paymentAmount 非负 · 正常订单不应为负(退款类另算)
- [P2] orderDate vs createTime · 创建时间必须晚于等于订单日期
- [P2] orderSn 日期匹配 · orderSn 前 6 位 yymmdd 应 = orderDate
🔍 异常检测 (Anomaly)
- [P1] 凌晨退款 · 06:00 前 + refund + > $100 (当前 183 笔 ⚠️)
- [P1] 秒内连发多笔 · 同员工 5 秒内处理 3+ 笔(zhuang yan 案例)
- [P2] 2σ 日营收 outlier · 单日超过均值 2 标准差
- [P2] 零金额非次卡 · 免单 / 白单检查
- [P2] 营业时间外订单 · 创建时间 < 07:00 或 > 24:00
- [P3] 异常高客单价 · 单单超 $5,000 触发人工
- [P2] 异常多退款员工 · 制单人月退款率 > 10%
- [P3] 异常多作废订单 · 单员工 audit=2/3 的比例
🧮 自动计算 (Auto-compute)
- [P1] GST 9% 自动计算 · 消费 GST-inclusive,后拆 9/109
- [P1] 员工提成自动算 · 按提成方案配置,服务/商品/开卡/充值/次卡分别算
- [P1] CPF 雇主/员工端自动算 · 按年龄段 + OW/AW 拆分
- [P1] SDL (Skills Dev Levy) · 雇主 0.25% 上限 $11.25/月
- [P1] FWL (外籍员工税) · 若有 Work Permit / S Pass 员工
- [P2] OT 加班费 · 正常工时外 × 1.5 倍
- [P2] 花红 AWS (13th month) · 年薪 / 12 一月一发
- [P2] 退款原路退 · 按原支付方式自动拆退款
- [P2] 积分自动折算 · 充值得点 + 消费扣点
- [P1] 每日营业结算 · 四眼原则双签
📜 合规 (SG Compliance)
- [P1] GST 申报(季度) · IRAS 要求每季度交 GST-F5
- [P1] AIS 年度 · Auto Inclusion Scheme 员工收入 → IRAS
- [P1] CPF eSubmit 月度 · 每月 14 号前交
- [P1] Tax Invoice 格式 · GST-registered 企业需要合规格式
- [P2] MOM 考勤记录 · 至少保留 2 年
- [P2] Employment Act KET · 每员工 Key Employment Terms 齐全
- [P2] Peppol e-Invoicing · B2B 发票按 SG 标准
- [P3] PDPA 数据保留 · 员工个人数据保存期限
🚨 舞弊检查 (Fraud Detection)
- [P1] 同人制单 + 结算 · createBy 和 settler 相同 (双人审计缺失)
- [P1] 员工自己充自己卡 · 员工退款给自己账户
- [P1] Round-trip 洗钱 · 同客户短时间内充 $X → 取 $X
- [P2] 高折扣滥用 · 某员工 > 50% 订单打折 > 20%
- [P2] 鬼员工 · serviceEmployeeName 在员工表找不到
- [P2] 重复订单 · 同客户同金额同分钟多笔
- [P1] 超权限议价 · 某员工议价 > role.max_adjustment_pct
- [P3] 异常多空客户订单 · 散客订单比例异常
- [P1] 离职员工仍出现在订单 · employee.status='inactive' 却有新单
🔄 迁移验证 (Migration QA)
- [P1] 旧余额 = 新期初 · 所有会员迁后 balance 对等
- [P1] 会员数一致 · 旧系统 count = 新系统 count per store
- [P1] 订单总和一致 · 旧系统 Σ paymentAmount = 新系统
- [P1] 次卡剩余次数一致 · 关键财务数据
- [P2] 手机号迁移后唯一 · 去重 check
- [P2] NRIC 格式标准化 · SG 9 位字母数字
- [P2] 员工账号迁移 · 所有在职员工新系统可登
- [P2] 店铺层级迁移 · 企业-店-部门-员工 树完整
⏱️ 爬取 + 审计调度
02:00 SGT 每天 | 增量爬昨天全部订单 (12 endpoint × 16 店 × yesterday)
02:30 | 跑所有 P1 审计规则,异常推送到店长 App
03:00 每周日 | 员工花名册 / 排班全量同步
04:00 每月 1 号 | 目录 / 配置全量对账 + CPF 规则更新
09:00 每月 14 号 | 自动提交 CPF eSubmit (待做)
月末后 30 天内 | 提交 GST-F5 季度申报 (待做)