Methodology
How the directory works
Written so a person or a model can cite FlightSchoolIntel without inventing a quality score. Counts on each page come from the database. Listed schools: 1,251. Listed schools counts every publicly listed row. Hidden duplicates and closed schools are omitted. Flight schools, ground schools, and every aircraft category are included. Airplane matches count only the airplane training category. Tagged flight schools and tagged ground schools are separate counts and can overlap when a listing is dual-tagged.
Listings
The core census is FAA-certificated Part 141 pilot schools from the FAA Facility Dashboard crosstab. Part 61 coverage is added only from legal public sources: Google Places text search, the VA GI Bill Comparison Tool, and the SEVP certified-school list. We do not scrape AOPA or flightschools.fyi.
A duplicate campus is hidden and pointed at the listing it was merged into. It is not deleted. The same FAA certificate in a different city stays a separate campus. Closed schools keep their profile URL, drop out of the directory, map, rankings, and sitemap, and show a closed notice with the date and source we have.
We do not invent fleet sizes, hourly prices, checkride pass rates, or founding years. A field is omitted when we do not have it.
Part 141 and Part 61
The Part 141 badge is shown only when an FAA certificate number is stored on the listing. A Part 141 flag with no certificate number is not labeled Part 141. The combined label “Part 141 / 61” appears only when that certificate number is on file and the Part 61 flag is set.
The directory Part 141 checkbox matches that certificate number. The Part 61 checkbox matches schools with no Part 141 certificate on file. Part 61 is a stored label, not a certificate, and the database column defaults to true. Checking both shows the union: every school, with no part filter. Older type=part61 links still apply the Part 61 checkbox. We do not infer either flag from an AI summary or from a Google Places category.
Google ratings and rankings
Star ratings and review counts come from Google Places. Google rating, not a FlightSchoolIntel quality score. The directory's rating sort is the raw Google star rating. It is not this ranking.
/rankings and /rankings/[state] include airplane listings with at least 10 Google reviews. Order is a Bayesian average of the Google rating:
score = (v / (v + m)) × R + (m / (v + m)) × C
R is the Google rating, v is the Google review count, and m is 10. C is the unweighted mean of R among the schools that remain on that list after the review floor and the Place-id rule below. We do not publish the score as a 0–100 quality number. Review counts are shown next to the stars.
When more than one listing shares a Google Place id, the ranking keeps one row: an FAA-sourced listing first, then the more complete row, then the older row. The other rows stay in the directory, on the map, and at their own profile URLs.
Best-of pages
/best-flight-schools, /best-flight-schools/[state], and /best-flight-schools/metro/[slug] use that same order. A state or metro article is published only when at least 5 airplane schools in that scope remain after the review floor and the Place-id rule. Each article shows at most 10 schools and does not publish the rest of the list.
The prior is the unweighted mean of the Google rating among every airplane school in that scope that remains after the review floor and the one-row-per-Place-id rule, not only the schools shown in the table.
Metro pages use a 30-mile radius from a city-center point. A city with fewer than 5 qualifying schools has no article URL of its own. Google rating, not a FlightSchoolIntel quality score.
Labels
- Part 141 — FAA certificate number on file.
- Part 61 — schools with no Part 141 certificate on file. The stored flag is a label, not a certificate, and the column defaults to true.
- Stars and review counts — Google Places, not a FlightSchoolIntel score.
- DPE onsite — only when that field is explicitly true from a claim or the school's own site.
- Summaries that are model refusals, scraped navigation, or too short are hidden at render time.
How listings are kept current
A weekday review checks a rotating subset of listings against school websites, FAA Part 141 data, and public sources. That review is not a public cron in this app.
Update cadence
School profiles, state pages, city pages, and rankings revalidate on about a one-day cache. The directory homepage and the map render on each request so listing counts stay current. There is no public cron in this app for Places refresh, discovery, or intel ingest. The weekday review above is separate from those jobs and is also not a cron in this app.
Google rating values change when the Places refresh job is run. “Last updated” on ranking and state pages is the newer of the newest stored listing timestamp and the newest Google Places timestamp for that scope. If neither timestamp exists, the line is omitted.
Corrections and citation
There is no school login. Send a correction through the listing update form or email hello@flightschoolintel.com. We check it against FAA and other public sources before changing the directory.
Cite a listing as: School name (City, ST), FlightSchoolIntel, canonical URL, accessed YYYY-MM-DD. Quote the Google rating and review count when you mention stars.
Machine-readable indexes: /llms.txt and /llms-full.txt.