首页/数据/数仓建模速查/案例:航空航线客运建模
建模基础69 条

案例:航空航线客运建模

航空域:航班维(航线/机型/班期)+ 订座事实 + 乘机事实;客座率 = 乘机人数 / 可售座位;延误与取消用状态事件表达。

数仓建模速查数据更新于 2026-10-13

航空航线客运建模

航空客运域通常建航班维(航线、机型、班期)与两类事实:订座事实记录订座与退改,乘机事实记录实际乘机人数与可售座位。客座率等于乘机人数除以可售座位;准点与延误用状态事件表达。航班与航段两个概念必须分清:中转航班按航段统计才不会重复计数,按航班统计则要把各航段合并看待。

基本信息

维度航班 / 航线 / 机型 / 班期
事实表订座事实 + 乘机事实
关键指标客座率、准点率、取消率
延误表达状态事件,含延误时长与原因分类
口径要点航班与航段分开统计,避免中转重复
分母处理取消航班要计入正常率的分母

典型使用场景

  • 客座率分析:按航线与班期比较客座率,指导运力投放
  • 准点率考核:按航线、机场统计准点情况与延误时长分布
  • 订座趋势:观察提前订座曲线,预判航班收益水平
  • 退改分析:按票价类型统计退改率,评估收益政策
  • 延误归因:把航段与起降动作事件化,定位延误发生在哪个环节

乘机事实与核心指标

乘机事实与核心指标
CREATE TABLE fact_flight_board (
  flight_no string,
  flight_date string,
  route_sk bigint,
  leg_no int,               -- 航段号,中转航班按航段统计避免重复计
  boarded_cnt int,
  capacity_cnt int
)
PARTITIONED BY (dt string) STORED AS ORC;
SELECT route_sk, sum(boarded_cnt) / sum(capacity_cnt) AS load_factor   -- 客座率 = 乘机人数 ÷ 可售座位
FROM fact_flight_board GROUP BY route_sk;

航班与航段口径

对象粒度统计注意
航班一个航班号一次执行中转航班合并看,指标按航班汇总
航段起飞到落地一段按航段统计不会重复计数
订座一张机票一次订座含退改状态,与乘机数不同
航班延误分析把航段与动作(起降、加油、除冰)分开事件化,延误归因才能落到具体环节,否则只能得出「延误总时长」而无法推动改进。
取消航班要从分母口径上明确处理:从正常率分母中剔除会得出虚高的准点率,因此行业惯例是把取消航班计入分母单列展示,报表需同时给出取消率。

易错点

  • 航班与航段概念混用,中转数据被重复统计,航线指标虚高
  • 取消航班不计入分母,准点率虚高,掩盖真实运行质量
  • 把订座数与乘机数混为一谈,客座率与实际收入对不上
  • 延误只用总时长表达,无法归因到环节,改进措施没有落点

数据来源与参考

  • 航空客运实践:航班与订座模型
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌