Skip to main content
Insights come in two reads. A partner with insights.read reads the Workforce: what the pilots of MyPilotIndex look like as a market, in aggregates. A pilot app with a grant that holds insights.position reads where one pilot stands against that pilot’s cohort.

Read the Workforce

There are six screens: overview, geography, qualifications, aircraft, score and intent. Each takes the same filters a member’s screen takes, at most three at a time. The API reference lists them. An unknown filter, a repeated one, or a value outside the vocabulary answers 400 invalid_request, and a name outside the six screens answers 404 not_found.

How the figures are protected

The server applies the floors, so your code never has to:
  • A cohort under the floor answers status: "insufficient" and no section.
  • A cell under its floor is suppressed, and the share it held shows in unpublished_pct.
  • A filter that would leave too few pilots is dropped, and the answer says so in filters.broadened.
No answer carries a count of pilots. A cohort size is a band, never a number. A publication that has never run answers only schema_version, screen, generated_at and cohort, with status not_ready.

Show a pilot their position

The six metrics are total_hours, pic_hours, score, type_rating_count, years_experience and international_hours. Each has a status of ok, missing or insufficient, and percentile and cohort_median appear only with ok. cohort.level says which rung of the cohort answered, from 1, the most specific, to 4, everyone. The answer names the pilot nowhere.