ราคาห้องที่ “ยิ่งขายยิ่งจน”: สร้าง Rate Floor Matrix กันโรงแรมขาดทุนเงียบๆ
ในตารางราคาของโรงแรมคุณ มีอยู่ตัวเลขหนึ่งที่ทุกครั้งที่ขายได้ คุณจนลง — และคนส่วนใหญ่ตั้งราคาขั้นต่ำจาก “คู่แข่งขายเท่าไหร่” ไม่ใช่จากต้นทุนตัวเอง บทความนี้พาหาตัวเลขนั้น แล้วสร้างเกราะกันมันใน Excel ทีละขั้น
Rate Floor Matrix คือตารางราคาขั้นต่ำที่ยอมรับได้ ของห้องแต่ละประเภท × แต่ละช่วง demand คำนวณจาก variable cost ต่อห้อง บวก contribution ขั้นต่ำ แล้วบวกกลับด้วย commission ของแต่ละ channel — ต่ำกว่าราคานี้ ห้องควรปล่อยว่างหรือเก็บไว้ใช้ upgrade ดีกว่าขายขาดทุน
ลองคิดเลขกับผมสักนาที
โรงแรม midscale ห้อง Standard ต้นทุนผันแปรต่อห้องที่ขายได้ (variable cost) อยู่ราว THB 450 — ค่าทำความสะอาด ผ้า แอเมนิตี้ อาหารเช้า ค่าน้ำค่าไฟส่วนเพิ่ม
คืนหนึ่ง pickup ช้า GM สั่งดันราคาลงไปขายบน Agoda ที่ THB 500 เพื่อ “เก็บ occupancy” Agoda กิน commission 17% → เงินเข้าจริง THB 415 ส่วนต้นทุนห้องนั้น THB 450
ขายห้องได้ แต่จนลง THB 35 — ทุกห้อง ทุกคืนที่ทำแบบนี้
บนรายงานเช้าวันรุ่งขึ้น occupancy ดูสวยขึ้น ทุกคนสบายใจ ไม่มีใครเห็นว่ากำลังจ่ายเงินให้แขกมาพัก
คำถามที่อยากให้ “เอ๊ะ” คือ — ราคาที่ต่ำกว่านี้แล้วคุณเริ่มขาดทุน ของห้องแต่ละประเภท แต่ละ channel คุณรู้ตัวเลขนั้นจริงๆ ไหม หรือเวลาตัดสินใจลดราคา คุณดูแค่ “คู่แข่งขายเท่าไหร่”?
ถ้ายังไม่มีตัวเลขนั้นเป็นเอกสารชัดๆ บทความนี้พาสร้าง — เครื่องมือชื่อ Rate Floor Matrix ตารางราคาขั้นต่ำที่ทำให้ทั้งทีมรู้ว่า “ต่ำกว่านี้ไม่ขาย” และรู้ด้วยว่า ทำไม
Rate Floor คืออะไร — และทำไม floor ของคนส่วนใหญ่ตั้งผิดที่
Rate floor คือ ราคาต่ำสุดที่ยอมรับได้ ของห้องแต่ละประเภท ในแต่ละช่วง demand — ต่ำกว่านี้ ห้องควรปล่อยว่างไว้ หรือเก็บไว้ใช้ upgrade ดีกว่าขายทิ้ง
ฟังดูตรงไปตรงมา แต่จุดที่พลาดกันบ่อยที่สุดคือ ตั้ง floor จากราคาคู่แข่ง
“คู่แข่งข้างๆ ขาย 1,200 เราขาย 1,100 ก็พอสู้แล้ว” — ฟังดูสมเหตุสมผล แต่มันแปลว่าคุณเอา floor ของตัวเองไปผูกกับ โครงสร้างต้นทุนของคนอื่น ที่คุณไม่มีทางรู้
คู่แข่งอาจเพิ่ง refinance หนี้ ดอกเบี้ยต่อห้องของเขาเลยต่ำกว่าคุณครึ่งหนึ่ง อาจซื้อผ้าปูล็อตใหญ่ได้ถูกกว่า อาจไม่มีอาหารเช้าในแพ็กเกจ ราคาที่ “เขาอยู่ได้” อาจเป็นราคาที่ “คุณขาดทุน” — และคุณจะไม่มีวันรู้ ถ้า floor ของคุณคัดลอกมาจากป้ายราคาของเขา
floor ที่เชื่อถือได้ต้องผูกกับต้นทุนของ คุณ มันมี 3 ชั้น:
- Cash floor — variable cost ต่อห้อง ต่ำกว่านี้คือจ่ายเงินสดสุทธิเพื่อให้แขกมาพัก
- Practical floor — variable cost บวก contribution ขั้นต่ำที่คุณยอมรับ (ห้องต้องเหลือเงินไปจ่าย fixed cost + กำไร ไม่ใช่แค่เท่าทุน)
- Channel-adjusted floor — practical floor บวกกลับด้วย commission ของแต่ละ channel เพราะเงินที่เข้ากระเป๋าจริงต่างกัน
แต่ที่หลายคนพลาดกว่านั้นคือ — floor ไม่ได้มีตัวเดียว มันเปลี่ยนตาม channel (Agoda กับ direct เก็บ commission ไม่เท่ากัน) และเปลี่ยนตามช่วง demand (low season weekday กับ peak event ยอมรับขั้นต่ำคนละระดับ) นั่นคือเหตุผลที่มันต้องเป็น matrix ไม่ใช่ตัวเลขเดียวแปะข้างฝา — และนั่นคือสิ่งที่เราจะลงมือสร้างกัน
สร้าง Rate Floor Matrix ใน Excel — 7 ขั้น
วางแถว = room types
แถวแนวตั้งคือห้องแต่ละประเภทที่คุณขาย — Standard, Superior, Deluxe, Suite หรือ 1BR / 2BR ถ้าเป็น serviced apartment จัดเรียงจากถูกสุดไปแพงสุด เพราะเดี๋ยวเราจะรักษา differential (ส่วนต่างราคา) ระหว่างห้องให้คงที่
วางคอลัมน์ = demand periods
คอลัมน์แนวนอนคือช่วง demand ไม่ใช่ “เดือน” แต่เป็นระดับความต้องการ × วันในสัปดาห์:
| ระดับ demand | นิยาม (อ้างอิง RevPAR เทียบค่าเฉลี่ยทั้งปี) |
|---|---|
| H — High | RevPAR > 125% ของค่าเฉลี่ยปี / วันที่ inventory ตึง |
| M — Medium | RevPAR 75–125% / demand ปกติ |
| L — Low | RevPAR 50–75% / demand อ่อน |
| D — Distressed | RevPAR < 50% / ต้องลงมือเชิงรุก |
แตกแต่ละระดับเป็น weekday / weekend แล้วเพิ่มคอลัมน์ Peak/Event สำหรับวันทองคำ (Songkran, Loy Krathong, long weekend, คอนเสิร์ตใหญ่, high season ที่ inventory เต็มทุกปี) ได้ประมาณ 6–8 คอลัมน์ ครอบคลุมทั้งปีโดยไม่ต้องทำ 365 ช่อง
หา variable cost ต่อห้องที่ขายได้ — หัวใจของทั้ง matrix
นี่คือขั้นที่คนข้ามบ่อยที่สุด และเป็นขั้นที่สร้างความต่างมากที่สุด variable cost = ต้นทุนที่เกิดขึ้น เฉพาะเมื่อมีแขกเข้าพักห้องนั้น (ห้องว่างไม่เกิด) แยกรายการให้เห็น เช่น ห้อง Standard รวมอาหารเช้า (ตัวอย่างประกอบ — ตัวเลขจริงขึ้นกับโรงแรมคุณ):
| รายการ | THB / ห้อง |
|---|---|
| ค่าแรง housekeeping ส่วนเพิ่ม | 120 |
| ผ้า + ซักรีด | 60 |
| แอเมนิตี้ + ของใช้สิ้นเปลือง | 45 |
| ต้นทุนอาหารเช้า (food cost) | 95 |
| ค่าน้ำค่าไฟส่วนเพิ่ม | 75 |
| น้ำดื่ม/กาแฟในห้อง + ค่าธรรมเนียมจ่ายเงิน | 55 |
| รวม variable cost | ≈ 450 |
ตัวเลขนี้คือ cash floor — ขายต่ำกว่านี้ (สุทธิหลังหัก commission) คือควักเงินสดจ่ายให้ทุกการจอง
การไล่ variable cost ทีละรายการแบบนี้ทำมือได้ แต่ต้องตั้งใจดึงตัวเลขจากหลายแผนก (housekeeping, F&B, engineering) Room Cost Tool เวอร์ชันใหม่คำนวณ variable cost ต่อห้อง + break-even ต่อ channel ให้อัตโนมัติ อยากได้ก่อนใคร ลงทะเบียน Waiting List ที่ LINE @BoydWee พิมพ์โค้ดRoomcal
บวก contribution ขั้นต่ำ → practical floor
ห้องไม่ได้มีหน้าที่แค่ “เท่าทุนผันแปร” มันต้องเหลือเงินไปจ่าย fixed cost (เงินเดือนประจำ ค่าเช่า ดอกเบี้ย) และกำไร ตั้ง contribution ขั้นต่ำที่ยอมรับได้ — สมมติคุณต้องการให้ทุกห้องเหลือ contribution อย่างน้อย THB 350 หลัง variable cost:
Practical floor (net) = 450 + 350 = THB 800 ต่อห้อง (เงินเข้าสุทธิ)
นี่คือ floor “สุทธิ” ที่ต้องเข้ากระเป๋าจริง — ยังไม่ใช่ราคาที่ป้ายขาย
บวกกลับ commission → channel-adjusted floor
จุดที่ทำให้ floor net สวยแต่ขายจริงขาดทุน คือลืมว่าแต่ละ channel กิน commission ไม่เท่ากัน ราคาที่ต้อง ตั้งหน้าร้าน จึงต้องสูงพอให้เหลือ net floor เท่ากันทุก channel
Gross floor = Net floor ÷ (1 − commission%)จาก net floor THB 800:
| Channel | Commission | Gross floor ที่ต้องตั้ง |
|---|---|---|
| Direct (เว็บตรง, ไม่มี loyalty) | ~5% | ≈ 840 |
| Brand.com + loyalty | ~8% | ≈ 870 |
| Agoda | ~17% | ≈ 965 |
| Booking.com | ~18% | ≈ 975 |
| Expedia | ~23% | ≈ 1,040 |
| Wholesale / FIT | ~25% margin | ≈ 1,070 |
อ่านตารางนี้แล้วจะเห็นทันทีว่าทำไม direct booking ถึงสำคัญ — floor บน direct ต่ำกว่า wholesale กว่า THB 230 ต่อห้อง ที่ contribution เท่ากันเป๊ะ
และจะเห็นด้วยว่า ตัวเลข cash break-even บน Agoda คือ 450 ÷ 0.83 ≈ THB 542 — ต่ำกว่านี้บน Agoda เมื่อไหร่ คือขาดทุนสด นี่แหละตัวเลขที่เปิดเรื่องไว้ตอนต้น
cross-check กับ comp set และ BAR — floor คือพื้น ไม่ใช่เป้า
ถึงตรงนี้ระวังกับดักสำคัญ: floor ไม่ใช่ราคาขาย floor คือพื้นที่ห้ามทะลุลงไป ราคาขายจริงควรเริ่มจาก BAR ที่สูงกว่า floor แล้วใช้หลัก “sell from, price up” — เปิดวันอนาคตที่ BAR level ต่ำ แล้วไล่ราคาขึ้นตาม pickup pace
เอา floor ไปวางเทียบ comp set ด้วย ถ้า floor ของคุณสูงกว่าราคาตลาดทั้งกระดาน แปลว่าต้นทุนคุณสูงผิดปกติ หรือ positioning ไม่ตรงกลุ่ม — เป็นสัญญาณให้ไปแก้ที่ต้นทุน/สินค้า ไม่ใช่ทุบราคาหนีลงไปใต้พื้นตัวเอง
ทำให้ Excel “เตือน” ได้ — conditional formatting + โครงไฟล์
เปลี่ยนจากตารางเฉยๆ ให้เป็นเครื่องมือที่ทีมใช้จริง:
- Conditional formatting เป็น action trigger — ช่องไหนราคาขายที่ channel manager ดึงเข้ามา < floor ให้ขึ้น แดง ทันที (= ห้ามขาย), ใกล้ floor = เหลือง, ปลอดภัย = เขียว
- แยกสี input cell กับ formula cell — ช่องที่กรอกเอง (variable cost, commission, contribution เป้าหมาย) สีหนึ่ง ช่องที่คำนวณอัตโนมัติล็อกไว้อีกสีหนึ่ง กันมือลั่น
- ใส่ data validation dropdown ตรงช่อง demand level เลือก H/M/L/D ได้เลย
- หัวไฟล์ ระบุชื่อโรงแรม ช่วงวันที่ และเลข version — เพราะ matrix ต้อง review ใหม่ทุกครั้งที่ต้นทุนขยับ (ค่าแรงขึ้น ค่าไฟขึ้น commission tier เปลี่ยน)
ตารางตัวอย่าง — Rate Floor Matrix (net floor, THB)
ตัวอย่างประกอบสำหรับโรงแรม 3 room types (ตัวเลขสมมติ ปรับตามต้นทุนจริงของคุณ):
| Room type | Low WD | Low WE | Shoulder WD | Shoulder WE | High WD | High WE | Peak/Event |
|---|---|---|---|---|---|---|---|
| Standard | 800 | 880 | 950 | 1,050 | 1,200 | 1,350 | 1,600 |
| Deluxe | 950 | 1,040 | 1,120 | 1,240 | 1,420 | 1,600 | 1,900 |
| Suite | 1,400 | 1,520 | 1,650 | 1,820 | 2,100 | 2,350 | 2,800 |
ตัวเลขในตารางคือ net floor (เงินเข้าสุทธิขั้นต่ำ) — ก่อนใช้บน channel ใด ให้บวกกลับ commission ตามขั้น 5 เสมอ
สังเกตว่า floor ขยับขึ้นตาม demand period — ไม่ใช่เพราะต้นทุนเปลี่ยน แต่เพราะ opportunity cost เปลี่ยน คืน peak ที่ขายเต็มได้ง่าย การปล่อยห้องราคาถูกคือเสียโอกาสขายแพง floor จึงตั้งสูงขึ้นเพื่อกันไม่ให้ทีมเผลอขายต่ำในคืนทองคำ
5 กับดักที่เจอบ่อย — เช็กก่อนใช้งานจริง
- ตั้ง floor จากคู่แข่ง ไม่ใช่ต้นทุนตัวเอง — คุณไม่มีทางรู้โครงสร้างต้นทุนเขา floor ที่ลอกมาคือ floor ของคนอื่น
- ลืม commission — net floor THB 800 ดูดี แต่ถ้าตั้งหน้าร้าน 800 บน Agoda จริงๆ เหลือ 664 → contribution หดจากเป้า 350 เหลือ 214
- floor เดียวใช้ทุก channel — direct กับ wholesale net ไม่เท่ากัน ใช้ floor เดียวคือยอมขาดทุนบน channel แพง หรือตั้งสูงเกินจน direct เสียเปรียบ
- ใช้ floor เป็น target — floor คือพื้น ถ้าทุกห้องขายติด floor แปลว่าตั้ง BAR ต่ำไป หรือไม่ได้ price up ตาม pickup (ระวัง Pavlov effect — สอนแขกให้รอราคาถูกนาทีสุดท้าย)
- ไม่มี event overlay — คืน sold-out ของทั้งเมืองแต่ระบบยังเปิดขาย floor ปกติ = ทิ้งเงินก้อนใหญ่ทุกปี
ตัวเลขนี้คือเกราะ ไม่ใช่กรอบ
สิ่งที่ทำให้ Rate Floor Matrix ต่างจาก “ความรู้สึกว่าไม่ควรขายต่ำกว่านี้” คือมันเปลี่ยนการตัดสินใจราคาจาก “เดาใจคู่แข่ง” มาเป็น “รู้ต้นทุนตัวเอง” — และนั่นคือฐานที่มั่นคงพอจะยืนราคาได้ แม้คืนที่ pickup ช้าและทุกคนกดดันให้ลดราคา
มันไม่ผูกกับปีไหน ตลาดขาขึ้นหรือขาลง ตราบใดที่คุณยังมีต้นทุนต่อห้อง คุณก็ยังมี floor ทำครั้งเดียว ใช้ได้ยาว รีวิวเมื่อต้นทุนขยับ
เริ่มจากขั้นที่ง่ายที่สุดคืนนี้: เปิดงบ แล้วลองหา variable cost ของห้อง Standard ห้องเดียว ได้เลขเท่าไหร่? ถ้าเทียบกับราคาต่ำสุดที่คุณเคยปล่อยขายในรอบ low season ที่ผ่านมา — มันห่างกันสบายใจ หรือชิดกันจนน่าตกใจ?


