土耳其民宿淡季定价:我把三城入住率数据重排了一遍
安塔利亚老城一家八间房的民宿,去年11月到今年2月,四个淡季月的可售房夜总计约960个,实际卖出约410个,入住率约43%。同一时期,卡帕多奇亚格雷梅一家十二间房的洞穴民宿,入住率约51%,伊斯坦布尔苏丹艾哈迈德一家十间房的民宿约58%。三组数字来自我手上代运营的房源后台,不是官方统计口径,样本小,但足以看出淡季定价的松动空间在哪里。
我的做法是把四个淡季月的订单按“提前预订天数”分桶,再对每桶算实际成交均价,而不是看页面挂牌价。命令大致如下,数据从各平台导出的CSV合并后跑:
import pandas as pd
df = pd.read_csv("reservations_winter.csv", parse_dates=["checkin","booked_at"])
df["lead"] = (df.checkin - df.booked_at).dt.days
bins = [-1, 3, 14, 30, 60, 120, 999]
labels = ["0-3","4-14","15-30","31-60","61-120","120+"]
df["bucket"] = pd.cut(df.lead, bins=bins, labels=labels)
out = df.groupby(["city","bucket"], observed=True).agg(
nights=("nights","sum"),
adr=("net_revenue","sum")
)
out["adr"] = out.adr / out.nights
print(out.round(1))
跑出来最明显的一条:安塔利亚0-3天桶的成交均价只有提前30天以上桶的六成出头,而格雷梅这个差距不到两成。也就是说,安塔利亚淡季的临期折扣已经在自我强化,越临近入住越降价,客人也学会了等。
为什么这样处理:挂牌价是房东的意愿,成交均价是市场的回答。按提前天数分桶,能把“降价换来的量”和“本来就会来的量”分开,避免把整体均价下滑误读成需求崩塌。代价是需要至少两个完整淡季的订单数据,单季样本在分桶后会碎得没法看;而且各平台导出的字段名不一致,清洗成本比跑模型高得多。
会失效的地方:一是节假日前后的桶会被本地短途客扭曲,安塔利亚的周末订单提前天数天然偏短,不能直接和格雷梅比;二是我踩过的坑,有房东把“不可取消”低价房和“免费取消”高价房混在同一桶里,均价看着正常,实际取消率吞掉了利润,后来我把取消状态单独拉了一列才看清;三是里拉计价房源在汇率跳变周会出现整桶均价失真,那几周我直接按美元折算重算。
你们在淡季定价时,是按提前天数设阶梯折扣,还是只调周末价?临期那几天,会不会干脆关掉部分平台避免比价?
0
赞同度 100% · 0 条评论 · 1 阅读
0 条评论
还没有评论,写下第一条。