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 AM
변경됨
district_profile
2026년 9월 29일 2:50 AM
변경됨
compare_schools
2026년 9월 29일 2:50 AM
변경됨
school_profile
2026년 9월 29일 2:50 AM
변경됨
find_schools
2026년 9월 29일 2:50 AM
추가됨
my_watchlist
2026년 9월 17일 12:38 PM
추가됨
similar_schools
2026년 9월 17일 12:38 PM
추가됨
district_profile
2026년 9월 17일 12:38 PM
추가됨
compare_schools
2026년 9월 17일 12:38 PM
추가됨
feeder_path
2026년 9월 17일 12:38 PM
추가됨
school_profile
2026년 9월 17일 12:38 PM
추가됨
find_schools
2026년 9월 17일 12:38 PM