Changelog
What shipped, what got fixed, what data was added. Updated as the platform grows. Use this page to verify CivicaPR is actively maintained before citing it.
- fix
FBI CDE credit points at the Summary explorer
/methodology and /admin/datasets now link the FBI Crime Data Explorer Summary view, the same URL /crimen already cites. The CDE front page opens with nothing selected.
- data
Legislator photos and bill status on /legisladores
/legisladores now shows the photograph already stored on legislator_parties.image_url (OpenStates / Wikimedia). Each measure on a legislator page shows chamber, status and the last past action date the query already returned. No join to /officials; empty photos stay empty.
- data
Fichas Title IV on /educacion
Each operating College Scorecard school now has a thin profile at /educacion/{id}. The list used to send readers off-site to collegescorecard.ed.gov; that URL is still the citation. City is the Scorecard city — not a municipio. Empty Scorecard fields stay empty; they are not zeros. Field-of-study earnings are still a different dataset.
- data
Historical unemployment by municipio from IEPR
Municipio pages now carry the IEPR / DTRH Local Area Unemployment Statistics rate (indicadores.pr). The series runs 1976–2020 and is labelled historical — it is not the current Puerto Rico Community Survey unemployment on the scorecard. Municipio columns last have values in August 2020. First rows appear after Saturday 05:15 UTC.
- data
Largest FEMA Public Assistance projects on /desastres
/desastres now lists the 25 Public Assistance projects with the largest federal share from the weekly OpenFEMA harvest. OpenFEMA v2 has the application title, not the applicant’s legal name — the table says so. First rows appear after the next Sunday 03:00 UTC FEMA run.
- data
FEC national reporting calendar on official pages
Official pages that already carry FEC filings now list upcoming national quarterly and monthly reporting dates from the FEC calendar. The dates apply to House campaigns and monthly filers nationwide, including Puerto Rico’s Resident Commissioner; they are not Puerto Rico-specific. The FEC state filter is unused and is not queried. First run waits for Sunday 09:25 UTC.
- data
Congressional Record mentions of Puerto Rico
The weekly GovInfo harvest now also walks the Congressional Record Daily (CREC) for 2025 onward. /legislacion lists those granules next to public laws and federal bills. A mention of Puerto Rico is not a speech by the Resident Commissioner and does not mean the debate is about the island. Each title links to govinfo.gov.
- data
FEMA recovery totals now include island-wide projects, plus a 3D map
Most of Puerto Rico’s FEMA Public Assistance is assigned to no municipio: island-wide ("Statewide") projects, 77.5% of the federal share in OpenFEMA. Our import used to leave them out, so /desastres showed $8.91B. It now shows both parts and the full total, and the FEMA refresh runs weekly. Per-municipio figures moved a few percent because the snapshot is new. /desastres/mapa draws each municipio’s money on a 3D map of the island, with the same figures in a table. A fourth, opt-in "Ops" look is in the theme switch.
- data
Search contractors by Unique Entity Identifier
The entities registry search matches name or the stored USASpending Unique Entity Identifier. The table shows the UEI. A UEI on the page is an identifier, not a SAM exclusion flag — those still join on UEI only, never on the company name.
- data
SAM.gov exclusion flags on contractor pages
Entity pages can show an active SAM.gov exclusion when the contractor Unique Entity Identifier has exclusionStatusFlag=Y on SAM entity v3. We do not flag from a name. Exclusions v4 406d from production with the working SAM key, so the public flag is the entity-registration flag, not a name search. No match is not a clean bill of health — only UEIs we have scanned.
- data
Puerto Rico Community Survey on municipality profiles
Municipio pages now take population, poverty, income, age, unemployment, bachelor’s share, home value, and rent from the Puerto Rico Community Survey (Census ACS 5-year, state 72). Poverty is the survey percent, not a count divided by total population. San Germán is FIPS 125; San Juan is 127 — they are not the same county.
- data
Federal contractor Unique Entity IDs
USASpending awards now store the recipient Unique Entity Identifier (UEI). That is the key SAM.gov exclusions can join on later. We do not publish a debarred flag from a name match — a false debarment label is worse than no label.
- data
College Scorecard institutions in Puerto Rico
Started harvesting Title IV colleges and universities in Puerto Rico from the College Scorecard. /educacion lists operating schools by enrollment, with public vs private chips. City is the Scorecard city — not a municipio join. Field-of-study earnings are a different dataset and are not mixed in.
- fix
Searchable tables for federal document lists
Directories are search-first: legislation (full SUTRA corpus, chamber/status chips), legislators, 78 municipalities, officials (live search, no extra click), FEMA funds by town, and federal agencies. Type Ponce or PS 284 — you should not have to hunt a stacked list.
- data
FBI Crime Data Explorer (statewide SRS)
Started harvesting FBI CDE summarized offenses for Puerto Rico. The legacy SAPI host is gone; this uses api.usa.gov/crime/fbi/cde. Puerto Rico currently reports one statewide ORI (SRS), not municipios. SRS and NIBRS stay separate. /crimen lists the series.
- data
EPA, FEMA, and FCC dockets on Regulations.gov
Started harvesting Notice / Rule / Proposed Rule documents from EPA, FEMA, and FCC that mention Puerto Rico. Unfiltered search is ~131,000 hits; these walks are agency-pinned. Read-only — CivicaPR does not post comments. /regulaciones lists them; /desastres shows FEMA notices separately from OpenFEMA obligations.
- data
GovInfo: public laws and Federal Register notices
Started harvesting GovInfo documents that mention Puerto Rico — U.S. public laws (PLAW) and Federal Register notices from 2025 on. Unfiltered search is ~185,000 hits; these walks are collection-pinned. /legislacion shows recent public laws (not the Assembly record). /desastres shows recent FR notices (not FEMA declarations). Each title links to govinfo.gov.
- data
Resident Commissioner bills on Congress.gov
The current Resident Commissioner’s sponsored and recently acted-on cosponsored federal bills now appear on their official page, sourced from Congress.gov. This is the U.S. Congress record, not the Puerto Rico Assembly tracker. Bioguide IDs are resolved from the member API, not guessed from names.
- data
Itemized FEC Schedule A (employer / occupation)
Started ingesting the full itemized Schedule A for every federal committee we already track — a separate table from the top-20 snapshot, with individuals and committees stored as separate facts. Official pages show top employers from itemized individual gifts only. Unitemized money is not in this list. FEC contributor records may not be used for commercial solicitation.
- data
Data.gov catalog harvest (LANE-0)
Nightly harvest of Data.gov dataset metadata matching “Puerto Rico” into a staging table. Titles, publishers, and resource URLs only — not loaded as CivicaPR facts. Lets us query what federal datasets exist instead of rediscovering them by hand.
- data
OCE money on 15 official pages (2011–2018)
Confirmed candidato→official mappings for 15 officials (strict name matches only). Five surname-overlap false friends stay unmapped. Each page states the 2011–2018 freeze. Unconfirmed names are never shown.
- data
PR local campaign-finance corpus (OCE, 2011–2018)
Started ingesting 165,617 donations from the Oficina del Contralor Electoral Socrata portal (frozen 2019-01-30). Rows are stored for query; they are not shown on official pages until a human confirms each candidato→official mapping. Coverage window is always 2011–2018.
- data
Named executives on federal contractor pages
Entity pages now show highest-paid executives named on that recipient’s federal awards under FFATA, sourced from USASpending.gov. Names appear only when a filing lists them. This is not a complete officer roster and does not use commercial people data.
- data
Data-integrity pass
Refreshed llms-full.txt from 300 to 10,349 awards with reconciled totals. Capped award-date display at today so scheduled future work no longer tops Recent lists as if it already happened. Added a $0-obligation footnote distinguishing base vehicles with no recorded obligations from missing data. Reconciled recipient counts across the homepage and /contracts on one definition. Normalized party labels to a single list (PNP merged). Added freshness stamps to dataset headers. No methodology change.
- data
Industry sector on every federal contractor
All 151 federal contractors now carry an industry sector derived from the authoritative NAICS code on their USASpending awards — grounded in the official award record, not guessed from the company name. Entity pages show the sector plus the cited NAICS code, and the AI analyst can filter recipients by sector. Distribution: 70 Construction, 29 Professional & Technical Services, 28 Administrative & Waste Services, 12 Manufacturing, and more.
- legislation
Browse legislation by topic
New /legislacion/temas hub groups the 4,901 tracked measures into 19 civic topics (health, education, public safety, housing, energy, taxes, and more). Topics are derived from each bill’s title with transparent keyword rules — Puerto Rico’s legislature does not tag subjects, so every assignment is explainable from the title shown as its source. Topic chips added to every bill page.
- monitoring
Public-safety monitoring hub
New /monitoreo situational-awareness center with real-time government data: /sismico (USGS earthquakes), /huracanes (NOAA National Hurricane Center), /clima (National Weather Service alerts), /aire (air-quality index), /energia (LUMA / AEEPR grid links), /incendios (NASA FIRMS fire detection), and a community /camaras map. Keyless official sources, updated live.
- legislation
Legislative tracker — every measure in the Assembly
New /legislacion tracks all 4,901 measures (proyectos + resoluciones) of the Puerto Rico Legislative Assembly for the 2025–2028 session — status pipeline (radicada → en comisión → aprobada → ley), sponsors, and dated action history, each linked to its official SUTRA record. /legisladores ranks all legislators by measures sponsored. Data via OpenStates.
- site
Marketing landing + robots.txt + more OG images + people-intake scaffold
Replaced the / -> /dashboard redirect with a real marketing landing page (hero, 4 headline stats, 4 feature cards, journalist CTA, integrity block, data sources footer). Added public/robots.txt-equivalent (via Next.js app/robots.ts) welcoming 14 crawlers (GPTBot, ChatGPT-User, OAI-SearchBot, ClaudeBot, Claude-Web, anthropic-ai, PerplexityBot, Google-Extended, Applebot-Extended, CCBot, cohere-ai, Googlebot, Bingbot, Slurp, DuckDuckBot). Added per-page OG images for /, /methodology, /about, /upgrade (1200×630, edge runtime). Pre-staged a 1-credit Apollo people-intake scaffold at docs/internal/people-intake/2026-06-29 (zero credits burned; gated on Carlos setting APOLLO_API_KEY in WSL).
- site
Unified /pricing page + journalist landing polish
New /pricing page ties together the 3 commissioned-report tiers ($1,500 / $5,000 / $15,000) and the Pro / Pro Plus subscriptions ($29 / $79 per month). /for-journalists now has the 3 Snapshot sample PDFs in-line and links to /pricing. Site footer surfaces For Journalists + Pricing on every public page.
- site
Cite-this-data button, /for-journalists, dynamic OG images
APA-style cite button on officials / entities / municipalities detail pages. New /for-journalists landing page with the journalist toolkit. Dynamic OG images for officials / entities / municipalities. Featured officials on the dashboard. 3 Snapshot sample PDFs downloadable from /commissioned-report.
- platform
13-branch merge + deploy ritual complete
Migrated CivicaPR to the production-ready stack: Neon Auth for civic ratings, Stripe Checkout for commissioned reports, Stripe Customer Portal for Pro management, Pro / Pro Plus subscription spine, daily + weekly digest crons, /admin dashboard for order management. 119/119 tests green.
- accountability
Accountability scorecards (facts, not scores)
Entity / municipality / official accountability views from public records. Entity HHI concentration index (USASpending). Municipality Census + FEMA panel. Officials: facts only, no composite score (public data cannot honestly derive one). /methodology + /scorecards hub.
- auth
Neon Auth + civic ratings MVP live
Login via Neon Auth (Better Auth). Signup / signin / signout on the public site. Civic ratings on /entities/[id]: 3-dimension (1-5) plus comment, public aggregate, login-gated form. Foundation for Pro / Pro Plus subscription features.
- geo
GEO / SEO surface for AI search discoverability
Schema.org JSON-LD on 78 municipality + 152 entity detail pages. Sitemap + llms.txt + robots.txt welcoming AI crawlers. /contracts 500 error fixed (Neon date-string coercion). AI chat cite-or-drop discipline hardened (no fabrication, UNVERIFIED tag on uncited answers).
- launch
civicapr.com went public
DNS cutover from Wix to Vercel. HTTPS via Vercel auto-issued SSL. Legal pages (/privacy /terms /about). GA4 + AdSense scaffolds in place. The data: 78 municipalities, 38 enriched officials, 151 federal contractors, 300 federal contracts, $8.31B tracked, 1 FEC cycle (RC).
- data
First AI-cited public-officials roster (6, all enriched)
Wikipedia → Perplexity sonar-pro → Gemini structure → Wikidata authoritativeness for social handles + birth + family. Roster: Governor, RC, House Speaker, Senate President, San Juan Mayor, Bayamón Mayor. Wikidata-only social handles (the model once fabricated "@Jenniffer2012"; Wikidata had the real one).
- platform
Migrated from Firebase / Firestore to Neon Postgres
Decided + executed: drop the Firebase Studio MVP, port the UI to Vercel + Neon Postgres. 6 Firestore collections → 10 Postgres tables. Genkit AI flows kept (Perplexity chat). Schema + seed runners in scripts/0001_init.sql.
For the live state of the data (latest contract date, latest campaign finance ingest, official count), see the dashboard. For the methodology, see /methodology. For errors, source additions, or corrections, email info@r21digital.com.