/education-data-source-meps
MEPS — Urban Institute modeled school-level poverty (% at 100% FPL), from CCD + SAIPE (public schools, 2009-2022, 2-3yr lag). Use when FRPL is unreliable due to CEP. Consistent cross-state measurement. Public schools only.
$ npx -y skills add brycewang-stanford/Auto-Empirical-Research-Skills --skill education-data-source-meps --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/education-data-source-meps
Context preview
The summary Claude sees to decide when to auto-load this skill.
MEPS — Urban Institute modeled school-level poverty (% at 100% FPL), from CCD + SAIPE (public schools, 2009-2022, 2-3yr lag). Use when FRPL is unreliable due to CEP. Consistent cross-state measurement. Public schools only.
SKILL.md
education-data-source-meps.SKILL.mdname: education-data-source-meps
description: >-
MEPS — Urban Institute modeled school-level poverty (% at 100% FPL), from CCD + SAIPE (public schools, 2009-2022, 2-3yr lag). Use when FRPL is unreliable due to CEP. Consistent cross-state measurement. Public schools only.
metadata:
audience: any-agent
domain: data-source
skill-authored: "2026-02-09"
skill-last-updated: "2026-02-09"
MEPS Data Source Reference
Model Estimates of Poverty in Schools (MEPS) — Urban Institute modeled estimates of school-level poverty (% students at or below 100% FPL), derived from CCD and Census SAIPE data (public schools, 2009-2022, 2-3 year lag). Use when analyzing school poverty rates, comparing poverty across states, or when FRPL data is unreliable due to CEP enrollment. Unlike FRPL, MEPS provides consistent cross-state measurement at a standardized 100% FPL threshold. Public schools only.
School-level poverty measure from the Urban Institute that is **comparable across states and time**, unlike Free/Reduced-Price Lunch (FRPL) data.
> **CRITICAL: Value Encoding** > > The Education Data Portal returns MEPS data with **integer-encoded** categorical and identifier columns. This differs from some external documentation: > > | Column | Portal Type | Example Value | Notes | > |--------|-------------|---------------|-------| > | `fips` | Int64 | `6` | State FIPS as integer (California = 6) | > | `ncessch` | Int64 | `10000200277` | 12-digit NCES school ID as integer | > | `leaid` | Int64 | `100002` | 7-digit district ID as integer | > | `gleaid` | Int64 | `100013` | Geographic LEA ID as integer | > | `year` | Int64 | `2018` | Academic year (fall semester) | > > **Missing values:** Unlike CCD, MEPS uses **native nulls** rather than negative coded values (-1, -2, -3). While the codebook lists these codes, actual Portal data contains nulls for missing values. > > See `./references/variable-definitions.md` for complete encoding tables.
What is MEPS?
MEPS is a **modeled estimate** of the share of students from households with incomes at or below **100% of the Federal Poverty Level (FPL)**.
- **Purpose**: Provide consistent school poverty measurement across all US states
- **Key advantage**: Comparable across states (unlike FRPL which varies by state policy)
- **Data level**: School-level (individual schools)
- **Coverage**: 2009-2022 (actual Portal data range)
- **Source**: Urban Institute, derived from CCD and SAIPE data
- **Primary identifier**: `ncessch` (12-digit NCES school ID)
- **Public schools only**: Does not cover private schools
Reference File Structure
| File | Purpose | When to Read | |------|---------|--------------| | `methodology.md` | How MEPS estimates are calculated | Understanding the model, research validation | | `comparison-to-frpl.md` | Detailed FRPL vs MEPS comparison | Deciding which measure to use | | `data-sources.md` | Input data (CCD, SAIPE, ISP) | Understanding data provenance | | `variable-definitions.md` | MEPS variables and codes | Building queries, interpreting results | | `data-quality.md` | Limitations, uncertainty, appropriate uses | Research design, caveats |
Decision Trees
Should I use MEPS or FRPL?
What is your research goal?
├─ Compare poverty across states → Use MEPS
│ └─ FRPL varies by state policy, MEPS is standardized
├─ Track poverty over time (post-2010) → Use MEPS
│ └─ CEP adoption makes FRPL inconsistent
├─ Study CEP/universal meals impact → Use both
│ └─ Compare MEPS (true poverty) vs FRPL (program participation)
├─ Match historical research (pre-2010) → Consider FRPL
│ └─ MEPS only available 2006+, but FRPL was more reliable then
├─ Need 185% FPL threshold → Use FRPL with caveats
│ └─ MEPS only measures 100% FPL
└─ Federal funding formulas → Check formula requirements
└─ Some formulas mandate FRPL; note limitationsWhich MEPS variable should I use?
Which estimate type?
├─ Standard analysis → `meps_poverty_pct`
│ └─ Original modeled estimate
├─ High-poverty district adjustment → `meps_mod_poverty_pct`
│ └─ Modified MEPS for districts where model underestimates
├─ Need confidence bounds → `meps_poverty_se`
│ └─ Standard error for uncertainty analysis
└─ Categorical analysis → Derive from `meps_poverty_pct`
└─ Create quartiles/quintiles as neededHow do I access MEPS data?
Access method?
├─ Mirror download (recommended) → See "Data Access" section below
└─ Join with other data → Use `ncessch` as join key
Quick Reference: MEPS Variables
> **Data Access:** MEPS data is fetched from mirrors (parquet/CSV). See `datasets-reference.md` for canonical paths, `mirrors.yaml` for mirror configuration, and `fetch-patterns.md` for fetch code patterns.
Portal Field Names
The Portal field names differ from some external MEPS documentation:
| External Documentation | Portal Field Name | |------------------------|-------------------| | `meps` / `school_poverty` | `meps_poverty_pct` | | `meps_mod` | `meps_mod_poverty_pct` | | `meps_se` | `meps_poverty_se` |
Variable Reference
All ID and categorical columns use **integer encoding** in Portal data:
| Variable | Description | Type | Range/Notes | |----------|-------------|------|-------------| | `ncessch` | NCES school ID (12-digit) | **Int64** | e.g., `10000200277` | | `ncessch_num` | NCES school ID (numeric duplicate) | **Int64** | Same as ncessch | | `year` | School year (fall) | **Int64** | 2009-2022 (actual data range) | | `fips` | State FIPS code | **Int64** | 1-56 | | `leaid` | District ID (7-digit) | **Int64** | e.g., `100002` | | `gleaid` | Geographic LEA ID | **Int64** | e.g., `100013` | | `meps_poverty_pct` | Estimated share in poverty (100% FPL) | Float64 | 0.0-60.5% (actual range) | | `meps_mod_poverty_pct` | Modified MEPS estimate | Float64 | 0.0-100.0% | | `meps_poverty_se` | Standard error of estimate | Float64 | 0.5-3.8 (typical range) | | `meps_poverty_ptl` | National percentile (enrollment-weighted) |
Read more
name: education-data-source-meps description: >- MEPS — Urban Institute modeled school-level poverty (% at 100% FPL), from CCD + SAIPE (public schools, 2009-2022, 2-3yr lag). Use when FRPL is unreliable due to CEP. Consistent cross-state measurement. Public schools only. metadata: audience: any-agent domain: data-source skill-authored: "2026-02-09" skill-last-updated: "2026-02-09"
MEPS Data Source Reference
Model Estimates of Poverty in Schools (MEPS) — Urban Institute modeled estimates of school-level poverty (% students at or below 100% FPL), derived from CCD and Census SAIPE data (public schools, 2009-2022, 2-3 year lag). Use when analyzing school poverty rates, comparing poverty across states, or when FRPL data is unreliable due to CEP enrollment. Unlike FRPL, MEPS provides consistent cross-state measurement at a standardized 100% FPL threshold. Public schools only.
School-level poverty measure from the Urban Institute that is **comparable across states and time**, unlike Free/Reduced-Price Lunch (FRPL) data.
> **CRITICAL: Value Encoding** > > The Education Data Portal returns MEPS data with **integer-encoded** categorical and identifier columns. This differs from some external documentation: > > | Column | Portal Type | Example Value | Notes | > |--------|-------------|---------------|-------| > | `fips` | Int64 | `6` | State FIPS as integer (California = 6) | > | `ncessch` | Int64 | `10000200277` | 12-digit NCES school ID as integer | > | `leaid` | Int64 | `100002` | 7-digit district ID as integer | > | `gleaid` | Int64 | `100013` | Geographic LEA ID as integer | > | `year` | Int64 | `2018` | Academic year (fall semester) | > > **Missing values:** Unlike CCD, MEPS uses **native nulls** rather than negative coded values (-1, -2, -3). While the codebook lists these codes, actual Portal data contains nulls for missing values. > > See `./references/variable-definitions.md` for complete encoding tables.
What is MEPS?
MEPS is a **modeled estimate** of the share of students from households with incomes at or below **100% of the Federal Poverty Level (FPL)**.
- **Purpose**: Provide consistent school poverty measurement across all US states
- **Key advantage**: Comparable across states (unlike FRPL which varies by state policy)
- **Data level**: School-level (individual schools)
- **Coverage**: 2009-2022 (actual Portal data range)
- **Source**: Urban Institute, derived from CCD and SAIPE data
- **Primary identifier**: `ncessch` (12-digit NCES school ID)
- **Public schools only**: Does not cover private schools
Reference File Structure
| File | Purpose | When to Read | |------|---------|--------------| | `methodology.md` | How MEPS estimates are calculated | Understanding the model, research validation | | `comparison-to-frpl.md` | Detailed FRPL vs MEPS comparison | Deciding which measure to use | | `data-sources.md` | Input data (CCD, SAIPE, ISP) | Understanding data provenance | | `variable-definitions.md` | MEPS variables and codes | Building queries, interpreting results | | `data-quality.md` | Limitations, uncertainty, appropriate uses | Research design, caveats |
Decision Trees
Should I use MEPS or FRPL?
What is your research goal?
├─ Compare poverty across states → Use MEPS
│ └─ FRPL varies by state policy, MEPS is standardized
├─ Track poverty over time (post-2010) → Use MEPS
│ └─ CEP adoption makes FRPL inconsistent
├─ Study CEP/universal meals impact → Use both
│ └─ Compare MEPS (true poverty) vs FRPL (program participation)
├─ Match historical research (pre-2010) → Consider FRPL
│ └─ MEPS only available 2006+, but FRPL was more reliable then
├─ Need 185% FPL threshold → Use FRPL with caveats
│ └─ MEPS only measures 100% FPL
└─ Federal funding formulas → Check formula requirements
└─ Some formulas mandate FRPL; note limitationsWhich MEPS variable should I use?
Which estimate type?
├─ Standard analysis → `meps_poverty_pct`
│ └─ Original modeled estimate
├─ High-poverty district adjustment → `meps_mod_poverty_pct`
│ └─ Modified MEPS for districts where model underestimates
├─ Need confidence bounds → `meps_poverty_se`
│ └─ Standard error for uncertainty analysis
└─ Categorical analysis → Derive from `meps_poverty_pct`
└─ Create quartiles/quintiles as neededHow do I access MEPS data?
Access method? ├─ Mirror download (recommended) → See "Data Access" section below └─ Join with other data → Use `ncessch` as join key
Quick Reference: MEPS Variables
> **Data Access:** MEPS data is fetched from mirrors (parquet/CSV). See `datasets-reference.md` for canonical paths, `mirrors.yaml` for mirror configuration, and `fetch-patterns.md` for fetch code patterns.
Portal Field Names
The Portal field names differ from some external MEPS documentation:
| External Documentation | Portal Field Name | |------------------------|-------------------| | `meps` / `school_poverty` | `meps_poverty_pct` | | `meps_mod` | `meps_mod_poverty_pct` | | `meps_se` | `meps_poverty_se` |
Variable Reference
All ID and categorical columns use **integer encoding** in Portal data:
| Variable | Description | Type | Range/Notes | |----------|-------------|------|-------------| | `ncessch` | NCES school ID (12-digit) | **Int64** | e.g., `10000200277` | | `ncessch_num` | NCES school ID (numeric duplicate) | **Int64** | Same as ncessch | | `year` | School year (fall) | **Int64** | 2009-2022 (actual data range) | | `fips` | State FIPS code | **Int64** | 1-56 | | `leaid` | District ID (7-digit) | **Int64** | e.g., `100002` | | `gleaid` | Geographic LEA ID | **Int64** | e.g., `100013` | | `meps_poverty_pct` | Estimated share in poverty (100% FPL) | Float64 | 0.0-60.5% (actual range) | | `meps_mod_poverty_pct` | Modified MEPS estimate | Float64 | 0.0-100.0% | | `meps_poverty_se` | Standard error of estimate | Float64 | 0.5-3.8 (typical range) | | `meps_poverty_ptl` | National percentile (enrollment-weighted) |
📌 文档结构(2026-07-22 起): 本文件是中文默认入口 —— banner + badges + 信任面 + 9 阶段流水线速览 + 76 行合集总表。 每个合集的完整描述、按用途分组、精确数字、验证方法在 docs/CONTENT_ZH.md(扩展正文,总表行内的 → 直接跳转到对应锚点)。 English version: README-en.md · 中文扩展正文:docs/CONTENT_ZH.md · README-zh-CN.md 已弃用(重定向占位) 🌐 语言: English |
Other skills on auto-empirical-research-skills.
- /pipeline
Classical end-to-end empirical analysis workflow in the traditional Python econometric stack — pandas + numpy + scipy + statsmodels + linearmodels + pyfixest + rdrobust + econml + causalml + matplotlib/seaborn. **Defaults to economics empirical-paper style** (AER / QJE / AEJ) —
Open skill - /pipeline
Classical end-to-end empirical analysis workflow in the modern tidyverse + econometrics R ecosystem — dplyr + tidyr + haven + fixest + sandwich + lmtest + clubSandwich + AER + ivreg + did + bacondecomp + HonestDiD + eventstudyr + rdrobust + rddensity + Synth + gsynth + synthdid
Open skill - /pipeline
Classical end-to-end empirical analysis workflow in the traditional Stata ecosystem — native Stata + reghdfe + ivreg2 + csdid + did_imputation + eventstudyinteract + sdid + rdrobust + rddensity + synth + synth_runner + psmatch2 + teffects + ebalance + coefplot + esttab + asdoc +
Open skill - /00-Full-empirical-analysis-skill_StatsPAI
Use when the user asks to run a full empirical / causal analysis in Python — by default in the style of an applied economics paper (AER / QJE / JPE / ReStud / AEJ) with DID / RD / IV / SCM / DML / matching, written-out estimating equation + identifying assumption, Table 1 /
Open skill - /00.1-Full-empirical-analysis-skill_Python
Classical end-to-end empirical analysis workflow in the traditional Python econometric stack — pandas + numpy + scipy + statsmodels + linearmodels + pyfixest + rdrobust + econml + causalml + matplotlib/seaborn. **Defaults to economics empirical-paper style** (AER / QJE / AEJ) —
Open skill - /00.2-Full-empirical-analysis-skill_Stata
Classical end-to-end empirical analysis workflow in the traditional Stata ecosystem — native Stata + reghdfe + ivreg2 + csdid + did_imputation + eventstudyinteract + sdid + rdrobust + rddensity + synth + synth_runner + psmatch2 + teffects + ebalance + coefplot + esttab + asdoc +
Open skill

