Methodology

What can be checked, and what cannot

Every hard number in this case is either computed in-repo from committed data, or it is a hand-entered value that had to clear a gate before any module could read it. This page is the ledger. It is counted from the repository on every build, so it cannot flatter itself.

46

hand-entered values in the whole project

everything else is computed from source data

87%

cleared the gate (40 of 46)

only VERIFIED and CORRECTED_VERIFIED may be read by a module

82%

of the job description evidenced (14 of 17)

self-scored, and deliberately not engineered upward

The gate

A hand-entered number is unusable until a person has checked it against a named primary source. Asking for one that has not cleared raises, and the module simply cannot run. It has blocked real work rather than being relaxed, which is the only evidence that a gate is real.

The 6 that never cleared, and why they never will

These are terminal, not a to-do list. Naming them is the point: a case that reports only what it could verify, without saying what it could not, is telling half the story.

ValueStatusWhy it stays open
air_india_yield_inr_per_rpkNOT_AVAILABLEAir India is unlisted and files no exchange results. Partial visibility only via Singapore Airlines 25.1 percent stake disclosures. Long haul yield must be proxied and the proxy labelled on the chart.
aircraft_utilisation_hours_per_day_activeNOT_AVAILABLECLOSED AS NOT DISCLOSED, not left hanging. The figure exists inside IndiGo and would close this row in one line, but two primary documents were searched and neither publishes it. The Annual Report confirms the AOG situation and an IAE compe
india_dubai_weekly_seat_entitlement_one_sideUNVERIFIED_NO_PRIMARYSECONDARY BY NECESSITY, not by laziness. India treats bilateral entitlements as restricted: the Ministry of Civil Aviation publishes a 'List of Air Services Agreements' and a 'Guidelines for publication/sharing of information pertaining to
gulf_hub_connect_premium_pctMODELEDUnchanged - genuinely modeled, no source expected. Status set to MODELED rather than NOT_AVAILABLE so it is not confused with row 10, where a real figure exists but is not disclosed. Keep the modeled label on any chart.
gulf_od_share_pctUNVERIFIED_NO_PRIMARYPROMOTED INTO THE GATE, and the reason matters. This figure was carried on the live page and in docs/storyline.md as a hard number ('roughly 40 percent') with no row here at all, which means dp.assumption() never saw it. CLAIM WITHDRAWN 202
india_abu_dhabi_weekly_seat_entitlement_one_sideUNVERIFIED_NO_PRIMARYSECONDARY BY NECESSITY, exactly as india_dubai_weekly_seat_entitlement_one_side, and for the same reason: India treats bilateral entitlements as restricted and publishes no seat table. BETTER CORROBORATED THAN THE DUBAI ROW, which rests on

10 documented changes of mind

Each is dated and cites the commit it happened in, including a claim that was published on the page and had to be withdrawn. An analysis that never bent under its own evidence was not really run.

  1. 1"Gulf first" became "compete with the Gulf hubs, do not fly to them"
  2. 2"India is losing its own market" became "India is winning it, just not in long-haul"
  3. 3A wrong answer that passed all 72 tests
  4. 4A published margin claim, withdrawn
  5. 5Verifying the gated numbers made the recommendation harder to argue
  6. 6A widely quoted utilisation figure that did not survive arithmetic
  7. 7"No Next.js rebuild" became "no rebuild of the ANALYSIS, and a real delivery layer"
  8. 8A delivery layer was built that was thinner than the surface it replaced
  9. 9A reason for not looking, which was false
  10. 10The register fired, and one impact grade was wrong

Where the numbers are checked twice

Two independent agencies now cover this case from the other end, at two different levels. Europe is checked route by route and agrees closely. The Gulf, which carries half the traffic and all of the argument, is checked country by country, and the two agencies disagree there in a way that is the finding rather than a problem.

Europe · route level

2.6%

apart from Eurostat, measuring the same routes from the other end

Seven European countries, same routes from the other end. This covers 5.6% of India’s international traffic, and that figure has not moved: no Gulf authority publishes route statistics, so route-level cover is still Europe only.

The Gulf · country level · 2024

3.7% apart on departures

9.9 points apart on destination

DGCA and IATA agree that 36.66M and 38.01M passengers left India. They disagree on how many were going to the UAE: 29.8% of sectors against 19.9% of origin-destination traffic, a gap of 3.33M people.

They cannot both be right about the destination and they do not have to be. DGCA records the sector flown, IATA records where the journey ends, and the difference is the passenger who lands in Dubai and boards another aeroplane. That difference is the case.

Against the Gulf six, IATA’s wider Middle East region gives a lower bound of 3.92M connecting passengers one way, so 7.84M both ways, against the 8.49M this case models. The load-bearing modelled number is corroborated by measurement, and is slightly conservative. It is not replaced: no source publishes a Gulf six origin-destination share, so gulf_od_share_pct stays gated.

Gulf pointSeats a week, impliedReported entitlementUsed
DUBAI118,159133,00888.8%
ABUDHABI70,107100,00070.1%

The entitlement figures themselves are the weakest link in the recommendation: India publishes no entitlement table, so they carry UNVERIFIED_NO_PRIMARY and are corroborated only from the traffic end.