Harthliving OTA · bản chữ cho AI · dựng từ vault (nguồn sửa lần cuối 29/09/2026 09:28) · mục lục: https://harthliving-ota.pages.dev/ai/index.txt # Harthliving OTA — toàn bộ nội dung, Phần 3/35 · tiếp: https://harthliving-ota.pages.dev/ai/full/part-04.txt Trong phần này: 🏷 Nhãn promotion Agoda · 🏷 Nhãn promotion Agoda · Kiến thức nền tảng — Agoda · Kiến thức nền tảng — Agoda · Guide book — Airbnb · Guide book — Airbnb · Airbnb đổi sang phí host-only 15,5 % (15/09/2026) — cơ chế hai tool và cách làm · Airbnb đổi sang phí host-only 15,5 % (15/09/2026) — cơ chế hai tool và cách làm · Kiến thức nền tảng — Airbnb · Kiến thức nền tảng — Airbnb · Guide book — Booking.com · Guide book — Booking.com · Booking — quy trình xét duyệt để listing đủ điều kiện prepay · Booking — quy trình xét duyệt để listing đủ điều kiện prepay --- # 🏷 Nhãn promotion Agoda URL: https://harthliving-ota.pages.dev/guide/agoda/agoda-promotion-badges/ [Tổng quan](https://harthliving-ota.pages.dev/) › [Guide book](https://harthliving-ota.pages.dev/guide/) › [Agoda](https://harthliving-ota.pages.dev/guide/agoda/) # 🏷 Nhãn promotion Agoda ## Tóm tắt 30 giây **Dùng khi:** Chọn loại promotion Agoda mà khách thật sự nhìn thấy nhãn. - Chỉ Seasonal (và Mega Sale) có nhãn tên chiến dịch trên thẻ tìm kiếm. - Nhóm Targeted — chỉ Eco Deals và Domestic có nhãn; Private Sale, Mobile, Package không có. - Nhóm Essential (Customized, Occupancy, Early Bird, Last-Minute, Long Stay) không có nhãn trên thẻ — chỉ một dòng chữ ở trang chi tiết. - Hình minh hoạ "Exclusive badge" trong YCS không khớp trang khách thật (đo 28/09/2026 trên 723 thẻ). ## Toàn văn Nguồn: `platforms/agoda-promotion-badges.md` · Đọc ngày: **28/09/2026** Bản chữ cho máy đọc: [TXT](https://harthliving-ota.pages.dev/api/guidebook/agoda/agoda-promotion-badges.txt) ### Promotion Agoda — loại nào hiện nhãn cho khách **Mức nguồn:** 🟢 đo trên trang khách hôm nay (có số thẻ) · 🟡 thấy trong payload/tài liệu YCS nhưng chưa thấy tận mắt trên trang khách · ⚪ không đo được từ máy này (cần IP nước ngoài, tài khoản VIP, app). #### Kết luận 1. **Chỉ Seasonal (và Mega Sale) có nhãn tên chiến dịch trên thẻ tìm kiếm.** 413/413 thẻ có Seasonal đều hiện nhãn tên (PAYDAY, Deals Abroad…) kèm dải *"Special Price – Limited time only!"*. 2. **Targeted: chỉ Eco Deals và Domestic có nhãn trên thẻ.** Eco Deals là nhãn xanh lá riêng; Domestic là dòng chữ *"Domestic Deal"*, chỉ khách IP Việt Nam thấy. **Private Sale, Mobile (xem trên máy tính), Package: không nhãn trên thẻ** — chỉ làm giá thấp đi. Private Sale có chip *"Insider Deals!"* nhưng chỉ ở trang chi tiết. 3. **Essential (Customized · Occupancy · Early Bird · Last-Minute · Long Stay) KHÔNG có nhãn trên thẻ tìm kiếm.** Thẻ chỉ hiện *-X%* và giá gạch. Tên chỉ hiện ở **trang chi tiết**, là dòng chữ nhỏ dưới phòng (*"Limited Time Offer. Price includes 20% discount!"*). Ngoại lệ hiếm: Early Bird thỉnh thoảng có dòng xám *"Early Booking Saver."* trên thẻ (1/17 thẻ). 4. Hộp *View marketing benefits* trong YCS ghi **cả 4 nhóm** đều có *"Exclusive badge"*, vẽ minh hoạ nhãn *"Essential promotion"* / *"Targeted promotion"* trên thẻ tìm kiếm. **Trên trang khách thật không có nhãn chung chung đó ở thẻ nào** (0/64 thẻ Essential, 0/74 thẻ Private Sale · Mobile · Package). Phần *"Room selection"* trong hình thì đúng: Essential và Private Sale có dòng chữ trong khung chọn phòng. Agoda tự ghi dưới hộp: *"All images shown above are for illustrative purposes only… subject to eligibility criteria… and Agoda's discretion."* 5. Mọi trang chi tiết có giảm giá đều có dải đỏ *"X% off today! Lowest price available!"* và giá gạch — cái này không phân biệt loại promotion. #### Bảng tra — từng loại trong trang "Choose new promotion" | Nhóm | Loại (tên YCS) | Thẻ tìm kiếm | Trang chi tiết (dưới phòng) | Ai thấy | Đo | |---|---|---|---|---|---| | **Mega Sale** | Mega Sale (đặt 16–30/11) · VIP Priority Access (12–15/11, chỉ VIP) · 24-Hour Flash Sale (27/11) | 🟡 nhãn chiến dịch (có `BadgeCmsId`, hộp YCS hứa *Exclusive badge* + banner trang chủ + landing page + mạng xã hội) | 🟡 | mọi khách (VIP Priority: chỉ VIP) | chưa tới ngày đặt, chưa thấy | | **Seasonal** | Deals Abroad | 🟢 nhãn **"Deals Abroad"** + dải *Special Price* | 🟢 dải *Special Price – Limited time only!* · dòng *": ₫ X off!"* · *"Limited Time Offer. Price includes X% discount!"* | mọi khách trừ tệp host chọn loại — form mặc định loại khách nội địa, nhưng đo từ IP Việt Nam vẫn thấy 204 thẻ ⇒ nhiều căn không loại | 204/204 | | | Agoda Save & Go | 🟢 **"Agoda Save & Go"** | như trên | trừ 20 tệp khách bị loại | 88/88 | | | From Asia To The World | 🟢 **"HELLO ASIA"** (chữ trên nhãn khác tên YCS) | như trên | trừ 24 tệp bị loại | 68/68 | | | Payday Sale | 🟢 **"PAYDAY"** | 🟢 *"PAYDAY: ₫ 690,000 off!"* (25AT11) | mọi khách | 29/29 | | | Book Early, Pay Less | 🟢 **"BOOK EARLY"** | như trên | mọi khách | 15/15 | | | [Flash Sale] Noon Dash Deals | 🟢 **"NOON FLASH"** (chỉ 14h–18h) | như trên | mọi khách | 6/6 | | | Stay Longer for Less | 🟢 **"STAY LONGER"** | như trên | mọi khách | 2/2 | | | Night Owl · Super Wednesday · Double Day · Mid Month · Golden Autumn · Halloween · Black Friday · End Of Year · Christmas · Jingle Deals · Midnight Madness | 🟡 có nhãn (cả 31 bản Seasonal/Mega Sale trong payload đều có `BadgeCmsId`); chữ trên nhãn chưa thấy vì hôm nay chưa tới ngày đặt hoặc không gặp căn nào đang chạy | 🟡 | mọi khách | — | | **Essential** | Customized promotion | ❌ **không nhãn** — chỉ *-X%* + giá gạch | 🟢 *"Limited Time Offer. Price includes X% discount!"* | mọi khách | 0/38 | | | Occupancy promotion | ❌ không nhãn (dùng chung chữ với Customized, CMS `46310`) | 🟢 *"Limited Time Offer…"* | mọi khách | gộp trong 38 thẻ trên | | | Early Bird | ⚠️ thường không; **thỉnh thoảng** dòng xám *"Early Booking Saver."* | 🟢 *"Early Booking Saver. Price includes X% discount!"* | mọi khách | 1/17 | | | Last-Minute | ❌ không nhãn | 🟢 *"Last Minute Special. Price includes X% discount!"* | mọi khách | 0/7 | | | Long Stay | ❌ không nhãn | 🟢 *"Long Stay Deal. Price includes X% discount!"* | khách đặt đủ số đêm | 0/2 | | **Targeted** | Eco Deals (đang bật cho 25AT11) | 🟢 **nhãn xanh "Eco Deals"**, rê chuột: *"Agoda supports wildlife protection… donating USD 1 to WWF for each Eco Deals booking"* | 🟢 chip *Eco Deals* trên ô giá | mọi khách | 4/5 thẻ có Eco rẻ nhất; nhãn còn hiện ở 18 thẻ khác | | | Domestic | 🟢 dòng chữ **"Domestic Deal"** (không có khung màu) | 🟢 *"Domestic Deal"* | **chỉ khách IP Việt Nam** | 19/29 | | | Private Sale | ❌ **không nhãn** trên thẻ — giảm vẫn áp cho cả khách chưa đăng nhập, nằm chìm trong giá gốc | 🟢 chip **"Insider Deals!"** trong mục *Rewards & discounts* của từng phòng (khách chưa đăng nhập vẫn thấy) | theo YCS: thành viên đăng nhập; đo được: cả khách ẩn danh | 0/47 thẻ · 16/16 phòng ở trang chi tiết | | | Mobile | ❌ không nhãn khi xem trên máy tính · ⚪ trên điện thoại chưa đo được (mobile web giả lập iPhone đứng ở *"Finding the best deals…"*, không ra kết quả) | ❌ không nhãn (desktop) | chỉ khách dùng điện thoại | 0/9 (desktop) | | | Package | ❌ không nhãn | — | khách mua kèm vé máy bay | 0/18 | | | International Rate · China · Asia (IP only) · US (IP only) | ⚪ không đo được (máy đang ở IP Việt Nam) | ⚪ | khách đúng vùng/ngôn ngữ | — | | | VIP Silver · Gold · Platinum | ⚪ chưa đo — Chrome trên máy này **chưa đăng nhập tài khoản khách agoda.com** (trang hiện *Sign in now*), nên mọi thứ chỉ dành cho thành viên đều chưa thấy được | ⚪ | khách hạng VIP | — | | | GoLocal Tonight | ⚪ không gặp căn nào đang bật (đã tìm nhận phòng hôm nay) | ⚪ | khách nội địa, nhận phòng trong ngày | — | Ghi chú từ payload YCS: ngoài 15 Seasonal hiện trên trang, còn 10 bản **ẩn khỏi danh sách của căn này** (`IsHideFromCarousel`): *New Listings* ×2 · *Now on Agoda* · *The Great Escape* · *Hottest Getaways* (có căn khác đang chạy, nhãn **"HOTTEST GETAWAYS"**) · *Prestige Saving* · *Night Owl* ×2 · *Agoda Save & Go* ×2. Tức là Agoda có chiến dịch cho căn mới, nhưng không mở cho 25AT11 lúc đọc — không tự bật được. #### Những nhãn KHÔNG phải promotion của mình — đừng nhầm Trên cùng một thẻ Agoda còn gắn nhiều chữ khác. Chúng không đến từ trang *Choose new promotion*: | Chữ khách thấy | Từ đâu | Mình bật được không | |---|---|---| | *"₫ 76,990 applied"* (ô tím cạnh giá) · *AGODASPONSORED* ở trang chi tiết | Coupon Agoda tự tài trợ (*Instant discount*) | Không — Agoda tự áp | | *"Domestic Deals"* (số nhiều, chip có dấu ⓘ: *"This property is offering a special discount just for domestic travelers"*) — trang chi tiết cũng có chip này (`mob-go-local-badge`) | Đi cùng mã giảm `GoLocal` trong payload (89/182 thẻ có mã này hiện chip), kể cả khi ngày nhận phòng còn xa ⇒ không phải *GoLocal Tonight*. Khác dòng *"Domestic Deal"* (số ít) của Targeted Domestic | 🟡 chưa rõ nguồn và ai trả tiền giảm | | *"Boost Campaign discount applied: ₫ X"* — dòng chữ dưới tên căn, trên thẻ tìm kiếm | **Agoda Boost Campaign** — mục *Growth programs*, không nằm ở trang promotion | Có: host tự tạo *Custom Campaign* (mã giảm có ngân sách, không sửa được sau khi tạo — playbook §12.4). 25AT11 hiện chưa có (`coupons.json = []`) | | **Agoda Preferred** | Chương trình AGP (trả thêm hoa hồng) | Có, trả phí | | **Promoted** | Sponsored Listing (trả tiền quảng cáo) | Có, trả phí | | **Boosted** · *Booked X times today* · *Last booked* · *Value Pick* · *Sea View* · *Newly renovated* · *2025 Award* | Agoda tự gắn theo dữ liệu | Không | | *-26%* + giá gạch | Tổng mọi giảm so với giá gốc | Tự sinh khi có bất kỳ giảm nào | #### Áp vào 25AT11 (`96450982`) Đang bật (đọc 14:20 hôm nay): **Payday** (đặt 28–30/09) · **Golden Autumn** (1–31/10) · **Halloween** (24/10–6/11) · **Black Friday** (17–30/11) · **Eco Deals** (không hạn). Thẻ 11–13/10 hiện đúng nhãn **PAYDAY + Eco Deals, −26 %** (ảnh bên dưới). Nhãn tên chiến dịch theo **ngày khách đặt**: | Ngày đặt | Nhãn Seasonal | Nhãn Targeted | |---|---|---| | 28–30/09 | PAYDAY | Eco Deals | | 01–31/10 | Golden Autumn (24–31/10 trùng Halloween — chỉ lấy MỘT mức lớn hơn) | Eco Deals | | 01–06/11 | Halloween | Eco Deals | | **07–16/11** | **— không có** | Eco Deals | | 17–30/11 | Black Friday | Eco Deals | | **từ 01/12** | **— không có** | Eco Deals | Hai khoảng trống có thể lấp bằng Seasonal cùng mở trong YCS (chỉ là lựa chọn, **chưa bật gì**): - **07–16/11:** *Double Day Sale* (đặt 4–17/11, tối thiểu 15 %) phủ trọn; *Mid Month Sale* (12–25/11, 15 %) phủ một nửa. - **Từ 01/12:** *Jingle Deals* (đặt 1/12–5/1, tối thiểu 10 %) phủ trọn một mình; hoặc *End Of Year* (1–14/12) + *Christmas* (18–31/12), 15 %. - *Mega Sale* (16–30/11) trùng Black Friday — Seasonal không cộng nhau nên bật thêm chỉ đổi nhãn, không cộng giảm. Customized/Early Bird/Long Stay **không** mang lại nhãn trên thẻ — chỉ nên dùng khi mục tiêu là giá, không phải là nhãn. #### Ảnh mẫu (chụp 28/09/2026, context sạch, desktop) Ảnh nằm ở `../audits/2026-09-28-agoda-promo-badges/img/`. **Seasonal + Eco Deals — chính căn 25AT11, 11–13/10, 8 người lớn:** thẻ có nhãn hồng **PAYDAY** và nhãn xanh **Eco Deals**; trang chi tiết có chip *Eco Deals* trên ô giá, mục *Rewards & discounts* ghi *"PAYDAY: ₫ 690,000 off!"* + *"Limited Time Offer. Price includes 20% discount!"*. ![25AT11 thẻ](../audits/2026-09-28-agoda-promo-badges/img/25at11-seasonal-payday-eco-card.jpg) ![25AT11 trang chi tiết](../audits/2026-09-28-agoda-promo-badges/img/25at11-seasonal-payday-eco-pdp.jpg) **Customized (Prince Hotel):** thẻ không có nhãn nào của promotion, chỉ *-28%*; trang chi tiết mới có *"Limited Time Offer. Price includes 10% discount!"*. ![Customized thẻ](../audits/2026-09-28-agoda-promo-badges/img/essential-customized-card.jpg) ![Customized trang chi tiết](../audits/2026-09-28-agoda-promo-badges/img/essential-customized-pdp.jpg) **Early Bird (Hilton Garden Inn) — trường hợp hiếm có dòng xám trên thẻ:** *"Early Booking Saver."* ở góc dưới thẻ; trang chi tiết cùng chữ. ![Early Bird thẻ](../audits/2026-09-28-agoda-promo-badges/img/essential-earlybird-card.jpg) ![Early Bird trang chi tiết](../audits/2026-09-28-agoda-promo-badges/img/essential-earlybird-pdp.jpg) **Last-Minute (Pariat, nhận 29/09) và Long Stay (Furama):** chỉ thấy ở trang chi tiết. ![Last-Minute trang chi tiết](../audits/2026-09-28-agoda-promo-badges/img/essential-lastminute-pdp.jpg) ![Long Stay trang chi tiết](../audits/2026-09-28-agoda-promo-badges/img/essential-longstay-pdp.jpg) **Targeted Domestic (Naman Retreat):** dòng chữ hồng *"Domestic Deal"* dưới tên căn. ![Domestic thẻ](../audits/2026-09-28-agoda-promo-badges/img/targeted-domestic-card.jpg) **Targeted Private Sale (Moonlight Hotel):** thẻ không nhãn; trang chi tiết có chip *"Insider Deals!"*. ![Private Sale thẻ](../audits/2026-09-28-agoda-promo-badges/img/targeted-privatesale-card.jpg) ![Private Sale trang chi tiết](../audits/2026-09-28-agoda-promo-badges/img/targeted-privatesale-pdp.jpg) **Không phải promotion — để phân biệt:** Boost Campaign (Phú An Hotel, dòng *"Boost Campaign discount applied"*) và chip *"Domestic Deals"* đi cùng mã `GoLocal` (King House). ![Boost Campaign thẻ](../audits/2026-09-28-agoda-promo-badges/img/growth-boost-campaign-card.jpg) ![GoLocal thẻ](../audits/2026-09-28-agoda-promo-badges/img/agoda-golocal-domestic-deals-card.jpg) **Agoda hứa gì trong YCS (ảnh minh hoạ, không phải trang thật):** Essential vẽ nhãn hồng *"Essential promotion"*, Targeted vẽ nhãn cam *"Targeted promotion"* trên thẻ tìm kiếm + khung chọn phòng + trang căn. Trên trang khách thật không có nhãn chung chung nào như vậy. ![YCS Essential](../audits/2026-09-28-agoda-promo-badges/img/ycs-benefits-essential.jpg) ![YCS Targeted](../audits/2026-09-28-agoda-promo-badges/img/ycs-benefits-targeted.jpg) #### Cách đo (để lặp lại) - Trang YCS: mở trong tab nền, đọc payload `HotelPromotionApi/GetPromotionSettingPageViewModel` (18 loại Essential ẩn/hiện, 31 loại Seasonal kèm `BadgeCmsId` và từng đợt ngày đặt) + `hotelpromotionapi/GetChannelDiscountInfo` (23 kênh Targeted). Chỉ bấm *Show all promotions* và *View marketing benefits* để xem. - Trang khách: context sạch, `agoda.com/search?city=16440`, 2 trang kết quả mỗi bộ ngày (11–13/10 · 29/09 1 đêm · 10–12/12 · 20–27/10 · 28/09 1 đêm), cuộn từng thẻ cho render rồi đọc `data-element-name` của thẻ; ghép với `pricing` trong response `graphql/search`. Tên phần tử là nhãn: `pulse-campaign-ssr-badge` (Seasonal) · `eco-deals-badge` · `property-info-icon-message` (*Domestic Deal*) · `property-info-bottom-badge` (*Early Booking Saver.* / *Boost Campaign*) · `consolidated-applied-discount-badge` (coupon Agoda). Trang chi tiết: `room-grid-limited-time-offer-badge` (Essential + Seasonal) · `pulse-campaign-room-badge` · `asq-package-badge` (*Domestic Deal*) · `mob-room-offer-downlift-badge` (*AGODASPONSORED*). - Loại promotion trong payload: `pulseCampaignMetadata.campaignBadgeText` = Seasonal · `room.promotions.typeId` 1 Customized/Occupancy · 2 Early Bird · 3 Last-Minute · 22 Long Stay · `room.discount.channelDiscount` InsiderDeal (Private Sale) · MobileDeal · `room.channel.id` 6 Domestic · 7 Mobile · 14 Package · 2236 Eco Deals. - Script tạm (scratchpad, không giữ lại): probe nhiều trang + chụp mẫu; dữ liệu gốc nén ở `audits/2026-09-28-agoda-promo-badges/`. **Liên quan:** agoda-listing-playbook §12 · promotions-airbnb-vs-booking (Booking: chỉ Mobile · campaign deal · Limited-time · Genius có nhãn) · 25AT11 Agoda mục 28/09 --- # Kiến thức nền tảng — Agoda URL: https://harthliving-ota.pages.dev/guide/agoda/agoda/ [Tổng quan](https://harthliving-ota.pages.dev/) › [Guide book](https://harthliving-ota.pages.dev/guide/) › [Agoda](https://harthliving-ota.pages.dev/guide/agoda/) # Kiến thức nền tảng — Agoda ## Tóm tắt 30 giây **Dùng khi:** Cần biết tình hình thực tế các listing Agoda của mình (luật chơi nằm ở cẩm nang set up). - Content Score là đòn bẩy rẻ nhất; ảnh quyết định 70 % điểm. - Agoda tự gộp các căn cùng địa chỉ thành một trang khách ("Group listing unit"). - Doanh thu Agoda còn rất thấp; tin nhắn Agoda bị ràng buộc kỹ thuật (số điện thoại bị che). ## Toàn văn Nguồn: `platforms/agoda.md` · Đọc ngày: **04/09/2026** Bản chữ cho máy đọc: [TXT](https://harthliving-ota.pages.dev/api/guidebook/agoda/agoda.txt) ### Agoda — cơ chế đã hiểu Truy cập theo `vault/10-rules/ota-readonly-rule.md`. **Chỉ đọc.** 📘 **Luật chơi của Agoda (tài liệu chính thức) nằm ở [`agoda-listing-playbook.md`](https://harthliving-ota.pages.dev/guide/agoda/agoda-listing-playbook/)** — trọng số Content Score, luật ảnh/tên listing/mô tả, rate plan, promotion, các chương trình trả phí, và checklist cho đúng 6 listing dưới đây. File **này** chỉ ghi **tình hình thực tế đã đo được** của mình. Học được cơ chế mới khi thao tác thật thì ghi vào đây; luật chính thức của Agoda thì ghi vào playbook. 🛠️ **Muốn ĐIỀU KHIỂN YCS (tạo mẫu tin, bật gửi tự động, tự động hoá qua CDP):** đọc [`agoda-ycs-automation.md`](https://harthliving-ota.pages.dev/library/tech/agoda-ycs-automation/) — bản đồ URL, DOM của form, 6 bẫy đã trả giá, và hai script ghi. File này chỉ nói về *cơ chế kinh doanh*. #### 1. Vào đâu **Agoda Partner Portal** — `portal.agoda.com/mldc/en-us/app/iam/propertysearch` Đây là giao diện mới, không phải YCS cũ. Menu: `All properties` · `Listings` · `Reservations` · `Analytics` · `Payout accounts`. #### 2. Danh mục — 6 listing, tất cả Active (đo 03/09/2026) Cột bảng: `Name` · `Status` · `ID · thành phố` · *(nhãn nhóm)* · `Revenue (MTD)` · `Avg daily rate (MTD)` · `Content score`. | Agoda ID | Tên trên Agoda | Ứng với | Nhãn | Content score | |---|---|---|---|---| | `63382515` | A La Carte Da Nang 2br/2ba [Free Airport Pickup] | `alacarte305` ❓ | Group listing unit | **70/100** | | `84463560` | Newly built villa 4br/5ba Pool, Sauna, Elevator | `41lehycat` | — | 50/100 | | `84463562` | The Living Tree Villa - Koi Pond, Karaoke, 4BR/5BA | `15nuocman5` | — | 48/100 | | `84463574` | Modern 3BR Beach Villa, Karaoke, Rooftop bar, BBQ | `181tohienthanh` | — | **43/100** | | `84463577` | 1BR Studio A La Carte Hotel [Free Airport Pickup From 3 Nights] (đổi 17/09/2026; cũ `…*Free Airport Pick up*`) | `alacarte502` | Group listing unit | N/A | | `84510952` | Remodel 2br/2ba A La Carte [Free Airport Pickup From 3 Nights] (đổi 17/09/2026) | `alacarte404` | Group listing unit | N/A | ❓ `63382515` → `alacarte305` là **suy ra bằng loại trừ**, chưa xác minh: 404 đã khớp chính xác với `84510952`, còn lại chỉ có 305. Corroborate yếu: ID `63xxxxxx` cũ hơn hẳn lô `844xxxxx`, khớp với việc 305 là căn A La Carte lên sàn sớm nhất (Booking cũng có property cũ `13311503` cho 305). **`25anthuong11` KHÔNG có trên Agoda** — là căn duy nhất trong 7 căn vắng mặt. → `issues.md` **L-11**. #### 3. "Group listing unit" Ba căn A La Carte (`63382515` · `84463577` · `84510952`) gắn nhãn **Group listing unit** — là *unit* nằm trong một group listing (toà A La Carte), không phải property độc lập. Bốn villa nguyên căn không có nhãn này. **Đã hiểu thêm 17/09/2026 (đo trên 305 + 502):** nhãn chỉ là Agoda gom theo **địa chỉ** (200 Võ Nguyên Giáp). Mỗi unit vẫn là **single-unit home** đầy đủ: ID, lịch, giá, Content score, mẫu tin, trang khách riêng — 305 và 502 sửa độc lập, điểm hiện riêng (502 từ N/A → 44 sau khi có dữ liệu, tức N/A chỉ là chưa đủ dữ liệu chứ không phải chấm cấp group). Agoda dùng nhóm để nhập ảnh khách sạn từ Booking.com vào card, chuẩn hoá địa chỉ (tự nối khu vực + thành phố) và sinh "About us"/FAQ theo tiện ích toà. **Đo lại 17/09 ~22:00 — sửa nhận định trên:** nhãn dẫn tới trang `mldc/…/setting/residentiallisting/` (API `ResidentialListing//ViewModel` · `/ListingProperties`). Nhóm hiện tại: **502 (master) + 404**, tên nhóm **tự sinh "An Hai Bac Houses"** (→ user đổi thành `A La Carte Da Nang Apartments [Free Airport Pickup From 3 Nights]` lúc 22:20 17/09 bằng `--set-group-name`) — là tên khách thấy trên trang chung của nhóm (`agoda.com/…/hotel/index/84463577`); **305 đứng riêng** (nhóm một mình, trang nhóm lỗi). Trang chỉ có *Edit listing name* + *View on Agoda*; các nút Ungroup / Remove / Add property / Set as master tồn tại trong CMS nhưng không hiện cho tài khoản này → tách nhóm phải qua support. Chi tiết [`../properties/alacarte502/agoda-fullread.md`](https://harthliving-ota.pages.dev/status/agoda/alacarte502/#doc-agoda-fullread) §A9. → Nghi vấn: hai unit gắn nhãn nhóm có `Content score` = **N/A**, còn `63382515` lại có 70/100. Chưa rõ Agoda chấm điểm ở cấp unit hay cấp group. #### 4. Content score — đòn bẩy rẻ nhất đang thấy Agoda chấm chất lượng hồ sơ listing. Điểm hiện tại **thấp**: 43 · 48 · 50 · 70, hai căn N/A. Đây là việc thuần nội dung (ảnh, mô tả, tiện ích, chính sách) — **đúng sở trường của workspace này**, và không cần đụng vào giá hay lịch. → `issues.md` **L-12**. **Đã tra được tiêu chí chấm (04/09/2026):** Property Photos **45%** · Room Photos **25%** · Property Facilities **15%** · Room Facilities **10%** · Age Policy **3%** · Property Info/Star **2%** → **ảnh chiếm 70% điểm**. Luật quan trọng nhất: **mỗi tiện ích tick "có" mà không có ảnh gắn tag tương ứng đều bị trừ điểm** — nhiều khả năng là nguyên nhân của mức 43–50. Chi tiết + checklist: [`agoda-listing-playbook.md` §4](https://harthliving-ota.pages.dev/guide/agoda/agoda-listing-playbook/). #### 5. Doanh thu MTD — gần như trống Chỉ `84463574` (181 Tô Hiến Thành) có số: **Revenue MTD VND 13.891.786** · **ADR MTD VND 3.975.385**. Năm listing còn lại đều `N/A`. Chưa rõ N/A nghĩa là *không có booking trong tháng* hay *không có dữ liệu ở cấp unit*. Đừng kết luận vội. #### 6. Ràng buộc nội dung tin nhắn (đã khảo sát 31/08/2026) Nguồn: `vault/10-rules/ota-messaging-rules.md`. - **Không có engine hẹn lịch tin nhắn** — chỉ có mẫu trả lời nhanh, phải bấm gửi tay. - **Không có placeholder/shortcode** — phải gõ hoặc dán đủ chữ. - **Tự động che SĐT và email thành `XXX`** → viết số vào là khách nhận chuỗi vô nghĩa. #### 7. Chưa biết — cần học thêm **✅ Đã trả lời 04/09/2026 (từ tài liệu chính thức, xem [`agoda-listing-playbook.md`](https://harthliving-ota.pages.dev/guide/agoda/agoda-listing-playbook/)):** - ~~Agoda tính `Content score` theo tiêu chí nào~~ → có bảng trọng số đầy đủ, playbook §4. - ~~Tab `Analytics` có gì dùng được~~ → **Analytics Center có 5 tab**: Property Performance (net room nights · net revenue · ADR) · Traveler Insights (lead time · độ dài lưu trú · nguồn khách) · Revenue Distribution (theo room type + rate plan) · **Content Score** · Market Demand. Playbook §17-G. - ~~Cơ chế lịch/giá: có bị ghi đè như Booking không~~ → **có**. Nối channel manager rồi thì phải sửa trong channel manager; cập nhật ở đó **ghi đè** calendar Agoda. Ngoài ra Agoda có **Auto Top-up tự mở lại phòng** (mặc định ngưỡng 1 phòng) — rủi ro overbooking. Playbook §11.1 · §11.3. - **Nối lịch chéo:** Agoda có **iCal** (`Calendar > Calendar connections`) với Airbnb/Booking/Expedia/Vrbo, nhưng **chỉ cho room type có đúng 1 phòng**. Playbook §11.6. **❓ Vẫn chưa biết — phải đo trên Partner Portal thật:** - Agoda chấm `Content score` ở **cấp unit hay cấp group** với property gắn nhãn *Group listing unit* → giải thích được vì sao 2 unit A La Carte là **N/A**. Agoda không công bố. → `issues.md` **L-12**. - Agoda có nối được vào **PriceLabs** không (playbook không trả lời; phải tra phía PriceLabs). - Tab `Reservations` có gì dùng được. - `25anthuong11` vắng mặt là cố ý hay chưa lên sàn. → `issues.md` **L-11**. - 6 listing hiện tại đang bật hay tắt **Auto Top-up**, đang ở chế độ **Book instantly** hay **Request to book**, đã nối **iCal** chưa. --- # Guide book — Airbnb URL: https://harthliving-ota.pages.dev/guide/airbnb/ [Tổng quan](https://harthliving-ota.pages.dev/) › [Guide book](https://harthliving-ota.pages.dev/guide/) # Guide book — Airbnb ## 2 hướng dẫn | Hướng dẫn | Dùng khi | Loại | Cập nhật | |---|---|---|---| | [Kiến thức nền tảng — Airbnb](https://harthliving-ota.pages.dev/guide/airbnb/airbnb/) | Cần hiểu cơ chế Airbnb áp cho tài khoản của mình. | bài viết | 05/09/2026 | | [Airbnb đổi sang phí host-only 15,5 % (15/09/2026) — cơ chế hai tool và cách làm](https://harthliving-ota.pages.dev/guide/airbnb/airbnb-hof-migration-2026-09/) | Cần hiểu vụ đổi phí Airbnb 15/09/2026 và đã xử lý ra sao. | bài viết | 14/09/2026 | --- # Airbnb đổi sang phí host-only 15,5 % (15/09/2026) — cơ chế hai tool và cách làm URL: https://harthliving-ota.pages.dev/guide/airbnb/airbnb-hof-migration-2026-09/ [Tổng quan](https://harthliving-ota.pages.dev/) › [Guide book](https://harthliving-ota.pages.dev/guide/) › [Airbnb](https://harthliving-ota.pages.dev/guide/airbnb/) # Airbnb đổi sang phí host-only 15,5 % (15/09/2026) — cơ chế hai tool và cách làm ## Tóm tắt 30 giây **Dùng khi:** Cần hiểu vụ đổi phí Airbnb 15/09/2026 và đã xử lý ra sao. - Trước 15/09 khách trả giá + ~15 % phí, host bị trừ ~3 %. Từ 15/09 khách trả đúng giá mình đặt, host bị trừ 15,5 %. - Muốn giữ nguyên tiền nhận thì nâng giá đêm và phí dọn cùng hệ số ~15 % — khách không thấy đắt hơn. - Thứ tự đúng — tool Airbnb → drawer PriceLabs → Save → Sync; hệ số 15 %, không bật "Adjust to Include Taxes". - Đơn đã đặt trước ngày đổi không bị ảnh hưởng. ## Toàn văn Nguồn: `platforms/airbnb-hof-migration-2026-09.md` · Đọc ngày: **14/09/2026** Bản chữ cho máy đọc: [TXT](https://harthliving-ota.pages.dev/api/guidebook/airbnb/airbnb-hof-migration-2026-09.txt) ### Airbnb host-only fee 15,5 % — hai tool, một thứ tự đúng Đọc 14/09/2026, **một ngày trước hạn**. Toàn bộ là **đọc**: chữ giao diện lấy từ bundle JS + file i18n, số lấy từ endpoint preview (GET) và payload SSR. **Chưa bấm một nút nào trong hai luồng.** Bằng chứng thô ở `audits/2026-09-14-airbnb-hof-migration/`. Ba tầng bằng chứng theo `cite-evidence-tier`: **[đọc trực tiếp hôm nay]** · **[Help Center / bài chính thức]** · **[blog bên thứ ba]**. #### 0. Chuyện gì xảy ra | | Trước 15/09 (split fee) | Từ 15/09 (host-only fee) | |---|---|---| | Khách trả | giá mình đặt **+ ~15 % phí khách** | **đúng giá mình đặt** | | Airbnb trừ của host | ~3 % | **15,5 %** | | Ví dụ Airbnb đưa (₫) | mình đặt 100 → khách thấy 115 → mình nhận 97 | mình đặt **115** → khách thấy 115 → mình nhận 97 | Kết luận Airbnb tự in trong wizard **[đọc trực tiếp]**: *"Your new prices will match the prices guests see today on your listing."* — tức là nâng giá ≈ 15 % thì **khách không thấy đắt hơn**, chỉ có con số mình đặt đổi. **Không làm gì trước 15/09:** Airbnb **tự chuyển** sang host-only (chuỗi hậu-migration trong bundle: *"On {date}, we combined service fees into a single 15.5% fee paid by hosts. The prices guests see went down, lowering your nightly earnings."*). Giá giữ nguyên ⇒ payout/đêm **giảm ~12,9 %**. Tool điều chỉnh vẫn còn *"for a limited time afterwards"* **[Help 4095]**; trên tài khoản mình `postMigrationToolDeadline` hiện `null` **[đọc trực tiếp]** — tức chưa có hạn phụ nào được đặt. **Đơn đã đặt trước không đổi** — cả hai bên đều nói vậy **[Help 4095 + PriceLabs KB]**. ##### 0a. Phí tính trên gì — vì sao cleaning fee phải nâng cùng hệ số (user hỏi 14/09) **[Help 1857 + trang Service fee của tài khoản, đọc 14/09]**: phí khách 14,1–16,5 % **và** phí host 3 % đều tính trên **booking subtotal = giá đêm × số đêm + mọi phí host thu (cleaning, pet, extra guest)**, không tính trên phí Airbnb và thuế. Sau 15/09, 15,5 % cũng trừ trên đúng subtotal đó. Ví dụ 305, 3 đêm × 1.500.000 + dọn 350.000: | | Subtotal | Khách trả | Host nhận | |---|---|---|---| | Split (hôm nay) | 4.850.000 | × 1,142 ≈ 5.538.700 | × 0,97 = **4.704.500** | | Single, nâng đêm ×1,1479, giữ dọn | 5.515.550 | 5.515.550 | 4.660.640 → **thiếu 43.860** | | Single, nâng **cả hai** ×1,1479 | 5.567.315 | 5.567.315 (+0,5 %) | **4.704.380** ✔ | Thiếu hụt = cleaning × (0,97 − 0,845). Vì phí áp đồng đều lên hai thành phần, **không thể bù bằng cách chỉ nâng giá đêm**. Hệ số 0,97 ÷ 0,845 = 1,1479 (không có số hạng VAT vì tài khoản EXEMPT, không có thuế pass-through ở listing). Phí khách thật mỗi đơn dao động theo Airbnb ⇒ sau khi nâng 15 %, khách thấy chênh ±1 %, không kiểm soát được thêm. ✅ **Tầng 3 — đơn thật `HMKPW2BN2B` (305, 3 đêm 09–12/08/2026)** [đọc trực tiếp 14/09]: khách trả 5.196.391 (đêm) + 350.000 (dọn) + **909.611 phí khách = 16,40 % của 5.546.391** = 6.456.002; host nhận 5.546.391 − **166.392 phí host = 3,00 % của 5.546.391** = 5.379.999. Cả hai phí tính trên subtotal **gồm cleaning fee** — khớp Help 1857. Đơn `HME848T4HB` (15 MN, không dọn) cho cùng tỷ lệ 16,40 % / 3,00 %, tính **sau** giảm giá. Bảng đầy đủ: `audits/…/airbnb-reservation-breakdown-HMKPW2BN2B.md`. Chiếu đơn này sang sau 15/09 với hệ số 15 %: đêm 5.975.850 + dọn 402.500 = 6.378.350 → khách trả **ít hơn hôm nay 1,2 %** (vì phí khách của đơn này là 16,4 %, cao hơn 14,79 %), host nhận × 0,845 = **5.389.706 (+0,2 %)**. Không nâng dọn: host nhận 5.345.343 (**−34.656**). #### 1. Tình trạng tài khoản mình — đọc 14/09/2026 ##### Airbnb (`/hosting/host-service-fee-update`, task `CONFIRM_HOST_ONLY_FEE`) - Trạng thái task: **`ELIGIBLE`, `isNew: true`, `isPastDue: false`** — chưa làm. - `isHostEligible: true`, `isPostMigration: false`, hạn `September 15`. - **`taxEligibility: "EXEMPT"`**, `taxDisplayName: "VAT/GST"` ⇒ Airbnb **không** cộng VAT trên phí dịch vụ vào hệ số điều chỉnh của tài khoản này. Chuỗi giao diện tương ứng: *"VAT/GST charged on the service fee won't be included in your price adjustment."* → **trả lời cho `L-32`**. - **Hệ số Airbnb sẽ áp: ×1,1479** (= 0,97 ÷ 0,845, đo từ 305: min 1.300.000 → 1.492.308; 502: 1.000.000 → 1.147.929). - **13 listing đủ điều kiện, `ineligibleListings: []`** — tool chạy **toàn tài khoản**, không chọn từng căn: | Listing Airbnb | Trong PriceLabs? | Ghi chú | |---|---|---| | 305 · 404 · 502 · 181 THT · 41 LHC · 15 MN · 25 AT 11 | ✅ 7 căn | PriceLabs sẽ **ghi đè giá đêm** sau sync | | Villa with 5 Studio each w/ Private Bath & Kitchen (`1530984876196962121`) | ❌ | giá đêm sẽ đứng ở ×1,1479 của Airbnb | | NEW Pool Villa 6BR, Karaoke, Massage & Free Pickup (`1614694700651096321`) | ❌ | đang **UNLISTED** nhưng vẫn bị điều chỉnh | | 4 listing San Jose, CA (`9314…`, `1011…`, `1297…`, `1314…`) | ❌ | ngoài phạm vi (`L-09`) nhưng **vẫn nằm trong cú bấm** | ##### PriceLabs (`GET /api/airbnb_fee_migration`, preview của drawer) `summary: {listings: 7, parents: 0, children: 0, groups: 0, accounts: 0, pricing_profiles: 0, minstay_profiles: 0, migrated_earlier: 0}` — không có nhóm, không có profile, không có cha/con, **chỉ 7 dòng listing**, mỗi dòng chỉ có `base_price` + `min_price` (Max chưa đặt — `L-33`), **không có** Date-Specific Override hay customization giá cố định nào cần nâng. PriceLabs tính **hai hệ số** cho Việt Nam: `without_vat: 15` và `with_vat: 16.6` (giả định VAT 10 % trên cả phí cũ lẫn phí mới: 0,967 ÷ 0,8295 = 1,1658). Hệ số VAT là **theo quốc gia**, PriceLabs không biết tài khoản mình `EXEMPT`. | Căn | Base hiện | Base ×1,15 | Min hiện | Min ×1,15 | Cleaning fee (Airbnb) → ×1,15 | |---|---|---|---|---|---| | 305 | 2.182.970 | **2.510.416** | 1.350.000 | **1.552.500** | 350.000 → 402.500 | | 404 | 2.179.440 | **2.506.356** | 1.350.000 | **1.552.500** | 350.000 → 402.500 | | 502 | 1.688.560 | **1.941.844** | *chưa đặt* | — | 200.000 → 230.000 | | 181 THT | 3.862.830 | **4.442.254** | 2.500.000 | **2.875.000** | 500.000 → 575.000 | | 41 LHC | 4.622.500 | **5.315.875** | 3.450.000 | **3.967.500** | 600.000 → 690.000 | | 15 MN | 4.500.000 | **5.175.000** | 3.450.000 | **3.967.500** | *không có cleaning fee* | | 25 AT 11 | 4.000.000 | **4.600.000** | 3.000.000 | **3.450.000** | 500.000 → 575.000 | (Nếu bật "Adjust to Include Taxes" = ×1,166: 305 base 2.545.343 · 41 LHC 5.389.835 … — **không khuyến nghị**, xem §4.) #### 1a. Cài đặt thuế và phí hiện tại trên Airbnb — đọc 14/09/2026 (trả lời câu hỏi user) **Cấp tài khoản** (`account-settings/taxes`, `…/payments/service-fee`): - Taxpayers: **Huy Minh Nguyen** (US, Default) · **Tiffany Le** (US). Không có VAT ID. - **ERC — Giấy chứng nhận đăng ký doanh nghiệp VN `0402202817`, VERIFIED.** Airbnb: *"You can only have one ERC or VAT ID at a time."* - Tab **Tax withholding**: trống, `taxNotifications: []` → không có khấu trừ tại nguồn đang áp. - **Service fee: `Split fee (CURRENT SETTING)`** — *"On September 15, 2026, you'll be migrated to the single fee."* Trang này ghi phí khách tính trên *"all host charges, including nightly prices, cleaning fees, and pet fees"*. - Hệ quả: payload HOF khai **`taxEligibility: EXEMPT`** (VAT/GST) — Airbnb không cộng VAT vào phí dịch vụ của tài khoản có ERC ⇒ hệ số ×1,1479, không phải ×1,166. *(Việc doanh nghiệp có phải tự kê khai VAT nhà thầu trên phí Airbnb hay không là câu hỏi cho kế toán — không đổi hệ số nâng giá.)* **Cấp listing** (calendar → `pricing-settings`, đọc 15 MN; route `…/pricing-settings/taxes` không tồn tại, PDP không có dòng thuế): - Panel Pricing chỉ có 4 ô: **Base price · Custom weekend price · Smart Pricing (tắt) · Fees**. **Không có ô Taxes** ⇒ không cấu hình pass-through tax nào, Airbnb không thu hộ thuế nào cho listing VN. - Fees của 15 MN: cleaning **₫0** · pet **₫0** · extra guest *"after 1 guest, per night"* (số chưa đọc được — panel cuộn trong). Cleaning 6 căn còn lại theo preview PriceLabs (§1). - Base price phía Airbnb (15 MN 4.851.736 · 305 2.050.000) **khác** Base PriceLabs — là số Airbnb tự giữ cho ngày không có giá đẩy, vô nghĩa khi PriceLabs đẩy 731 ngày. Ảnh chụp: `audits/…/airbnb-account-taxes.png` · `airbnb-service-fee-settings.png` · `airbnb-15mn-pricing-panel.png` · `airbnb-15mn-fees-panel.png`. #### 1b. Ai cầm thứ gì — bảng gỡ rối (user hỏi 14/09) | Thứ | Nằm ở đâu | Cần nâng? | Tool nào nâng | |---|---|---|---| | **Giá đêm (standard rate)** | PriceLabs tính từ Base/Min, đẩy đè lên Airbnb mỗi lần sync | ✅ Base + Min ×1,15 | **Drawer PriceLabs** → Save → Sync. Tool Airbnb cũng nâng ×1,1479 nhưng chỉ sống tới lần sync kế — PriceLabs là chủ thật | | **Cleaning fee · pet · extra guest** | Chỉ trên Airbnb, PriceLabs không chạm được | ✅ ×1,1479 | **Tool Airbnb** (tự động, 13 listing) — hoặc sửa tay từng listing editor | | **Weekly 5 % · monthly 10 %** | Trên Airbnb, dạng **phần trăm** của giá đêm | ❌ **Không** — giá đêm lên 15 % thì giá tuần/tháng tự lên theo | Không tool nào đụng (Airbnb *"excluding discounts"*) | | Promotion / early-bird / last-minute % | Airbnb, phần trăm | ❌ Không | — | | Smart Pricing min/max (305, 502 còn lưu) | Airbnb | tự nâng, vô hại vì PriceLabs đè giá từng ngày | Tool Airbnb | | 6 listing ngoài PriceLabs (4 San Jose + 2 VN) | Airbnb | ✅ | Tool Airbnb — không ai ghi đè nên giữ luôn ×1,1479 | Cơ chế "ghi đè": tool Airbnb nâng giá đêm, nhưng PriceLabs không biết; lần sync kế nó đẩy lại giá tính từ Base **cũ** ⇒ giá đêm tụt về, phí đã 15,5 % ⇒ mất 12,9 %. Vì thế Base/Min phải nâng ở PriceLabs. #### 1c. Cấu hình sync THẬT của mình — đọc từ gói đẩy gần nhất (305, `api/fetch_last_request_text`, 14/09) | Thông số | Giá trị đọc được | Ý nghĩa cho mốc 15/09 | |---|---|---| | Kết nối | `OfficialAirbnb: True`, `Portal: airbnb`, `PushPricing: Y` cho cả 7 căn | PriceLabs **ghi thẳng** giá từng ngày lên Airbnb | | Gói đẩy gồm gì | **chỉ mảng `Rates` 731 số** (+ `Availability`, `UnitCountArray`) — không có cleaning fee, không min/max, không discount, không min-stay | Mọi thứ ngoài giá đêm là của Airbnb | | Chân trời | `StartDate 2026-09-13` → `EndDate 2028-09-12` = **731 ngày** | ≥ 2 năm tool Airbnb sửa ⇒ sync xong là **đè hết**, không sót ngày nào | | Airbnb mở bán tới | 09/06/2027 (+269 ngày); 533/731 ngày còn lại là đóng/đã đặt (giá âm) | Ngoài 269 ngày Airbnb không bán, không cần lo | | Nhịp đẩy | `CurrentListingTime 2026-09-13 12:16:08`, `UserSync: N`; dashboard 08:48 ngày 14/09 ghi "21 hours ago" | **Tự đẩy mỗi ngày ~12:15**. Chạy tool Airbnb mà chưa nâng PriceLabs ⇒ lần đẩy kế (≤ 24 h) trả 731 ngày về giá cũ | | Customization | **toàn bộ tắt**: `weekly/monthly_discount_on 0` · `update_minstay 0` · `update_listing_extra_person_on 0` · không DSO · không seasonal/fixed | Không có giá cố định nào ngoài Base/Min phải nâng | | Yếu tố % đang chạy | last-minute market-driven (−33 % same-day → 0 % sau 8 ngày) · far-out premium ×1,2 · occupancy market-driven | Đều là **%** của Base ⇒ nâng Base 15 % là cả 731 ngày lên 15 % | | Kẹp Min | 2/198 ngày trống đang đúng 1.350.000 (15–16/09), 4 ngày trong Min+5 % | Không nâng Min thì đúng những đêm ế nhất mất 12,9 % — vì thế drawer nâng cả Min | | Max | `MaxPrice: ""` | Không có gì để nâng (`L-33`) | | Mapping | `parents 0 · children 0` — dòng Booking của cùng căn là dòng riêng | Drawer chỉ đụng 7 dòng Airbnb; **Booking/Agoda không đổi** | Kiểm chéo: preview drawer báo Base 2.182.970 / Min 1.350.000 cho 305 — **trùng** với `BasePrice`/`MinPrice` trong gói đẩy ⇒ drawer nâng đúng số đang chạy. Gói thô: `audits/…/pricelabs-last-push-305.json`. **Điều Airbnb đang giữ (PriceLabs không gửi):** cleaning fee · pet/extra-guest fee · weekly 5 % / monthly 10 % · promotion · Smart Pricing min/max cũ (305: 1,3 tr / 3,77 tr — số chết, Smart Pricing tắt) · availability window. #### 2. Tool của Airbnb — wizard 7 bước, một cú bấm cho cả tài khoản Vào từ thẻ **"We're simplifying service fees · Action required by September 15"** (Listings/Today/Calendar) → `airbnb.com/hosting/host-service-fee-update`. Chữ từng bước **[đọc trực tiếp từ bundle]**: 1. *"Today, the price you set doesn't match the price guests see."* — bảng 100 / 115 / 3 / 97. 2. *"Guests pay a service fee on top of the price you set. And a host service fee is deducted from your earnings."* 3. *"To simplify pricing, we're combining both fees into a single 15.5% fee paid by hosts."* 4. *"To keep your earnings the same, we can adjust your prices to account for the single service fee."* + dòng thuế: với mình là *"…won't be included"*. 5. **"Your listings"** — từng listing: *Original price is X → New price is Y*; căn bật Smart Pricing hiện *Minimum / Maximum nightly price* và *"Smart Pricing already updated your nightly prices—just confirm your new minimum and maximum."* 6. **"Adjust prices for all your listings?"** / **"Confirm one-time price adjustment?"** — *"We'll adjust all of your prices and update your service fee now. **This adjustment cannot be reversed.**"* 7. Nút cuối: **`Adjust all prices`** ⇄ **`Don't adjust prices`**, rồi *"Adjusting your prices…"*. Tool sửa gì **[Help 4095]**: *"All prices (including custom price, custom promotion price, weekend price, and base price) and additional fees (e.g., pet fee, cleaning fee, etc.), excluding discounts"*, cho **2 năm lịch**, cả listing **active lẫn inactive**, cả **Smart Pricing min/max**. Chạy xong là **đã chuyển sang host-only**, *"won't be able to revert back to the split-fee structure."* ⚠️ Hai điều wizard **không** nói: (a) nó không nhắc cleaning fee ở màn hình nào — phải tin Help 4095; (b) không cảnh báo gì cho người dùng phần mềm giá — chính PriceLabs mới nói (§3). #### 3. Tool của PriceLabs — drawer "Airbnb Fee Change: Update Prices" Vào từ banner **`Update My Prices Now`** trên Pricing Dashboard → drawer phân trang. Ghi chỉ xảy ra ở **một** nút: `Save Prices` (POST `/api/airbnb_fee_migration/apply`). Toàn bộ chữ **[đọc trực tiếp từ i18n]**: **Trang 1 · Overview** — đếm 7 Airbnb Listings / 0 Groups / 0 Pricing Profiles / 0 Minstay Profiles / 0 Account. Ba lựa chọn: - **Review and Adjust Prices** — đi tiếp. - **Close for now** — *"you can come back any time before Sep 15th 2026."* - ⛔ **"I'm Already on Host-Only Fee and Adjusted My Prices"** — *"Selecting this option will dismiss the Price Update Tool and **you will not be able to access it in the future**."* Có hộp xác nhận. **Không bấm.Trang 2 · Before you begin** — đây là chỗ chốt thứ tự: *"**Step 1** — Run the Airbnb price adjustment tool to update your nightly rates (we will overwrite them in Step 2), cleaning fee, and any other fees. **Step 2** — Return to this workflow once done to update your prices in PriceLabs and sync to Airbnb."* *"Why do I need to do this first? PriceLabs doesn't control your cleaning fee or any other fees set in Airbnb. Updating in Airbnb first ensures those fees reflect the new 15.5% fee structure. When you run the Airbnb migration tool, your nightly rates will change temporarily — PriceLabs will overwrite them once you update and Sync."* Hai nút: **"I've Run the Airbnb Price Adjustment Tool"** ⇄ **"Continue Without Running the Airbnb Tool"** *(Not recommended)* — cảnh báo: *"Until then, your cleaning and other fees will remain unadjusted, and **Airbnb will increase your nightly rates by an additional 15% until your next sync**."* **Trang 3–9 · từng listing (×7)** — mỗi trang: - ô **`Increase by`** % (0–100; mặc định theo `percent.without_vat` = 15) + công tắc **`Adjust to Include Taxes`** (→ 16,6 %; tooltip: *"In countries where Airbnb charges VAT on service fees, the required increase is slightly higher than 15%."*). - bảng **Price Changes** (Base / Min / Max: Current → New), **Date Specific Overrides**, **Fixed-Price Customizations** — hai mục sau trống với mình. - hộp vàng **"You need to update this on Airbnb — The 15% fee also applies to your cleaning fee. PriceLabs can't change this"** + nút `Open Airbnb Listing Editor`. - chân: **`Skip This Listing`** · **`Accept Changes & Next`** · **`Accept for All`**. **Trang Summary** — *"Review your accepted changes below before saving to PriceLabs."* → **`Save Prices`** ⟵ **cú bấm ghi duy nhất**. **Applying** → kết quả từng dòng `Saved` / `Already Up To Date` / `Failed (Contact support)` → nút **`Sync N Updated Listings`** (đẩy giá mới xuống Airbnb) → *"Syncing prices for 7 Airbnb listings. This may take a few minutes."* Endpoint (để đọc lại preview không cần mở drawer): `GET https://app.pricelabs.co/api/airbnb_fee_migration?page_number=1` — cookie phiên là đủ, header chỉ có `traceparent`. `POST …/apply` và `POST …/dismiss` là ghi — **cấm**. #### 4. Thứ tự đúng — và vì sao ba nguồn nói ba kiểu | Nguồn | Thứ tự đề xuất | |---|---| | **Drawer PriceLabs (mới nhất, trong app)** [đọc trực tiếp] | **Airbnb tool → PriceLabs drawer → Save → Sync** | | Help Center PriceLabs (viết lúc tool "coming mid-August") [KB] | PriceLabs → Sync → rồi mới chuyển fee trên Airbnb | | Blog bên thứ ba (rentalscaleup, ListingLab) [blog] | bỏ hẳn tool Airbnb, chỉ sửa PriceLabs + sửa phí tay | **Theo drawer.** Lý do: tool Airbnb là cách **duy nhất một cú bấm** nâng cleaning fee của 13 listing và chuyển fee; giá đêm nó nâng ×1,1479 chỉ sống tới lần sync PriceLabs kế tiếp (PriceLabs ghi đè bằng base mới ×1,15 — hai số gần như bằng nhau nên **không có cửa sổ giá lệch**). Làm ngược (PriceLabs trước) thì lúc chạy tool Airbnb sau đó, giá đêm bị **cộng thêm 15 % lần nữa** cho tới sync — chính là cảnh báo trong drawer. Bỏ tool Airbnb thì phải sửa cleaning fee tay ở 13 listing **và** vẫn phải đi qua wizard để chuyển fee (hoặc chờ Airbnb tự chuyển 15/09). **Hệ số: 15 %, KHÔNG bật "Adjust to Include Taxes".** Airbnb — bên thu phí và bên tính thuế — khai tài khoản này `EXEMPT` và tự áp ×1,1479. Bật 16,6 % là nâng cao hơn Airbnb ~1,6 % ⇒ khách thấy đắt hơn hôm nay, tự làm giảm conversion. *(Đây là khuyến nghị; `L-32` vẫn cần user chốt, vì "EXEMPT" là cách Airbnb phân loại, mình chưa đối chiếu hoá đơn phí dịch vụ tháng gần nhất xem có dòng VAT không.)* #### 5. Runbook — CHỈ 7 CĂN trong workspace (user chốt 14/09/2026), không dùng tool Airbnb **Vì sao không dùng `Adjust all prices` của Airbnb:** nút đó chạy cả 13 listing của tài khoản, không chọn được căn. Giới hạn ở 7 căn ⇒ cleaning fee sửa tay từng căn (bước 1), giá đêm để PriceLabs (bước 2), phí chuyển tay (bước 3). **Không tách được:** đổi phí là cài đặt **cấp tài khoản** (`account-settings/payments/service-fee`) ⇒ 6 listing ngoài phạm vi (4 San Jose + villa 5 studio + căn 6BR unlisted) đổi phí cùng lúc, giá của chúng không ai nâng ⇒ payout của chúng giảm 12,9 %. Ngày 15/09 Airbnb cũng tự chuyển chúng — muốn giữ payout cho 6 căn đó thì cách duy nhất một cú bấm là tool Airbnb (§5b). Hệ số **15 %**, thuế **tắt**. Làm 1 → 2 → 3 **liền nhau** trong một buổi. ##### Bước 1 — Airbnb: nâng cleaning fee 6 căn (15 MN không có), ~10 phút Đường đi mỗi căn: **Calendar → chọn căn ở cột ảnh bên trái → panel phải "Pricing" → ô `Fees` → `Cleaning fee · Per stay` → gõ số mới → `Save`**. Trong cùng trang Fees, nếu `Amount per short stay`, `Pet fee`, `Extra guest fee` đang có số > 0 thì nhân 1,15 luôn; đang ₫0 thì để nguyên. | Căn (tên trên Airbnb) | Cleaning hiện | **Gõ vào** | |---|---|---| | 305 · Newly built A La Carte 2b2ba | 350.000 | **402.500** | | 404 · Remodel 2br/2ba A La Carte | 350.000 | **402.500** | | 502 · 1BR Studio A La Carte Hotel | 200.000 | **230.000** | | 181 To Hien Thanh · Modern 3BR Beach Villa | 500.000 | **575.000** | | 41 LHC · Newly built villa 4br/5ba | 600.000 | **690.000** | | 25 AT 11 · 4BR Villa in An Thuong | 500.000 | **575.000** | | 15 MN · The Living Tree Villa | 0 | **575.000** (user chốt coi gốc 500.000, đặt 14/09) | **✅ Bước 1 ĐÃ LÀM 14/09/2026 ~11:15** bằng `scripts/ota-write-airbnb-cleaning-fee.mjs` (user ra lệnh "thực hiện sửa phí dọn dẹp"). Mỗi căn set qua `#PriceInput-cleaningFee` trên trang con `…/pricing-settings/fees/cleaning`, bấm Save, rồi mở tab mới đọc lại: 305 **402.500** · 404 **402.500** · 502 **230.000** · 181 THT **575.000** · 41 LHC **690.000** · 25 AT 11 **575.000** — 6/6 khớp. **15 MN: user chốt 14/09 ~11:30 coi gốc là 500.000 ⇒ đặt mới 575.000** (trước đó ₫0 — đây là khoản thêm mới, không phải giữ payout), đã lưu + đọc lại khớp. Trang Fees tổng của cả 7 căn: pet · extra guest · management · community · linen · resort đều **₫0**, short-stay chưa đặt ⇒ không có phí nào khác phải nâng. ##### Bước 2 — PriceLabs: nâng Base + Min 7 căn rồi đẩy ngay, ~10 phút | # | Làm | Kiểm | |---|---|---| | 2.1 | Pricing Dashboard → banner → **`Update My Prices Now`** | drawer mở, Overview đếm **7 Airbnb Listings / 0 Groups / 0 Profiles / 0 Account** | | 2.2 | **`Review and Adjust Prices`** | ⛔ không chọn *"I'm Already on Host-Only Fee…"* (xoá tool vĩnh viễn) | | 2.3 | Trang *Before you begin* → **`Continue Without Running the Airbnb Tool`** | Nhãn *"Not recommended"* + cảnh báo *"Airbnb will increase your nightly rates by an additional 15 % until your next sync"* **chỉ đúng nếu SAU ĐÓ bấm tool Airbnb** — mình không bấm nên bỏ qua | | 2.4 | 7 trang listing: `Increase by` = **15** · `Adjust to Include Taxes` **tắt** · so cột *New* với bảng dưới → `Accept Changes & Next` | Hộp vàng *"You need to update this on Airbnb"* về cleaning fee: đã làm ở bước 1, không bấm `Open Airbnb Listing Editor` | | 2.5 | Summary → đọc 7 khối → ⚠️ **`Save Prices`** | 7 dòng **Saved** | | 2.6 | ⚠️ **`Sync 7 Updated Listings`** | toast *"Prices updated and sync triggered for 7 listings"* | | Căn (tên trên PriceLabs) | Base hiện → **New** | Min hiện → **New** | |---|---|---| | 305--305 | 2.182.970 → **2.510.416** | 1.350.000 → **1.552.500** | | 404--404 | 2.179.440 → **2.506.356** | 1.350.000 → **1.552.500** | | 502--502 | 1.688.560 → **1.941.844** | *chưa đặt* → — | | 181 To Hien Thanh | 3.862.830 → **4.442.254** | 2.500.000 → **2.875.000** | | 41 LHC | 4.622.500 → **5.315.875** | 3.450.000 → **3.967.500** | | 15 MN | 4.500.000 → **5.175.000** | 3.450.000 → **3.967.500** | | 4BR Villa in An Thuong (25 AT 11) | 4.000.000 → **4.600.000** | 3.000.000 → **3.450.000** | **✅ Bước 2 ĐÃ LÀM 14/09/2026 ~11:40–11:50** bằng `scripts/ota-pricelabs-drawer.mjs` (từng cú bấm, đọc lại sau mỗi cú, ảnh ở scratchpad `pl-drawer/`). Phát hiện lúc làm: **drawer mặc định BẬT "Adjust to Include Taxes" ⇒ Increase by = 16,6 %** — phải tắt ở trang 1/7 (trạng thái giữ cho 6 trang sau). User hỏi vì sao 15 % ≠ 16,6 % → kiểm lại: 2 đơn thật phí host = 3,000 % subtotal, không dòng VAT; payload Airbnb EXEMPT; Help 436 (ERC → không bị tính VAT) ⇒ giữ 15 %, user chốt. 7/7 Accept → Summary 13 thay đổi khớp bảng §1 (181 THT 4.442.255, lệch 1 ₫ làm tròn) → `Save Prices` 7/7 **Saved** → `Sync 7 Updated Listings` → toast *"Prices updated and sync triggered for 7 listings."* Preview API sau đó: `listings 0 · migrated_earlier 1`; banner biến mất. Gói đẩy 305 đọc ngay sau: `BasePrice 2.510.420` (PriceLabs làm tròn chục) · `MinPrice 1.552.500`; mảng giá đêm tính lại sau vài phút (xem Bước 4). ##### Bước 3 — Airbnb: chuyển sang single fee ngay sau khi sync, ~1 phút Account → **Payments** → tab **Service fee** → chọn **`Single fee`** → ⚠️ **`Save`**. Trang ghi *"you won't be able to go back to a split fee"*. Không bấm *"use our tool to adjust your prices"* trong trang này (chính là tool 13 listing). Làm ngay sau 2.6 để không có khoảng giá đã +15 % mà khách vẫn trả phí khách. Không làm thì 15/09 Airbnb tự chuyển — chấp nhận được, nhưng khoảng đó dài tới 1 ngày. **✅ Bước 3 ĐÃ LÀM 14/09/2026 ~19:05** bằng `scripts/ota-airbnb-service-fee.mjs` (`--read` → `--select` → user xác nhận → `--save`). Trước: `Split fee (CURRENT SETTING)`, Save disabled. Sau Save: `Single fee (CURRENT SETTING)` + hộp thoại Airbnb *"Your service fee is now 15.5% and your guests will not pay a service fee. This will affect all of your listings."* Xác minh độc lập: thẻ *We're simplifying service fees* biến mất khỏi Listings; task `CONFIRM_HOST_ONLY_FEE` không còn trong `NaviServerAnnouncementsQuery`; payload `/hosting/host-service-fee-update` đổi thành `isHostEligible: false`, `taxEligibility: NOT_ELIGIBLE` và URL tự về Today; route `…/payments/service-fee` giờ chuyển hướng sang `payment-methods`. Ảnh: `audits/…/airbnb-servicefee-shots/`. ##### Bước 4 — Xác minh (15–30 phút sau 2.6) - [ ] PriceLabs dashboard: cột **Base Price** 7 dòng đúng bảng trên; cột **Sync Price** = "a few minutes ago". - [ ] Airbnb Calendar 305: đêm 17/09 ≈ **1,62 tr** (hôm qua đẩy 1.409.989 × 1,15). - [ ] Airbnb Calendar → Pricing → Fees của 305: cleaning **402.500**. - [ ] Service fee page: **Single fee (CURRENT SETTING)**. **✅ Bước 4 (phần PriceLabs) ĐÃ KIỂM 14/09 18:37–18:50:** - Dashboard 7 dòng: Min/Base mới đúng bảng (PriceLabs làm tròn chục: 2.510.420 · 2.506.360 · 4.442.260 · 1.941.840 · 5.315.880 · 5.175.000 · 4.600.000), cột Sync "11–12 minutes ago". - `graph_data` 305: `last_refreshed_at 11:31:56Z`, `listing_last_date_pushed 11:31:57Z` (= 18:31 VN), `base 2.510.420`, `min 1.552.500`; 25 AT 11: refreshed 11:32:23Z, base 4.600.000, min 3.450.000. Ngày ế 15–20/09 kẹp đúng Min mới. - **Airbnb lịch 305 (`getDLSHostCalendar`) khớp 100 % giá PriceLabs ở 19/19 ngày không có promotion** (19/09 → 20/10) ⇒ sync đã tới Airbnb với hệ số mới. - ⚠️ **10 ngày có `host_custom_promotion` (15–18/09, 22–27/09, group key 2026-09-15) Airbnb vẫn bán giá khuyến mãi CŨ**, thấp hơn PriceLabs 0–8 % (16/09: Airbnb 1.430.737 vs PriceLabs 1.552.500). Đây là "custom promotion price" mà tool Airbnb đáng lẽ nâng ×1,1479; mình bỏ tool nên nó không được nâng. Ghi `L-96`. Chưa kiểm promotion của 6 căn còn lại. ##### Bước 5 — Ghi sổ (agent làm khi user báo xong) `L-01` ✅ · `L-32` ✅ (15 %, tắt thuế) · `L-33` giữ mở · `pricelabs.md` §2b bảng Base/Min mới · `todo.md` mục A gạch xong. **Không bấm:** *"I'm Already on Host-Only Fee…"* · `Adjust all prices` / *"use our tool to adjust your prices"* (13 listing) · công tắc *Adjust to Include Taxes* · `Sync Price` từng dòng trên dashboard trước 2.5. ##### 5b. Đường thay thế — nếu muốn giữ payout cho cả 6 listing ngoài phạm vi Thay bước 1 + 3 bằng wizard Airbnb → `Adjust all prices` (nâng cleaning fee + giá đêm ×1,1479 cho 13 listing, đổi phí), rồi bước 2 chọn *"I've Run the Airbnb Price Adjustment Tool"*. Chi tiết wizard ở §2. #### 6. Chưa xác minh / ngoài phạm vi - **`L-96` — promotion Airbnb giữ giá cũ** (user chốt 14/09: để đó, xử lý sau bước 3). Chưa quét 6 căn còn lại. - Chưa mở drawer PriceLabs thật (nút nằm trong danh sách cấm của `ota-readonly-rule.md` §5) — giá trị mặc định của công tắc thuế và cột *New* trên UI suy từ i18n + preview, chưa nhìn bằng mắt. - Wizard Airbnb chỉ đọc tới bước 1 bằng mắt; bước 2–7 đọc từ bundle. - 18 listing Airbnb còn lại trong PriceLabs (86 PCL, Ba Na Hills, các studio `1681…`) **không nằm trong preview 7 dòng** và không nằm trong 13 listing của tài khoản Airbnb đang đăng nhập → thuộc tài khoản Airbnb khác hoặc đã host-only sẵn. Chưa kiểm. - Không tìm thấy trên Airbnb tuyên bố rõ "sau hạn, tool còn tới ngày nào" cho tài khoản mình. #### 7. Nguồn - Bundle wizard Airbnb: `a0.muscache.com/…/host-hof-transition/routes/HofTransition/index.66070cbb65.js` (đọc 14/09/2026) - Payload SSR trang `/hosting/host-service-fee-update` → `hostOnlyFeeTransition.eligibility` (lưu `audits/…/airbnb-hof-eligibility.json`) - i18n PriceLabs `pricing.airbnb_fee_migration.*` nhúng trong `app.pricelabs.co/pricing` (lưu `audits/…/pricelabs-drawer-strings.json`) - Chunk PriceLabs `91262-1bb50bdfe5733e56.js` — định nghĩa `airbnbFeeMigrationApi` - [Airbnb Help 4095 — Using the Airbnb price adjustment tool](https://www.airbnb.com/help/article/4095) - [Airbnb Resource Center — Simplifying service fees](https://www.airbnb.com/resources/hosting-homes/a/simplifying-service-fees-on-airbnb-771) - [PriceLabs KB — Airbnb fee structure change](https://help.pricelabs.co/portal/en/kb/articles/airbnb-fee-structure-change-what-pricelabs-users-need-to-know) - [Rental Scale-Up — Airbnb host fees 15.5 %](https://www.rentalscaleup.com/airbnb-host-fees/) *(bên thứ ba, chỉ để đối chiếu công thức ÷0,845)* --- # Kiến thức nền tảng — Airbnb URL: https://harthliving-ota.pages.dev/guide/airbnb/airbnb/ [Tổng quan](https://harthliving-ota.pages.dev/) › [Guide book](https://harthliving-ota.pages.dev/guide/) › [Airbnb](https://harthliving-ota.pages.dev/guide/airbnb/) # Kiến thức nền tảng — Airbnb ## Tóm tắt 30 giây **Dùng khi:** Cần hiểu cơ chế Airbnb áp cho tài khoản của mình. - Từ 15/09/2026 Airbnb chuyển sang phí chỉ thu của host 15,5 % (có bài riêng). - Tốc độ trả lời tin nhắn ảnh hưởng thứ hạng và huy hiệu Superhost. - Có bảng so cài đặt 7 căn cạnh nhau (đọc 05/09/2026) và listing ID từng căn. ## Toàn văn Nguồn: `platforms/airbnb.md` · Đọc ngày: **05/09/2026** Bản chữ cho máy đọc: [TXT](https://harthliving-ota.pages.dev/api/guidebook/airbnb/airbnb.txt) ### Airbnb — cơ chế đã hiểu Truy cập theo `vault/10-rules/ota-readonly-rule.md`. **Chỉ đọc.** #### 1. ⏰ ĐỔI PHÍ: host-only 15,5% từ 15/09/2026 Nguyên văn banner PriceLabs (03/09/2026): *ACTION REQUIRED: Airbnb fee change on Sep 15th 2026 — Airbnb is moving split-fee hosts to a single 15.5% host-only fee. To maintain your current payouts, you may need to adjust your prices in PriceLabs and cleaning & other fee on Airbnb.* Banner trên Airbnb chỉ ghi: *"We're simplifying service fees — Action required by September 15"* (chi tiết nằm sau nút bấm, chưa mở vì luật chỉ-đọc). ##### 1.1 Hai mô hình phí | | **Split fee** (đang dùng) | **Host-only** (từ 15/09) | |---|---|---| | Host bị trừ | ~**3%** | **15,5%** | | Khách bị cộng | ~**14,2%** | **0%** | | Giá khách thấy | giá host đặt | giá host đặt | | Giá khách TRẢ | giá + phí khách | **đúng bằng giá host đặt** | Bản chất: **phí không tăng, chỉ chuyển từ vai khách sang vai host.** Airbnb bỏ khoản phụ thu phía khách và gộp hết vào một khoản trừ phía host. ##### 1.2 Tiền chạy đi đâu — ví dụ 4.000.000 ₫/đêm | | Host nhận | Khách trả | |---|---|---| | Cũ (split 3% / 14,2%) | 3.880.000 ₫ | 4.568.000 ₫ | | Mới, **giữ nguyên giá** | 3.380.000 ₫ | 4.000.000 ₫ | | **Chênh** | **−500.000 ₫ (−12,9%)** | −568.000 ₫ | ⇒ Không làm gì thì **host mất ~12,9% payout**, khách được rẻ đi. Đó là lý do banner ghi ACTION REQUIRED. ##### 1.3 Phải tăng bao nhiêu để giữ nguyên payout `giá mới = giá cũ × (1 − phí_host_cũ) / (1 − 0,155) = giá cũ × 0,97 / 0,845 = giá cũ × 1,1479 → +14,8% ` Kiểm chứng với ví dụ trên: 4.000.000 × 1,1479 = **4.591.716 ₫** → host nhận 4.591.716 × 0,845 = **3.880.000 ₫** (đúng bằng cũ) → khách trả **4.591.716 ₫** so với 4.568.000 ₫ cũ = **+0,5%**, gần như không đổi. **Đây là điểm dễ hiểu nhầm nhất:** tăng giá hiển thị ~14,8% **KHÔNG** làm khách đắt thêm, vì khoản phí khách từng trả riêng đã bị bỏ. ##### 1.4 Phải sửa HAI chỗ, không phải một | Sửa gì | Ở đâu | Vì sao | |---|---|---| | Giá đêm — **Min, Base, Max** | PriceLabs | Nâng mỗi Base là hụt: thuật toán vẫn tụt được xuống Min cũ | | **Cleaning fee & other fees** | Airbnb (từng listing) | Phí 15,5% trừ trên **toàn bộ** payout kể cả cleaning; PriceLabs không đẩy cleaning fee | ##### 1.5 Hệ quả phụ - **Giá hiển thị trên Airbnb sẽ cao hơn Booking/Agoda ~15%** dù tổng khách trả tương đương. Khách so giá/đêm thô giữa các kênh sẽ thấy Airbnb "đắt". Cần cân nhắc lại parity ba kênh. - **Mặt tích cực:** sau 15/09 cả ba kênh đều là mô hình *host trả hoa hồng* (Booking ~15%, Agoda ~15–18%, Airbnb 15,5%) ⇒ định giá đồng bộ ba kênh dễ hơn hẳn so với hiện nay. ##### 1.6 Chưa xác minh — đừng coi là chắc - **15,5%** là con số PriceLabs ghi cho tài khoản này. Host-only fee của Airbnb thường dao động ~14–16%. - **Phí host hiện tại có đúng 3% không** — chưa mở cài đặt phí của tài khoản để xem. - **Mốc 15/09 tính theo ngày ĐẶT hay ngày Ở** — chưa biết. Ảnh hưởng các booking đã xác nhận trước đó. - **Có áp cho cả 7 căn hay chỉ một số** — chưa kiểm. - **Cleaning fee hiện tại của từng căn** — chưa đọc. #### 1b. Cấu trúc phí và chiết khấu — đọc trực tiếp 03/09/2026 Nguồn: khối `HostCalendarFeeSettings` nhúng trong HTML của `/hosting/listings/editor//details/pricing`, lấy cho cả 7 căn bằng GET. | Căn | Phí dọn | Giá cuối tuần | Giảm tuần | Giảm tháng | Airbnb gợi ý giảm tháng | Price tip | |---|---|---|---|---|---|---| | 305 | 350.000 | — | −5 % | −10 % | −29 % | 2.119.655 | | 404 | 350.000 | — | −5 % | −10 % | −34 % | 2.213.862 | | 502 | 200.000 | 1.430.000 | −5 % | −10 % | −33 % | 1.625.069 | | 181 THT | 500.000 | 3.200.000 | −5 % | −10 % | −29 % | 4.097.999 | | 41 LHC | 600.000 | 6.026.614 | −5 % | −10 % | −29 % | 5.228.482 | | **15 MN** | **KHÔNG CÓ** | 5.336.910 | −5 % | −10 % | −29 % | 4.616.137 | | 25 AT 11 | 500.000 | — | −5 % | −10 % | **−43 %** | 3.815.379 | **Không căn nào có:** phí thú cưng · tiền đặt cọc hư hỏng · phí khách thêm. ##### Bốn điều đọc ra 1. **`15nuocman5` không thu phí dọn** — villa 4BR/5BA duy nhất bỏ trống ô này. Hai villa cùng cỡ thu 500.000 và 600.000. → **L-26** 2. **Phí dọn không theo quy mô nhất quán:** 1BR 200k · 2BR 350k · 3BR 500k · 4BR 500k / 600k / 0. Ba villa 4BR ba mức khác nhau. 3. **Giảm tháng đặt −10 % trong khi Airbnb gợi ý −29 % đến −43 %.** Riêng `25 AT 11` gợi ý −43 % — đúng căn ế nhất. 4. **Cả 7 căn đều có một khuyến mãi `endDate` = `9999-12-31`**, mức **−20 %**, bắt đầu từ ngày mỗi căn lên sàn. Nếu đang chạy thật thì đây là giảm 20 % vĩnh viễn trên mọi đêm — và là lời giải cho việc giá thực luôn thấp hơn giá gốc. → **L-27**, **cần xác minh trước tiên**. ##### Ba con số "giá gốc" khác nhau cho cùng một căn 305 | Nguồn | Giá | |---|---| | Base price khai trong listing Airbnb | 2.050.000 | | Price tip Airbnb tự đề xuất | 2.119.655 | | Base trong PriceLabs | 2.182.970 | **Smart Pricing của Airbnb = TẮT** (đã kiểm trên 305) — đúng, vì PriceLabs đang đẩy giá. Nhưng `smartPricingMinPrice/MaxPrice` vẫn còn giá trị cũ ở 305 (1.300.000–3.766.697) và 502 (1.000.000–2.129.427). ⚠️ **Giá cuối tuần đặt ở 4 căn** (502 · 181THT · 41LHC · 15MN) nhưng PriceLabs đẩy giá theo từng ngày, nên nhiều khả năng bị ghi đè — chưa xác minh cái nào thắng. #### 2. Cấu trúc danh sách listing `airbnb.com/hosting/listings` — cột: `Listing` · `Type` · `Location` · `Status`. - Mỗi listing có **nickname** hiển thị cạnh tên (`502`, `25 AT 11`, `41 LHC`, `15 MN`, `tom/tony`, `Fam Suite`). Nickname là cách nội bộ nhận diện, không phải tên khách thấy. - `Status` chỉ có **Listed** / **Unlisted**. Unlisted = ẩn hoàn toàn, khách không tìm thấy. - Trang này render bằng React, **link không mang listing id** — không moi được ID bằng `href`. Muốn có ID phải mở từng listing. #### 3. Tốc độ phản hồi là yếu tố xếp hạng Hộp thư đang có **90 tin chưa đọc** (03/09/2026). Response rate và response time ảnh hưởng thứ hạng tìm kiếm và huy hiệu Superhost → `issues.md` **L-07**. #### 4. Ràng buộc nội dung — đã có file riêng Luật cấm khi nhắn tin cho khách nằm ở `vault/10-rules/ota-messaging-rules.md`. Ba điều hay quên: cấm thu tiền phòng ngoài nền tảng · cấm chủ động đưa SĐT/WhatsApp · cấm xin "5 sao" (dùng "review"). #### 5. Đọc lại toàn bộ cài đặt bằng một lệnh `node scripts/ota-read-airbnb.mjs --out vault/18-ota-listings/properties/_raw-airbnb # đọc, ~4 phút python3 scripts/ota-distill-airbnb.py --date YYYY-MM-DD # rút gọn thành hồ sơ ` Điều kiện: Chrome đang mở, đã đăng nhập, còn **một tab bất kỳ trên airbnb.com**. Script bám Chrome qua CDP (`~/.config/google-chrome/DevToolsActivePort`) vì MCP `chrome-devtools` đang tắt trong `settings.local.json`. **Chỉ `fetch` GET + đọc JSON nhúng** — không điều hướng tab của user, không bấm, không ghi. Đúng bậc 1–3 của thang ưu tiên trong luật. ##### 5.1 Dữ liệu nằm ở đâu trong trang Mỗi trang editor render sẵn `