你不是在賣球場,你是在當「收銀機 + 保險箱」。
每一筆錢都先進到你這裡 → 你當下就把該分給誰記清楚(你的那一刀在這時候切好)→
但錢不會馬上發出去,會被鎖著 → 服務真的發生了(課上完、比賽打完)才解鎖 →
每個月 15 號統一撥給教練和場館。
所以你的帳戶裡永遠有一大筆「不是你的錢」——那是你在替別人保管的。看懂這件事,就看懂整個生意了。
0先看這一張:全部金流長什麼樣
四條錢的來源 → 全部先進你的保險箱(你在這裡抽成)→ 服務完成後撥出去。
來源 2
課包 / 月卡
一次預收一大筆
你抽 10%
來源 4
練習賽入場費
現場現金,不經過保險箱,直接進場館口袋。系統只幫忙算人數、開單、記帳。
你抽 0%
你 · 平台
保險箱:錢先鎖在這裡
收到錢的當下就分好三份(教練/場館/你),但全部先鎖住。
鎖住期間這筆錢隨時可能要退給客人,不能當成收入。
鎖住 held服務完成 → 可撥
留在你這
你的收入
不用撥出去,解鎖即認列
這才是你賺的
一句話:你的營收 =(教練課 + 課包月卡)× 10% + 賽事報名費 × 5%。
其他都是別人的錢,你只是幫忙保管和分配——但也正因為錢都經過你,這門生意才有護城河。
①先記住三個顏色:錢的三種狀態
整份文件所有卡片左邊的顏色條,講的都是同一件事:這一刻,這筆錢處在什麼狀態。
鎖住 held
錢收到了,但服務還沒發生。這筆錢既不是你的、也還不是教練的——你只是保管人。學生這時候反悔,錢要退得出去。
可撥 releasable
服務完成了(那堂課點名銷掉、那場賽事標完賽),這筆錢確定是誰的了,只是還沒到發薪日。對你來說=負債確定。
已撥 paid
錢已經匯出去、離開平台。從這一刻起退不回來了——之後要退款只能請對方自己處理。
我的錢
平台抽成那一份。它跟其他兩份走同一條路(一樣先鎖、一樣要解鎖),只是不用撥出去,解鎖後直接算你的收入。
為什麼要先鎖住?因為「收到錢」不等於「賺到錢」。教練 8 月的課你 7 月就收了 2,000 元,
那 2,000 元在課上完之前都是你欠學生的。鎖住的設計讓「教練把 12 月的課全部點名銷掉、先把錢領走」變成不可能——
程式碼裡有一道閘門:課還沒開始就不准銷課。
②故事一:教練開一期課,2,000 元怎麼跑
情境:教練開一期 4 堂課、每堂 500 元,學員小明報名,總價 NT$2,000。
下面每一張卡片是一個動作,跟著線走一遍就懂了。
學員
小明按「報名」
系統開一張待付款單(2,000 元)。此時還沒有任何錢移動。
待付款 pending
場地費不向學員收——學員只付教練的鐘點,場地那份是從裡面拆的。
綠界金流
小明刷卡付款
2,000 元進到平台的收單帳戶。綠界回頭打你的 webhook,並驗簽章確認是真的付款。
平台收到 2,000
系統 · 這一步最重要
當場切三刀,逐堂記帳
系統立刻把 2,000 元按每一堂拆開、再按比例分三份記進帳本。
4 堂 × 每堂 500 → 每堂:教練 375 / 場館 75 / 你 50。
教練 1,500 鎖住
場館 300 鎖住
你 200 鎖住
比例是建課當下釘住的快照(平台 10%、場館 15%)。之後你調整全站費率,不會影響已經開好的課——這是刻意的,避免事後改價吵架。
教練(或櫃檯代按)
上完第 1 堂 → 點名銷課
那一堂的三份錢從「鎖住」翻成「可撥」。第 2、3、4 堂還是鎖著。
同時這堂的場地費會整堂記一筆:場館 +場地費 / 教練 −場地費。
教練 375 可撥
場館 75 可撥
你 50 入袋
⚠️ 閘門:課還沒開始不准銷。這道門就是在防「一次把整季課銷掉套現」。
重複 4 次
四堂全上完
2,000 元全部從鎖住變成可撥。你的 200 元這時已經全部是你的收入了。
全數可撥
你(平台後台)
次月 15 號跑撥款批
把上個月完課的「可撥」全部撈出來,教練一批、場館一批。你的那份不開批,直接標已入帳。
教練 1,500 撥出場館 300 撥出
場館
館方按「確認入戶」
館方在自己的 App 上確認錢到帳了,系統在館方帳本記一筆銀行收入。這一步是對帳閉環,避免「我沒收到」的爭議。
結案
白話總結:一期課 2,000 元,你賺 200 元(10%),但這 200 元不是報名當下賺到的,是
一堂一堂上完才一點一點變成你的。教練拿 1,500、場館拿 300(場地費另外從教練那份扣給場館)。
③故事二:課包/月卡(預收款——最好賺,也最危險)
教練可以賣「10 堂課包」或「月卡」。學員一次付一大筆,之後慢慢用。
學員
買一張 10 堂課包
一次付清。課包有效期 180 天(6 個月),可以轉讓給別人。
平台收到全額
系統
10 堂 = 切成 10 組,全部鎖住
每一堂各自一組(教練/場館/你)的鎖住分錄。用掉一堂,才放行一組——跟單堂課同一套哲學。
10 組全鎖
系統 · 月卡走另一條
月卡=整筆直接可撥
月卡是「30 天內單堂無限」,賣的是時間不是堂數,所以月費一收就認列,不等銷課。
立即可撥
學員
報名單堂課時選「用課包折抵」
剩餘堂數 −1,同時放行最小的一組鎖住分錄。折抵失敗的話,那筆報名會自動退掉,不會卡住。
放行一組
⚠️ 這條線是負債,不是收入。賣出 10 堂課包收到的錢,有 9 堂是「你欠學生的服務」。
程式碼裡已經押了一道線:單張課包售價上限 NT$5,000(前端 Gate + 資料庫 check 雙重擋)。
超過這個金額在台灣就會踩到履約保證/信託的線——這是刻意留的天花板,不是隨便設的。
④故事三:一場賽事的報名費 500 元
參賽隊伍
報名並繳費
金額由伺服器算(不是 App 傳來的)。如果賽事設定是「按人收費」,就自動 × 隊員人數。
同一隊重複按,會抓回原本那張單,不會開兩張。
單筆 500
系統
付款成功 → 切兩刀
賽事只有兩方:主辦場館和你。你抽 5%,其餘全給主辦館(餘數給館方,加起來一定等於總額)。
主辦館 475 鎖住
你 25 鎖住
變體
主辦要「提前撥款」→ 你抽 7%
主辦館想在比賽結束前就拿到錢,你等於先墊錢承擔風險,所以多抽 2%。
你 35主辦館 465
主辦
把賽事標成「完賽」
資料庫觸發器自動解鎖整場的錢,並記進帳本。
解鎖只有這一條路——App 不能直接呼叫解鎖函數(那個函數只有系統身分能執行,2026-07-20 補的洞)。
全數可撥
你
併入同一條撥款鏈
跟教練課走完全一樣的流程:次月 15 號撥款批 → 館方確認入戶。
撥出
⑤故事四:練習賽入場費(你一毛都沒抽)
這條線不經過你的帳戶,是現場現金。系統只幫忙算錢和記帳。
預約人
按「場次結束」
系統統計有上場打球的不重複人數(不是報名人數),算出應收金額。
8 人 × 100 = 800
系統
開一張收款單 + 發催繳通知
一場只會有一張單(資料庫唯一鍵擋重複)。有上場的每個人都收到「記得繳 100 元」的通知。
應收 800
館方櫃檯
收到剛好 / 收到不剛好
通常是預約人統一收現金再交給場館。櫃檯按其中一顆,短收要填原因。
館方現金收入
你的收入
0 元
這條線你完全沒抽成。它的價值是黏著度:場館用你的系統管錢管人,就不會換掉你。
抽成 0%
💡 這是目前最大的一塊未變現流量。要收的話最自然的做法是「線上代收入場費」——但那要先解決代收付的法遵問題。
⑥發薪日:錢什麼時候真的離開你
規則
上個月完成的服務 → 這個月 15 號撥
程式判斷:今天 15 號以後,才允許跑「上個月」那一期。15 號以前跑不出東西(回 null)。
你按下去
跑批 → 標已撥
教練一批、場館一批。標已撥的同時,批裡面每一筆分錄也要跟著翻成已撥。
⚠️ 這裡曾經有 bug:批標了已撥、底下的分錄沒翻 → 報表數字永遠對不起來。已修並列入病歷本。
對方
館方確認入戶
館方確認收到,才算真正閉環。你的後台會分出「已撥但對方還沒確認」這一桶——那不是欠款,但要盯。
⑦退款:誰吃這個虧?
這是整套金流最容易吵架的地方,規則已經寫死在資料庫裡:
| 誰要退 | 怎麼算 | 你的手續費 |
| 學員/隊伍自己反悔 |
只反轉場館那份,退回 95% |
照抽(你的 5% 留下) |
| 主辦或館方幫忙退(賽事取消等) |
全額退,你的抽成也一起反轉 |
吐回去(記一筆負分錄) |
| 錢已經撥出去了 |
系統不硬退,改列出退款名單,責任轉給主辦館自己處理 |
不動 |
| 課程未達最低人數 |
截止後 24 小時教練沒決策 → 系統自動逐筆退款、關課、通知 |
吐回去 |
| 已經上完的課(已可撥/已撥) |
不可退。只有還鎖著或可撥未撥的能反轉 |
— |
血淚教訓(真的發生過):曾經有一場賽事被刪掉,但報名費沒退,
9,500 元變成帳本上的幽靈——因為那筆錢只靠賽事這個關聯撈得到,賽事一刪就再也找不到了。
現在的做法是:刪除前先觸發全額退款,而且退款產生的負分錄一定要蓋上解鎖時間,
否則那筆負數永遠不會進撥款批(=你少收回來的錢永遠對不平)。
⑧我的收入總表:一眼看完
| 收入線 | 你抽多少 | 什麼時候變成你的 | 目前狀態 |
| 賽事報名費 | 5%(主辦選提前撥款 → 7%) | 主辦標「完賽」時解鎖 | 已上線 |
| 教練課(單堂/期課) | 10%(建課當下釘住快照) | 每堂點名銷課時,一堂一堂解鎖 | 已上線 |
| 課包(N 堂) | 10%(購買當下釘住) | 每用掉一堂解鎖一組 | 已上線 |
| 月卡 | 10% | 收款當下直接認列 | 已上線 |
| 練習賽入場費 | 0% | —(現金,不經過你) | 已上線 |
| 場地預約本身 | 0% | —(目前不收) | 已上線 |
※ 場館向教練抽的成數預設 15%,那是場館的收入不是你的,但一樣由你代為分帳與保管。
所以一堂 500 元的課,實際三方是:教練 375 / 場館 75 / 你 50。
你的「保險箱」該有多少錢
後台的撥款主控台會算這個數字,它是你資金保管的自證:
= 代管總額
三者相加
這筆錢不是你的,帳戶餘額不能低於它
目前資料庫實況(多為測試資料):鎖住 600 元(教練 375/場館 175/你 50)、
可撥 558 元、退款反轉 10,100 元;付款單方面,教練課已付 2 筆共 1,200 元,賽事報名費有 17 筆已退款共 73,100 元。
真實營收還沒開始跑——這份文件描述的是管線,不是業績。
⑨五個你一定要記得的地方
1. 撥出去就回不來
錢一旦標成「已撥」,系統就不再硬退。所以撥款前的確認才是最後一道防線。
2. 費率是快照,不是即時值
改全站費率只影響「之後新開的課」。想調價要接受舊課還照舊比例跑完。
3. 預收款是負債
課包/月卡收到的錢不是營收。單張上限 5,000 元就是為了不踩履約保證的線。
4. 費率永遠由伺服器決定
App 傳什麼金額、什麼比例都不算數,一律以資料庫當下蓋章的為準。這是防改價作弊的底線。
5. 銷課閘門不能拆
「課還沒開始不准銷課」這道門一旦拿掉,教練就能把整季預收款一次領走。