MCPサーバー

SchoolScope

co.schoolscope/mcp
データ・分析 教育 公開・接続可能 MCP 2025-11-25

このMCPでできること

Provides California school and district profiles, rankings, comparisons, feeder paths, academic and climate metrics, and saved-school watchlists.

compare_schools
Compare schools
Compare 2-4 public schools side by side: band, Scope Score, exceeded/met split, cohort growth (aggregate school-by-grade cohorts across the grade span, as a 0-100 index centred on the state average), climate. A school with no cohort comparison reports no growth figure rather than a substitute — treat that as missing evidence, not flat growth. Schools are only comparable within the same level (elementary/middle/high are separate rankings). Private schools cannot be compared — they have no state testing data.
読み取り専用
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['slugs'], 'properties': {'slugs': {'type': 'array', 'items': {'type': 'string', 'minLength': 1}, 'maxItems': 4, 'minItems': 2, 'description': '2-4 school slugs from find_schools'}}}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['compared', 'excludedPrivate', 'meta'], 'properties': {'meta': {'type': 'object', 'required': ['data_year', 'source_agency', 'attribution', 'methodology_url', 'comparability', 'growth_basis', 'generated_at'], 'properties': {'data_year': {'type': 'number'}, 'attribution': {'type': 'string'}, 'generated_at': {'type': 'string'}, 'growth_basis': {'type': 'string'}, 'comparability': {'type': 'string'}, 'source_agency': {'type': 'string'}, 'methodology_url': {'type': 'string'}}, 'additionalProperties': False}, 'compared': {'type': 'array', 'items': {'type': 'object', 'required': ['slug', 'name', 'url', 'city', 'ogImage', 'level', 'scopeScore', 'band', 'statePercentile', 'archetype', 'patterns', 'pctExceeded', 'pctMetAbove', 'cohortGrowthScalePoints', 'cohortSpan', 'growthIndex', 'gradeGapThisYearPp', 'chronicAbsentRate', 'suspensionRate', 'peerClass'], 'properties': {'url': {'type': 'string'}, 'band': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'city': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'level': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'ogImage': {'type': 'string'}, 'patterns': {'type': 'array', 'items': {'type': 'object', 'required': ['key', 'label', 'evidence', 'question'], 'properties': {'key': {'type': 'string'}, 'label': {'type': 'string'}, 'evidence': {'type': 'string'}, 'question': {'type': 'string'}}, 'additionalProperties': False}}, 'archetype': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'peerClass': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'cohortSpan': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'scopeScore': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'growthIndex': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'pctExceeded': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'pctMetAbove': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'suspensionRate': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'statePercentile': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'chronicAbsentRate': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'gradeGapThisYearPp': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'cohortGrowthScalePoints': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}}, 'additionalProperties': False}}, 'excludedPrivate': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}
district_profile
District profile
A California district roll-up: average Scope Score and absenteeism across the district plus every scored school ranked by level. Match by district name.
読み取り専用
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['district'], 'properties': {'district': {'type': 'string', 'maxLength': 100, 'minLength': 2, 'description': "District name or fragment, e.g. 'palo alto unified'"}}}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['district', 'county', 'stats', 'schools', 'meta'], 'properties': {'meta': {'type': 'object', 'required': ['data_year', 'source_agency', 'attribution', 'methodology_url', 'comparability', 'growth_basis', 'generated_at'], 'properties': {'data_year': {'type': 'number'}, 'attribution': {'type': 'string'}, 'generated_at': {'type': 'string'}, 'growth_basis': {'type': 'string'}, 'comparability': {'type': 'string'}, 'source_agency': {'type': 'string'}, 'methodology_url': {'type': 'string'}}, 'additionalProperties': False}, 'stats': {'anyOf': [{'type': 'object', 'required': ['schoolCount', 'avgScore', 'avgExceeded', 'avgAbsent'], 'properties': {'avgScore': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'avgAbsent': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'avgExceeded': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'schoolCount': {'type': 'number'}}, 'additionalProperties': False}, {'type': 'null'}]}, 'county': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'schools': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'slug', 'url', 'ogImage', 'city', 'zip', 'lat', 'lng', 'district', 'county', 'schoolType', 'level', 'scored', 'hasTk', 'scopeScore', 'band', 'statePercentile', 'pctExceeded', 'pctMetAbove', 'cohortGrowthScalePoints', 'cohortSpan', 'growthIndex', 'chronicAbsentRate', 'suspensionRate', 'archetype', 'patterns', 'peerClass'], 'properties': {'lat': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'lng': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'url': {'type': 'string'}, 'zip': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'band': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'city': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'hasTk': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}]}, 'level': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'county': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'scored': {'type': 'boolean'}, 'ogImage': {'type': 'string'}, 'district': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'patterns': {'type': 'array', 'items': {'type': 'object', 'required': ['key', 'label', 'evidence', 'question'], 'properties': {'key': {'type': 'string'}, 'label': {'type': 'string'}, 'evidence': {'type': 'string'}, 'question': {'type': 'string'}}, 'additionalProperties': False}}, 'archetype': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'matchNote': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'peerClass': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'cohortSpan': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'enrollment': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'schoolType': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'scopeScore': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'growthIndex': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'pctExceeded': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'pctMetAbove': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'freeLunchPct': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'distanceMiles': {'type': 'number'}, 'suspensionRate': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'statePercentile': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'chronicAbsentRate': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'cohortGrowthScalePoints': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}}, 'additionalProperties': False}}, 'district': {'type': 'string'}}, 'additionalProperties': False}
feeder_path
K-12 feeder path
The K-12 feeder path for a school: which schools students typically arrive from, where they go next, and — for elementary/middle schools — the endpoint high school with its graduation and college-going outcomes. Boundary-based (NCES SABS), shown alongside scores, never inside them.
読み取り専用
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'minLength': 1, 'description': 'URL slug of the school'}}}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['school', 'subject', 'feedsFrom', 'feedsInto', 'endpoint', 'meta'], 'properties': {'meta': {'type': 'object', 'required': ['data_year', 'source_agency', 'attribution', 'methodology_url', 'comparability', 'growth_basis', 'generated_at'], 'properties': {'data_year': {'type': 'number'}, 'attribution': {'type': 'string'}, 'generated_at': {'type': 'string'}, 'growth_basis': {'type': 'string'}, 'comparability': {'type': 'string'}, 'source_agency': {'type': 'string'}, 'methodology_url': {'type': 'string'}}, 'additionalProperties': False}, 'school': {'type': 'string'}, 'subject': {'type': 'object', 'required': ['name', 'slug', 'url', 'city', 'ogImage'], 'properties': {'url': {'type': 'string'}, 'city': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'ogImage': {'type': 'string'}}, 'additionalProperties': False}, 'endpoint': {'anyOf': [{'type': 'object', 'required': ['slug', 'name', 'url', 'ogImage', 'scopeScore', 'graduationRate', 'collegeGoingRate'], 'properties': {'url': {'type': 'string'}, 'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'ogImage': {'type': 'string'}, 'scopeScore': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'graduationRate': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'collegeGoingRate': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}}, 'additionalProperties': False}, {'type': 'null'}]}, 'feedsFrom': {'type': 'array', 'items': {'type': 'object', 'required': ['slug', 'name', 'url', 'ogImage', 'band', 'schoolType', 'relationship', 'source', 'overlapPct', 'levelFrom', 'levelTo', 'scopeScore', 'statePercentile', 'peerClass'], 'properties': {'url': {'type': 'string'}, 'band': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'source': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'levelTo': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'ogImage': {'type': 'string'}, 'levelFrom': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'peerClass': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'overlapPct': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'schoolType': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'scopeScore': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'relationship': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'statePercentile': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}}, 'additionalProperties': False}}, 'feedsInto': {'type': 'array', 'items': {'type': 'object', 'required': ['slug', 'name', 'url', 'ogImage', 'band', 'schoolType', 'relationship', 'source', 'overlapPct', 'levelFrom', 'levelTo', 'scopeScore', 'statePercentile', 'peerClass'], 'properties': {'url': {'type': 'string'}, 'band': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'source': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'levelTo': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'ogImage': {'type': 'string'}, 'levelFrom': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'peerClass': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'overlapPct': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'schoolType': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'scopeScore': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'relationship': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'statePercentile': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}}, 'additionalProperties': False}}}, 'additionalProperties': False}
find_schools
Find California schools
Find California schools four ways, whichever fits the question: free text over school/city/district names (`query`), inside a zip code (`zip`), within a radius of a place or coordinate (`near`), or the top-ranked schools at one level (`level` alone). Returns band, Scope Score, archetype and profile URL for each match. Private schools are flagged and never ranked — they have no state testing data. Supply exactly one of query, zip or near; or none plus a level for a top list. Set `tk: true` to limit any of these searches to schools with active transitional kindergarten (TK) enrollment — a filter that composes with query, zip, near and level, and every result carries a `hasTk` field.
読み取り専用
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'tk': {'type': 'boolean', 'description': 'true limits results to schools with active transitional kindergarten (TK) enrollment.'}, 'zip': {'type': 'string', 'pattern': '^\\d{5}$', 'description': "5-digit California zip code, e.g. '94110'"}, 'near': {'type': 'string', 'maxLength': 100, 'minLength': 2, 'description': "A point to search around: 'lat,lng' (e.g. '37.4299,-122.1285'), a 5-digit zip, or a California city name. Zips and city names resolve to the centre of the schools we hold there, so no external geocoding is needed. Radius search crosses district and city lines on purpose â\x80\x94 that is the point of asking geographically."}, 'level': {'enum': ['elementary', 'middle', 'high'], 'type': 'string', 'description': 'Restrict to one level. Elementary, middle and high are scored on separate scales and are never mixed. With no query/zip/near, returns the top-ranked schools at this level.'}, 'limit': {'type': 'integer', 'default': 10, 'maximum': 50, 'minimum': 1}, 'query': {'type': 'string', 'maxLength': 100, 'minLength': 2, 'description': "Free text: school, city or district name, e.g. 'lowell', 'palo alto unified'"}, 'radius_miles': {'type': 'number', 'default': 5, 'maximum': 25, 'minimum': 0.5, 'description': 'Radius for `near`, in miles. Default 5. Ignored unless `near` is set.'}}}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['schools', 'meta'], 'properties': {'meta': {'type': 'object', 'required': ['data_year', 'source_agency', 'attribution', 'methodology_url', 'comparability', 'growth_basis', 'generated_at'], 'properties': {'data_year': {'type': 'number'}, 'attribution': {'type': 'string'}, 'generated_at': {'type': 'string'}, 'growth_basis': {'type': 'string'}, 'comparability': {'type': 'string'}, 'source_agency': {'type': 'string'}, 'methodology_url': {'type': 'string'}}, 'additionalProperties': False}, 'point': {'type': 'object', 'required': ['lat', 'lng', 'resolvedFrom'], 'properties': {'lat': {'type': 'number'}, 'lng': {'type': 'number'}, 'resolvedFrom': {'type': 'string'}}, 'additionalProperties': False}, 'heading': {'type': 'string'}, 'schools': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'slug', 'url', 'ogImage', 'city', 'zip', 'lat', 'lng', 'district', 'county', 'schoolType', 'level', 'scored', 'hasTk', 'scopeScore', 'band', 'statePercentile', 'pctExceeded', 'pctMetAbove', 'cohortGrowthScalePoints', 'cohortSpan', 'growthIndex', 'chronicAbsentRate', 'suspensionRate', 'archetype', 'patterns', 'peerClass'], 'properties': {'lat': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'lng': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'url': {'type': 'string'}, 'zip': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'band': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'city': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'hasTk': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}]}, 'level': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'county': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'scored': {'type': 'boolean'}, 'ogImage': {'type': 'string'}, 'district': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'patterns': {'type': 'array', 'items': {'type': 'object', 'required': ['key', 'label', 'evidence', 'question'], 'properties': {'key': {'type': 'string'}, 'label': {'type': 'string'}, 'evidence': {'type': 'string'}, 'question': {'type': 'string'}}, 'additionalProperties': False}}, 'archetype': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'matchNote': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'peerClass': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'cohortSpan': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'enrollment': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'schoolType': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'scopeScore': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'growthIndex': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'pctExceeded': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'pctMetAbove': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'freeLunchPct': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'distanceMiles': {'type': 'number'}, 'suspensionRate': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'statePercentile': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'chronicAbsentRate': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'cohortGrowthScalePoints': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}}, 'additionalProperties': False}}, 'radiusMiles': {'type': 'number'}}, 'additionalProperties': False}
my_watchlist
My saved schools
Return the schools the authenticated user has saved on SchoolScope. Requires the `watchlist:read` OAuth scope.
読み取り専用
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['watchlist', 'email', 'meta'], 'properties': {'meta': {'type': 'object', 'required': ['data_year', 'source_agency', 'attribution', 'methodology_url', 'comparability', 'growth_basis', 'generated_at'], 'properties': {'data_year': {'type': 'number'}, 'attribution': {'type': 'string'}, 'generated_at': {'type': 'string'}, 'growth_basis': {'type': 'string'}, 'comparability': {'type': 'string'}, 'source_agency': {'type': 'string'}, 'methodology_url': {'type': 'string'}}, 'additionalProperties': False}, 'email': {'type': 'string'}, 'watchlist': {'type': 'array', 'items': {'type': 'object', 'required': ['slug', 'name'], 'properties': {'name': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'slug': {'type': 'string'}}, 'additionalProperties': False}}}, 'additionalProperties': False}
school_profile
School profile
The full SchoolScope profile for one school by slug: verdict and archetype, Scope Score with band and percentile per level, CAASPP exceeded/met split, cohort growth (school-by-grade aggregates two years apart, in SBAC scale-score points, reported as a 0-100 index centred on the state average), climate (absenteeism, suspension, ELPAC), equity gaps by student group, teacher stability, and — for high schools — graduation, college destinations, UC admissions history, AP courses, and IB programmes. Also answers "is this school improving?" with a year-over-year table of statewide percentile and the underlying rates; the Scope Score is excluded there because it is normalised within each year and is not comparable across them. Current data year 2025.
読み取り専用
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'minLength': 1, 'description': "URL slug, e.g. 'lowell-high-san-francisco-unified'. Get it from find_schools."}}}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['school', 'meta'], 'properties': {'meta': {'type': 'object', 'required': ['data_year', 'source_agency', 'attribution', 'methodology_url', 'comparability', 'growth_basis', 'generated_at'], 'properties': {'data_year': {'type': 'number'}, 'attribution': {'type': 'string'}, 'generated_at': {'type': 'string'}, 'growth_basis': {'type': 'string'}, 'comparability': {'type': 'string'}, 'source_agency': {'type': 'string'}, 'methodology_url': {'type': 'string'}}, 'additionalProperties': False}, 'trend': {'type': 'array', 'items': {'type': 'object', 'required': ['year', 'level', 'statePercentile', 'pctExceeded', 'pctMetAbove'], 'properties': {'year': {'type': 'number'}, 'level': {'type': 'string'}, 'pctExceeded': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'pctMetAbove': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'statePercentile': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}}, 'additionalProperties': False}}, 'school': {'type': 'object', 'required': ['name', 'slug', 'url', 'ogImage', 'type', 'city', 'district', 'enrollment', 'hasTk'], 'properties': {'url': {'type': 'string'}, 'zip': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'city': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'type': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'hasTk': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}]}, 'county': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'levels': {'type': 'array', 'items': {'type': 'object', 'required': ['level', 'scopeScore', 'band', 'statePercentile', 'pctExceeded', 'pctMetAbove', 'oneLiner', 'cohortGrowthScalePoints', 'cohortSpan', 'growthIndex', 'gradeGapThisYearPp', 'chronicAbsentRate', 'suspensionRate', 'archetype', 'patterns'], 'properties': {'band': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'level': {'type': 'string'}, 'oneLiner': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'patterns': {'type': 'array', 'items': {'type': 'object', 'required': ['key', 'label', 'evidence', 'question'], 'properties': {'key': {'type': 'string'}, 'label': {'type': 'string'}, 'evidence': {'type': 'string'}, 'question': {'type': 'string'}}, 'additionalProperties': False}}, 'archetype': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'cohortSpan': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'scopeScore': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'growthIndex': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'pctExceeded': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'pctMetAbove': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'suspensionRate': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'statePercentile': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'chronicAbsentRate': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'gradeGapThisYearPp': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'cohortGrowthScalePoints': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}}, 'additionalProperties': False}}, 'scored': {'type': 'boolean'}, 'ogImage': {'type': 'string'}, 'dataYear': {'type': 'number'}, 'district': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'peerClass': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'enrollment': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'highSchool': {'anyOf': [{'type': 'object', 'required': ['graduationRate', 'collegeGoing', 'ucLatest', 'apOwnCourses', 'ib'], 'properties': {'ib': {'anyOf': [{'type': 'object', 'properties': {}, 'additionalProperties': {}}, {'type': 'null'}]}, 'ucLatest': {'anyOf': [{'type': 'object', 'properties': {}, 'additionalProperties': {}}, {'type': 'null'}]}, 'apOwnCourses': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'collegeGoing': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'graduationRate': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}}, 'additionalProperties': False}, {'type': 'null'}]}, 'primaryLevel': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}}, 'additionalProperties': False}
similar_schools
Similar schools
Schools serving a similar student population to a given school — same level, comparable free/reduced-lunch share and enrollment size — with the subject's standing among them. This is the fair comparison: a raw ranking largely reflects who enrolls, so a school's position against demographic peers says far more about the school itself than its statewide rank does. Public schools only.
読み取り専用
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'minLength': 1, 'description': 'URL slug of the school to find peers for. Get it from find_schools.'}, 'limit': {'type': 'integer', 'default': 10, 'maximum': 25, 'minimum': 1}}}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['subject', 'peers', 'freeLunchWindow', 'meta'], 'properties': {'meta': {'type': 'object', 'required': ['data_year', 'source_agency', 'attribution', 'methodology_url', 'comparability', 'growth_basis', 'generated_at'], 'properties': {'data_year': {'type': 'number'}, 'attribution': {'type': 'string'}, 'generated_at': {'type': 'string'}, 'growth_basis': {'type': 'string'}, 'comparability': {'type': 'string'}, 'source_agency': {'type': 'string'}, 'methodology_url': {'type': 'string'}}, 'additionalProperties': False}, 'peers': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'slug', 'url', 'ogImage', 'city', 'zip', 'lat', 'lng', 'district', 'county', 'schoolType', 'level', 'scored', 'hasTk', 'scopeScore', 'band', 'statePercentile', 'pctExceeded', 'pctMetAbove', 'cohortGrowthScalePoints', 'cohortSpan', 'growthIndex', 'chronicAbsentRate', 'suspensionRate', 'archetype', 'patterns', 'peerClass'], 'properties': {'lat': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'lng': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'url': {'type': 'string'}, 'zip': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'band': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'city': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'hasTk': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}]}, 'level': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'county': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'scored': {'type': 'boolean'}, 'ogImage': {'type': 'string'}, 'district': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'patterns': {'type': 'array', 'items': {'type': 'object', 'required': ['key', 'label', 'evidence', 'question'], 'properties': {'key': {'type': 'string'}, 'label': {'type': 'string'}, 'evidence': {'type': 'string'}, 'question': {'type': 'string'}}, 'additionalProperties': False}}, 'archetype': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'matchNote': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'peerClass': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'cohortSpan': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'enrollment': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'schoolType': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'scopeScore': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'growthIndex': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'pctExceeded': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'pctMetAbove': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'freeLunchPct': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'distanceMiles': {'type': 'number'}, 'suspensionRate': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'statePercentile': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'chronicAbsentRate': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'cohortGrowthScalePoints': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}}, 'additionalProperties': False}}, 'subject': {'type': 'object', 'required': ['name', 'slug', 'url', 'ogImage', 'city', 'zip', 'lat', 'lng', 'district', 'county', 'schoolType', 'level', 'scored', 'hasTk', 'scopeScore', 'band', 'statePercentile', 'pctExceeded', 'pctMetAbove', 'cohortGrowthScalePoints', 'cohortSpan', 'growthIndex', 'chronicAbsentRate', 'suspensionRate', 'archetype', 'patterns', 'peerClass'], 'properties': {'lat': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'lng': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'url': {'type': 'string'}, 'zip': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'band': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'city': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'hasTk': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}]}, 'level': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'county': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'scored': {'type': 'boolean'}, 'ogImage': {'type': 'string'}, 'district': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'patterns': {'type': 'array', 'items': {'type': 'object', 'required': ['key', 'label', 'evidence', 'question'], 'properties': {'key': {'type': 'string'}, 'label': {'type': 'string'}, 'evidence': {'type': 'string'}, 'question': {'type': 'string'}}, 'additionalProperties': False}}, 'archetype': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'matchNote': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'peerClass': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'cohortSpan': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'enrollment': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'schoolType': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'scopeScore': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'growthIndex': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'pctExceeded': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'pctMetAbove': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'freeLunchPct': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'distanceMiles': {'type': 'number'}, 'suspensionRate': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'statePercentile': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'chronicAbsentRate': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'cohortGrowthScalePoints': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'outscoredPeers': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'freeLunchWindow': {'anyOf': [{'type': 'array', 'items': {'type': 'number'}}, {'type': 'null'}]}, 'matchedPeerCount': {'type': 'number'}}, 'additionalProperties': False}
変更
similar_schools
2026年9月29日2:50
変更
district_profile
2026年9月29日2:50
変更
compare_schools
2026年9月29日2:50
変更
school_profile
2026年9月29日2:50
変更
find_schools
2026年9月29日2:50
追加
my_watchlist
2026年9月17日12:38
追加
similar_schools
2026年9月17日12:38
追加
district_profile
2026年9月17日12:38
追加
compare_schools
2026年9月17日12:38
追加
feeder_path
2026年9月17日12:38
追加
school_profile
2026年9月17日12:38
追加
find_schools
2026年9月17日12:38