WING-144 (research id "WW-117") — Veteran education-benefits (GI Bill) data feasibility¶
Spike research. Produced by fleet worker (grok kind, ANDYGREATROOMPC), 2026-07-24. Reviewed and committed by WT-2f62. Filed as WING-144 because the working id "WW-117" collided with the already-landed Benefits T0 ticket (now WW-144/WING-130 — see that ticket's own renumbering note, same collision class, same day).
Capture note: the fleet-dispatch result capture for this job truncated the beginning of the worker's output — the opening research narrative and the full VA API field-by-field walkthrough did not survive the retrieval. What follows is the complete architecture recommendation, go/no-go matrix, open questions, and full 18-source citation index, which DID survive intact. Re-run the spike if the missing narrative detail is needed before the P1 build ticket starts.
Bottom line for Andrew¶
The GI Bill bridge between the federal track and the education track is real and PII-free if WorkWingman sticks to the public GI Bill Comparison Tool API and school-level chips. Treat VA Lighthouse identity/claims APIs as a different product — do not build them into this feature. Do not build a benefits maximizer. Static rules cards + deep links cover Post-9/11 Ch.33 tiers, VR&E, and SkillBridge without inventing eligibility for any individual veteran.
Recommended architecture (sketch)¶
┌─────────────┴─────────────┐
│ WW GiBillSchoolSource │ (C# adapter, flag-gated)
│ - search by school name │
│ - get by facility_code │
│ - optional ZIP MHA │
│ - store meta.version │
└─────────────┬─────────────┘
│
┌─────────────┴─────────────┐
│ Local cache / snapshot │
│ key: facility_code │
│ asOf: version.created_at │
│ TTL: e.g. 24h or on │
│ version change │
└─────────────┬─────────────┘
│
┌─────────────┴─────────────┐
│ Education-track school │
│ entity join (name/OPE/ │
│ facility_code crosswalk) │
└─────────────┬─────────────┘
│
┌─────────────┴─────────────┐
│ UI chips (SourcedField) │
│ + static rules cards │
│ self-attest stays local │
└────────────────────────────┘
Implementation notes for the follow-on build ticket:
- Adapter:
HttpClienttoapi.va.gov/v0/gi, timeout + retry, never throws into the UI (same pattern as the Benefits adapters). - Join risk: school-name matching is fuzzy; prefer
facility_codewhen known; keepNotOnRecordwhen ambiguous — never guess. - Refresh: poll
meta.versionon a search heartbeat; invalidate cache when the version number changes. - Bulk: if
public_exportsbecomes reliably public, switch to snapshot ingest; until then, the on-demand API cache is enough for school cards. - Flags:
education.master+education.giBillSchoolChips, default OFF. - Tests: golden JSON fixtures from live samples (e.g. Texas A&M / Stanford Yellow Ribbon); guard tests ban personalized dollar strings and any score field.
- Cross-track: the federal track keeps MOS/USAJOBS; the education track shows GI Bill school chips when the user views a school/program. The bridge is shared school metadata, not shared veteran identity.
Go / no-go matrix¶
| Item | Decision | Why |
|---|---|---|
| GIBCT public school API for chips | GO | Public, school-level, live, field-complete for Yellow Ribbon/housing basis |
| Bundle/cache pipeline | GO | Same pattern as the MOC crosswalk / ATS vocab corpus; version-stamped |
| Yellow Ribbon amounts as school facts | GO with copy guards | Live contribution_amount + seat counts, published data |
| Personalized award calculator | NO-GO | Needs individual service history; creates a "$X for you" liability |
| Lighthouse Veteran Confirmation / Claims / Education Benefits (individual) | NO-GO | PII / OAuth / wrong problem for this feature |
| SkillBridge automated chips | NO-GO (for now) | No public school-level join found; only a DoD SPA directory |
| VR&E school chips | NO-GO | No school-participation dataset exists; rules card only |
| Benefits maximizer / ranking | NO-GO | Hard product rule — no blended score, ever |
Overall spike recommendation: GO to a thin build ticket for GIBCT school chips + static rules cards, behind a feature flag, Kerr-tested — after the ticket-ID collision noted above is resolved.
Open questions¶
- Ticket identity: resolved above — this spike is now WING-144, distinct from WW-144/WING-130 Benefits T0.
- Public export: will VA expose
public_exports/lateston a stable public host? If yes, prefer a bulk snapshot over search-crawling. - Rate limits / ToS: no published rate limit found in probes; needs a product policy for cache TTL and User-Agent identification before production polling.
- School join key: the education track's school entity — IPEDS/OPE vs
facility_code? Crosswalk quality unknown. - Housing field semantics: school
bahvs ZIPmha_ratevsdod_bahcan differ — which single "basis" label is least misleading for a chip? number_of_students = 99999: confirm product copy ("unlimited seats listed" vs the raw number).- SkillBridge later: is there a DoD open dataset or API for participating employers worth a follow-on spike?
- Calculator constants vs the rates page:
TFCAPetc. on the API vs the narrative rates page — pick a single source of truth for the static cards. - International schools: GIBCT includes foreign institutions — is the education track US-only for v1?
- Legal review: CC0/USG for the code vs downstream use of live API metrics in a commercial desktop app — confirm counsel comfort (likely fine for factual republication with attribution; still no VA endorsement claim).
Suggested next tickets (after this ID fix)¶
| Priority | Ticket intent | Tier |
|---|---|---|
| P0 | Spec + Kerr copy deck for GI school chips (no code) | Ceiling review of wording |
| P1 | GiBillSchoolSource + cache + facility_code join + flag |
Sonnet |
| P1 | Static Ch.33 / Yellow Ribbon / VR&E / SkillBridge rules cards | Haiku |
| P2 | Caution flag / Principles of Excellence / 8 Keys to Veteran Success / VET TEC chips | Haiku |
| P3 | SkillBridge employer data recon (separate spike) | Research |
| Never | Personalized calculator / Lighthouse identity | — |
Source index¶
| # | Source | Used for | As-of |
|---|---|---|---|
| 1 | https://www.va.gov/education/gi-bill-comparison-tool/ | Tool existence | 2026-07-24 |
| 2 | https://api.va.gov/v0/gi/institutions/search | Live school search, version 1477 | 2026-07-24 |
| 3 | https://api.va.gov/v0/gi/institutions/{facility_code} | Detail + Yellow Ribbon nested | 2026-07-24 |
| 4 | https://api.va.gov/v0/gi/yellow_ribbon_programs | Yellow Ribbon list | 2026-07-24 |
| 5 | https://api.va.gov/v0/gi/zipcode_rates/{zip} | MHA housing basis | 2026-07-24 |
| 6 | https://api.va.gov/v0/gi/calculator_constants | Caps / averages | 2026-07-24 |
| 7 | https://github.com/department-of-veterans-affairs/gibct-data-service | GIDS architecture, CC0, routes, sample CSVs, public_exports | 2026-07-24 |
| 8 | https://github.com/department-of-veterans-affairs/gi-bill-comparison-tool | Legacy archived Rails tool | 2026-07-24 |
| 9 | https://developer.va.gov/ + developer-portal-content API directories | Lighthouse catalog classes | 2026-07-24 |
| 10 | Sandbox OpenAPI: VA Forms, Benefits Intake, Address Validation | Auth/path evidence | 2026-07-24 |
| 11 | https://www.va.gov/education/about-gi-bill-benefits/post-9-11/ | Ch.33 overview | 2026-07-24 |
| 12 | https://www.va.gov/education/benefit-rates/post-9-11-gi-bill-rates/ | Tiers + rate year | 2026-07-24 |
| 13 | https://www.va.gov/education/about-gi-bill-benefits/post-9-11/yellow-ribbon-program/ | Yellow Ribbon rules | 2026-07-24 |
| 14 | https://www.va.gov/careers-employment/vocational-rehabilitation/ | VR&E overview | 2026-07-24 |
| 15 | https://www.va.gov/careers-employment/vocational-rehabilitation/eligibility/ | VR&E eligibility | 2026-07-24 |
| 16 | https://www.benefits.va.gov/transition/skillbridge.asp | SkillBridge rules | 2026-07-24 |
| 17 | https://skillbridge.osd.mil/ | DoD program home | 2026-07-24 |
| 18 | https://www.data.va.gov/ | Open data scan (no GIBCT full dump found) | 2026-07-24 |