Glossary
NXT-specific terminology
Terms used in this codebase that aren't generic engineering vocabulary.
Product terms
RFS verdict — Reach / Fit / Safety. Computed from the student's GPA + test scores vs the school's admit rate + SAT/ACT middle-50% range. The verdict is the single most important matching signal. See convex/lib/rfsEngine.ts.
Rails — the horizontally scrolling card carousels on the Discover tab. NXT ships nine personalized rails plus a "for-you" composite. See AI and matching.
Peeks — the small inline answers on each card. The Afford peek shows estimated net price for the student's family income bracket. The Admit peek shows the RFS verdict. Designed to deliver decision-grade information without an extra tap.
Chip pools — the chip rail at the top of Discover (For You / Trade / 2-year / Online / All). Selecting a chip swaps the underlying pool that powers the rails below.
Meaning-first answers — the five answers on every college detail page: Afford, Admit, Outcomes, Community, Finish. Each pulls from a specific federal field. Replaces V1's narrative-first college page.
Picked For You — the composite top-of-rail item, per-student score across interests + programs + GPA fit + geographic distance.
Learning Style rail — rail keyed off the student's personality quiz result.
Campus Vibe rail — rail keyed off setting + size + walkability + politics quiz answers.
High Value rail — rail computed as net price ÷ median 10-year earnings.
Hidden Gems rail — high-quality + low-awareness schools the matching engine wants to surface.
Program Leader rail — schools that lead on earnings + completions for the student's study area (CIP-level).
Test Optional rail — schools where the federal ADMCON7=5 flag is set.
First Generation rail — schools that perform well for first-gen students (parental education proxy + Pell-eligible cohort outcomes).
MSI rail — Minority-Serving Institutions: HBCU + AANAPISI + HSI + TRIBAL + PBI flags from Scorecard.
The blurb — the 2–3 sentence "why this might be for you" text on each card. The only AI-generated text in the product. See AI and matching.
Cohort — a set of students whose profile inputs overlap enough to share a derived value. Not used today for blurb caching; noted as a potential cost-optimization in Cost and scaling.
Data terms
Scorecard — the federal College Scorecard dataset published by the U.S. Department of Education. Almost all factual college data in NXT comes from here. API docs.
unitId — Scorecard's primary key for an institution (a 6-digit UNITID from IPEDS). NXT keys the colleges table on it.
CIP — Classification of Instructional Programs, the federal taxonomy of academic majors. Per-program outcome data is indexed by CIP code.
IPEDS — Integrated Postsecondary Education Data System. The federal database Scorecard derives from. Some fields are read directly from IPEDS where Scorecard doesn't expose them.
EADA — Equity in Athletics Disclosure Act. Source for athletic-classification data.
primaryCategory — NXT-stamped category: 4-year, 2-year, trade, online, etc. Computed by lib/categorize.ts on every Scorecard upsert.
derived.academicScore — composite quality signal computed from completion + earnings + admit fields. Mirrored to top-level sortKey for indexing.
derived.affordScore — composite affordability signal. Used by High Value rail.
financeBracket — one of the federal income brackets (under $30K, $30K–$48K, $48K–$75K, $75K–$110K, $110K+) the student selects in profile. Drives the Afford peek.
MD_EARN_WNE_P10 — Scorecard field: median earnings, working not enrolled, 10 years post-entry. Drives the Outcomes section.
NPT4* — Scorecard field family: net price by family income bracket. Drives the Afford peek.
ADM_RATE — Scorecard field: admit rate. Drives the RFS verdict's school-side.
Technical terms
Wrapped factory — NXT's userQuery / userMutation / userAction Convex factories that pre-resolve ctx.user from the WorkOS session. Raw query() / mutation() is forbidden.
Error factory — a function in convex/lib/errors.ts or convex/lib/errors-<feature>.ts that constructs a structured error with code + message + messageKey. Replaces raw throw new Error(...).
Wrapped i18n key — the dotted-path form used at call sites: t("section.key"). Never a namespace argument.
Ownership index — the index on every user-scoped table whose first field is userId. Required for account-deletion cascade.
Aggregate component — Convex's @convex-dev/aggregate component. NXT uses two instances (aggregateWorkforce, aggregateTransferOutcome) for top-N rail queries.
Workflow component — Convex's @convex-dev/workflow component. NXT uses it for the account-deletion cascade.
Cron component — Convex's built-in cron support (cronJobs() helper). NXT has eight crons registered in convex/crons.ts.
WorkOS AuthKit — WorkOS's authentication SDK. Mobile + web + docs all use it. Docs.
EAS — Expo Application Services. Mobile build + OTA + submit pipeline.
OTA — Over-the-air JS update via Expo Updates. Skips App Store review for JS-only changes.
ASC — App Store Connect. Apple's web console + API for App Store submissions. NXT's pnpm asc CLI wrapper.
gplay — Google Play Console CLI wrapper. pnpm gplay.
MMKV — react-native-mmkv. Sync KV storage on mobile. Used for non-sensitive user preferences.
Hermes — React Native's JavaScript engine. NXT ships with Hermes enabled.
Uniwind — Tailwind v4 for React Native. Same className API as web; tokens generated once.
@app/data-contract — the workspace package that holds canonical TypeScript types + zod schemas. Single source of truth across apps + backend.
@app/i18n — the workspace package that holds locales/en.json. Used by web (next-intl) and mobile (i18next).
@app/core — the workspace package that holds design tokens, brand metadata, env helper, error helpers.
Ruler — the pnpm ruler:apply tool that regenerates CLAUDE.md / AGENTS.md / GEMINI.md from .ruler/*.md.
Sherif — pnpm lint:ws. Workspace consistency checker for monorepo version drift.
Runbook — a step-by-step operational playbook under .runbooks/. One per repeated task.
Drift detector — lib/drift.ts. Flags Scorecard schema mismatches at refresh time.