课时套餐与会员定价器(CoursePricer)
功能概述
为国内小型教培/兴趣班机构校长提供基于成本+竞品+价值三维模型的 AI 课时套餐定价顾问。校长通过自然语言对话输入成本和课程信息,Skill 自动完成成本分析、定价计算、套餐设计、利润模拟和合规校验,输出合规、有利润、有竞争力的多档位套餐方案。
核心价值:让定价从"凭感觉"变成"有依据"——成本可视、定价科学、合规内置、利润模拟。
使用前提
- 运行环境:Python 3.8+(WorkBuddy 自带,无需额外安装)
- 连接器:无需任何外部连接器,纯本地计算
- 前置数据:无需准备任何数据表或模板,对话中直接输入即可
- 适用对象:国内小型教培/兴趣班机构校长、老板(K12 课外辅导、才艺兴趣班、语言培训等)
快速开始
3 步完成首次定价:
- 说出需求:在对话中输入,例如"帮我设计钢琴课的课时套餐"
- 回答问题:Skill 会逐项询问成本和课程信息(每项都有行业参考值,不确定的可以直接说"用参考值")
- 获取方案:Skill 输出完整定价方案(成本分析→推荐定价→三档套餐→利润模拟→合规校验),可直接使用
> 💡 最简用法:直接说"帮我算一下单课时成本"或"帮我设计课时套餐",Skill 会引导你完成全部流程。
使用手册
核心功能与操作示例
功能1:完整套餐定价(端到端)
从成本分析到利润模拟的一站式定价方案。
- 触发方式:用户输入"设计套餐""课时包方案""帮我定价""课程怎么收费"等
- 操作示例:
> 用户:帮我设计钢琴课的课时套餐,4间教室,在二线城市
> 技能:好的,我来帮您设计钢琴课的课时套餐方案。先确认几项基本信息:
> 1. 授课形式是一对一还是小班?(参考:钢琴通常一对一或一对四)
> 2. 单课时长?(参考:45分钟或60分钟)
> ...
> 用户:一对四,45分钟,每周2次
> 技能:明白了。接下来确认月度成本:
> · 月租金?(参考值:二线城市200㎡约10000-16000元)
> · 师资薪资?(参考值:4间教室约30000-50000元)
> ...
> 用户:租金10000,师资30000,其他用参考值
> 技能:(输出完整方案:成本分析 → 推荐定价区间 → 三档套餐表 → 利润模拟 → 合规校验) - 注意事项:成本数据越准确,定价建议越可靠;不确定的项目可使用行业参考值
功能2:单课时成本计算
只算成本,看每小时课的真实成本是多少。
- 触发方式:用户输入"算算成本""单课时成本""成本多少""我这多少钱一节课"等
- 操作示例:
> 用户:帮我算一下单课时成本,月租10000,老师30000,4间教室每天6节课
> 技能:好的,根据您提供的数据:
> 月可供给课时 = 4 × 6 × 26 × 4 = 2496 课时
> 单课时成本(不同满班率):
> · 满班率 50%:78 元/课时
> · 满班率 70%:56 元/课时
> · 满班率100%:39 元/课时
> ⚠️ 师资成本占比偏高(58%),建议关注课酬效率 - 注意事项:需要提供月度总成本和供给能力(教室数、日排课、营业天数、班容量)
功能3:合规校验
检查某个套餐是否违反预收费监管红线。
- 触发方式:用户输入"合规吗""违规吗""能不能收""5000元""预收费"等
- 操作示例:
> 用户:我设计了一个8000元100课时的套餐,合规吗?
> 技能:🚫 不合规。该套餐违反了两条监管红线:
> · 金额超标:8000元 > 5000元上限(国办发〔2018〕80号)
> · 课时超标:100节 > 60节上限
> 拆分建议:建议拆分为2个50课时套餐,每份约4000元,分别合规。 - 注意事项:三条红线为单次预收费≤5000元、≤60课时、≤3个月,任一超标即判定不合规
功能4:会员卡定价
设计月卡/季卡/年卡等会员制方案。
- 触发方式:用户输入"会员卡""月卡""年卡""季卡"等
- 操作示例:
> 用户:帮我设计一个月卡,每周2次课
> 技能:好的,月卡定价方案:
> 覆盖周期:1 个月
> 月上课频次:8.66 次
> 保本价:486 元
> 推荐价:720 元(毛利率 33%)
> 权益建议:每月8次课 + 免费补课2次 + 优先约课
> ✅ 合规(周期1个月 ≤ 3个月上限) - 注意事项:超过3个月的会员卡会触发合规预警,建议拆分为季卡
功能5:利润模拟与盈亏平衡
模拟不同招生规模下的利润情况,找到盈亏平衡点。
- 触发方式:用户输入"能赚多少""利润""回本""盈亏平衡"等
- 操作示例:
> 用户:按120元/课时,招50人,能赚多少?
> 技能:利润模拟(招生50人):
> · 月营收:103,920 元
> · 月成本:51,000 元
> · 月净利:52,920 元(净利率 50.9%)
> 盈亏平衡:至少需要 70 人才能不亏
> ⚠️ 当前50人未达盈亏平衡,建议提升满班率或调整定价
> 满班率敏感性:(展示40%-100%各档位利润表) - 注意事项:利润模拟基于当前成本结构,实际运营还需考虑退费、折扣等因素
数据说明
本 Skill 不依赖外部数据表,所有计算基于用户对话输入的参数和内置的行业基准数据。
内置参考数据文件(位于 references/ 目录):
| 文件 | 内容 | 用途 |
|---|---|---|
industry-benchmarks.md |
成本占比基准、满班率行业均值、获客成本参考 | 用户不确定成本时提供参考值,诊断成本健康度 |
compliance-rules.md |
5000元/60课时/3个月监管红线 + 拆分规则 | 合规校验与法规依据引用 |
pricing-formulas.md |
7大类定价公式(成本/定价/套餐/利润/会员/促销/转介绍) | 解释计算逻辑 |
regional-prices.md |
一二三线城市 × 10种课程参考价 | 竞品对标时提供默认参考价 |
计算引擎(位于 scripts/pricing_engine.py):
所有数值计算由 Python 脚本执行,支持 7 种计算模式(cost_analysis / pricing_engine / package_design / profit_simulation / membership_pricing / compliance_check / full_pricing),输入输出均为 JSON 格式。
常见问题
Q: 我不知道具体成本怎么办?
A: 每项成本都有行业参考值,直接说"用参考值"即可。Skill 会根据您所在的城市等级和机构规模给出合理默认值。
Q: 计算结果和我的实际情况差距较大怎么办?
A: 定价建议基于您输入的成本数据,数据越准确结果越可靠。建议先用真实数据做一次成本分析,确认成本结构合理后再做定价。
Q: 套餐被拦截了怎么办?
A: 被拦截说明套餐违反了预收费监管红线(>5000元或>60课时或>3个月)。Skill 会自动给出拆分建议,将大套餐拆为多个合规小套餐。
Q: 可以自定义套餐课时数吗?
A: 可以。在套餐生成后告诉 Skill 您想要的课时数,例如"标准包改到30课时",会重新计算。
Q: 支持哪些课程类型?
A: 覆盖 K12 课外辅导、才艺兴趣班(钢琴/美术/书法/舞蹈等)、语言培训、编程、学科辅导、声乐、围棋等 10+ 种课程类型。不在列表中的课程可手动输入。
Q: 会员卡超过3个月会怎样?
A: 超过3个月的会员卡会触发合规预警,Skill 会建议拆分为多个季卡。例如年卡建议拆为4个季卡。
Q: 定价结果可以作为最终收费标准吗?
A: 定价建议仅供参考。实际定价还需考虑品牌定位、当地竞争、家长承受力等因素。建议将 Skill 输出作为定价决策的起点而非终点。
技能指令(开发者参考)
> 以下为 AI 执行指令,用户无需关注。
资源文件说明
| 文件 | 用途 | 加载时机 |
|---|---|---|
scripts/pricing_engine.py |
定价计算引擎,所有数值计算由此脚本执行 | 需要计算时执行 |
references/industry-benchmarks.md |
行业基准数据(成本占比、满班率、获客成本等) | 需要提供默认值或诊断成本健康度时加载 |
references/compliance-rules.md |
合规规则库(5000元/60课时/3个月红线) | 需要合规校验或解释监管要求时加载 |
references/pricing-formulas.md |
定价公式与方法论详解 | 需要解释计算逻辑时加载 |
references/regional-prices.md |
区域参考价库(一二三线城市分赛道参考价) | 需要竞品对标但用户未提供竞品价格时加载 |
意图识别与路由
根据用户输入识别意图,路由到对应处理流程:
| 用户意图 | 触发关键词 | 路由 | 处理流程 |
|---|---|---|---|
| 完整定价 | "设计套餐""课时包方案""帮我定价""课程怎么收费" | 端到端流程 | 流程A |
| 算成本 | "算算成本""单课时成本""成本多少""我这多少钱一节课" | 成本分析 | 流程B |
| 出定价 | "怎么定价""定多少钱""价格多少""课时单价" | 定价引擎 | 流程C |
| 查合规 | "合规吗""违规吗""能不能收""5000元""预收费" | 合规校验 | 流程D |
| 做会员卡 | "会员卡""月卡""年卡""季卡" | 会员定价 | 流程E |
| 算利润 | "能赚多少""利润""回本""盈亏平衡" | 利润模拟 | 流程F |
| 做促销 | "打折""优惠""活动""促销" | 促销定价 | 流程G |
流程A:端到端完整定价流程
这是最核心的流程,覆盖从成本分析到利润模拟的完整链路。
步骤 1:确认基本信息
向用户确认以下信息(逐项询问,每项给出行业参考值):
- 城市等级:一线/二线/三线(影响参考价)
- 课程类型:钢琴/美术/书法/舞蹈/英语/编程/学科辅导/声乐/围棋/其他
- 授课形式:一对一/小班(几人班)
- 单课时长:45/60/90 分钟
- 每周课次:1/2/3 次
> 如用户未明确,根据课程类型给出合理默认值并确认。
步骤 2:引导成本录入
逐项引导用户录入月度成本,每项给出行业参考值(加载 references/industry-benchmarks.md 获取参考值):
【月度成本】(可报总数或逐项告知)
- 月租金:?(参考值:二线城市200㎡约10000-16000元)
- 师资薪资(含兼职课酬):?(参考值:4间教室约30000-50000元)
- 水电物业:?(参考值:约2000-3500元)
- 教材耗材:?(参考值:约1000-2500元)
- 营销费用:?(参考值:约3000-8000元)
- 行政及其他:?(参考值:约2000-4000元)
然后确认供给能力:
- 教室数量:?
- 每间教室每天排几节课:?(通常4-8节)
- 每月营业多少天:?(通常22-26天)
- 班容量(一班最多几人):?(一对一=1)
步骤 3:执行成本分析
运行计算引擎:
python scripts/pricing_engine.py --action cost_analysis --input '{
"cost": {
"monthly_rent": <用户输入>,
"teacher_salary": <用户输入>,
"utilities": <用户输入>,
"materials": <用户输入>,
"marketing": <用户输入>,
"admin": <用户输入>,
"other": <用户输入或0>
},
"capacity": {
"classrooms": <用户输入>,
"daily_sessions": <用户输入>,
"business_days": <用户输入>,
"class_size": <用户输入>
}
}'
输出格式(向用户展示):
┌────────────────────────────────────────────┐
│ 供给能力分析 │
│ 月可供给课时 = {classrooms} × {daily_sessions} × {business_days} × {class_size} = {total} 课时 │
│ │
│ 单课时成本(不同满班率): │
│ · 满班率 50%:{cost_50} 元/课时 │
│ · 满班率 70%:{cost_70} 元/课时 │
│ · 满班率100%:{cost_100} 元/课时 │
│ │
│ ⚠️ 成本结构诊断: │
│ {逐项列出健康/偏高/危险状态} │
└────────────────────────────────────────────┘
步骤 4:执行定价计算
运行计算引擎(含竞品数据时传入,无竞品时使用区域参考价):
python scripts/pricing_engine.py --action pricing_engine --input '{
"cost": {<同上>},
"capacity": {<同上>},
"course": {
"course_type": "<课程类型>",
"teaching_form": "<授课形式>",
"session_duration": <时长>,
"class_capacity": <班容量>,
"weekly_sessions": <每周课次>,
"value_type": "<价值类型>"
},
"city_tier": "<城市等级>",
"competitors": [<竞品数据,如有>]
}'
> 价值类型确认:询问用户课程的主要目标(考级导向/升学提分/技能速成/兴趣培养/竞赛集训),默认"兴趣培养"。
输出格式:
┌──────────────────────────────────────────────────────────┐
│ 推荐定价区间 │
│ · 最低价(成本加成2.5x):{min} 元/课时 ── {定位说明} │
│ · 推荐价(三模型融合):{recommended} 元/课时 ── {定位说明} │
│ · 最高价(成本加成4.0x/竞品+10%):{max} 元/课时 ── {定位说明}│
│ │
│ 预估毛利率:{margin}% │
│ 定价理由:{融合说明} │
│ {风险提示,如有} │
└──────────────────────────────────────────────────────────┘
步骤 5:生成套餐方案
运行计算引擎:
python scripts/pricing_engine.py --action package_design --input '{
"recommended_price": <步骤4的推荐价>,
"weekly_sessions": <每周课次>
}'
输出格式:
按 {recommended_price} 元/课时为您生成三档套餐:
| 档位 | 课时 | 总价 | 单价 | 折扣 | 节省 | 适用人群 | 合规 |
|---------|------|----------|---------|--------|----------|-------------------|--------|
| 体验包 | 6 | {price} | {unit} | 原价 | - | 新客户引流体验 | ✅通过 |
| 标准包 | 20 | {price} | {unit} | 9.0折 | {save} | 主力套餐·利润最优 | ✅通过 |
| 尊享包 | 44 | {price} | {unit} | 8.5折 | {save} | 长期学员锁定 | {状态} |
{如有违规套餐:⚠️ 已拦截,展示拆分建议}
{如有预警套餐:⚠️ 预警,展示拆分建议}
💡 优化建议:
1. 标准包为利润最优档位,建议主推
2. 体验包可设为引流价,不追求利润,重点在转化
3. 尊享包适合锁定长期学员
步骤 6:利润模拟
询问预估招生人数(和初期投入,如用户想看回本周期),运行:
python scripts/pricing_engine.py --action profit_simulation --input '{
"cost": {<同上>},
"capacity": {<同上>},
"unit_price": <推荐价>,
"enrollment": <预估招生>,
"weekly_sessions": <每周课次>,
"initial_investment": <初期投入或0>
}'
输出格式:
利润模拟(招生 {n} 人,满班率 70%):
· 月营收:{revenue} 元
· 月成本:{cost} 元
· 月毛利:{gross} 元(毛利率 {gm}%)
· 月净利:{net} 元(净利率 {nm}%){⚠️ 亏损提示}
盈亏平衡分析:
· 至少招 {break_even} 人才能不亏
· 当前预估 {n} 人,{达标/未达标}
满班率敏感性:
| 满班率 | 招生数 | 月营收 | 月净利 | 净利率 |
|--------|--------|-----------|-----------|---------|
| 40% | {n} | {revenue} | {profit} | {nm}% |
| 50% | ... | ... | ... | ... |
| 60% | ... | ... | ... | ... |
| 70% | ... | ... | ... | ... |
| 80% | ... | ... | ... | ... |
| 90% | ... | ... | ... | ... |
| 100% | ... | ... | ... | ... |
{回本周期,如提供了初期投入:回本周期约 {months} 个月}
💡 优化建议:{根据利润情况给出建议}
💡 除预收费模式外,也可考虑"先学后付"模式:
· 按月收费:每月 {monthly_fee} 元,无预收合规风险
· 适合新机构或信任建设期使用
步骤 7:后续交互
套餐生成后,用户可能要求:
- 调整套餐:"标准包改到30课时" → 重新运行 package_design,传入 custom_tiers
- 加会员卡:"再帮我设计一个月卡" → 进入流程E
- 调价重算:"按150元/课时重新算" → 用新价格重新运行 package_design + profit_simulation
- 查合规:"这个尊享包合规吗" → 进入流程D
- 做促销:"做个早鸟优惠" → 进入流程G
流程B:成本分析
当用户只想算成本时:
- 引导录入成本和供给能力(同流程A步骤2)
- 运行
cost_analysis并输出结果(同流程A步骤3) - 主动建议:"成本已算好,需要我基于此设计套餐方案吗?"
流程C:定价引擎
当用户已有成本数据、只想出定价时:
- 确认是否已有成本数据(本会话之前是否算过)
- 如无,先引导成本录入
- 确认课程信息和竞品数据(可选)
- 运行
pricing_engine并输出定价区间 - 主动建议:"定价已出,需要我生成套餐方案吗?"
流程D:合规校验
当用户想查某个套餐是否合规时:
- 确认套餐信息(总价、课时数、每周课次)
- 运行
compliance_check:
python scripts/pricing_engine.py --action compliance_check --input '{
"total_price": <总价>,
"sessions": <课时数>,
"weekly_sessions": <每周课次>
}'
-
输出合规结果:
- 通过 → ✅ 合规
- 预警 → ⚠️ 接近红线,建议拆分
- 违规 → 🚫 已拦截,展示拆分建议 -
加载
references/compliance-rules.md解释具体法规依据
流程E:会员卡定价
当用户想设计会员卡时:
- 确认课程信息(月上课频次/每周课次)
- 确认是否已有成本数据(复用或引导录入)
- 运行
membership_pricing:
python scripts/pricing_engine.py --action membership_pricing --input '{
"per_cost_70": <单课时成本_70%满班率>,
"weekly_sessions": <每周课次>,
"card_type": "<月卡/季卡/半年卡/年卡>"
}'
- 输出会员卡方案:
┌──────────────────────────────────────────────┐
│ {card_type} 定价方案 │
│ 覆盖周期:{months} 个月 │
│ 月上课频次:{frequency} 次 │
│ │
│ 保本价:{break_even} 元 │
│ 推荐价:{recommended} 元(毛利率 {margin}%) │
│ 价格区间:{min} ~ {max} 元 │
│ │
│ 权益建议: │
│ · 课时包:每月 {n} 次课 │
│ · 免费补课:每月2次(预计使用率30%) │
│ · 优先约课 │
│ · 家长课堂:每月1次 │
│ 权益总成本:{cost} 元(占会员价 {ratio}%) │
│ │
│ {合规校验结果} │
│ {如超3个月:⚠️ 建议拆分为N个季卡} │
└──────────────────────────────────────────────┘
流程F:利润模拟
当用户想看利润分析时:
- 确认是否已有成本数据和定价(复用或引导录入)
- 确认预估招生人数
- 运行
profit_simulation并输出结果(同流程A步骤6格式)
流程G:促销定价
当用户想做促销活动时:
- 确认促销类型(早鸟/团购/新客体验/老带新/节日满减)
- 确认原价和折扣力度
- 计算促销价并校验是否低于成本价
- 估算促销对利润的影响
- 输出促销方案与风险提示
> 注:促销定价目前由 Skill 对话逻辑直接处理,不需要调用计算引擎。
对话设计原则
- 引导式而非表单式:像顾问一样逐项询问,不要一次性列出所有问题
- 每项给出参考值:用户不知道的数据,给出行业参考值并标注"参考值"
- 先算后议:先给出计算结果,再讨论调整方案
- 合规优先:任何套餐方案都必须经过合规校验,违规方案不输出
- 主动建议:基于计算结果主动给出优化建议(提价/降本/拆分套餐等)
- 简洁输出:使用表格和结构化格式,避免大段文字
- 中文交互:所有对话和输出使用简体中文
合规红线(硬性规则)
以下规则不可违反,任何输出方案都必须通过合规校验:
- 单次预收费 ≤ 5000 元(国办发〔2018〕80号)
- 预收费课时 ≤ 60 节(全国多地教育局2025公告)
- 预收费时间 ≤ 3 个月(全国多地教育局2025公告)
- 超出红线的套餐强制拦截,不向用户输出违规方案
- 接近红线(≥90%)时给出预警和拆分建议
- 每次输出套餐方案时附带先学后付模式提示
边界限制(V1 不做的事)
- 不做在线收款(只输出定价方案)
- 不做排课管理(只估算课时供给能力)
- 不做学员管理/CRM
- 不自动抓取竞品价格(需用户手动录入)
- 不做财务记账/税务计算
- 不做多门店管理(仅支持单门店)
- 定价建议仅供参考,招生效果受多因素影响
计算引擎使用说明
scripts/pricing_engine.py 是所有数值计算的核心引擎,支持以下 action:
| action | 用途 | 关键输入参数 |
|---|---|---|
cost_analysis |
成本分析 | cost, capacity |
pricing_engine |
定价引擎 | cost, capacity, course, city_tier, competitors |
package_design |
套餐设计 | recommended_price, weekly_sessions |
profit_simulation |
利润模拟 | cost, capacity, unit_price, enrollment |
membership_pricing |
会员定价 | per_cost_70, weekly_sessions, card_type |
compliance_check |
合规校验 | total_price, sessions, weekly_sessions |
full_pricing |
端到端完整流程 | 所有参数 |
执行方式:
python scripts/pricing_engine.py --action <action> --input '<JSON>'
输出为 JSON 格式,解析后按上述输出模板格式化展示给用户。
重要:所有数值计算必须通过此脚本执行,不要在对话中手动计算,以确保结果准确可测。