我们仅凭一份公开数据集,为印度支线航空搭建了一个航线选择模型。在盲测中,它把某家航司十条航线中的8条排进了2,743个城市对的前100名。
This article was translated from the English original. Translations are machine-assisted and reviewed on a rolling basis.
问一个模型:一家涡桨航司该飞哪些航线。除了一份公开的电子表格,什么都不给它。在它有资格提出任何新建议之前,它必须通过一项测试:它必须独立地重新发现,一支资深航网规划团队早已选定的那些航线。
2026年8月,我们对一家我们欣赏的印度支线航司做了这项测试。模型读取一个公开数据源,为2,743个城市对打分,并把该航司十条航线中的八条放进了自己的前100名。它对这家航司一无所知。随后它点出了三个该航司没有飞的城市对,每一个分数背后的算术都摊开可查。
这份报告记录了整个搭建过程:这个市场及其运营者、模型提出的四个问题、把一份政府文件变得可用的那些不体面的数据工作、盲测验证、研究发现、一份标示稀薄航线分布的全国地图集,以及我们在别人开口之前就先说明的局限。先说清楚出处。这是一份独立分析。没有任何航司委托它、为它提供数据或参与其中;本研究不主张与其所建模的运营者存在任何关系,其中的每一个数字都来自公开数据。这项工作是为了验证一套方法,用的是我们自己的时间。
市场:稀薄航线的十年
按照DGCA自己的城市对记录,印度国内航空在2025年运送了1.669亿人次。这个头条数字掩盖了它自身的结构。其中很大一部分旅客,是在十几个枢纽机场之间乘坐180座窄体喷气机往返的。其余的人则在别的地方流动:中等城市、朝圣小镇、海岛跑道,以及那些先有机场后有需求的邦首府。
第二梯队正是支线航空所在的地方,而它的运行逻辑完全不同。孟买—德里的规划者问的是时刻允许多少班次。支线规划者问的是一个更难的问题:这个城市对产生的客流,能否让一架小飞机每天都飞满,又不至于多到引来一家低成本喷气机运营商进场把市场拿走?这两种失败模式之间的带宽很窄。印度大多数城市对都落在这条带子之外,不是这一边就是那一边。
政策环境已经决定要把这一梯队做宽。2026年,联邦内阁批准了区域连通计划(修订版UDAN),总投入2,884亿卢比,执行期从2026-27财年到2035-36财年。该计划出资把未通航的简易机场改建为新机场,并为愿意执飞这些航点的运营者提供缺口补贴。UDAN的第一个十年为第二个十年铺好了跑道:到2026年中,DGCA自己的每日看板统计出93个已投运机场上共授予657条RCS航线,由10家运营者执飞。无论一个人怎么看待补贴经济学,方向都毫不含糊:更多机场、更多稀薄城市对、更多关于哪一个值得投放飞机的决定。
关键词是”更多决定”。每一个新机场都会成倍放大航网规划者必须考虑的组合数。十座城市有45个可能的城市对。五十座城市有1,225个。一家打算从十几座城市扩张到五十座城市的航司,面对的候选集合按平方增长,而规划团队人数不变,那份短名单则始终是一种令人安心的虚构。
而且两个方向上的错误代价都很高。开一条填不满飞机的航线,它会在你花两三个航季承认错误之前一直失血。跳过一个正在悄悄成熟的城市对,竞争对手的时刻表公告就会把你的犹豫变成他们的基地。航线选择是一家支线航司反复做出的最高风险决定,而且随着航网扩大,它重复得越来越快。
飞机对这个问题的塑造不亚于市场。70座涡桨机之所以存在,是因为一条顽固的经济学规律:低于某个需求密度,喷气机的座位成本无法在支线市场愿意支付的票价下收回,而涡桨机较低的航段成本和较慢的巡航速度,几乎正好适配两小时以内的航段。这种适配的代价是一个狭窄的运行区间。涡桨机飞得太短,滑行—爬升—下降就吃掉了轮挡时间;飞得太长,巡航速度的劣势又会在同一城市对上被喷气机竞争放大。因此,涡桨机运营者的航线选择是一种有边界的搜索,而有边界的搜索恰恰是评分模型能够体现价值的地方:区间可以定义,候选可以枚举,取舍反复出现。
对这个问题的传统答案有两种形态。第一种是经验:一位盯了印度城市对二十年、把地图装在脑子里的规划负责人。这一套是管用的,拥有它的航司应当珍惜。但它无法扩展到那一个人以外,他离开时也带不走,而且它无法自我审计。第二种形态是咨询公司的市场研究:耗时八周产出,以幻灯片形式交付,两个季度内就过时,并且在结构上无法说明它是怎么得出那个排名的。
我们想演示第三种形态。一个小而清晰可读的模型:读取公开数据,为每一个可行的城市对打分,展示它的算术过程,并且可以每月以一杯咖啡的成本重跑一次。它不是要替代那位有二十年经验的规划负责人,而是摆在他面前的仪表盘。
运营者:究竟是谁在飞印度支线
在给航线打分之前,先给这个赛场打分。记录城市对客流的同一套DGCA出版物,也记录了航司层面的运行数据,读一读它就能解决一个行业评论通常一带而过的问题:究竟谁真的在做支线生意、规模多大、各自朝哪个方向走。
分界线是平均航段距离,即一家航司典型旅客飞行的距离,这里按截至2026年5月的十二个月内客公里除以运送旅客数计算。干线运营者集中在950到1,200公里之间。支线运营者集中在280到580之间。中间几乎什么都没有:印度国内市场是两个市场共用一张牌照类别。
| Operator | Passengers, 12m to May 2026 | Year on year | Avg stage |
|---|---|---|---|
| IndiGo | 107.5M | +1% | 948 km |
| Air India | 25.5M | +7% | 1,076 km |
| Air India Express | 19.3M | +48% | 1,003 km |
| Akasa Air | 8.8M | +12% | 1,195 km |
| SpiceJet | 5.1M | +5% | 1,012 km |
| Star Air | 933,712 | +33% | 582 km |
| Alliance Air | 587,147 | −49% | 421 km |
| FLY91 | 390,708 | +94% | 442 km |
| IndiaOne Air | 27,928 | −8% | 320 km |
| flybig | 3,989 | −77% | 285 km |
在公开镜像中,航司层面的运行数据比城市对记录滞后约两个月,因此这张表的窗口是截至2026年5月的十二个月;本研究其余部分的航线模型则跑到7月。
支线梯队值得单独一读,因为它的五个成员正朝五个不同方向移动。
Star Air 是目前的运量领先者,一家总部在卡纳塔克邦的ERJ运营商,同比增长三分之一,平均航段距离是该梯队中最长的,这是一家正在逼近干线稀薄度下限的支线航司的画像。Alliance Air,那家多年扛着UDAN使命的国有老牌航司,一年内腰斩;机队和融资的故事正在客流数字里自我了结。FLY91 接近翻倍,是该梯队中增长最快的,起点是最小的ATR机队基数。IndiaOne Air 和 flybig 展示了这一梯队的死亡率:机队规模只有个位数、执飞最稀薄航线的运营,一家在漂流,一家实际上正在退出。五家运营者,五条轨迹,对一个航线模型只有一个结论:支线梯队是一场开放的竞争,而它所争夺的需求池,是干线航司在结构上无法服务的。
这种流动性是后文一切内容的战略背景。被收缩中的运营者腾出的航线,在两个航季内就会变成别人的机会。一个每月刷新的仪表,在运力撤出的当月就能看见这个空缺。
稀薄航线的地理:一份全国地图集
为本研究搭建的模型刻意带有航司形状:它的第四个问题给与某一家航司基地的邻近度打分。把这个问题剥掉,把其余三个重新归一化,同一套评分就能以不分航司的方式覆盖整个国家。结果是一份地图集:涡桨机适飞区间内的每一个城市对,仅按规模、增长和航程打分,再按坐标归入六个分析区域。这些区域是地理带,不是行政区划,跨区域的城市对按中点归属。
| Zone | Pairs in envelope | In the 70-seat band | Passengers, 12m | Year on year |
|---|---|---|---|---|
| South | 714 | 70 | 34.4M | −2% |
| North | 822 | 37 | 21.7M | +2% |
| West | 376 | 30 | 13.9M | +3% |
| Northeast | 182 | 19 | 4.9M | −5% |
| East | 142 | 15 | 2.1M | −18% |
| Central | 428 | 13 | 1.6M | −9% |
从这张表里掉出两个结构性事实。南部是深水区。 它占据全国184个带内城市对中的70个,是最接近的对手的两倍,而且建立在最大的旅客基数上。半岛地理造就了这一点:一格中等城市的网格,彼此相距250到700公里,恰好是涡桨机的步幅,而铁路连接慢到输掉时间比较。北部宽而浅。 落在适飞区间内的城市对比任何区域都多,但只有37个在带内,因为北部需求集中在通往德里的干线上,那些航线早就超出了70座的规模,而其余部分又比一条每日轮转所能支撑的更稀薄。
东北部讲的是第三个故事,值得单独一份报告:19个带内城市对,所处地形上飞行可以替代一整天的驾车,这是全国涡桨机最强的结构性理由,而这个区域的运营者死亡率也最高。东部的−18%是该行业最陡的区域性下滑,集中在失去了航班服务而非失去了需求的城市对上。
这份地图集刻意只发布到区域层面,而不是一份全国排名列表。不分航司的分数是一个筛选镜头,而每个区域顶部的那些城市对,取决于你问的是谁的飞机、谁的基地、谁的竞争,含义会完全不同。这个仪表的存在,是为了按运营者逐个回答那个问题;地图集的存在,是为了显示哪些地方值得提出问题。
这家航司,以及我们给自己设定的问题
本研究中的这家航司运营六架ATR 72-600涡桨机,拥有两个基地,一个在孔卡恩海岸,一个在德干高原。它服务着印度西部和南部约十几座城市组成的航网,其中混合了枢纽连接、中等城市和一条海岛跑道。它的一部分飞行是在UDAN航线授予之下运行的。在公开访谈中,它宣称的抱负是把机队规模扩大一个数量级,服务数倍于当前的城市数量。
我们选择这家航司有三个理由。这张航网是新的,这意味着其中每一条航线,都是由今天仍在岗位上的人,在当前市场条件下,依据现代数据,刻意选出来的。机队是单一的,六架同一机型,这把建模问题压缩到了一个运行区间。抱负是公开的,这意味着我们的模型所回答的问题,也就是”下一个飞哪里”,是这家航司在未来五年里要面对几十次的问题。
还有第四个理由,而它是诚实的那一个。我们为各类组织搭建AI系统,而这门生意里最难的部分是第一次对话。每一家供应商都声称自己有能力。幻灯片是免费的。我们想带着一样真正能跑的东西走进航空业,用的是没人能指责我们粉饰过的数据,并且对照我们事先不可能知道的决定做过验证。要赢得一位航网规划者的注意,方法是给他看一个独立地认同了他做对的那些判断的模型。
于是我们设下了赋予本研究标题的那个约束。模型将不会收到关于这家航司的任何信息。不给航线图,不给时刻表,不给客座率,不给财务数据。只有一项输入:民用航空总局公布的、每月印度每一对城市之间飞行人数的公开记录。如果模型不能在那份文件里盲着找出这家航司的航网,那么模型就是错的,我们不会拿给任何人看。
这个约束听起来像一种自缚。它其实正是整个方法论要点所在,值得停下来说明原因。
任何用航司自身数据拟合出来的模型,学到的都是这家航司的决定,包括它的错误。它变成了一个回声。一个只建立在公开需求记录上的模型无法接触到那些决定,所以当它仍然复现出那些决定时,就有某种真实的东西被证明了:这些决定仅凭需求数据就是可恢复的。这项验证是双向的,而第二个方向才是有价值的那一个。它验证了这家航司。一支凭私下判断选出的航线,与一个盲测评分器在公开记录中找到的航线相同的规划团队,其判断已经被算术独立确认过了。而在评分器与团队意见不一致的地方,这种分歧是精确的、可检视的,值得开一次会。
这种盲测还解决了那个扼杀大多数分析类供应商推介的可信度问题。一份在研究过客户航网之后产出的排名,总是可以被客气地指责为逆向拼凑出来的。而一份在任何接触之前、用任何人都能下载的数据产出、并且把权重摊开展示的排名,则无法被这样指责。它在朴素意义上是可证伪的:任何有一台笔记本电脑的人都可以重跑一遍并核对。
一项范围界定决定为这套设置收尾。我们刻意只对需求建模,别的什么都不做。票价、竞争对手时刻表、时刻可用性和机组保障都是真实存在的,也都缺席,本研究接近结尾处的局限一节会详细处理这种缺席。简短版本是:公开记录能够诚实地支撑一个需求模型。假装它能支撑一个盈利能力模型,则属于航空业早已学会嗅出的那类越界。
一个数据源,四个问题
模型只读一个文件:DGCA每月记录的、2015年4月至2026年7月印度每一对城市之间运送的国内旅客数。我们采用开源india-aviation-traffic代码库维护的机器可读镜像,它把DGCA公布的月度统计汇总成一份连续的CSV。十一年的数据:66,453条月度记录,覆盖1,800多个至少有过一名定期航班旅客的不同城市对。
模型从这份文件出发,对每一个ATR 72-600有可能服务的城市对提出四个问题。每个问题产出一个介于零和一之间的子分数。加权求和得到一个百分制分数,每个城市对都与其他所有城市对排序比较。这就是整个模型。里面没有机器学习,没有嵌入向量,没有黑箱。这是一项设计决定,而每个问题背后的推理承载了大部分价值,所以下面把它们完整列出。
问题一:这个城市对的规模合适吗?(34%)
一架70座涡桨机以健康的客座率每日往返执飞一个城市对,每月大约运送3,150名旅客。因此模型奖励每月运量在2,000到25,000之间的城市对。低于2,000,即便每天派一架小飞机也会空着座位飞,子分数按比例衰减。高于25,000,这个城市对就能填满180座喷气机,这意味着低成本大航司要么已经在飞,要么会在有人证明可行的那一刻进来,子分数相应衰减。
这条带子是模型的战略核心,所以它承载了最大的权重。支线航空做的生意,就是那些大到不能忽视、又小到干线喷气机运营者守不住的城市对。模型里其余的一切,都是在细化这一个想法。
问题二:它在增长吗?(26%)
模型把2025年6月到2026年5月的过去十二个月,与之前的十二个月作比较。需求持平得0.5分。增长百分之五十或以上得满分1.0,下滑则跌到中点以下。如果上一年的基数低于500名旅客,模型干脆拒绝计算增长率,直接给中性的0.5,因为在三位数基数上的百分比增长,不过是穿着西装的噪声。
其用意是抓住浪头,而不是池塘。两个城市对可能都是每月8,000名旅客,但一年前只有5,500的那一个,正在告诉你静止的那一个没有告诉你的事:这条航线上的需求正在被发现,而发现还没有结束。
问题三:飞机能舒服地飞下来吗?(22%)
ATR 72-600是个短跑选手。它的经济性在250到700公里的航段上最好,大约相当于空中四十分钟到九十分钟。模型把这条带子视为理想区间,给1.0分。在150到250公里之间分数递减,因为过短的航段把太多轮挡时间花在滑行和爬升上。超过700公里再次递减,超过900公里则被模型直接排除。距离是大圆距离,由机场坐标计算得出。
硬边界的意义不亚于理想带。它们把搜索空间收缩到一个诚实的规模:在所有有客流记录且坐标已知的印度机场的全部两两组合中,恰好有2,743个城市对落在这个区间内。模型每次运行都会给它们全部排序。
问题四:它连着基地吗?(18%)
飞机、机组和机务总要在某处过夜。对这家航司的地理布局而言,那就是两个基地。触及任一基地的城市对得1.0分。两端都不触及基地的得0.55分,这是罚分而不是排除,因为航网确实会长出战术性外站,但每一条孤立航线背后都拖着调机成本、执勤时间的复杂性和维修保障的暴露。
这是唯一一个编码了关于该运营者的具体信息的问题,而即便是它,用的也只是公开知识:基地在哪里。这也是刻意设定的最小权重。需求应当压过地理,否则模型就退化成一张”飞机现在在哪里”的地图。
模型刻意不问的东西
把被否决的候选问题记录在案之后,这四个问题就更容易站得住脚,因为每一项省略都是一次选择而不是一次疏忽。模型不给班次潜力打分,即一个城市对能支撑多少每日轮转,因为班次是市场判断之下游的时刻表设计决定,把它折进来会让一份激动人心的时刻表幻想抬高一个平庸的市场。它不给经由基地的中转客流打分,因为中转流量取决于公开记录看不见的航班波时刻,而这个规模的支线航网,生死首先取决于点对点需求。它不给各站之间的机场收费或燃油差价打分,这些是真实的成本,但相对于需求问题足够小,用公开价目表去建模只会增加精确度的表演而非准确度。
最难的一项是,它不试图做票价代理。这个模型曾有过一个诱人的版本,用距离和市场类型的经验法则估算收益水平,而它会产出底下什么都没有的、自信满满的收入数字。按需求排名并把这一点讲明白,胜过按虚构的收入排名,因为前者是一个诚实的部分答案,后者是一个悄悄虚构的完整答案。上述每一项省略都遵循同一条规则:模型只提数据真正能回答的问题。
为什么用一个权重可见的线性模型
四个数字,34、26、22和18,会引出一个明显的质疑:为什么是这些?诚实的答案是,它们编码的是判断,不是回归。它们是按照商业逻辑的思考顺序设定的:先是机会规模,其次是势头,再次是飞机经济性,最后是航网引力。任何不同意的人都可以改动权重再跑一遍;代码让这变成一次三十秒的编辑。
这种可重跑性正是主张简单的理由。用同一份文件拟合出的梯度提升排序器会产出一份类似的名单,却永远无法向规划委员会解释它,也扛不住一轮”如果我们更看重增长会怎样”的追问。一个有四个清晰可读问题的线性评分器是可以被争论的,而这恰恰使它能在一屋子职业生涯建立在这类判断之上的专业人士当中派上用场。模型的工作,是在人们争论权重时把算术稳住。我们曾为另一个行业写下过同样的理念,见我们的AI治理案例研究:展示自身推理的系统会被采纳,要求人们信仰的系统会被束之高阁。
底下还有一条更深的原则,是我们在搭建的每一套系统中都会应用的。派生出来的判断应当被存储、被检视、被版本化,而绝不应在被调用时不透明地重新生成。一条航线91.2的分数之所以有意义,是因为构成它的四个子分数就写在它旁边,而下个月的重跑可以逐行与本月比对。无法展示自身推演过程的智能,不是一个受监管行业能够据以行动的智能。
不体面的工作:让一份公开文件说出真话
每一个数据项目都有一个没人会写进宣传册的阶段。这个阶段吃掉了我们大部分搭建时间,而跳过它就会误导读者,让人以为这类工作的力气花在了别处。DGCA的这份文件是一份礼物,十一年的月度城市对客流,免费公开。它同时也是一份由许多人在许多年里拼凑出来的文件,而它的行为方式正是如此。
先从名字说起。这份文件把果阿(Goa)拼成了四种不同的样子,取决于年份和机场:单写Goa、括号里带Dabolim的、Mopa自己的两种变体,以及在最新的文件里,光秃秃的”Dabolim”,完全不提果阿。把它们当作不同的城市,这个邦的客流就被切成了四份,毁掉下游的每一个数字。最后那一种变体值得单独一段坦白:这个模型的早期版本只为四种标签中的三种做了别名,而那些光秃秃的Dabolim行,每年超过三百万旅客,悄无声息地从每一个果阿城市对里消失了。这个错误直到一项覆盖度检查列出模型无法归位的最繁忙城市时才浮现,而”DABOLIM”就从名单靠前的位置瞪着我们。本报告中的每一个数字都是在那次修复之后产生的。
果阿并不特殊。新孟买机场启用后,孟买出现了三种写法。拉杰果德的新机场以”Hirasar (Rajkot)“的形式出现。兴敦(Hindon)以”Ghaziabad”的名义现身。蒂鲁吉拉伯利在十年中途多出了一个”p”。维杰亚瓦达少了一个”a”,戈尔哈布尔带着一个肉眼看不见却对字符串匹配致命的尾随空格,阿加蒂有时是一座岛有时不是,而班加罗尔在这份文件的某个年代里与Bangalore共用一条斜杠。模型带着一张别名表,把每一种变体折叠成一个规范名称,而那张表的搭建方式,和这类表格一贯的搭建方式一样:先发现每一处不匹配已经悄悄扭曲了一个本不该被扭曲的数字,然后加上一项覆盖度检查,让下一处自己喊出来。
然后是解析本身。有几个城市名在带引号的字段内部含有逗号。像一个快写的脚本那样,天真地按逗号切分这份文件,那些行就会剪碎成垃圾,可能崩溃也可能不崩溃。这个教训很老,但显然每个项目都得重新学一次:CSV是一种有规则的格式,而只有真正的CSV解析器知道那些规则。
再然后是各种数据假象,它们更微妙,因为算术在技术上是正确的。这份数据里的极端增长数字来自两种不同的错觉,而它们需要不同的处理。第一种是通航启动假象:赖布尔—维沙卡帕特南在上一年3,697名旅客的基数上录得+602%,兴敦—瓦拉纳西在3,011的基数上录得+3,175%。这两个数字都不意味着需求爆发。它们各自意味着,在此前实质上没有航班的地方开通了一条定期航线,而这个百分比衡量的,是这条航线在它自己诱发出的需求上、开通了几个月之后的样子。第二种错觉更麻烦:在上文所述的别名修复之前,某个果阿城市对显示出+7,123%的增长,而在标签合并的那一刻蒸发成了+2%,因为那个”增长”不过是客流在同一座机场的不同拼写之间迁移。一个无法识别这两者本质的模型,会自信地把一次航线开通,或者一行改名的记录,排成一场需求爆发。
我们的处理办法是上文所述的500基数下限,它压住了其中最严重的部分,加上对其余部分不做修正只做标记:凡是在近期薄基数上出现的大幅增长,只要它进入了输出,就被标注为通航启动假象。我们刻意选择标记而不是删除。一条新航线成长进它自己诱发的需求,是关于这个市场的真实信息。它只是与有机增长不同的另一种事实,而读者有权知道自己正在看的是哪一种。
还有一个边界案例值得一提,因为它显示了模型与一条真实存在的航线相左。这家航司执飞一个沿海城市对,其大圆距离低于模型的150公里下限,因此模型干脆拒绝为它打分。这条下限在经济上是对的,如此短的航段在固定翼经济学下很少能覆盖起降循环成本,而这条航线之所以存在,是因为一项区域连通性授予,其中的缺口补贴改变了模型所评分的那道等式。我们保留了这条下限,并注明了这一排除。一个为了讨好观察到的航网而悄悄弯曲自身规则的模型,已经从它真正的工作岗位上辞职了。
要在这些事情上多花笔墨,原因不止于手艺上的自尊:一个可信的模型和一个丢脸的模型之间的差别,几乎全部住在这一层里。四个问题的评分逻辑写在一张索引卡上就够了,任何一位称职的分析师都能在一个下午重建它。他们在一个下午做不到的,是知道戈尔哈布尔带着一个尾随空格。公开数据的工作会复利:为这个模型建立的别名、下限和标记,现在可以迁移到我们接下来接触的每一个印度航空问题上。
它必须先通过的那场测试
以上全部都是一个时刻的铺垫:问这个已经完工、对任何航司一无所知的模型,在2,743个城市对里它最喜欢哪些,然后核对这家航司的实际航网落在那份排名的什么位置。
这套流程值得一句迂腐的说明,因为盲测的诚实程度只等于它的先后次序。四个问题和它们的权重,是先仅凭商业推理写定并锁死的。这家航司的航线清单是另行整理的,来自公开的时刻表信息,并且只在排名已经存在之后才与之比对。比对之后没有任何权重被再动过。一个被调到讨好已知答案为止的模型,只能证明作者会调参,这就是为什么冻结要发生在观看之前。
结果如下,完整呈现。模型给ATR适飞区间内的全部2,743个城市对打分并排序。这家航司的航网落位如下。
| Route | Rank of 2,743 | Score | Distance | Passengers, trailing 12m |
|---|---|---|---|---|
| Agatti – Goa | 6 | 95.8 | 538 km | 38,619 |
| Hubli – Hyderabad | 9 | 94.0 | 414 km | 55,493 |
| Jalgaon – Pune | 36 | 89.2 | 319 km | 40,774 |
| Goa – Jalgaon | 38 | 89.0 | 649 km | 41,267 |
| Hyderabad – Rajahmundry | 40 | 88.6 | 360 km | 303,230 |
| Hyderabad – Vijayawada | 72 | 82.9 | 264 km | 367,588 |
| Goa – Pune | 74 | 82.7 | 356 km | 456,149 |
| Bengaluru – Hubli | 82 | 81.8 | 371 km | 103,909 |
| Bengaluru – Goa | 317 | 51.3 | 483 km | 1,526,595 |
| Goa – Hyderabad | 323 | 50.8 | 533 km | 1,265,807 |
这家航司十条航线中的八条位于模型2,743名中的前100名,其中两条在前十名之内。若排名是随机的,这十条航线落入任意前100名的期望数量是0.36。模型从未被告知这些航线作为一张航网存在。它之所以找到它们,是因为让一支资深规划团队选中它们的那种需求特征,清清楚楚地写在公开记录里,而这四个问题正是为读出这种特征而调校的。
想一想那几个高位排名各自到底在说什么。排名第6的海岛城市对,结合了一个被锁定的市场、零地面交通替代方案,以及一个正落在涡桨机适飞带核心的航段长度。排名第9的胡布利—海得拉巴,是一条同比增长27%、规模恰好适合每日一班轮转的邦首府连接。第35、37和39名的那几个城市对是经典的支线打法:邦首府与三角洲城市的客流,薄到撑不起持续的喷气机服务,又厚到足以每日执飞。一支规划团队用他们自己的方法看到了这一切。模型用四个问题和一份公开文件看到了同样的东西。
现在看表格底部的那两条,因为它们看起来像失败,实际上恰恰相反。那两个枢纽城市对排在317和323名,年运量分别为130万和150万人次。如果这个模型是一个通用的航线推荐器,把百万级旅客的市场排在300名开外就是一个错误。但这个模型评的是涡桨机机会,从来不是重要性,而那种规模的城市对多年前就已经长过了70座的甜蜜点。喷气机已经在那里了。对这个评分器来说,把这类城市对打低分才是正确行为,而它确实这么做了,理由正是已经说明过的那一条:规模问题在稀薄航线带之上会封顶并反转。这家航司无论如何还是飞这两条,合理的原因可能是航网喂给、品牌存在感和飞机调配,这些都是真实的战略理由,存在于需求模型的管辖范围之外。模型不需要认同每一条航线才有用。它需要的是清晰可读地表达不认同。
三处温和的分歧位于72到82名这一段,值得看看它们的子分数。果阿—浦那年运量456,000人次,正在漂过70座适飞带的上沿;模型扣掉它的规模分,理由与把枢纽城市对压到底部的理由相同,只是温和些。海得拉巴—维杰亚瓦达和班加罗尔—胡布利失分在增长而不是规模:这些是扎实的市场,只是在这个窗口内过去一年的势头一般。这就是模型在说”航线不错,正在成熟”或者”航线不错,当下不是浪头”,这些都是站得住脚的判读,而且更重要的是,可以检视的判读。任何人都可以打开子分数,看到它们所比较的那些和。
表格背后的分布与表内的排名同样重要。把全部2,743个分数按排名顺序画出来,曲线在最初一百来个城市对之间陡峭下落,随后铺平成一段长而无差别的中段。这家航司的航线集中在陡峭的那一段,而这才是有意义的落位:模型果断地把它最靠前的几十个城市对分离出来,而这张航网就坐在那个被分离出来的组里,而不是散落在排名差异意义不大的平台区。在这条曲线上,第9名是一个强有力的主张。第900名对第1,000名则是噪声,而模型的使用者会被这样告知。
关于这项验证确立了什么、没有确立什么,值得说几句,因为过度宣称很容易,而我们宁可少说。严格地说,这项测试表明:模型的排序函数,在与该航司航网做任何比对之前就已经建立并加权完毕,把该航司独立选出的八个城市对排进了前4%。权重是由商业推理设定的,并且在验证之前就已锁定。这项测试没有确立的,是对盈利能力的预测力。一条航线可以在需求上完美,却仍然因为票价而亏钱,而模型对票价只字未提,这是本研究在自己的一个章节里认真对待的一项局限。
用实际的话说,这项测试买到的是发言资格。当这个模型随后声称某个无人执飞的城市对与该航司最好的那些航线相似时,这一主张从盲测再发现中继承了可信度。这一主张有一个具体的、可核对的含义:这个城市对的得分方式,与阿加蒂—果阿和胡布利—海得拉巴的得分方式一样,基于同样的四个问题,在同样的公开数据里。这与一位顾问说”我们看到这里有潜力”是完全不同的一类陈述,而这种差别,正是先造出仪表再提出论点的全部意义。
它发现了什么:三个该航司没有飞的城市对
验证摆上桌面之后,同一份排名可以反过来读。剔除该航司已经服务的每一个城市对,看看剩下的顶部还有什么。本研究展示其中三个,之所以选它们,是因为每一个都讲了一个关于模型如何论证的不同故事。还有若干个越过了同样的评分门槛,我们刻意保留:一份整体交出的排名列表会招来纸上谈兵的反驳,而一份在房间里、对照运营者自己的数字逐条推敲的短名单,则会变成一个计划。
| Route | Rank of 2,743 | Score | Distance | Passengers, trailing 12m | Growth |
|---|---|---|---|---|---|
| Calicut – Hyderabad | 8 | 94.7 | 728 km | 141,183 | +42% |
| Hyderabad – Kolhapur | 28 | 91.2 | 445 km | 51,615 | +16% |
| Bengaluru – Kannur | 56 | 85.2 | 274 km | 113,848 | +24% |
卡利卡特—海得拉巴:浪头
三者中最大也增长最快的一个,在全国范围内也是前十的城市对。截至2026年7月的十二个月里,略超过141,000人次在这两座城市之间移动,接近每月一万两千人,而这个市场同比增长42%,且基数健康,这排除了前述两类假象。需求逻辑从地面上看就是清晰的:喀拉拉邦的第三大都会,聚集着学生、IT从业者和从海湾返乡的家庭,连接着德干高原的科技之都。分数解剖:规模满分,34分中的34分。基地连接满分,18分中的18分,因为一端就是该航司的德干基地。两处扣分:增长拿到26分中的23.9分,因为42%低于50%的上限;航程拿到22分中的18.8分,因为729公里已经超出了700公里的理想带。合计94.7,在全部2,743个城市对中排名第8。
战略性判读:一条连接喀拉拉邦第三大都会与德干科技之都的劳动力与家庭走廊,其增长速率表明这个市场正在被发现,而不只是被服务。728公里把一架ATR推到了舒适的边缘,空中大约两小时,而分数已经诚实地承担了这项惩罚,而不是把它藏起来。
海得拉巴—戈尔哈布尔:教科书
排名第28,也是模型用途最纯粹的体现。每月约4,300名旅客,几乎正好是一班每日70座轮转的天然规模。在干净的多年基数上增长16%:有机、不惊人、真实。航段长度445公里,正处理想带的正中央,22分中的22分。一端在该航司的德干基地,18分中的18分。唯一的扣分是增长,26分中的17.2分,因为16%是扎实而非爆炸性的。合计91.2。
这里没有哪一个单独的数字是令人兴奋的,而这恰恰是关键。这正是人工筛选会漏掉的那类城市对:小到上不了行业会议的演讲,增长温和到做不成头条,连接的是一个基地和一座没有直飞航班通往它的城市。模型之所以能把它捞出来,是因为算术不会觉得无聊。像这样的城市对,正是一个评分仪表挣回自己房租的地方,在注意力都盯着吵闹的那些航线时,找出那条像手套一样贴合这架飞机的安静航线。
班加罗尔—坎努尔:不顾地图也能得分的需求
排名第56,三者中最有教益的一个,因为它是在背着模型最大的一项罚分的情况下排到那里的。两端都不触及基地,所以这个城市对承受了全额基地扣分,18分中的9.9分。它仍然在2,743个城市对中排到第56位,靠的是其余一切:年旅客量接近114,000,规模完美,34分中的34分;在六位数基数上增长24%,26分中的19.2分;以及274公里的航段落在理想带内,22分中的22分。合计85.2。
当一个城市对吸收了模型中最大的结构性罚分,却仍然压过2,743个候选中的2,609个时,这个需求就不是边缘性的。模型是在说:这个市场强到足以支撑越过当前基地地图去思考,无论那意味着把这个城市对挂在现有飞行之上,还是把它当作一个未来外站的种子。那个决定属于手里有成本表的人。模型的贡献,是确保这个问题被提出来。
如何读一份分数解剖
上面三份解剖遵循一个值得明确说出的模式,因为这正是这台仪表教给使用者的技能。一个高总分本身说明不了什么;信息住在失分的位置上。卡利卡特—海得拉巴只在航程上失分,所以它提出的运行问题关于区间边缘的航段经济性:油耗、机组执勤时间的适配,以及时刻表能否容纳两小时的轮转。海得拉巴—戈尔哈布尔只在增长上失分,所以它的问题关于天花板:一个16%的市场会持续吸收座位,还是一班每日轮转就把它填满了?班加罗尔—坎努尔只在基地适配上失分,所以它的问题纯粹是后勤性的:在两端都没有飞机过夜的情况下,服务这个城市对在调机和机组安排上要付出什么代价?
三条航线,三份完全不同的尽职调查议程,全都直接读自哪一项子分数付了罚金。一个单一的不透明分数,无论多准确,都永远做不到这一点。这种分解把一份排名转化成一份工作计划,而这种转化,比排名本身更是一支规划团队采用一台清晰可读的仪表时真正买到的东西。
这项发现的形状
把这三个城市对放到地图上,一个任何单一分数都没有陈述的规律就出现了:三个全都位于机队已经服务的地理范围之内。没有一个要求这家航司去往什么新地方。它们要求这张航网,去接住已经流经自己邻里、掠过已经在附近过夜的飞机的需求。增长计划通常把扩张想象成向外伸展;这个模型的头几条建议,全都关于触手可及范围之内的密度。
这也是这项发现自带的告诫。模型看见的是需求,而触手可及范围内的需求是必要的,却远远不是充分的。这三个城市对中的任何一个能否在票价、竞争对手班次和时刻的接触之下存活,是公开记录无法回答的问题,而这把本研究带到了它最重要的一节。
呈现这份分析:一份读者可以飞越的报告
一份正确却没人读的分析改变不了任何事,所以呈现层得到了与模型同等的设计投入。研究发现以一个独立自足的网页形式交付,而它的构造属于本案例研究的一部分,因为其中的选择可以推广到任何面向资深运营者而非分析师的分析类交付物。
这个页面围绕一段连续的旅程构建。印度西部和南部的地图固定在文字背后,读者滚动时,一架摄影机在它上方飞行:航网按模型的排名顺序一条一条把自己画出来,而三个未服务的城市对各自作为一个航段被飞过,一架飞机沿着虚线从一座城市描向另一座城市,与此同时那个城市对的数字在旁边到达。滚动是读者必须学会的唯一交互。其余的一切,分数解剖、排名条带、主题,都是可选的深度。
四项呈现决定完成了说服工作。
永远是先验证,后机会。 页面的结构强制了论证的顺序:读者先看到模型的方法,再看到它重新发现了现有航网的证明,然后才是任何建议。一位刚刚看着一个盲测模型把自己行业里公认正确的决定排进前4%的读者,会对下一屏给予暂时的信任。同样的三个城市对,如果先呈现,读起来就只是又一家供应商的意见。
每个分数都能打开看到它的算术。 每一张航线卡片轻点即可展开,显示四个子分数以及确切的得分与失分:航程22分中的18.3分,基地适配18分中的9.9分。没有任何东西是以无法分解的裁决形式呈现的。这是模型整体理念在界面上的表达,而读者能感觉到一个可以打开的数字与一个必须接受的数字之间的差别。
失手之处被注解,而不是被藏起来。 页面上的验证表格包含了排名底部的那两个枢纽城市对,并附有一段说明,解释为什么一个涡桨机机会评分器应当把百万级旅客的市场排低。把最难看的那几行连同它们的理由一起留在里面,买到的可信度比排在最前面的那些行自己能买到的更多。
局限自成一章,写在页面上,不用别人问。 票价、竞争对手时刻表、时刻和增长假象,都在报告本身里以平实的语言写明,先于任何读者能够提出它们。在此后的每一次对话里,局限那一节都是资深读者最先提到的部分,而且是带着赞许提到的。
选择一个实时页面而不是一份PDF,本身就是一个论点。一套幻灯片把分析冻结在导出的那一刻,并请求你相信它;而一个表格会响应、解剖会展开、地图会飞行的页面,邀请读者去戳这个东西,而戳正是怀疑者转化的方式。这种媒介也匹配模型自身的承诺:一样为每月重跑而造的东西,应当以一种看得出它确实能做到的形式抵达,而不是一份页脚日期已经在变旧的快照。
还有两项更小的体贴收尾。这个页面是一个没有外部依赖的单文件,所以它在任何地方都能加载,打开之后离线也能用,尊重深色模式和减弱动效偏好,并且能干净地打印到纸上,供想在上面涂写的读者使用。而且它是安静发布的,不被索引,寄给它预定的读者而不是搜索引擎,因为一份为某一位运营者而造的演示,行为方式应当像一封信件,连元数据里都保持礼貌。
模型看不见什么,在别人开口之前先说明
一个模型靠它所声明的局限赢得信任,所以这一节是我们所能写下的最长的一份诚实清单。有四样东西对一个建立在DGCA城市对记录之上的评分器而言是不可见的,而其中每一样都足以单独推翻一项航线决定。
票价
DGCA公布了有多少人飞。它没有公布这些人付了多少钱。这个缺口不是舍入误差;在稀薄航线的经济学里,它常常就是全部问题所在。两个城市对可以运送完全相同的旅客量,而其中一个的票价足以覆盖一架涡桨机的航段成本,另一个则靠着任何新进入者都会被淹死的低价挣扎求生。收益水平随季节、随星期几、随预订时点、随休闲/商务/不得不飞的出行组合而变化,而这些变化没有一样会在旅客计数里留下痕迹。
这对阅读本研究的直接后果是:上文发现部分中的每一个排名,都是关于需求的陈述,从来不是关于收入的陈述。一个模型钟爱的城市对可能是一座票价坟场。反向的错误也存在,而且更微妙:一个模型只评为”还不错”的城市对,可能实现出色的收益水平,因为没有铁路替代方案的锁定市场会为自己的地理买单。排名第6的那条海岛航线,一部分正是靠这个逻辑存在的。要区分这两种情况需要票价数据,而票价数据住在航司收益管理系统及其所供给的分销渠道内部,正好在一个尊重边界的公开数据模型所面对的那堵墙后面。
竞争对手运力
模型看得见有141,000名旅客在卡利卡特和海得拉巴之间飞行。它看不见是谁运送了他们、以什么班次、用什么机型,或者有多少运力没卖出去。一个需求以42%增长而在位者运力以20%增长的城市对,是一份邀请函。同一条需求曲线,若在位者加座快于旅客增长,那就是一场装扮成机会的肉搏战。DGCA公布的航司层面文件给出的是总体市场份额,而航线层面的时刻表和座位数属于时刻表数据库和运营者自己。
这项局限与增长问题之间的相互作用,任何专业读者一眼就能看出。高增长吸引运力,而运力一旦落地,两个航季内就把一个浪头变成一场份额战。需求模型能标出浪头。只有竞争性叠加层才能说出这个浪头上还有没有位置。用公开时刻表搭建那个叠加层是可行的,而这也是我们在拿到一家运营者一周时间之后最先要做的改进;只是它无法仅凭旅客记录搭建,而假装可以,就会毒化那些本来站得住的数字。
我们测试过那条显而易见的捷径,而这次测试值得报告,因为它以一种有教益的方式失败了。一份公开发布的印度国内时刻表抓取存档覆盖七年间的十四家航司和99座城市,而它根本不包含本研究所建模的这家航司。一整家在运行的航空公司,在所有人都会第一时间去找的那个数据集里缺席。这就是一句话说完的、反对使用抓取来的竞争数据的理由:它悄无声息地失败,而且恰恰在支线分析所关心的那些小运营者身上失败。
不过,纯粹当作一个示意来读,同一份存档勾勒出一个真正的叠加层会说什么。在本研究重点关注的三个城市对上,它2025年有效的条目显示,有一家干线运营者以大约每日一班到每日四班的频率把持着时刻表,而其下的需求以16%到42%的速度增长。一个在位者、喷气机尺寸的机型、需求增速超过任何单一时刻表所能吸收的水平:这就是进入者的图形,也正是那个叠加层存在的目的所在。我们把这份示意连同它的出处一起发布,数字未经审计,因为要点在于方法的形状,而它诚实的版本要么跑在运营者级别的时刻表数据上,要么就不跑。
时刻与地面现实
一个城市对可以规模完美、在增长、在航程内、还连着基地,却仍然在任何商业上说得通的时段都飞不了,因为其中一端的机场能提供的只有一个14:40落地进商务市场的时刻,或者根本没有停机位。印度枢纽机场的时刻稀缺是一项活生生的约束,而它约束得最紧的地方,恰恰是支线航司最想连接的地方:一个稀薄城市对的大城市那一端,那里的喂给和自行中转价值最高。时刻之外还有更安静的地面约束,值机柜台空间、地面代理合同、过夜停放、小机场的加油保障,这些没有一样以可用精度出现在任何公开数据集里。
诚实的表述是,模型排的是市场,而市场只是一条航线的三分之二。剩下的三分之一是运行许可,而运行许可是谈出来的,不是算出来的。
增长假象,重述为一张警示标签
数据工作那一节从搭建者的角度描述了通航启动假象;它也属于这份清单,是从读者的角度,因为它是唯一一项会主动制造虚假信心的局限。一个录得三位数增长的城市对,可能是一个被发现的市场,也可能是某一家航司一年前的时刻表在生成它自己诱发的需求,而这个差别决定了第二家运营者会不会饿死。模型压住了500名旅客以下的基数,并标记近期薄基数上的增长,但压制和标记都是缓解措施。解药是时间:看这个城市对的第三个和第四个半年,能不能守住它头两个半年所声称的水平。算术可以耐心等待。资本也应当如此。
为什么公布局限本身就是策略
有一派推介技艺主张先亮优势,让缺口在尽职调查中自行浮现。我们持相反观点,而本研究正是建立在这个观点之上的。上面每一项局限,都精确地定义了模型下一个版本所需要的一份数据集,而这些数据集每一份都住在一家运营者内部:票价表现、竞争情报、时刻组合、航线级别的成熟曲线。因此,声明局限等同于公布合作议程。一位航司内部的读者可以看着这一节,准确到列地知道,如果他们的数字遇上这台仪表会发生什么。
这就是整个操作的刻意设计。这个公开数据模型作为一次演示是完整的,作为一个决策工具是不完整的,而这种不完整恰好指向一扇门。递给一家运营者一份完成的答案,既是错的,理由都在这一节里,也在战略上是空的。递给他们一台经过验证、带着四个已贴好标签的输入接口的仪表,则是一份自带证据的邀请。
把它当仪表运行,而不是当报告
一份市场研究是一个事件。一台仪表是一种习惯。这个差别决定了分析工作是复利还是蒸发,而说清楚这台仪表的习惯长什么样是值得的,因为它的运行画像是最不光鲜也最有说服力的部分。
这个模型是几百行朴素的Python。它读取从公开镜像抓取的两个CSV文件,在一台笔记本电脑上几秒钟跑完,并打印出完整排名以及每一个暴露出来的子分数。没有要订阅的服务,没有要授权的看板,回路里没有供应商。DGCA公布新的一个月时,抓取加运行的循环不到一分钟,而六月的排名可以逐行摆在五月的排名旁边。一次每月召开的规划会议,可以从一份差异清单开始:哪些城市对动了、是哪些子分数让它们动了,以及这种移动是信号还是假象。
具体想象一下这个仪式。七月的文件到了。运行花一分钟。差异显示卡利卡特—海得拉巴的增长子分数正从26.0向24滑落,因为那个爆发之年正在自我覆盖;海得拉巴—戈尔哈布尔保持稳定;而一个没人在讨论的城市对,靠着连续两个月安静的增益,从第90名爬到了第60名。每月十分钟的规划会议时间,航网的周边视野就一直扫着。不需要常设的分析师岗位,不需要委托季度研究,不需要幻灯片。
这种节奏改变了一支团队所提问题的性质。一份静态研究邀请的是裁决:接受还是驳回。一台每月的仪表邀请的是假设:如果这条走廊的增长再有两个季度保持在20%以上,它就越过我们的门槛;盯着它。航线选择变得不那么像围绕一位顾问结论的诉讼,而更像一份带触发线的观察名单,而这正是有经验的规划者本来就在用的思考方式。这台仪表不替代思考。它给思考装上记忆,而这份记忆能挺过人员更迭。
给判断做版本管理与给代码做版本管理同样重要。那四个权重是一份明确的、有日期的信念陈述:截至本季度,我们如何在规模、势头、航程和地理之间衡量轻重。当信念改变时,因为一个新基地启用或者机队增加了一种航程更长的机型,权重就在一个可见的位置改动,而每一份历史排名都可以在新信念下重跑以作比较。制度性判断通常住在脑子里和走廊共识中。在这里它住在四个受版本控制的数字里,任何人都可以争论,任何人都可以审计,而这种把判断从民间传说迁移到可检视的产物中的做法,以我们跨行业的经验看,比模型自身的输出更有价值。这与我们在为企业设计AI运作结构时应用的原则相同:思考仍然由人来做,算术变成基础设施,而任何派生出来的东西,只要可以被存储、标注日期并签署,就绝不会被不透明地重新生成。
经济账值得用一段平实的话说清。整个搭建过程,数据获取、清洗、建模、验证以及那份交互式报告,是由一个小团队在几天内、基于免费的公开数据、没有任何采购流程完成的。这不是在夸这支团队;这是关于这个时代的一个事实。把一份公开记录变成一台经过验证的决策仪表,其边际成本已经崩塌,而任何过去足以支撑一份六位数研究的分析主张,现在都必须与一群称职的人在一周内能搭建并验证出来的东西竞争。内化了这一点的组织会相应地给自己的问题重新定价。稀缺的投入不再是分析马力。而是知道哪些问题值得被仪表化,而这份知识仍然长在运营者的脑子里走来走去。
有一家运营者进入回路会带来什么变化,值得具体说明,因为它把局限清单从一份坦白变成一张路线图。票价数据会把需求排名变成贡献度排名,也就是”有人飞这个城市对”和”这个城市对付得起这架飞机”之间的差别。时刻表数据会加上一个饱和度叠加层,把开阔的浪头与拥挤的浪头分开。时刻和地面约束会在任何人爱上一个数字之前,把清单修剪到可飞的子集。而这家运营者自己的航线成熟历史,也就是它年轻的航线实际上是怎么爬坡的,会用任何公开文件都不包含的地面真相来校准增长这个问题。每一项增补都是有边界的、以周而非以季度计的工作,因为它们所要装上去的底盘已经在跑了。
一位航网规划者会问的问题
这份研究如果会被人读,读它的将是那些用整个职业生涯做着它所建模的这个决定的人。他们会有异议,而这些异议都很好。以下是我们预料房间里最敏锐的读者会提出的六个问题,以及我们隔着桌子会怎么回答。
“我们团队早就知道这些了。”
对于验证表格里的那十条航线:是的,可以证明如此,而这正是发现本身。模型与现有航网的一致,是作为该团队判断力的证据呈现的,绝不是作为它的替代品。这里所作的主张更窄,而我们认为也更难被驳回:没有任何规模的团队会每月以同等注意力重读2,743个城市对。人工筛选是由优先级驱动的,而优先级由已经可见的东西设定,这就是为什么一个海得拉巴—戈尔哈布尔会在第28名的位置上无人过问,而注意力都跑去了更吵闹的市场。这台仪表并不知道团队不知道的事。它是在均匀地、按月地、不知疲倦地,关注那些团队没有时间关注的事。知道和关注是两种不同的能力,而航网就丢失在两者之间的那道缝里。
“为什么我们要相信你们编出来的权重?”
你们不应该相信它们;你们应该与它们争论,而模型的搭建方式让这种争论很便宜。这四个权重是对标准航网规划逻辑的一种站得住脚的编码,其辩护写在上面的方法一节。但更深的答案是,这份排名在合理的权重改动之下相当稳定。把规模和增长互换,变成26和34,那些验证航线仍然留在前十分位,因为在这份数据上得分好的城市对,通常同时在好几个问题上得分好。权重敏感性在这里是一次十五秒的实验,而在一位怀疑者面前实时跑一遍,看着好的城市对依旧是好的、边缘的城市对来回洗牌,说服过的人比任何散文里的论证都多。一个你可以在会议上做压力测试的模型,与一个你被要求相信的模型,是完全不同的东西。
“为什么不用机器学习?”
因为约束这个问题的是信任,而这里的信任来自清晰可读。一个在这份文件的十一年数据上拟合出来的学习型排序器,大概会按某种离线指标把城市对排得”好”上几个百分点,而在唯一重要的场合下无法使用:在一个决策者问”为什么是这个城市对而不是那个”、并且需要一个经得起交叉盘问的答案的房间里。四个带可见算术的问题,在构造上就回答了那个问题。此外还有一个统计诚实性的问题:在不到700个区间内城市对、目标变量又像航线成败这样嘈杂的情况下,一个灵活的学习器所拥有的容量超过了数据所包含的教训,而它最流利地学会的,会是在位者的历史偏见。线性评分器不是一个等待升级的妥协。在这个数据规模上,它就是正确的工具。
“季节性怎么办?”
处理方式是结构性的而不是取巧的。模型使用的每一个水平量都是过去十二个月的总和,而每一个增长数字比较的都是一个完整年份与前一个完整年份。每个窗口都恰好包含一个雨季、一个冬季高峰、一个夏季低谷,所以季节形状在规模和增长两个问题里都会抵消掉。模型刻意不做的,是给年内形状打分,一个在十二月填满飞机、在七月空掉飞机的城市对,也许该做季节性航班而不是全年航班,而这个区分需要当前评分器跳过的月度分辨率分析。月度曲线就在同一份文件里,所以季节形状叠加层是另一项有边界的扩展,不是一次重新设计。
“等到它有意义的时候数据已经一年前的了,而且它数的是飞过的旅客,不是需求。”
两点都对,而且值得说精确。DGCA的记录比日历落后大约两到三个月,而一个过去一年的窗口按设计会抹平最新的信号;这台仪表读的是潮汐,不是天气,而为下一个航季所做的时刻表决定,是一个潮汐决定。第二点更深:这份文件记录的是运送的旅客,也就是经由航司所选择提供的运力过滤之后的需求。一个没有航班的城市对显示为零旅客,无论有多少人想飞,所以真正的空白地带,也就是有需求却完全没有航班的城市对,在这里结构上是不可见的。这个盲点对这个模型的使用者,一位在已知区域内扩张的运营者,比对一位从零开始的规划者更合适:它浮现出来的城市对,是已经被某人的飞机证明过的市场,而在位者提供的运力还没有把这些客量吃尽。估算未通航城市对的需求需要在人口和经济数据上做引力模型,那是一台不同的仪表,有它自己的用途,也有它自己更大的误差棒。
“一百里中八个可能是运气。我们怎么知道这个测试是强的?”
靠数数。这家航司的航网在2,743个排序城市对中占据十个位置。如果模型的排名是随机的,这十个中落入任意前100名的期望数量是0.36。有八个落在那里,其中两个在前十。十个特定城市对中有八个或更多落入2,743个中随机的前100名,其概率小到天文数字;这不是一个需要把p值打扮得体面些的边缘信号。诚实的挑战是另一回事:模型的问题编码的是涡桨机逻辑,而这家航司是涡桨机运营者,所以一张涡桨机形状的筛子当然会捞到涡桨机形状的航线。对此我们要说:是的,正是如此。我们从未主张模型里有魔法。主张是,一个具体而困难的商业决定的运作逻辑,可以被写成四个问题,在一份公开文件上跑一遍,并被证明能复现专家的选择。祛魅本身就是产品。
“要信任它到能据以做一个真实的开航决定,还需要什么?”
需要的比这个模型更多,而模型自己就是这么说的;那四项声明的局限就是清单。具体来说,我们会希望这个需求排名被该城市对的一次票价研判所确认,被一个显示在位者运力及其走势的竞争性叠加层所确认,被两端在商业上有用时段的时刻答复所确认,以及被增长信号再守住两个季度所确认。模型在这个序列中的角色是分诊,只在便宜的公开算术已经找到脉搏的地方,才花费昂贵的分析注意力。任何这类仪表都不应该成为资本动身之前的最后一句话。它的工作是可靠地、每月地,做那第一句话,好让昂贵的调查从一份排好序的短名单出发,而不是从一张空白地图出发。
一周之后的这台仪表:完整记录,以及它现在能回答的问题
上面这份研究跑在一个文件上:由一个开源镜像汇总的城市对记录。在它写完之后的那一周里,我们去到源头,取走了DGCA在”航空数据与统计”项下公布的一切:回溯到2015年4月的同一批城市对表格(镜像缺失的两个月,从DGCA自己的PDF中找回),2009年以来每一家航司的月度运行统计(起飞架次、轮挡小时、座公里、客座率、货运),2015年以来的国际季度表,以及144份含准点率、取消率和投诉的月度运输报告。所有这些现在都住在一个仓库里,带着规范化的城市名称和七项对账检查。最要紧的那项检查:城市对合计与航司合计,这两份分别统计同一批旅客的DGCA出版物,在135个月中的135个月里精确到个位旅客相符。
当航司表格与城市对数据放在同一个地方,这个模型就不再是一个筛选屏,而变成一组仪表。每一件都连同它的时间窗口和它自己的误差度量一起陈述,因为只有这样,一位航网规划者才会让一个数字进入房间。
用运营者自己的单位来衡量他们
月度运行统计让这个行业得以用一位支线航司CEO实际管理的单位来阅读:轮挡小时、起飞架次、每小时座公里。在截至2026年7月的十二个月里,全行业以85.1%的旅客客座率飞行。支线运营者合计为71.9。这组内部的差距才是故事:FLY91为76.4%(比之前十二个月提高2.1个百分点,起飞架次增长89%),Star Air为74.3,IndiaOne Air为65.1,Alliance Air为64.2且下降10.3个百分点。支线飞机执飞300到540公里的航段,每架次1.2到1.4轮挡小时;窄体运营者执飞880到1,180公里的航段。同一个国家,两门不同的生意,现在可以在一张表里看见。
一条新航线实际上是怎么爬坡的
前面描述的通航启动假象,在同一份文件里等着一个正面的孪生兄弟。如果这份记录显示了每一条曾经诞生的航线,它也就显示了航线是怎么长大的。我们识别出2016年4月以来每一个真正的新城市对,即此前没有客流、并在头三个月中的某一个月达到500名旅客的城市对,并排除了疫情后的复航:共395次开航,其中145次落在每月2,000到8,000名旅客的涡桨机级别。它们的中位轨迹,是任何规划团队此前都没有的基准,因为没有哪一支团队会开出足够多的航线来算出一条。
涡桨机级别航线的中位数,在第三个月运送3,863名旅客,第十二个月3,046名,第二十四个月1,594名。第十二个月时有百分之六十五仍在飞,第二十四个月时有70%(有些航线暂停后又回来)。典型的新航线早早见顶而后侵蚀;一条在第二年还在爬升的航线,是在做某种不寻常的事。对照这条曲线,这家航司自己2024年的开航,一直到第二十四个月都位于中位数之上,这正是一份公开记录能够交给规划团队的、作为证据而非作为赞美的那类发现。
在332次有两年可观测期的开航上训练,一个只看得见第三个月为止的已知信息(早期运量、距离、集水区人口、端点吞吐量、开航月份、是否触及枢纽)的分类器,以0.73的交叉验证AUC预测存活到第二十四个月,基准率为61%。谦逊、诚实,而且足以按记录给出的赔率为今年的开航排序。
潜在需求:一个城市对应该运送多少
这个筛选屏排的是已经显示出需求的城市对。引力模型问的是前一个问题:给定两座城市的集水区人口、它们的机场吞吐量以及彼此之间的距离,应该有多少旅客飞行,而缺口在哪里?在613个已通航城市对上拟合,该模型在样本外解释了三分之二的方差(交叉验证R方0.67),距离弹性为负0.67,并对300公里以下的城市对施加惩罚,因为那里公路和铁路承担了这段行程。残差就是发现。海得拉巴—那格浦尔每年运送109,000名旅客,而潜力接近378,000;班加罗尔—蒂鲁帕蒂为55,000对275,000。在实质上没有航班的城市对中,巴格多格拉—巴特那、芒格洛尔—浦那、兰契—瓦拉纳西和果阿—芒格洛尔,按模型的口径每一个都显示出每年超过100,000名旅客的潜力。潜力不是一张机票;它是算术所说的、该先看哪里。
一份说明自身误差的预测
每一个在过去一年里超过一千名旅客的城市对,现在都带着一份十二个月的预测,来自按预测跨度分别在该城市对自身历史和日历特征上拟合的梯度提升模型。要紧的数字不是预测本身而是回测:训练到2025年7月并要求预测其后的十二个月,该模型在666个城市对上的加权绝对误差为18.3%,而季节性朴素法则为31.5%;在干线航线上为12.4%,在涡桨机级别城市对上为27.7%对63.1%;在全国总量上为4.7%对14.3%。从2026年7月向前看,它把接下来的十二个月定在1.632亿人次,对比过去十二个月的1.675亿人次,是一个疲软的年份,每个城市对都附有区间。一个新竞争者、一次票价冲击或一次停飞都不在特征之中,而模型自己就是这么说的。
退出者留下了什么
航司表格回溯到2009年,足够远,能看到三家航司离场。捷特航空在2019年4月停运前的六个月里,占据国内定期航班旅客的10.8%;在其后的六个月里,IndiGo拿到4.3个百分点的份额,SpiceJet 2.6个,Go First 2.3个,各自的运力同比增长15%到45%。Go First自己2023年的7.4%中,有7.1个百分点去了IndiGo。行业层面是公开数据所能到达的极限,因为DGCA不公布按航司分列的城市对客流;但这种再分配的形状,现在是一个被测量出来的事实,而不是一段回忆。
服务质量,来自监管机构自己的报告
那144份月度运输报告加上了旅客能感受到的第二个维度。在2025整个日历年里,六大枢纽机场的准点率平均为:IndiGo 81.6%,Akasa Air 78.4,Air India集团76.4,Alliance Air 58.3,SpiceJet 58.1。2026年6月的总体取消率为0.63%。把这些数字与客座率和份额并排来读,就把一张运营者表格变成了一幅运营者画像。
向数据提问
所有这些都在本页末尾那个面板背后。它是把仓库变成一场对话:一位只根据它当着你的面运行的查询来作答的分析师(每个答案都可以展开查看那些查询),对每一个数字都说明时间窗口和来源,并且拒绝判断可行性或盈利能力,因为数据做不到。可以问它某个城市对运送了多少人、某次开航与爬坡基准相比如何、哪家支线运营者飞得最满,或者它看不见什么。同样的这些工具也以MCP服务器的形式暴露出来,这样一支规划团队就可以把这份记录和这些模型放进他们已经在用的任何助手里。
这套模式,超出航空业之外
把螺旋桨从这份研究上卸下来,剩下的是一套通用方法。它有五个步骤,每一步都可以迁移到任何”反复出现的高风险选择决定”遇上”一份公开记录”的行业。
找到那根公开的脊柱。 每一个受监管的行业公布的东西,都比它的参与者习惯使用的更多:药品批准与短缺清单、港口吞吐量、招标授予、公司申报、制裁名录、土地登记、贸易统计。DGCA的城市对文件在心地干净这一点上不同寻常,十一年、按月、覆盖全面,但它的存在本身并不罕见。这套方法的第一个小时永远是同一个问题:监管机构已经在数什么?
把判断编码,而且要小。 那四个问题来自对一位航网规划者如何思考的推理,写下来并赋以权重。每一个运营领域都有一套等价的四到六个问题,是它的老手们凭本能应用的:什么样的招标值得投、什么样的集水区适合开一家诊所、什么样的SKU值得铺货、哪个客户值得先打电话。纪律在于把模型保持得足够小,让每一个分数都能被当众辩护,因为一旦某个分数无法被解释,房间就会退回到直觉,而这台仪表就死了。
对照已知决定做盲测验证。 这一步把这套方法与一张带观点的电子表格区分开来,而它在任何有可观察履历的领域都可以做。在模型被允许推荐之前,它必须先重新发现:在不被告知答案的情况下,给这个组织已经做出的选择排序。通过了,此后的每一条建议都继承一份挣来的可信度。没通过,那么这个模型是在私下里错的,代价为零,而这是一个模型能够失败的最便宜的地方。
把局限声明为一份数据议程。 公开脊柱看不见的一切,在这里是票价,在别处是利润率、运力或意图,都变成一份指名道姓的清单,而这份清单同时充当所有者内部数据的整合计划。前置声明的局限,把怀疑转化成了范围界定。
按节奏运行它,并给判断做版本管理。 记录更新时仪表重跑,它的权重作为有日期的信念陈述受版本控制,而它的输出与推理并排存储,这样将来的每一次分歧都是一次差异比对,而不是一场关于谁记得什么的辩论。
为了让这种迁移具体化,用一段话把这套方法用到另一个行业上。一家决定追逐哪些医院客户的医药分销商,面对的问题形状与那位航线规划者相同:成千上万的候选、几十个可行的、判断集中在少数资深人士的脑子里。公开脊柱是存在的,在药品采购招标、医院床位登记和监管许可数据里。这家企业的判断压缩成少数几个问题:这个客户的规模适合我们的物流足迹吗、它的采购在增长吗、它在我们的冷链半径之内吗、它是否靠近我们已经服务的客户?盲测验证是可用的,因为这家分销商当前的客户名册,就是一组模型在被允许推荐之前必须重新发现的历史决定。同一台仪表,不同的名词。航空这个案例里没有任何东西依赖于航空;它依赖的是一份公开记录、一套可压缩的判断,以及一份可核对的履历,而这三样原料是常见的。
以上没有一步需要英雄式的技术,而这一观察正是本研究安静的论点。当前企业界对AI的兴奋集中在生成上,聊天机器人、副驾驶、文档起草,而大多数组织现在已经买下或搭起了那一层容易的东西。复利的价值高出一层,在决策仪表化上:把资深人士在不确定之下反复做出的那些选择,每一项都装上一根公开数据的脊柱、一次对内部判断的明确评分、一次盲测验证,以及一个每月的节奏。航线选择恰好把这套模式演示得很生动,因为公开记录慷慨,而那些决定很有名。这套模式本身,可以迁移到任何一张有人反复问”下一个选哪一个?”的办公桌上。
复现这项研究
本研究中的一切都可以在一台笔记本电脑上验证,而一项可复现性的主张应当附上实际的配方,所以这里就是。
数据是DGCA月度统计的india-aviation-traffic开源镜像中的汇总国内城市对文件,两个CSV共约4.5 MB。模型是一个除标准库外没有任何依赖的Python脚本。运行需要几秒钟,并打印两块内容:验证表格,即该航司已知航网的盲测排名,以及排名靠前的未服务机会及其子分数。
定义这个模型的参数,集中在一处:区间150到900公里,理想带250到700;规模甜蜜点为每月2,000到25,000名旅客,区间之外按比例衰减;增长按过去十二个月对前十二个月衡量,设500名旅客的基数下限,低于该下限给中性分;基地城市在触及时给满分,否则0.55;权重34、26、22、18。距离是根据公布的机场坐标计算的大圆距离。城市名称的别名映射在任何聚合之前应用,而别名表是代码的一部分,不是一个需要某人记住的预处理步骤。
任何人对照更晚的DGCA月份重跑,都会得到不同的数字,而这正是一台仪表的意义。这项验证主张是有日期的:截至2026年7月结束的十二个月,排名就是验证表格里印出的那些,而产出它们的模型在比对之前就已冻结。如果后来的某个月份挪动了某个排名,那是市场在说话,而正确的反应是对那个移动了的子分数感到好奇。
仓库版本又添了第二份配方。完整的DGCA导出、各类解析器、对账关卡、模型和聊天工具都住在一个代码库里;aviation build、aviation gates、aviation models 和 aviation report 在大约二十分钟内从原始文件重建一切,而 aviation mcp 把同样的四个工具(结构、只读SQL、模型输出、文档搜索)暴露给任何支持MCP的助手。
把这项研究适配到另一家运营者,是一份简短的检查清单,而不是一次重建。把基地集合换成那家运营者自己的基地,这改动一行。如果机队不同就替换区间参数,一架90座支线喷气机会拉长航程带并抬高规模带,而这两处编辑各是两个数字。对照新航网触及而这一张没有触及的任何城市,重新检查别名表,因为命名的怪癖是这份工作中唯一保证会再次浮现的部分。然后在读一条机会之前,先对新运营者的已知航网跑一遍同样的盲测验证,并守住我们守住的那条规则:一个无法重新发现现有航网的模型,没有资格建议往里面加东西。执行这条规则不花什么成本,而它就是一台仪表和一张幻灯片之间的全部差别。
最后说一句本研究对读者的要求。如果你运营一张航网,邀请就明写在局限那一节里:这个模型的四个盲点,点名了能够补全它的四份数据集,而这项补全是数周的工作,在你的场地上,对着你的数字。如果你运营的东西与飞机毫无关系,邀请就在模式那一节:在你的运营中某个地方,有一个反复出现的选择决定、一份与之相关的公开记录,以及一小把你最好的人已经在凭本能提出的问题。从这些原材料到一台经过验证的仪表,距离远比分析行业训练你去预期的短得多。
这次操作最终证明了什么?三件事,按后果递增排列。
它证明了印度支线航空十年的决定,在公开数据里是可读的,这既是对DGCA公布工作的赞美,也是对那些选择留下了如此干净签名的规划者的赞美。它证明了一个高风险的、反复出现的决定背后的判断,可以被小小地写下来、被盲测验证、并被变成一台重跑起来不花钱的仪表,这是一句关于方法的陈述,任何有公开记录的行业都可以使用。而它最重要地向我们自己证明了,赢得一位严肃运营者注意的最快方式,是在开口索要他的时间之前,先对他的问题做真实的工作,公布算术,并在被问到之前先说明局限。
模型正在运行。记录按月更新。而2,743个城市对现在正被某样永远不会看厌的东西盯着,等着只有运营者才握有的那些数字来把这幅图补完。
Frequently asked questions
Can a route model built only on public data be trusted?+
It has to earn trust through blind validation. Before suggesting anything, this model was asked to rank all 2,743 feasible city pairs without being told which routes the carrier flies. It placed eight of the carrier's ten routes in its top 100, against a random expectation of well under one, which means the ranking logic reproduces expert network-planning decisions from public data alone.
What data does the route model use?+
One public source: the DGCA's monthly record of domestic passengers carried between every pair of Indian cities, from April 2015 to July 2026. No fares, no schedules, and no carrier-internal data of any kind are inputs.
What can the model not see?+
Fares, competitor capacity, and airport slots. It ranks demand, never profitability. Each of those blind spots names a dataset that only an operator holds, which is exactly where the model's next version would come from.
Ask the data
The warehouse behind this report, as a conversation
DGCA public statistics (domestic 2015 onward, airlines 2009 onward, international 2015 onward, monthly traffic reports 2014 onward) and the models in this report. Every number comes from a query you can open. It sees demand, not fares or schedules.
Source: DGCA (provisional). Answers describe demand structure; they never judge viability or profitability. Conversations are logged to improve the analyst.

