Skip to content
Automation
Skill

/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.

From plugin
auto-empirical-research-skills
5k200 skills

Claude Code

$ npx -y skills add brycewang-stanford/Auto-Empirical-Research-Skills --skill education-data-source-meps --agent claude-code

SKILL.md

education-data-source-meps.SKILL.md
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 limitations

Which 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 needed

How 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
@brycewang-stanford
Ships withauto-empirical-research-skills

## 🔥 力荐 · StatsPAI — Stata 与 R 的 Python 平替,为 AI Agent 而生 🔁 Stata / R 平替:reghdfe、csdid、rdrobust、synth、fixest、did 等常用命令在 Python 中一站式替代,一个 import statspai as sp 搞定 DID / RD / IV / SCM / DML / matching 🤖 面向 Agent 设计:结构化结果对象 + 内置 MCP Server,Claude / Codex

Stars on GitHub

Momentum

stars in total
5.0k
Star history of brycewang-stanford/Auto-Empirical-Research-Skills on GitHub, a chart by star-history.com

More skills from other plugins.

agent-builder

agent-builder

Load immediately after an Agent intent, before the first agent_builder_* call. Governs how you create, configure, test, and…

n8n2w209k
@n8n-io@n8n-ioInstall Skill
browser-use

browser-use

Direct browser control via CDP for web interaction: automation, scraping, testing, screenshots, and site/app work. Also covers…

@browser-use@browser-useInstall Skill
add-anydoc

add-anydoc

Add local office-document-to-Markdown conversion to NanoClaw agent containers with the pinned Firecrawl AnyDoc CLI. Use when…

@nanocoai@nanocoaiInstall Skill

Questions about education-data-source-meps.

Which coding agents can use education-data-source-meps?
education-data-source-meps installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.