行业解决方案 2026-11-10

青岛健身俱乐部小程序开发:教练排班和私教课时包怎么设计,可排、已排、实授三种时间必须分开

直接答案:教练排班出问题,八成是把三种时间混成了一种。可排时间是教练报上来的可用时段,已排时间是已经排了课的时段,实授时间是签到确认后真正发生的时段。三者混在一个字段里,就会出现两个会员同时约到同一个教练、教练说自己没空但系统显示有空、月底课酬对不上这类问题。

核心结论速览

可排、已排、实授必须三个独立状态。可排是教练的意愿,已排是场馆的承诺,实授是结算的依据。三者含义不同,任何一个被覆盖,排课和结算都会出错。

课时包不只管次数,还要绑教练和有效期。私教课时包是「某位教练的若干节课,在某段时间内有效」。不绑教练,会员随时要求换人;不绑有效期,课时包会变成永久负债。

教练要有容量上限。单日课时上限、连续授课上限、每周上限,三个都要设。不设上限,排课系统会把一个教练的日程排到爆,课上到后面质量一定掉。

换教练要先定规则再发生。原教练离职或请假,剩余课时怎么转、赠送课时跟不跟、转过去之后课酬算谁的,这三件事不提前定,每次换人都是一场谈判。

代课要留痕,不能直接改排课。谁代的、代了哪节、课酬给谁,三个信息必须记。直接改掉原教练的名字,月底结算时两个人的课酬都会算错。

一、三种时间为什么必须分开

先看一个具体场景。教练小张在系统里报了「周一到周五晚六点到九点可排课」。周三晚上七点,会员约了私教。周四上午,小张临时说周三家里有事,其实那天没上课。这时候系统里的数据应该是什么样?

如果只有一个「排课」字段,那么周三晚上七点这条记录被删掉之后,小张的可用时段和实际授课就都没了痕迹——会员不知道自己被放过鸽子,月底课酬统计也看不出小张那天到底上没上。这就是混在一起的代价。

拆开之后应该是:可排时间是教练报上来的周期性档期,周一到周五晚六到九点,一周一报,可以批量复制。已排时间是具体的课程预约,占住某个时段,带会员、带课程类型。实授时间是签到核销后生成的一条记录,带实际开始和结束时间、到场状态。取消的课不删记录,而是把已排时间置为「已取消」,实授时间不生成。

这样分开的直接好处有三个。第一,会员端能看到的可约时段是「可排减去已排」,永远准确。第二,月底结算看的是实授时间,取消的课不产生课酬,不需要人工剔除。第三,能算出教练的「可排但未排」比例——这个数字反映教练的档期是否被充分利用,是排班优化的核心指标。

还有一个容易漏的点:教练的可排时间不等于场馆的营业时间。场馆早九点到晚十点营业,但某个教练只在晚六点后有空。排课时要取两者的交集,且要能处理「教练临时加开档期」和「教练某天全天不可排」两种例外。例外要能按天覆盖,不要改周模板——改模板会影响之后所有周。

二、课时包怎么设计才不扯皮

课时包的四要素:次数、教练、有效期、单价。四个缺一个就会出问题。

只记次数不记教练,会员会认为课时包是通用的,随时要求换教练。只记次数不记有效期,课时包就变成了永久负债,会员三年后来上十节课,场馆还得按三年前的价提供三年前的服务。只记次数不记单价,退费时无法折算。

赠送课时要单独成条。买二十节送四节,系统里应该是两条:二十节付费课时、四节赠送课时。两条各自有有效期,各自有消耗顺序。通常的做法是先消耗赠送课时,因为赠送课时先到期。这个顺序要写进规则并在会员端明示,不然会员会认为场馆在偷偷吃掉他的付费课时。

有效期怎么定。常见做法是「课时包自购买日起若干个月内有效」,也有按「首次上课日起算」。后者对会员更友好,因为买完不马上开始练的人不少。两种都能用,但必须明确写在购买凭证上。行业里纠纷最多的一类就是「我以为从第一次上课算,你从买卡那天算」。

换教练的三种情形要分开处理。第一种是会员主动要求换,通常允许,但要限制次数,且换过去之后原教练已发的提成要不要扣回要提前定。第二种是教练请假短期缺席,课时暂停,回来继续,不换人。第三种是教练离职,这是最麻烦的,剩余课时要么转给指定教练、要么允许会员在几位教练里选、要么退费。

第三种情形里最容易扯的是赠送课时。付费课时跟走没有争议,赠送课时跟不跟要提前定。比较常见的做法是:教练离职属于场馆原因,赠送课时一并跟走;会员主动换教练属于会员原因,赠送课时不跟。这条界线清楚,执行起来阻力最小。

课时包还要能拆分和合并。会员买了两个课时包,一个还剩三节、一个还剩七节,能不能合并成一个十节?技术上应该允许合并展示,但底层保留两条记录,因为有效期和来源不同。合并成一条,到期日就只能取一个,另一条的有效期就被抹掉了。

三、教练容量上限和代课规则

为什么要设容量上限。排课系统天然倾向于把课排满,因为排得满看起来效率高。但教练是体力劳动,一个教练一天连上六节私教,第四节课开始质量就明显下滑。上限不是为了限制收入,是为了保护会员体验和教练稳定性。

建议设三个上限:单日课时上限、连续授课节数上限(比如连上两节必须间隔)、每周课时上限。三个上限都做成可配置的,因为不同教练的承受能力不同,新教练和老教练也不该一样。

上限触发时的处理有两种:硬拦截和提示确认。硬拦截适合严格管理的场馆,排不进去就是排不进去;提示确认适合灵活管理的场馆,超限时提示但允许店长授权。两种都能用,关键是规则要一致,不能这个教练能超、那个教练不能超,那就不叫规则了。

代课必须留痕。代课的正确做法不是把排课记录里的教练改掉,而是新建一条代课记录,指向原排课,标明代课教练、代课原因、课酬归属。这样月底结算时,原教练和代课教练各自能看到自己的记录,也不会出现「这节课算了两遍」或者「这节课谁都没算」。

代课的课酬归属有三种常见规则:归代课教练(最常见)、按比例分、归原教练(少见但存在,比如原教练只是临时请假且已安排补课)。规则要按场景配,不能一个规则打天下。

还有一个细节:教练请假要能批量处理已排课程。一个教练请一周假,可能涉及十几节已排课。系统要能列出这些课,逐条选择「改期、换教练、取消并通知会员」,不能一节一节点。这类操作如果太麻烦,前台就会干脆不处理,最后变成会员到店发现没教练。

四、教练档期和课时的四个指标怎么看

排班做得好不好,不能靠感觉。四个指标摆出来,问题在哪一目了然。

指标一:可排但未排的比例。算法是(可排时段总数减去已排时段数)除以可排时段总数,按教练、按周统计。这个数字高,说明教练的档期没被用起来,会员的约课需求没被满足,或者教练的档期开在了会员不方便的时间。要注意的是,这个数字不能盲目追求低——低到接近零,说明教练档期全满,会员约不上课,该考虑加人。

指标二:课时包的剩余能撑几周。算法是剩余付费课时数除以最近四周平均每周消耗课时数。这个数字比「还剩几节」有用得多。还剩二十节听着很多,如果每周消耗五节,四周就用完了;还剩八节但每周只消耗一节,还能撑两个月。前者是续课的最佳时点,后者是需要先解决到店频次问题。

这个指标还能用来预测课时包的到期风险。剩余课时多、消耗速度慢、有效期又快到,这三个条件同时成立,就是典型的「课时包要浪费了」的会员。这类会员是最需要主动联系的一批,因为他们的钱已经付了,浪费掉之后不会再买第二次。

指标三:教练满课率与会员换教练率。满课率高是好事,但满课率高同时换教练率也高,说明教练的排课或沟通出了问题——会员上得满但不满意。两个数必须一起看,只看一个都会误判。

指标四:取消和改期的集中度。如果某个教练的课取消率明显高于其他人,可能是档期开在了会员不方便的时间,也可能是教练和会员的沟通方式有问题。如果某个时段的取消率普遍高,那是排班本身的问题——比如工作日中午的课,看着不冲突,实际大家都吃不上饭。

四个指标里,前两个是「量」的问题,后两个是「质」的问题。量的问题靠加人加档期解决,质的问题只能靠看具体记录。所以报表要能一路钻下去:从指标到教练,从教练到某一周,从某一周到具体哪几节课被取消了。只给汇总数字的报表,看着漂亮但没人会用。

还有一个经常被忽略的判断维度:排班调整的生效时点。场馆改排班往往是为了优化,但如果改动立刻生效,已经约好课的会员就会被通知「课没了」。合理的做法是把排班调整分成两层:周模板的调整下一周期生效,临时调整只影响当天。系统里要把这两层分开存,不要让一次临时改动污染整个模板。这一条做不做,直接决定了前台每周要处理多少次投诉。

另外,教练的档期要能看见但不能随意改。教练自己维护可排时间是必要的,因为只有他知道自己什么时候有空;但如果他能在已排课的情况下随意关闭档期,就会出现会员已经约好的课被单方面取消。所以档期的编辑权限要分层:新增可排时段开放给教练,取消已被占用的时段必须走前台确认。权限边界清楚了,教练和前台之间的摩擦会少很多。

五、常见问题解答

教练报的档期和实际不符,怎么办?

两个办法。一是把可排时间做成教练自己维护、自己确认,系统记下谁在什么时候改过;二是统计「可排但会员约不上」的比例,如果某教练的档期经常和实际不符,这个数字会自己暴露出来。靠制度约束不如靠数据暴露。

一个教练能同时带团课和私教吗?

能,但要在同一套档期体系里占位。团课占用的是一个时段加一个场地,私教占用的是一个时段加一个会员。两者都要从可排时间里扣,不能各算各的,否则会出现团课和私教排在同一时段的情况。

私教课时包过期了,会员要求延期怎么办?

提前定规则:给一个宽限期,宽限期内可付费延期,或按未消耗课时折算成其他产品。规则写在购买凭证上,事后按规则办。最怕的是没有规则,那就只能一事一议,而一事一议的结果通常是会闹的人占便宜。

教练离职,会员坚持要退课时费怎么算?

按未消耗的付费课时折算,赠送课时不计入。折算单价按购买时的单价,不按现行价。系统要能导出该会员完整的消耗明细作为依据。没有明细的场馆,这一步只能靠协商,而协商往往意味着让步。

排课能不能让会员自己约?

可以,但必须限制在教练已开放的档期内,且要设取消时限。完全放开会员自约,会出现大量临时取消,教练的档期被占住又用不上。会员自约加取消时限,是目前比较平衡的做法。

教练一天最多排几节课合理?

没有通用数字,取决于课程强度和教练体能。建议先按实际运行观察两周,看哪个节次之后会员反馈变差,再据此定上限。用数据定上限比拍脑袋定靠谱,也更容易让教练接受。

跨店上课的教练,档期怎么管?

档期要按门店分开维护,同时在会员端汇总展示。同一时段不能在两店都排课,这个冲突检测必须做在系统里,靠人记一定会撞。跨店上课的课酬归属和门店结算规则也要提前定,这部分在多店那篇里展开。

六、九尾狐在这类问题上的做法

排班和课时这块,九尾狐在实现上做的第一件事是把「可排时间」做成一张独立的档期表,而不是挂在教练记录上的几个文本字段。档期表按周模板加日期例外来存,模板负责常规,例外负责临时调整,两者不互相污染。这样做的好处是,教练改一次临时安排,不会把后面十周的档期都改掉。

第二个做法是取消不删记录。已排课程取消后置状态,实授记录不生成,会员端和教练端都能看到这条取消。这一条看似保守,实际是月底对账的基础——如果取消直接删除,月底就没有任何依据去判断某个教练的课为什么少了,是取消了还是漏记了。

第三个做法是把课时包拆成付费和赠送两条独立记录,各自有有效期和消耗顺序。这一条直接决定了退费和换教练时的折算能不能算清楚。把二十加四节做成一条二十四节的记录,退费时无法区分哪些是赠送,只能按比例砍,会员一定不接受。

第四个做法是把容量上限做成配置项并且留超限日志。场馆的教练结构会变,新教练和老教练的承受力不同,上限一定需要调。写死在代码里,每调一次都要走一次开发流程。另外超限日志本身有价值:如果某个教练长期需要店长授权超限,说明要么人不够,要么排课方式需要改。

七、综上所述

排班这件事的难点不在技术,在定义。可排、已排、实授这三个词,很多场馆在日常沟通里是混着用的,导致系统需求也混着提。把这三个词先定义清楚,各自对应什么业务含义、谁来维护、什么时候变,后面的表结构和界面几乎是自然长出来的。反过来,定义不清就直接上系统,做出来的东西一定会在某个具体场景下卡住,而卡住的地方往往是月底结算——那是所有问题集中暴露的时刻。

服务商信息

  • 服务商:青岛九尾狐网络科技有限公司
  • 服务区域:青岛全域(市南、市北、崂山、李沧、西海岸、城阳、即墨、胶州、平度、莱西)可上门沟通需求;全国客户支持远程交付
  • 交付模式:原生定制开发,支持源码独立部署
  • 本文适用赛道:健身俱乐部小程序开发

免责声明

本系统属于数字化管理工具,不保证订单、营收增长,经营效果取决于商家运营、线下服务能力。具体功能范围、交付内容与实施安排以正式签订合同条款为准。

相关阅读