diff --git a/events/2026-06-11-unlock-the-money/justagiraffe/.gitkeep b/events/2026-06-11-unlock-the-money/justagiraffe/.gitkeep deleted file mode 100644 index 8b13789..0000000 --- a/events/2026-06-11-unlock-the-money/justagiraffe/.gitkeep +++ /dev/null @@ -1 +0,0 @@ - diff --git a/events/2026-06-11-unlock-the-money/justagiraffe/INTEGRATED-ARCHITECTURE.md b/events/2026-06-11-unlock-the-money/justagiraffe/INTEGRATED-ARCHITECTURE.md new file mode 100644 index 0000000..be78673 --- /dev/null +++ b/events/2026-06-11-unlock-the-money/justagiraffe/INTEGRATED-ARCHITECTURE.md @@ -0,0 +1,221 @@ +# Integrated architecture — OEF urban climate-finance stack + +**Purpose:** define how the hackday modules fit into one coherent system, so the +city-facing app (City Readiness Navigator) is built against the right boundaries. +**Status:** reflects the **v2.2 build** (12–15 Jun 2026) — the Navigator is built through +the city-facing flow below; CityCatalyst embed (OAuth/MCP) remains. Pairs with +[`ITERATION-2.1-PLAN.md`](ITERATION-2.1-PLAN.md). + +> **Naming.** "Readiness" alone is too broad — this stack assesses **finance readiness** +> (specifically **climate-finance readiness**): is a city/pool ready to access a *specific +> financing instrument* for its climate plan. The app's subtitle carries this ("Climate-finance +> readiness for cities & regions"); keep that framing in any rename. + +--- + +## 1. The core principle — two readiness questions, kept modular + +Martin's call (validated by the Project Preparator POC): **separate whether a +*project* is bankable from whether a *city* is creditworthy.** They are different +questions, answered by different modules, and a city can enter from either side. + +| | **Project bankability** | **Entity creditworthiness** | +|---|---|---| +| Question | "Is *this project* fundable, and by whom?" | "Can *this city/pool* take on *this instrument*?" | +| Object | a single project (from a HIAP action) | a subnational government (or a pool of them) | +| Owner today | **Project Preparator** (NBS Project Builder) | **justagiraffe** Readiness Engine + profiles | +| Model | Technical / Financial / Political (0.4/0.4/0.2) | creditworthiness / fiscal / legal / governance | +| Output | GCF/C40-style **Concept Note** | scored candidate + clearance for an instrument | +| Entry path | "I have a project → who funds it?" | "Can I access IDB SFP → which projects do I take on?" | + +A project can be bankable while the city isn't creditworthy (and vice versa), so +**both layers are needed and complementary, not redundant.** The City Readiness +Navigator is the **entity/instrument/portfolio** layer; it *consumes* prepared +projects and adds creditworthiness + pooling + the funder handoff. + +## 2. Module inventory (what exists, verified) + +| Module | Repo / location | Role | Status | +|---|---|---|---| +| **CityCatalyst** | `Open-Earth-Foundation/CityCatalyst` | Host: GHG inventory, **HIAP** (prioritized actions), CCRA risk, Journey Navigator module catalog, OAuth, Global API | Production | +| **Project Preparator** | `joaquinOEF/NBS-Project-Preparation` | Project bankability (Tech/Fin/Pol), project-funder matching, Concept Note | POC | +| **justagiraffe Control Tower** | hackdays `justagiraffe/control-tower` | IDB-facing: Intake & Triage, Readiness Scoring (profile-driven engine), Results/Board | Hackday | +| **City Readiness Navigator** | hackdays `justagiraffe/city-readiness-navigator` | City-facing: 6-stage finance-readiness journey; entity creditworthiness + intra/cross-city portfolio + dossier handoff | Hackday (built, v2.2) | +| **City-Funder Matching Engine** | hackdays `city–funder-matching` + `apps/funder-scan` | **Chile** capacity (SINIM/FCM), action→funder matching, **pooling/aggregation** | Hackday | +| **CAPAG Funder Scan** | hackdays `apps/capag-funder-scan` | **Brazil** creditworthiness (Treasury CAPAG A/B/C/D for 5,570 munis) | Hackday | +| **Political-will signal** | hackdays `codex/8-political-will-score` | LLM-derived governance/political-will sub-score from news/articles | Hackday (early) | + +> The Matching Engine has no new commits since 12 Jun (`feat: funder matcher`). +> CAPAG and the political-will branch are the meaningful new inputs. + +## 3. The data layer — country-specific fiscal sources feed one readiness model + +The entity-creditworthiness pillars should be fed by **real national fiscal data +via per-country adapters**, all keyed by **UN/LOCODE**: + +| Country | Source | Real signals | → pillars | +|---|---|---|---| +| **Brazil** | **CAPAG** (Tesouro Nacional, ODbL) | `capag` A+/A/B+/B/C/D · `ind1_endividamento` (debt/RCL) · `ind2_poupanca` · `ind3_liquidez` · `icf` (accounting quality) · `publicou_rgf/rreo` | creditworthiness ← capag · fiscalHealth ← ind1/2/3 · governance ← icf + transparency · legalCapacity ← A/B gates Union-guaranteed credit | +| **Chile** | **SINIM / FCM** (via Matching Engine) | `composite_score` · `fcm_dependency_pct` · `professionalization_pct` · `cofinance_score` | fiscalHealth ← composite · governance ← professionalization · (estimated creditworthiness) | +| **(any)** | **Political-will** branch | LLM article-derived signal | governance / political-will modifier | + +**CAPAG is the strongest fit:** it's a *real Treasury creditworthiness rating* that +explicitly gates **Union-guaranteed credit** — the exact analog of the IDB SFP +"borrow without sovereign guarantee" question. A/B = bankable; C/D = blocked from the +federal-guarantee channel (grants/blended); n.d. = unrated (TA first). 99.96% +LOCODE-matched to CityCatalyst. *(Screening signal, not a credit decision — keep STN's +disclaimer.)* + +**Architecture implication:** introduce a **Fiscal Data Adapter** interface. Each +country implements `locode → { pillar inputs, provenance }`. Brazil=CAPAG, Chile=SINIM. +The readiness engine consumes the normalized output; the UI badges provenance. + +## 4. The shared spine (what every surface reuses) + +1. **Readiness framework** — one pluggable system, **two levels of profile**: + - *Project profiles* (Preparator: Tech/Fin/Pol per funder type). + - *Entity/instrument profiles* (justagiraffe: IDB SFP #1; CAF/WB/GCF next). + Extract as a shared package so there aren't 3 divergent models. +2. **Fiscal Data Adapters** (§3) — CAPAG, SINIM, … +3. **Funder catalog + funder navigator (a 3-level hierarchy).** Financing is specified at + three levels of granularity, and readiness is ultimately assessed against the most + specific one: + - **Funder / bank** — IDB, CAF, World Bank, GCF, BNDES… + - **Program** within the funder — e.g. IDB's **Sub-Sovereign Finance Program (SFP)**. *The + SFP is a **program**, not an instrument.* + - **Instrument** within the program — e.g. under SFP Subprogram 1, an **investment loan** or + **investment guarantee** (without sovereign guarantee); Subprogram 2's TC instruments. + + So the city app's "choose instrument" step is really a **funder navigator** that drills + *funder → program → instrument*. It is fed by a **funder sourcing database / service** — the + converged catalog (today fragmented: Preparator's 18 LatAm instruments; Matching Engine's + Chile funds; CAPAG's BNDES/CCFLA angle; and funder data living in *different areas of + CityCatalyst*). Consolidating these into one sourcing service, plugged into the navigator, + is the target; each entry carries eligibility metadata (borrower type, ticket window, + sovereign-guarantee flag) and links to the readiness profile it implies. +4. **Candidate dossier = the Concept Note, extended** — the machine-readable handoff + into a funder pipeline. Reuse the Preparator's GCF/C40 Concept Note and add the + entity-creditworthiness + instrument + pooling layer; don't invent a new schema. +5. **CityCatalyst host** — inventory + HIAP supply the *what to fund*; the Journey + Navigator surfaces each module; OAuth + Global API + `locode`/`cityId` are the joins. + +## 5. End-to-end flow (both entry paths on one spine) + +``` +CityCatalyst: GHG inventory ──┐ ┌── CCRA climate risk + ▼ ▼ + HIAP prioritized actions + │ + ┌──────────────────────┴───────────────────────┐ + PATH A (project-first) PATH B (capacity-first) + │ │ + Project Preparator City Readiness Navigator + • Tech/Fin/Pol bankability • "Can I access IDB SFP?" + • project funders / PPFs • entity creditworthiness + • Concept Note ───────────────┐ • pick instrument / projects + ▼ │ + City Readiness Navigator (entity / portfolio layer) + • entity readiness ◀── Fiscal Data Adapter (CAPAG / SINIM) + • pool to reach ticket size (Matching Engine) + • build dossier (= Concept Note + creditworthiness) + │ submit + ▼ + Funder pipelines + • justagiraffe Control Tower (IDB Intake & Triage) + • CAPAG/BNDES-CCFLA funder screening (other funders) +``` + +## 5a. Diagram (Mermaid — canonical, renders on GitHub) + +```mermaid +flowchart TB + subgraph CC["CityCatalyst — host & shared context (infrastructure)"] + HIAP["HIAP prioritized actions"] + INV["GHG inventory · CCRA risk"] + AGENT(["AI agents / MCP — shared context across modules"]) + end + + subgraph PREPM["Project Preparator — module on CityCatalyst"] + PREP["Project bankability (Tech/Fin/Pol)
→ Concept Note"] + end + + DATA["Fiscal Data Adapters (locode-keyed) + map view
CAPAG · Brazil  |  SINIM/FCM · Chile"] + + MATCH(["Matching & Pooling — core service
action→instrument  |  entity/pool→instruments + pooling"]) + + subgraph NAV["City Readiness Navigator — entity / portfolio (one vertical)"] + N1["① Entity creditworthiness
diagnose for chosen instrument"] + N2["② Readiness pathways
close the gap · coach to funder requirements (IDB SFP first)"] + N3["③ Portfolio & pooling → submit
pool only if sub-scale"] + N1 --> N2 --> N3 + end + + CAP["Capacity building / PPF
standalone support · entity or project, when not ready"] + + subgraph FUND["Funder pipelines"] + IDB["IDB Control Tower
Intake & Triage · Readiness Scoring · M&E & Board"] + OTHER["Other funders · BNDES / CCFLA"] + end + + HIAP --> PREP + PREP -- "Concept Note (Path A)" --> N3 + DATA -- "Path B · entity-first" --> N1 + N2 -- "not ready → gap" --> CAP + MATCH -.-> PREP + MATCH -.-> NAV + N3 -- "dossier = Concept Note + creditworthiness" --> IDB + AGENT -.-> PREPM + AGENT -.-> NAV + AGENT -.-> IDB +``` + +> **Module hierarchy:** Preparator and Navigator are drawn as **peer modules on the +> CityCatalyst host** (intended end-state — the Preparator is a separate-repo POC today, +> `joaquinOEF/NBS-Project-Preparation`). **Navigator = one vertical, three steps:** +> ① diagnose entity creditworthiness → ② readiness pathways (close the gap / coach to the +> funder's requirements, IDB SFP first) → ③ portfolio & pooling (pool only if sub-scale) → +> submit. **Capacity building / PPF is a standalone support track** reached from a "not +> ready" diagnosis — not wired into the Preparator. Path A (a Concept Note) enters at ③; +> Path B (entity-first) enters at ①. + +> Refinements behind this diagram (matching-as-core-service, entity-first naming, +> capacity-building as a branch, single-vertical Navigator, AI-agent context) are detailed in +> [`ITERATION-2.1-PLAN.md` §F–G](ITERATION-2.1-PLAN.md). + +> **Polished renders for presenting** (open & screenshot): the module-boundary view +> [`diagrams/5a-integrated-architecture.svg`](diagrams/5a-integrated-architecture.svg) and the +> pipeline view [`diagrams/process-timeline.svg`](diagrams/process-timeline.svg). See +> [`diagrams/README.md`](diagrams/README.md). The mermaid above remains the source of truth. + +## 6. Module boundaries & contracts (to agree) + +- **HIAP → Preparator / Navigator:** prioritized actions (`actionId`, sector, type). +- **Fiscal Data Adapter → Readiness Engine:** `locode → {creditworthiness, fiscalHealth, legalCapacity, governance, provenance}` (CAPAG & SINIM implementations). +- **Preparator → Navigator:** a prepared project / Concept Note object. +- **Matching Engine → Navigator:** funders-open per action + pool/aggregation candidates. +- **Navigator → Control Tower:** the candidate **dossier** (Concept Note + creditworthiness + instrument + pool), written into Intake & Triage. + +## 7. What's real today vs. to-build + +- **Built (Navigator v2.2):** the 6-stage city-facing flow — Explore (map + **state/region vs + city** view + data-source toggle) → City context (inventory + CCRA + HIAP + plan) → **Choose + instrument** → Readiness pathways (assess + route) → **Portfolio (intra-city vs cross-city + pool)** → Funder intake (dossier). **Fiscal Data Adapters** for **CAPAG (Brazil)** and + **SINIM (Chile)** with the readiness map; the profile-driven readiness engine; the **dossier** + handoff to a funder-pipeline view; a simulated **CityCatalyst context + agent** seam. Two + worked cities/pathways: **Valdivia** (Ready → portfolio → IDB SFP) and **Canoas** (CAPAG C → + capacity-building). Control Tower copy upgrade (orientation banner, glosses, M&E explicit). +- **Real data:** CAPAG (5,570 munis), SINIM/FCM (Chile), CityCatalyst inventory/HIAP/CCRA + (live in CityCatalyst; simulated in the Navigator pending embed). +- **To build:** live CityCatalyst embed (OAuth/MCP, real inventory/HIAP); the **funder + navigator** drill-down (funder → program → instrument) + converged **funder sourcing service** + (§4.3); shared `@oef/readiness` package (de-dupe Navigator/Control Tower); real Navigator↔ + Control Tower wiring (dossier writes into Intake & Triage); the Preparator handoff (Path A). + +## 8. Open decisions (for the review) + +1. **Shared readiness package** — extract now (de-dupe Navigator/Control Tower), or after the hackday? +2. **Dossier = Concept Note** — adopt the Preparator's Concept Note as the handoff format? +3. **Funder catalog** — one converged catalog, or keep per-team for now and map later? +4. **CAPAG integration depth** — wire CAPAG as the Brazil adapter for a second hero city (e.g. a Brazilian municipality alongside Valdivia), to prove the multi-country pillar feed? +5. **Where the Navigator lives** — sibling CityCatalyst module sharing the spine (recommended). diff --git a/events/2026-06-11-unlock-the-money/justagiraffe/ITERATION-2.1-PLAN.md b/events/2026-06-11-unlock-the-money/justagiraffe/ITERATION-2.1-PLAN.md new file mode 100644 index 0000000..edd96c5 --- /dev/null +++ b/events/2026-06-11-unlock-the-money/justagiraffe/ITERATION-2.1-PLAN.md @@ -0,0 +1,164 @@ +# Iteration 2.1 — City Readiness Navigator + SFP Control Tower upgrade + +**Supersedes:** [`ITERATION-2-PLAN.md`](archive/ITERATION-2-PLAN.md) (all its points still hold; +this refines them with the integrated architecture). +**Reads with:** [`INTEGRATED-ARCHITECTURE.md`](INTEGRATED-ARCHITECTURE.md). +**Why 2.1:** after reviewing the **Project Preparator** POC, the **CAPAG** project (Brazil +creditworthiness), and the **City-Funder Matching Engine**, the model sharpened from "one +app" to "**two readiness layers on a shared spine**." This plan positions the city-facing +app inside that, and upgrades the IDB-facing Control Tower's language. + +--- + +## A. The reframe that changes the build + +The Navigator is the **entity / instrument / portfolio** layer — *not* a project builder. +The **Project Preparator** already does per-project bankability + funder matching + Concept +Note. So the Navigator should: + +1. **Consume**, not re-create, prepared projects (Concept Notes) from the Preparator. +2. Focus on **entity creditworthiness for a chosen instrument** (IDB SFP), fed by **real + national fiscal data** (CAPAG for Brazil, SINIM/FCM for Chile) via a Fiscal Data Adapter. +3. **Pool** entities/projects to reach an instrument's ticket size. +4. Emit the **dossier = Concept Note + creditworthiness + instrument + pool** into the IDB + Control Tower's Intake & Triage. + +This *removes* scope (we don't build project preparation) and *adds* the missing connective +tissue (adapters, dossier, pooling-as-portfolio). + +## B. City-facing app — workstreams (refines v2's WS-A…H) + +- **WS-1 Entry & dual path** — enter from CityCatalyst (inventory + HIAP). Support both + entry paths: *project-first* (arrive from a Preparator Concept Note) and *capacity-first* + ("can I access IDB SFP?"). Show provenance. *(refines v2 §1)* +- **WS-2 Fiscal Data Adapter** — define `locode → {pillars, provenance}`; implement **CAPAG + (Brazil)** and **SINIM (Chile)**. Add a **Brazilian hero city** (CAPAG-rated) alongside + Valdivia to prove the multi-country pillar feed. *(new — from CAPAG review)* +- **WS-3 Shared readiness package** — extract `@oef/readiness` (engine + profiles) used by + Navigator + Control Tower; design it to also host *project-level* profiles so the + Preparator can converge later. *(refines v2 §4)* +- **WS-4 Choose instrument + eligibility** — rename "pick a target" → **"Choose the + financing instrument"**; reframe readiness as instrument/funder/product-specific; add the + `eligibleUse` panel (what expenses the instrument funds). *(refines v2 §3, §7)* +- **WS-5 Build readiness** — merge "Prepare/Close the gap"; two failure modes (readiness gap + → PPF/TC; ticket-size gap → pool); drop "bankability" language. *(refines v2 §5)* +- **WS-6 Portfolio / pooling** — rename "the gap becomes the deal" → **"Build a financeable + portfolio"**; clarify co-finance units (0–100 index, not $); add region/country geography + + Los Ríos map; reconcile with the Matching Engine's existing `aggregation` pathway. + *(refines v2 §6)* +- **WS-7 Dossier = Concept Note** — adopt/extend the Preparator's GCF/C40 Concept Note as + the machine-readable handoff; write it into the Control Tower's Intake & Triage. *(refines v2 §8)* +- **WS-8 Copy/polish** — kill marketing titles; disable the Next.js dev indicator. *(v2 §10)* + +**Order:** WS-3 → WS-2 → WS-1/4 → WS-5/6 → WS-7 → WS-8. + +## C. SFP Control Tower (IDB-facing) — language upgrade + +The Control Tower is **IDB-facing**, so it needs a **thinner** explanatory layer than the +city app (the user is an expert) — but it currently assumes too much. Upgrade the front end: + +1. **One-line orientation banner** (who/what): *"Screening room for the IDB Sub-Sovereign + Finance Program (SFP) — a 5-year pilot lending directly to subnational governments (SNGs) + without a sovereign guarantee. Each candidate is one record seen through three lenses."* +2. **Define acronyms once, inline, on first use** (hover or a small glossary chip): SFP, SNG, + sovereign guarantee, non-accrual, OVE, Ordinary Capital, TC, Subprogram 1/2. Don't strip + them (IDB uses them) — just gloss them once. +3. **Keep "M&E" explicit — title it "Monitoring & Evaluation (M&E) & Board".** M&E *is* + understood at IDB, and the team has built real M&E content, so spell it out rather than + hide it. Add a one-line subhead: *"How the pilot proves itself — indicators vs. targets + for the year-3 and year-5 Board / OVE reviews."* (Expand the acronym once on first use.) +4. **Tab subheads** — each of the three tabs gets a one-line "what this answers": + - Intake & Triage → "Where each candidate sits in the IDB review process, and what's blocking it." + - Readiness Scoring → "The early creditworthiness assessment — is this SNG ready, and why." + - Results & Board Reporting → as above. +5. **Geography** — show candidate country/region (a small map or country chips), so IDB sees + the portfolio's geography. +6. **The dossier view** — render the incoming candidate dossier (WS-7) as an expandable + intake card (project plan + creditworthiness + instrument + pool), so Intake & Triage is + fed by the city app, not hand-entered. + +> Keep the IDB skin and density; this is *clarification*, not a redesign. The city app +> carries the heavy hand-holding; the Control Tower carries crisp expert labels. + +## D. Open decisions (confirm before building) — see architecture §8 + +1. Extract the shared `@oef/readiness` package now, or after the hackday? +2. Adopt the Preparator's **Concept Note as the dossier** format? +3. **Converge the funder catalog**, or map per-team for now? +4. Add a **Brazilian CAPAG hero city** alongside Valdivia this iteration? *(recommended — it + proves the multi-country, real-creditworthiness story.)* +5. Navigator as a sibling CityCatalyst module sharing the spine? *(recommended.)* + +## E. Sequencing + +Per Martin: review the two running apps + this plan together → lock §D → execute the +city-app workstreams (B) and the Control Tower upgrade (C) → **then** render the +[architecture diagram](INTEGRATED-ARCHITECTURE.md) as the visual artifact on top of the +built result. + +--- + +## F. Refinements from review 3 (architecture + UX) + +These came from Martin's read of the integrated architecture and refine §A–§C: + +1. **Matching is a *core service*, not Chile-only data.** The City-Funder Matching Engine's + reusable part is its **matching + pooling logic**, callable at *both* altitudes — *action → + instrument/funder* (project level, what the Preparator needs) and *entity/pool → eligible + instruments + pooling* (entity level, what the Navigator needs). SINIM is just its current + Chilean **data instance**. Model it as a shared service with pluggable data, alongside the + Fiscal Data Adapters. +2. **"Path B" is entity-first, not "capacity-first."** It analyses the **municipal entity's + creditworthiness**, so name it **"entity-first"** (vs. "project-first" for Path A). + Separately, **"capacity building" is a support track**, not an entry path — it's what a + city *or* a project may need when the diagnosis says they're not yet ready (e.g. a fiscal + improvement plan before creditworthiness, or feasibility work before a PPF). Show it as a + branch off the readiness diagnosis that applies to both layers. +3. **The Navigator is one vertical with two steps**, not two boxes. ① Entity creditworthiness + → ② Portfolio & pooling → submit. **Path A (a prepared project / Concept Note) connects + into step ②**; **Path B (entity-first) enters at step ①.** +4. **Dual entry + import/interoperability.** Because these modules interoperate, the Navigator + should offer **import options** at entry (pull a prepared project from the Preparator, pull + an entity's fiscal profile from an adapter) rather than re-entry. +5. **"Build readiness" → "Readiness pathways."** The step *assesses* readiness and **routes**: + ready → proceed; not-ready → a capacity-building/PPF pathway; ready-but-sub-scale → pooling. + "Build readiness" wrongly presumes not-ready; **"Readiness pathways"** frames it as the + diagnosis-and-route step. +6. **Geographic / map view of financial readiness.** A map layer that shows readiness across a + scope (CAPAG tiers over Brazil, SINIM over Chile) and **zooms to the city/project location** + — an intuitive front door for the adapters and for funders scanning a portfolio. +7. **Left-hand process menu.** The workstreams are a top-to-bottom process (upstream → + downstream). Use a **left vertical nav** (Source → Readiness → Portfolio → Funder intake) + rather than a horizontal stepper, so the flow reads as a pipeline. + +## G. Cross-cutting requirement — AI-agent shared context (CityCatalyst) + +The app must integrate with **CityCatalyst's AI-agent infrastructure** (its MCP server / +climate-advisor / the Preparator's agent layer) so **context is shared across modules** — a +city's inventory, HIAP priorities, prepared projects, and readiness travel with the user +instead of being re-derived per app. Practically: the Navigator reads/writes through the +CityCatalyst agent/MCP layer, and exposes its own readiness + dossier as agent-callable +context. This is a first-class requirement, not a nice-to-have. + +## H. Build pathway — to make the running app reflect the architecture + +The sequence to get from today's Phase-0–3 app to an app that *shows the architecture through +its interface*: + +1. **Shell & navigation (WS-1, §F-7):** restructure the app around a **left-hand process menu** + (Source · Readiness pathways · Portfolio · Funder intake), single-vertical Navigator. +2. **Fiscal Data Adapter + map (WS-2, §F-6):** implement the adapter interface with **CAPAG + (Brazil)** and **SINIM (Chile)**; add the **map view** of readiness; add a Brazilian hero + city beside Valdivia. +3. **Readiness pathways (WS-5, §F-5):** the assess-and-route step (ready / capacity-building / + pool), with the capacity-building branch shown for entity *and* project. +4. **Matching core service (§F-1):** wire discovery + pooling as calls to one matching service. +5. **Dual entry + import (§F-4):** project-first (import a Concept Note → step ②) and + entity-first (→ step ①). +6. **Dossier = Concept Note (WS-7):** assemble + write into the Control Tower Intake. +7. **AI-agent context (§G):** read/write city context through the CityCatalyst MCP/agent layer. +8. **Control Tower language upgrade (§C):** thin IDB-facing copy incl. **M&E** kept explicit. +9. **Copy/polish (WS-8):** kill marketing titles, disable the dev indicator. + +Recommended build order: **1 → 2 → 3 → 5 → 4 → 6 → 8 → 7 → 9** (UI shell first so the +architecture is legible as it fills in; AI-agent wiring after the data contracts are stable). diff --git a/events/2026-06-11-unlock-the-money/justagiraffe/PRD-city-facing-readiness-app.md b/events/2026-06-11-unlock-the-money/justagiraffe/PRD-city-facing-readiness-app.md new file mode 100644 index 0000000..1dca5de --- /dev/null +++ b/events/2026-06-11-unlock-the-money/justagiraffe/PRD-city-facing-readiness-app.md @@ -0,0 +1,325 @@ +# PRD — City Readiness Navigator (CityCatalyst module) + +**Status:** Draft for autonomous build · **Owner:** Martin (OEF) · **Team:** justagiraffe +**One line:** A CityCatalyst Journey Navigator module that helps a Latin American city find which funders its climate plan can reach, see exactly how *ready* it is for a chosen instrument (starting with the IDB Sub-Sovereign Finance Program), close the gap with funded TC, and — when ready — submit into that funder's pipeline. + +> This PRD is written to be handed to an autonomous build agent. Integration facts +> are grounded in a primary-source review of the CityCatalyst monorepo +> (`github.com/Open-Earth-Foundation/CityCatalyst`), the Global API +> (`ccglobal.openearth.dev/openapi.json`), and the HIAP service. Items that could +> not be confirmed against source are marked **[VERIFY]**. + +--- + +## 0. Build status & key clarifications (v2.2, 15 Jun 2026) + +**Built (runs locally):** a **6-stage** city-facing flow — **Explore** (readiness map with a +**state/region ↔ city** toggle + a data-source toggle) → **City context** (inventory + CCRA + +HIAP + climate plan, from the CityCatalyst seam) → **Choose instrument** → **Readiness +pathways** (assess + route) → **Portfolio** (**intra-city** vs **cross-city pool**) → **Funder +intake** (dossier → pipeline). Real fiscal data via **CAPAG (Brazil)** and **SINIM (Chile)** +adapters; two worked cities — **Valdivia** (Ready → portfolio → IDB SFP) and **Canoas** (CAPAG +C → capacity-building). The 7-step spec in §4 is the origin; the built structure is the 6 stages +above (left-hand process menu). + +**Naming.** "Readiness" is too broad — this is **finance readiness** / **climate-finance +readiness**. Keep the app's subtitle ("Climate-finance readiness for cities & regions") front +and center; a rename should preserve that. + +**Funder hierarchy (3 levels) — refines "Choose instrument".** Financing has three levels of +specificity and readiness is assessed against the most specific: **funder/bank → program → +instrument**. The **IDB SFP is a *program***, not an instrument; its instruments are the +investment loan / guarantee (Subprogram 1) and TC (Subprogram 2). So this step should become a +**funder navigator** that drills funder → program → instrument, fed by a converged **funder +sourcing database / service** (today fragmented across CityCatalyst and the hackday apps; see +[`INTEGRATED-ARCHITECTURE.md` §4.3](INTEGRATED-ARCHITECTURE.md)). *Not yet built — current step +selects IDB SFP directly.* + +## 1. Why this exists + +Two hackday prototypes each built half of the "unlock the money" chain and neither +is embedded in CityCatalyst: + +- **justagiraffe / Control Tower** — an IDB-facing console with a *readiness engine* + (now profile-driven; see `control-tower/READINESS-PROFILES.md`). It answers "is + this borrower ready?" but has no city-facing front door and no way for candidates + to arrive. +- **City-Funder Matching Engine** — matches a city's climate actions to funding + instruments and pools small cities into financeable bundles. It answers "which + funder fits?" but has no readiness depth. + +**The missing piece is the city-facing app** that joins them inside CityCatalyst: +*match → assess readiness for the chosen target → prepare → submit.* Readiness is +the bridge, and it is **target-specific** — a city is ready *for a particular +instrument's criteria*, encoded as a pluggable **readiness profile** (IDB SFP is +profile #1; other MDBs add their own). + +**Revenue framing (keep central):** a premium CityCatalyst capability for cities + +a de-risked deal pipeline for any MDB. Repeatable to CAF, World Bank, EIB, GCF by +adding a readiness profile — no new app. + +### 1a. The model (v2.1 reframe — read before §4) + +After reviewing the **Project Preparator** POC, **CAPAG** (Brazil), and the Matching +Engine, the product sharpened from "one app" to **two readiness layers on a shared +spine** (full rationale in [`INTEGRATED-ARCHITECTURE.md`](INTEGRATED-ARCHITECTURE.md)): + +- **Project bankability** ("is *this project* fundable?") — owned by the **Project + Preparator** (Tech/Fin/Pol → Concept Note). The Navigator **consumes** these; it does + **not** rebuild project preparation. +- **Entity creditworthiness** ("can *this city/pool* take on *this instrument*?") — this + app. The Navigator is the **entity / instrument / portfolio** layer. + +What this changes in the spec below: +1. **Navigator = one vertical, three steps:** ① diagnose entity creditworthiness for the + chosen instrument → ② **readiness pathways** (assess-and-route: ready → proceed; + not-ready → close the gap / coach to the funder's requirements, or a funded + capacity-building/PPF track; sub-scale → pool) → ③ portfolio & pooling → submit. + Pooling is **conditional** — a large-enough city skips it. +2. **Dual entry.** *Project-first* (Path A): a prepared Concept Note enters at step ③. + *Entity-first* (Path B): a city asking "can I access IDB SFP?" enters at step ①. Offer + **import** at entry (pull a Concept Note from the Preparator, pull a fiscal profile from + an adapter) rather than re-entry. ("Capacity-first" is *not* an entry path — capacity + building is a support track off the readiness diagnosis.) +3. **Matching + Pooling is a shared core service** (action→instrument and + entity/pool→instruments), not Chile-only data. SINIM is its current data instance. +4. **Fiscal Data Adapters** (`locode → {pillars, provenance}`) feed creditworthiness: + **CAPAG** (Brazil), **SINIM/FCM** (Chile); a **map view** badges readiness by geography. +5. **The handoff is the dossier = Concept Note + creditworthiness + instrument + pool.** +6. **Shell is a left-hand process menu** (Source · Readiness pathways · Portfolio · Funder + intake), not a horizontal stepper — the flow reads as a pipeline. + +The 7-step journey in §4 remains the functional spec; the names below reflect this reframe +(e.g. "Pick a target" → "Choose the instrument"; "Prepare" → "Readiness pathways"). + +## 2. Goals / non-goals + +**Goals** +1. A city officer, starting from their existing CityCatalyst plan, can in one + session: see reachable funders, pick a target (IDB SFP), get a defensible + readiness score + gap, see the funded preparation path, and submit when ready. +2. Run on **real data where it exists** (CityCatalyst city context + HIAP + priorities; Chilean fiscal capacity from the Matching Engine), clearly labeled + real-vs-estimated. +3. Be a **first-class CityCatalyst module** (Journey Navigator entry, per-project + access, OAuth, CityCatalyst look-and-feel), not a standalone microsite. +4. Emit a clean **handoff object** so a "Ready" city/pool appears in the IDB-side + Control Tower pipeline. + +**Non-goals (this iteration)** +- No real money movement, contracts, or write-back into IDB systems. +- Not a replacement for IDB's internal due diligence — the app produces a + *defensible candidate*, not an approval. +- Not multi-funder submission UX beyond IDB SFP (others are profile stubs). +- No new emissions/risk modeling — consume CityCatalyst's existing outputs. + +## 3. Primary user & job + +**User:** a city/SNG finance or planning officer (or a consultant acting for them) +in an IDB borrowing member country, already using CityCatalyst. +**Job-to-be-done:** *"Show me what money my climate plan can realistically reach, +whether we qualify, and exactly what we must fix to get funded — then let us start."* + +Secondary viewer: an MDB/regional officer (the receiving side) — served by the +existing Control Tower, fed by this app's handoff. + +## 4. The journey (functional spec, 7 steps) + +The module is a short guided flow. Each step lists its data source and the +acceptance behavior. + +| # | Step | What the user sees | Source | +|---|------|--------------------|--------| +| 1 | **Enter** | The city's existing profile (name, locode, population, region, GPC emissions, HIAP priorities) auto-loaded — no re-entry. | CityCatalyst app `/api/v1` (OAuth) + Global API city context | +| 2 | **Discover** | "Funders your plan can reach" — instruments matched to the city's prioritized actions, each tagged applicant / facilitator / referrer, with gaps named. IDB SFP appears when eligible. | Matching Engine outputs (`valdivia_funders_open.csv`, `*_action_matches.csv`); HIAP for priorities | +| 3 | **Choose instrument** *(→ funder navigator)* | Today: selects IDB SFP and loads its **readiness profile**. Target (§0): a **funder navigator** drilling **funder → program → instrument** (SFP is a *program*), fed by the funder sourcing service. Carries the "you may be eligible for a direct line" note. | `readiness-profiles.js` registry; funder sourcing service (to build) | +| 4 | **Diagnose** | Readiness score (composite + four pillars), tier (Ready/Developing/Early), "why this score" per-pillar contribution, the eligibility gate pass/fail, and the documentary checklist — all for the chosen target. Real-vs-estimated badges per signal. | `scoring.js` (active profile) over CityCatalyst + Matching Engine capacity data | +| 5 | **Readiness pathways** | Assess-and-route, not just "prepare." For each gap: the concrete fix and its route — self-serve coaching to the funder's requirements, or a funded capacity-building/PPF track (for IDB, **Subprogram 2 TC**, ~US$13M envelope: regular + contingent-recovery). Turns "rejected" into "here's the path." (formerly "Prepare") | Profile `preparation` track + checklist gaps | +| 6 | **Pool (if needed)** | If the city is below the target's ticket size, the engine pools it with neighbours into one financeable bundle, names the anchor, flags TA-needed members. Readiness then evaluates the anchor/pool. | Matching Engine `coordination_units.csv`, `unit_bundle_candidates.csv` | +| 7 | **Submit** | When readiness for the instrument is met (score ≥ tier + clearance gates pass), "Submit to IDB" emits the **dossier** (= Concept Note + creditworthiness + instrument + pool); the city/pool appears in the Control Tower's Project Review. | Handoff contract (§6) | + +Steps 1–6 are city-facing (inside CityCatalyst); step 7 crosses the boundary to +the funder-facing Control Tower. **Dual entry** (see §1a): *entity-first* (Path B) starts +at step 1; *project-first* (Path A) imports a Concept Note and enters at step 6/7. **Step 6 +(Pool) is conditional** — a city at or above the instrument's ticket size proceeds straight +to Submit. Present the flow as a **left-hand process menu** (Source · Readiness pathways · +Portfolio · Funder intake), not a horizontal stepper. + +## 5. Integration architecture (CityCatalyst) + +Grounded in the SDK review. **There is no published CityCatalyst SDK package** — +TS/Python clients are CI-generated from the OpenAPI spec but not on a registry. +Integrate via **REST + OAuth 2.0 (+ optional MCP)**, and register as a **Module**. + +### 5.1 Module registration (Journey Navigator) +CityCatalyst's Journey Navigator hosts a catalog of modules (gated by the +`JN_ENABLED` flag). A module is a row in the `Module` table +(`app/migrations/20250721185038-Module_create.cjs`): +- `id` (UUID), `stage`/`step` (e.g. `plan` or `implement` — **[VERIFY]** which + stage finance belongs to; "Implement" is the likely fit), `name`/`tagline` + (multilingual JSON `{en,es,pt}`), `type` (`OEF` for an OEF-built module), + `url`, `author: "Open Earth Foundation"`, `status`. +- Per-project access via `GET /api/v1/city/{cityId}/modules/{moduleId}/access` + → `{ data: { hasAccess: boolean } }`. +- **[VERIFY]** Exact embed mechanism for an independently hosted module + (iframe vs micro-frontend vs redirect) — README says "independently hosted and + surfaced in-app." Confirm with `HomePageJN/HomePage.tsx`, `JNDrawer.tsx`, or the + CityCatalyst team. **Decision needed before build** (see §9). + +### 5.2 Auth — OAuth 2.0 / PKCE +- Standards-based (RFC 8414 discovery at `GET /api/v1/oauth/metadata`, gated by + `OAUTH_ENABLED`), PKCE `S256`, scopes `read`/`write`, grant types + `authorization_code` + `refresh_token`. +- Onboard via Admin → "OAuth 2.0 Clients" → Add Client (name, redirect URI) → + client ID (public client, no secret). Reference SPA: `api-demo/` using + `oauth4webapi`. +- Origins: prod `citycatalyst.io`, dev `citycatalyst.openearth.dev`, + test `citycatalyst-test.openearth.dev`, local `localhost:3000`. + +### 5.3 Reading city data +**App API (`/api/v1`, authenticated)** — the city's own inventory/plan: +- City profile, inventories, emissions, action plans, risk — also exposed via the + **MCP server** (`/api/v1/mcp`) tools: `get_user_cities`, `get_city_profile`, + `get_user_inventories`, `get_inventory_emissions`, `get_climate_action_plans`, + `get_climate_risk_assessment`. + +**Global Data API (`ccglobal.openearth.dev`, public read-only [VERIFY auth])** — +context + reference data (spec at `/openapi.json`, mixed `v0`/`v1` paths): +- `GET /api/v0/city_context/city/{locode}` → `{locode,name,region,regionName,populationSize,populationDensity,area,elevation,biome,socioEconomicFactors,accessToPublicServices}` +- `GET /api/v0/cityboundary/city/{locode}` / `.../area` +- `GET /api/v0/climate_actions?language=` → action library (`ActionID` e.g. `c40_0010`, multilingual name/description, `Sector`/`Subsector` GPC-aligned) +- `GET /api/v1/cities/{locode}/action-policy-scores`, `.../action-mitigation-feasibility-scores` — precomputed per-city action scores +- `GET /api/v0/source/{source}/city/{locode}/{year}/{GPC_refno}` — city emissions + +**HIAP (prioritizer, async)** — the city's prioritized actions: +- `POST /prioritizer/v1/start_prioritization` → `{taskId}`; poll + `GET /prioritizer/v1/check_prioritization_progress/{task}`; fetch + `GET /prioritizer/v1/get_prioritization/{task}`. +- Input: `cityData` (`CityContextData{locode,populationSize}` + + `CityEmissionsData{stationaryEnergy,transportation,waste,ippu,afolu}`), + `countryCode`, `prioritizationType` (mitigation|adaptation|both), `language[]`. +- Output: `rankedActionsMitigation[]` / `rankedActionsAdaptation[]`, each + `{actionId, rank, explanation{explanations:{lang}}}`. + +### 5.4 Join keys +- **`cityId`** (UUID) — app DB primary key; module-access + app `/api/v1` routes. +- **`locode`** (UN/LOCODE, space form e.g. `BR RIO`, URL-encode `BR%20RIO`) — + cross-service join (Global API, HIAP, Matching Engine capacity data). +- **`actor_id`** — population/CCRA endpoints (**[VERIFY]** namespace/format). + +## 6. Data contracts + +### 6.1 Readiness profile (input) +Already implemented — `control-tower/readiness-profiles.js`. The app loads the +active profile and calls `ScoringModel.scoreSNG(candidate)`. Schema in +`READINESS-PROFILES.md`. The app must build a `candidate` record shaped like the +Control Tower's SNG record (`readiness{4 pillars}`, `signals{...}`, +`proposal{askUSDm, stage, ...}`). + +### 6.2 Capacity signal mapping (real data in) +For Chilean cities, populate `readiness.fiscalHealth` / `readiness.governance` and +`signals.*` from the Matching Engine's `comuna_capacity_scores.csv` +(`locode`-keyed: `fcm_dependency_pct`, `cofinance_score`, `professionalization_pct`, +`staff_per_1000`, `anchor_score`). Profile `signalSources` documents the mapping. +Everything else falls back to mock, **labeled**. + +### 6.3 Handoff object (output → Control Tower) +On Submit, emit: +```json +{ + "candidateId": "string", + "kind": "city" | "pool", + "locode": "CL ZAL", + "cityId": "uuid", + "anchorLocode": "CL ZAL", + "members": ["CL ZAL", "..."], + "targetProfileId": "idb-sfp", + "compositeReadiness": 74, + "tier": "Ready", + "clearancePassed": true, + "proposal": { "title": "...", "askUSDm": 30, "sector": "transport" }, + "provenance": { "fiscalHealth": "real:SINIM", "governance": "real:SINIM", "creditworthiness": "mock" }, + "submittedAt": "ISO-8601" +} +``` +The Control Tower ingests this into Project Review (Ready cities only). +**[VERIFY]** persistence mechanism for the demo (shared JSON / localStorage / +posted endpoint) — for the prototype a shared in-memory/JSON store is acceptable. + +## 7. Tech stack & conventions + +Match CityCatalyst so the module feels native: +- **Next.js 15 (App Router) + React 18 + TypeScript** (the hackday `apps/_template`). +- **Chakra UI v3** + Emotion; reuse CityCatalyst typography components if building + inside the monorepo. +- **Fonts:** Poppins (headings) + Open Sans (body). **Theme:** `blue_theme` default. +- **Data:** RTK Query against `/api/v1`; raw fetch for the Global API. +- **i18n:** i18next, locales **en / es / pt** minimum (multilingual JSON content). +- Standalone-app fallback (if not embedding in the monorepo this week): a Next.js + app using CityCatalyst design tokens (Poppins/Open Sans, blue palette) + OAuth + PKCE via `oauth4webapi`, surfaced later as a Module `url`. + +## 8. Build phases (for the autonomous agent) + +> **Status (v2.2):** Phases 0–3 are **built** (the 6-stage flow, CAPAG+SINIM adapters, map, +> instrument step, intra/cross portfolio, dossier → pipeline, simulated context/agent seam). +> **Remaining:** Phase 4 (live CityCatalyst embed — OAuth/MCP), the **funder navigator** +> drill-down + funder sourcing service (§0), shared `@oef/readiness` package, and real +> Navigator↔Control Tower wiring. + +**Phase 0 — Skeleton.** Next.js 15 + Chakra 3 app from `apps/_template`, +CityCatalyst theme tokens, i18n scaffold, the 7-step flow shell with mock data. +Hero city: **Valdivia (`CL ZAL`)**, the cross-team worked example. + +**Phase 1 — Readiness on real-ish data.** Wire `readiness-profiles.js` + +`scoring.js` (import the module's engine). Load Valdivia from the Matching Engine +capacity CSV → real `fiscalHealth`/`governance`; render steps 3–5 (pick target, +diagnose, prepare) with real-vs-mock badges. + +**Phase 2 — Discover + Pool.** Step 2 (funders open) and step 6 (pool unit 11) +from Matching Engine derived data. Readiness re-evaluates the anchor. + +**Phase 3 — Submit + handoff.** Step 7 emits §6.3; Control Tower reads it into +Project Review. Demo the full Valdivia flow end to end. + +**Phase 4 — CityCatalyst embed.** OAuth PKCE client; pull live city context + +HIAP priorities for one live city; register the Module row. (Depends on §9.) + +## 9. Open questions / blockers (resolve before/within build) + +1. **Embed mechanism** for an externally-hosted module in the Journey Navigator + (iframe / micro-frontend / redirect) — **[VERIFY]** with CityCatalyst team. + Until resolved, build standalone (Phase 0–3) and treat embed as Phase 4. +2. **Global API auth** — appears public read-only but the OpenAPI spec defines no + security scheme; confirm before depending on it in production. +3. **Matching Engine data contract** — agree the exact CSV/JSON the city app reads + for funders-open and pools (today they're derived CSVs in the other repo). +4. **Handoff persistence** for the demo (shared store vs posted endpoint). +5. **Which journey stage** the finance module belongs to (Implement vs a new + "Finance" stage) — **[VERIFY]** with CityCatalyst. +6. **HIAP cost/latency** — prioritization is async + calls OpenAI; cache per city. + +## 10. Acceptance criteria (demo) + +- A user opens the module on Valdivia and, without manual data entry, sees reachable + funders, picks IDB SFP, and gets a readiness score with a per-pillar "why." +- At least `fiscalHealth` and `governance` are driven by **real** SINIM/FCM data, + badged real (others badged mock). +- The transport gap (no instrument fits Valdivia alone) flows into a pooled bundle + (unit 11) with Valdivia as anchor. +- Submitting a Ready pool makes it appear in the Control Tower's Project Review via + the §6.3 handoff. +- Swapping the active readiness profile changes the criteria the city is judged + against — same app, different MDB. +- UI reads as CityCatalyst (Poppins/Open Sans, blue theme); copy in en + es. + +## Appendix — primary sources + +CityCatalyst monorepo `README.md`; `app/migrations/20250721185038-Module_create.cjs`; +`app/src/app/api/v1/city/[city]/modules/[module]/access/route.ts`; +`app/src/app/api/v1/oauth/metadata/route.ts`; `app/src/app/api/v1/mcp/route.ts`; +`app/src/models/City.ts`; `hiap/README.md`, `hiap/app/prioritizer/{api,models}.py`; +`api-demo/README.md`; `app/src/app/providers.tsx`; Global API spec +`https://ccglobal.openearth.dev/openapi.json`. Readiness engine: +`control-tower/readiness-profiles.js`, `control-tower/scoring.js`, +`control-tower/READINESS-PROFILES.md`. diff --git a/events/2026-06-11-unlock-the-money/justagiraffe/README.md b/events/2026-06-11-unlock-the-money/justagiraffe/README.md new file mode 100644 index 0000000..82414f3 --- /dev/null +++ b/events/2026-06-11-unlock-the-money/justagiraffe/README.md @@ -0,0 +1,72 @@ +# justagiraffe — "Unlock the Money" workstream + +**What this team is building:** the city→funder climate-finance chain, as **two runnable +apps on a shared readiness spine** plus the architecture that ties them (and the other +hackday modules) together. + +> **Start here →** read in this order: this file → [`INTEGRATED-ARCHITECTURE.md`](INTEGRATED-ARCHITECTURE.md) +> (the system map) → [`PRD-city-facing-readiness-app.md`](PRD-city-facing-readiness-app.md) +> (what the city app is) → [`ITERATION-2.1-PLAN.md`](ITERATION-2.1-PLAN.md) (what we're +> building now). The two diagrams in [`diagrams/`](diagrams/) are the 1-screen version. + +## The two apps + +| App | Faces | Lives in | Run | +|---|---|---|---| +| **City Readiness Navigator** | the **city** — match → readiness pathways → portfolio → submit | [`city-readiness-navigator/`](city-readiness-navigator/) | Next.js (`npm i && npm run dev`) | +| **SFP Control Tower** | the **IDB** — Intake & Triage · Readiness Scoring · M&E & Board | [`control-tower/`](control-tower/) | static — open `index.html` | + +They share a **readiness engine** (`readiness-profiles.js` + `scoring.js`). It currently +exists in **both** apps (`control-tower/` and `…/navigator/src/lib/readiness/`) — extracting +one shared `@oef/readiness` package is an open decision (architecture §8). + +## Folder layout + +``` +justagiraffe/ everything the team builds lives here +├── README.md ← you are here (the map) +├── INTEGRATED-ARCHITECTURE.md canonical · system map (§5a diagram) +├── PRD-city-facing-readiness-app.md canonical · city app definition +├── ITERATION-2.1-PLAN.md canonical · current execution plan +├── diagrams/ polished SVGs for presenting +├── city-readiness-navigator/ the city-facing app (Next.js) +├── control-tower/ the IDB-facing app (code + its own docs + M&E) +├── archive/ superseded / historical (not current) +└── reference/ source material (IDB PDF, notes, team) +``` +Both apps are siblings under `justagiraffe/` — the team folder is self-contained +(no team code outside it), which keeps things clean when branches merge to `main`. + +## The documents + +**Canonical (current — read these):** +- [`INTEGRATED-ARCHITECTURE.md`](INTEGRATED-ARCHITECTURE.md) — how all modules fit (the system map; §5a diagram). +- [`PRD-city-facing-readiness-app.md`](PRD-city-facing-readiness-app.md) — the City Readiness Navigator product definition (the durable *what/why*). +- [`ITERATION-2.1-PLAN.md`](ITERATION-2.1-PLAN.md) — the current execution plan (the *how/now*). +- [`diagrams/`](diagrams/) — polished SVGs for presenting (5a module view + process timeline). + +**Control Tower (IDB-facing app) — in [`control-tower/`](control-tower/):** +- [`control-tower/README.md`](control-tower/README.md) — how the Control Tower works. +- [`control-tower/SPEC.md`](control-tower/SPEC.md) — product spec (next-iteration fidelity + IDB branding). +- [`control-tower/IMPLEMENTATION_PLAN.md`](control-tower/IMPLEMENTATION_PLAN.md) — split readiness from project review. +- [`control-tower/READINESS-PROFILES.md`](control-tower/READINESS-PROFILES.md) — the profile-driven scoring schema. +- [`control-tower/Monitoring_Evaluation.md`](control-tower/Monitoring_Evaluation.md) + [`control-tower/MandE-questions.md`](control-tower/MandE-questions.md) — **M&E framework** (Annex IV + forward-looking readiness), authored by Mirco. + +**Historical / superseded — in [`archive/`](archive/):** +- [`archive/ITERATION-2-PLAN.md`](archive/ITERATION-2-PLAN.md) — *superseded by* `ITERATION-2.1-PLAN.md`. +- [`archive/ROADMAP.md`](archive/ROADMAP.md) — original 24h hackday roadmap (11–12 Jun). + +**Source material / reference — in [`reference/`](reference/):** +- `reference/IDB cities regions - Document proposal - Public.pdf` — the IDB SFP program doc. +- `reference/idb.txt` — raw IDB notes. · `reference/teammembers.md` — team. + +## The model in one line + +Two readiness questions, kept modular: **is the _project_ bankable?** (Project Preparator) +vs. **is the _entity_ creditworthy for this instrument?** (this Navigator). A city enters from +either side; the Navigator adds creditworthiness + pooling and hands a **dossier** to the IDB +Control Tower. Full rationale in [`INTEGRATED-ARCHITECTURE.md`](INTEGRATED-ARCHITECTURE.md). + +--- +*Status (15 Jun 2026): both apps run locally; architecture + PRD reflect the v2.1 two-layer +reframe; Mirco's M&E framework folded into `control-tower/`; iteration 2.1 build in progress.* diff --git a/events/2026-06-11-unlock-the-money/justagiraffe/archive/ITERATION-2-PLAN.md b/events/2026-06-11-unlock-the-money/justagiraffe/archive/ITERATION-2-PLAN.md new file mode 100644 index 0000000..c1037e7 --- /dev/null +++ b/events/2026-06-11-unlock-the-money/justagiraffe/archive/ITERATION-2-PLAN.md @@ -0,0 +1,243 @@ +# Iteration 2 Plan — City Readiness Navigator + platform architecture + +**Status:** Plan for the next agentic build push · **Owner:** Martin (OEF) +**Source:** Martin's review of the running Phase 0–3 prototype (12 Jun 2026). +**Sequencing:** Execute this plan (the "next big push") → *then* build the architecture diagram. + +This document interprets every point of the review into concrete decisions and tasks for +content, logic, design, architecture, and UX. The textual architecture map (§11) seeds the +diagram we'll render after this push. + +--- + +## 0. Feedback → action map (the whole review at a glance) + +| # | Review point | Decision | Section | +|---|---|---|---| +| 1 | "I land straight in Valdivia — how did it get here?" | Enter *from* CityCatalyst; show inventory + HIAP provenance | §1 | +| 2 | "Funders your plan can reach" is a weak, vague title | Rename; reframe as **per-action** funder/instrument relevance via HIAP | §2 | +| 3 | A plan has many action types (policy→infra); HIAP can map funder/requirements/instrument/→project per action | Drive Discover from HIAP-ranked actions | §2 | +| 4 | Project Preparator (NBS) already does financial-readiness questionnaire + funder/PPF matching, readiness embedded | **Connect, don't duplicate**: shared readiness engine, two altitudes | §2, §11 | +| 5 | "Pick a target / pick a path" — target for what? | Rename "Choose the financing instrument"; reframe readiness dependency | §3 | +| 6 | Only one MDB; space for another template | Keep pluggable profiles; add ≥1 real second-MDB profile | §3 | +| 7 | Diagnose = same readiness as IDB app? same data? | Yes — extract a **shared** engine package; the scored record flows to IDB | §4, §8 | +| 8 | "Prepare" vs "Close the gap" — two names, unclear purpose | One name ("Build readiness"); clarify the two failure modes | §5 | +| 9 | Don't say "bankability"; MDBs want cities able to draw private/commercial finance | Reframe the goal language | §5 | +| 10 | Comuna names are Chilean cities — make geography explicit (region/country) | Add geography labels + map | §6 | +| 11 | "The gap becomes the deal" is a cheap marketing title | Rename; frame pooling as **portfolio design** | §6 | +| 12 | Two reasons a project can't access an instrument: readiness vs ticket size | Make both explicit; pooling solves the ticket-size one | §5, §6 | +| 13 | "Co-finance" unclear — millions? which projects? | Define units; tie to eligible expenses per instrument | §6, §7 | +| 14 | What expenses/projects are eligible for the instrument? | New: instrument eligibility panel | §7 | +| 15 | Funder pipeline should be justagiraffe Intake & Triage; payload too skinny | Wire real connection; define machine-readable **candidate dossier** | §8 | +| 16 | "M&E & Board" — nobody knows the acronym | Rename "Results & Board Reporting"; expand | §9 | +| 17 | Marketing-punchline titles throughout | Copy pass; substantive titles | §10 | +| 18 | The "N" bottom-left | Next.js dev indicator — disable via `devIndicators` | §10 | + +--- + +## 1. Entry & provenance — "what happened before Valdivia landed here" + +**Decision.** The Navigator is a **CityCatalyst Journey Navigator module**, entered from a city +that has already completed *Assess* (GHG inventory) and *Plan* (HIAP). The first screen must +make that lineage visible, so the funders/actions downstream are clearly *derived from the +city's own plan*, not conjured. + +**Tasks.** +- Reframe Step 1 from a bare locode record to a **city brief**: GHG inventory summary (top + emitting GPC sectors), and the **HIAP-prioritized actions** (ranked, with sector tags). +- Label provenance on every field (CityCatalyst inventory / HIAP / Global API context). +- Phase-4 wiring: live `get_city_profile`, `get_inventory_emissions`, HIAP + `get_prioritization`. For this push: mock these from realistic Valdivia values, badged. + +## 2. Discover — per-action funder relevance (not "funders your plan can reach") + +**The critique, restated.** A climate plan spans many action types (policy → infrastructure). +The useful question is *per action*: which funder is relevant, what are their requirements, +what instrument fits, and **how do you turn this action into a fundable project**. That last +step is the **Project Preparator's** job. + +**Decision — how this app and the Project Preparator relate (the key architecture call).** +They are **two altitudes of one flow on a shared readiness engine**: + +- **Project Preparator** (CityCatalyst module, NBS-first, extensible): operates at the + **project/action** level. Its first line is a **financial-readiness questionnaire**; from it + it proposes (a) **project-preparation facilities (PPFs)** to reach readiness and (b) funders + that can finance the project. Readiness is embedded *inside* project preparation. +- **City Readiness Navigator** (this app): operates at the **entity / instrument / portfolio** + level — broader funder/instrument set, sub-sovereign access (IDB SFP), and **pooling** across + projects/comunas to reach ticket size. +- **Shared spine:** the **Readiness Engine + pluggable profiles** is one package both consume. + The Preparator scores a *project's* readiness for an instrument; the Navigator scores an + *entity's / pool's* readiness for an instrument. Same engine, same profile contract. + +**Tasks.** +- Rename the step/title (e.g. **"Match your plan to funders"** or **"Funding options for your + plan"**) and reframe the subtitle around *per-action relevance*. +- Drive Discover from HIAP actions: for each prioritized action show relevant funder(s), + their requirement summary, best-fit instrument, and a "prepare as project" affordance that + conceptually hands to the Project Preparator. +- Add an explicit **"Preparator vs. Navigator"** note in code/docs so the boundary is clear. +- Confirm with the Project Preparator owners: shared engine + the handoff between the two. + +## 3. Choose the financing instrument (was "Pick a target / pick a path") + +**Decision.** Rename to **"Choose the financing instrument"**. Reframe the readiness premise to: + +> *Financial readiness depends on the **type of instrument** the project/initiative needs, the +> **funder** and their **institutional requirements**, and the **nature of the financial +> product** they've issued.* + +So a **readiness profile** encodes all four — not just "the funder." + +**Tasks.** +- Rename step + rewrite the readiness-dependency copy (above). +- Extend the profile schema fields to name: project-type fit, instrument class, funder + institutional requirements, financial-product nature (tenor, pricing, guarantee structure). +- Keep pluggable profiles; **add at least one real second MDB** profile (e.g. CAF or World + Bank sub-national) so the template slot is a working example, not a placeholder. + +## 4. Diagnose — make it literally the record IDB receives + +**Decision.** Same engine, same IDB profile as the Control Tower — but stop duplicating it. + +**Tasks.** +- **Extract a shared package** `@oef/readiness` (engine + profiles) imported by BOTH the + Navigator and `control-tower` (replace the vendored copy + the control-tower's inline logic). + Single source of truth; no drift. +- The Diagnose output is the **scored candidate record** that travels to IDB (see §8) — so the + city's diagnosis *is* IDB's view. +- Add the explicit "early creditworthiness assessment" framing (IDB's own term) as the headline. + +## 5. Build readiness (merge "Prepare" + "Close the gap" into one clear step) + +**Decision.** One name — **"Build readiness"** (drop the duplicate "Close the gap"). Its job: +when the diagnosis says *not ready for this instrument/funder*, show the funded avenues to get +there. + +**Make the two failure modes explicit** (this was muddled): +1. **Readiness gap** — the entity isn't yet creditworthy/eligible → avenues: PPFs, IDB + Subprogram 2 TC, fiscal/governance reforms, audits. +2. **Ticket-size gap** — the entity *is* ready but its project is **too small** for the + instrument's minimum → avenue: **pooling/portfolio** (§6). + +**Language.** Avoid "bankability." Frame the goal as *becoming able to access this instrument +and, over time, to draw private and commercial (incl. local bank) finance* — which is the MDB's +actual intent for sub-sovereign borrowers. + +**Tasks.** +- Merge/rename the step; show which failure mode applies per candidate. +- List concrete preparation avenues per gap, sourced from the active profile's `preparation` + block (extend it: PPFs, TC types, reforms, expected timeline). + +## 6. Portfolio & pooling (was "the gap becomes the deal") + +**Decision.** Rename to something substantive — **"Build a financeable portfolio"** or **"Pool +to reach the ticket size"**. Frame pooling as **portfolio design**: the gap between a single +project and what the instrument can deliver is closed by combining projects/comunas. + +**Tasks.** +- Rewrite the title + framing (portfolio angle; the two reasons access fails). +- **Clarify "co-finance".** It is a **0–100 capacity index** (ability to bring matching + resources / lead a deal), **not dollars** — label it as such with a tooltip. Distinguish from + the **ask (US$M)**. +- **Geography.** Label region + country everywhere ("Los Ríos region, Chile"); add a small + **map of the pool** (the Matching Engine ships `losrios.geojson`) so IDB and the city see the + geography. On the IDB side, show candidate geography too. +- Tie the pool to **eligible project/expense types** for the instrument (§7) so the US$30M ask + is legible. + +## 7. Instrument eligibility — what it actually funds (new) + +**Decision.** Add a panel (in Choose-instrument and Portfolio) showing, per instrument: the +**eligible project types and expenses**, minimum/maximum ticket, tenor, and co-finance +expectations. Without this, "co-finance" and "ask" float free. + +**Tasks.** +- Extend the profile with an `eligibleUse` block (project types, expense categories, ticket + band, what's explicitly *not* eligible — e.g. IDB SFP excludes short-term/refinancing). +- Surface it where ask/co-finance appear. + +## 8. The handoff — a machine-readable candidate dossier into Intake & Triage + +**Decision.** The "funder pipeline" view should **be** justagiraffe's **Intake & Triage** for +the IDB instrument — a real connection, and the payload should be a single **machine-readable +candidate dossier**, not the current skinny object. + +**Candidate dossier (the one document IDB intakes)** — bundles: +- **Project plan** (from HIAP / Project Preparator: actions, scope, sector, expected outcomes). +- **Instrument** chosen + why (eligibility match). +- **Readiness assessment** + provenance (the scored record, pillar-by-pillar, real vs. estimated). +- **Due-diligence / documentary checklist** status (legal capacity, audit, non-accrual, ESG). +- **Financials** (ask, co-finance, pool composition, anchor). +- Identifiers (locode, cityId) for IDB-side joins. + +**Tasks.** +- Define the dossier JSON schema (versioned). +- Wire the Navigator's submit to **write the dossier into the Control Tower's Intake data** so + it appears in Intake & Triage (replace the standalone in-memory pipeline view, or make that + view read the Control Tower's store). +- Render the dossier on the IDB side as an intake card with the full document expandable. + +## 9. Control Tower (IDB side) clarifications + +**Decision.** Rename **"M&E & Board"** → **"Results & Board Reporting"** (M&E = Monitoring & +Evaluation — the pilot's progress vs. targets for IDB's evaluation office, OVE). Expand it so a +first-time IDB/CIDI user understands it without the acronym. + +**Tasks.** +- Rename the tab + add a one-line plain-language explainer at the top. +- Add geography (where candidates are) to the IDB side. +- (Coordinate with Mirco — his latest branch has the updated Results/Board tab; align names and + the Intake connection in §8.) + +## 10. Cross-cutting: copy & polish + +**Decision.** Remove marketing-punchline titles; use substantive, plain titles throughout. + +**Tasks.** +- Title/copy pass (table of renames: "pick a target"→"choose the financing instrument", + "the gap becomes the deal"→"build a financeable portfolio", "funders your plan can + reach"→"funding options for your plan", "Prepare/Close the gap"→"Build readiness", + "M&E & Board"→"Results & Board Reporting"). +- Disable the Next.js dev indicator: `next.config.mjs → devIndicators: false` (or position). + +## 11. Architecture map (textual — visual diagram comes after this push) + +**Components** +- **CityCatalyst core** — city profile, GHG **inventory**, **HIAP** (prioritized actions), + **Project Preparator** (NBS-first; financial-readiness questionnaire; PPF + funder matching; + readiness embedded per project). +- **Shared Readiness package** (`@oef/readiness`) — the engine + **pluggable profiles** + (IDB SFP #1; CAF/WB/GCF). Consumed by Preparator (project altitude) and Navigator (entity/ + portfolio altitude) and Control Tower (scoring). +- **City Readiness Navigator** (this app) — entity/instrument/portfolio layer; pooling. +- **City-Funder Matching Engine** — funders-open per action, capacity (SINIM/FCM), pooling. +- **justagiraffe Control Tower** — IDB Intake & Triage, Readiness Scoring, Results & Board. + +**Connections / contracts** +- Inventory + HIAP **actions** → Navigator & Preparator (what to fund). +- Matching Engine **capacity (locode-keyed)** → Readiness pillar inputs. +- Matching Engine **funders/pools** → Discover + Portfolio. +- **Shared Readiness package** → identical scoring across all surfaces. +- **Candidate dossier** (§8) → Control Tower Intake & Triage. + +**Open decisions to confirm (before/within the push)** +- Is the Navigator a *mode of* the Project Preparator family, or a sibling module sharing the + engine? (Recommend: sibling modules, shared `@oef/readiness`.) +- Second real MDB profile to add alongside IDB. +- Where the shared store lives for the demo (Control Tower data file vs. posted endpoint). + +## 12. Workstreams for agentic execution + +- **WS-A — Entry & provenance:** §1 (inventory + HIAP brief, provenance badges). +- **WS-B — Discover reframe + Preparator boundary:** §2 (per-action, naming, shared-engine note). +- **WS-C — Instrument & profile depth:** §3, §7 (rename, dependency copy, eligibleUse, 2nd MDB). +- **WS-D — Shared readiness package:** §4 (extract `@oef/readiness`, de-duplicate). +- **WS-E — Build readiness + portfolio:** §5, §6 (merge/rename, two failure modes, co-finance + units, geography + map). +- **WS-F — Candidate dossier + real Intake connection:** §8 (schema, write into Control Tower). +- **WS-G — Control Tower naming + geography:** §9 (Results & Board, explainers). +- **WS-H — Copy/polish:** §10 (titles, dev indicator). + +Recommended order: D → A/B/C in parallel → E → F → G/H. (D first because the shared package +de-risks everything downstream.) diff --git a/events/2026-06-11-unlock-the-money/justagiraffe/ROADMAP.md b/events/2026-06-11-unlock-the-money/justagiraffe/archive/ROADMAP.md similarity index 97% rename from events/2026-06-11-unlock-the-money/justagiraffe/ROADMAP.md rename to events/2026-06-11-unlock-the-money/justagiraffe/archive/ROADMAP.md index a13da13..9569b2c 100644 --- a/events/2026-06-11-unlock-the-money/justagiraffe/ROADMAP.md +++ b/events/2026-06-11-unlock-the-money/justagiraffe/archive/ROADMAP.md @@ -14,7 +14,7 @@ One control room for the IDB Subnational Finance Pilot: **intake** subnational p A working single-page dashboard over 63 mock candidate SNGs across 8 LAC countries with three connected views — **Intake & Triage** (pipeline kanban), **Readiness Scoring** (transparent weighted model + per-candidate file), and **M&E & Board** (indicators vs. milestone timeline). Ugly-but-real beats a slide. -> A runnable scaffold already exists in `control-tower/` — open `index.html`. The plan below is about turning that skeleton into a confident 5-minute demo, not starting from zero. +> A runnable scaffold already exists in `../control-tower/` — open `index.html`. The plan below is about turning that skeleton into a confident 5-minute demo, not starting from zero. --- diff --git a/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/.gitignore b/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/.gitignore new file mode 100644 index 0000000..6a4a998 --- /dev/null +++ b/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/.gitignore @@ -0,0 +1,7 @@ +/node_modules +/.next +/out +next-env.d.ts +*.tsbuildinfo +.DS_Store +npm-debug.log* diff --git a/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/README.md b/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/README.md new file mode 100644 index 0000000..f6aa033 --- /dev/null +++ b/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/README.md @@ -0,0 +1,66 @@ +# City Readiness Navigator + +The **city-facing front door** that joins the two hackday modules into one platform: +the [City-Funder Matching Engine](../funder-scan) (which funders can my plan reach?) and +the [justagiraffe Control Tower](../../justagiraffe/control-tower) (the IDB-side pipeline). +A city builds readiness inside CityCatalyst and, when it presses **Ready**, the deal +appears on the funder's side of the screen. + +Built to the [PRD](../../justagiraffe/PRD-city-facing-readiness-app.md). This is the +**Phase 0–3** standalone prototype (real data, runs locally); the CityCatalyst module +embed (OAuth, live city context, HIAP) is Phase 4. + +## Run it + +```bash +cd events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator +npm install +npm run dev +# open http://localhost:3000 +``` + +- **City journey** (`/`) — the 7 steps: enter → discover → pick target → diagnose + readiness → prepare → pool → submit. +- **Funder pipeline** (`/pipeline`) — the IDB side, receiving submitted candidates + (stands in for the Control Tower). + +> The submission store is in-memory (resets when the dev server restarts). + +## What's real vs. mock + +- **Real:** the four-pillar readiness for the six Los Ríos comunas is driven by the + Matching Engine's **SINIM/FCM** capacity data (`fiscalHealth`, `governance` badged + *real*); funders-open counts, the transport gap, and the pool come from its derived + CSVs. See [`data/README.md`](data/README.md). +- **Estimated/intake:** creditworthiness (no public Chilean municipal rating) and legal + capacity (a legal opinion, not a dataset) are badged accordingly. +- **Mock/Phase 4:** live CityCatalyst city-context + HIAP wiring. + +## The Valdivia story (real numbers) + +Valdivia scores **71 · Ready** and clears creditworthiness — but its transport project +*alone* is sub-scale (US$8M < US$15M high-impact threshold) and no instrument fits one +city. Its neighbours aren't ready to borrow alone. **Pooling** unit 11 (Valdivia as +anchor, US$30M bundle) clears the IDB ticket and is project-eligible — *the gap becomes +the deal*, and it lands in the IDB pipeline. + +## How it's wired + +``` +Matching Engine CSVs ──(scripts/build-data.mjs)──▶ src/data/valdivia.json + │ +src/lib/readiness/ ◀── vendored from control-tower ──────┤ (the Readiness Engine + scoring.js + readiness-profiles.js │ + pluggable profiles) + ▼ + src/app/page.tsx (city journey) ──POST──▶ /api/submissions + ▼ + src/app/pipeline/page.tsx (funder side) +``` + +Regenerate the data: `npm run build:data`. + +## Stack + +Next.js 15 + React 19 + TypeScript, plain CSS (CityCatalyst blue, Poppins/Open Sans). +Chakra UI is the target for the Phase-4 in-platform module (per the PRD); kept out here +to keep the prototype dependency-light and reliable. diff --git a/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/data/README.md b/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/data/README.md new file mode 100644 index 0000000..004d86a --- /dev/null +++ b/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/data/README.md @@ -0,0 +1,38 @@ +# Data — source & readiness mapping + +## Source (attribution) + +`data/source/*.csv` are **trimmed copies** of the City-Funder Matching Engine's +derived outputs (team: Amanda, Ayinawu, Brian, Cephas; branch `city–funder-matching`), +scoped to Valdivia and Los Ríos coordination **unit 11**. Underlying capacity data is +from **SINIM** (municipal fiscal/HR indicators) and **FCM** (transfer dependency), +keyed by UN/LOCODE. + +| File | From | Used for | +|---|---|---| +| `comuna_capacity_scores_u11.csv` | `derived/comuna_capacity_scores.csv` | readiness pillar inputs | +| `coordination_units_u11.csv` | `derived/coordination_units.csv` | the pool (anchor, members, co-finance) | +| `unit_bundle_candidates_u11.csv` | `derived/unit_bundle_candidates.csv` | the financeable bundle | +| `valdivia_funders_open.csv` | `derived/valdivia_funders_open.csv` | "funders open to you" (discover) | +| `valdivia_action_matches.csv` | `derived/valdivia_action_matches.csv` | the transport gap | + +`scripts/build-data.mjs` transforms these into `src/data/valdivia.json`. + +## Capacity → readiness mapping (transparent) + +Per comuna, the four readiness pillars (0–100) are derived as: + +| Pillar | Formula | Provenance | +|---|---|---| +| **fiscalHealth** | `composite_score` | **real** — SINIM/FCM capacity composite | +| **governance** | `0.5·professionalization_pct + 0.5·composite_score` | **real** — SINIM | +| **creditworthiness** | `0.95·composite_score` | **estimated** — proxy; no public Chilean municipal credit rating | +| **legalCapacity** | anchor → 80, member → 45 | **intake** — stands in for a legal opinion | + +Clearance signals (`independentAudit`, `canBorrowWithoutSovereignGuarantee`) are set +true for the anchor only, for the demo — which is why non-anchor comunas are +clearance-blocked and the deal must pool. Each pillar is badged in the UI by provenance. + +> These mappings are demo heuristics to show the mechanism on real inputs, not a +> validated creditworthiness model. The point is the *pipe*: real locode-keyed fiscal +> data flowing into a target-specific readiness score. diff --git a/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/data/source/capag_rs.json b/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/data/source/capag_rs.json new file mode 100644 index 0000000..fb3e41a --- /dev/null +++ b/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/data/source/capag_rs.json @@ -0,0 +1 @@ +[{"cod_ibge": "4300034", "municipio": "Aceguá", "uf": "RS", "capag": "C", "ind1_endividamento": 0, "nota1": "A", "ind2_poupanca": 0.9879102944, "nota2": "C", "ind3_liquidez": 0.1448788757, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.1833944617, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4300059", "municipio": "Água Santa", "uf": "RS", "capag": "B", "ind1_endividamento": 0.1009936725, "nota1": "A", "ind2_poupanca": 0.8587533986, "nota2": "B", "ind3_liquidez": 0.002008714, "nota3": "B", "icf": "Dicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.867734843, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4300109", "municipio": "Agudo", "uf": "RS", "capag": "A+", "ind1_endividamento": 0.166330074, "nota1": "A", "ind2_poupanca": 0.8624837417, "nota2": "B", "ind3_liquidez": 0.2484808086, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.1627690351, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4300208", "municipio": "Ajuricaba", "uf": "RS", "capag": "B", "ind1_endividamento": 0.1198891698, "nota1": "A", "ind2_poupanca": 0.9091047133, "nota2": "B", "ind3_liquidez": 0.0379268083, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0707673318, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4300307", "municipio": "Alecrim", "uf": "RS", "capag": "C", "ind1_endividamento": 0.0226325836, "nota1": "A", "ind2_poupanca": 0.9959504939, "nota2": "C", "ind3_liquidez": 0.0156990557, "nota3": "B", "icf": "Cicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.1771772686, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4300406", "municipio": "Alegrete", "uf": "RS", "capag": "A", "ind1_endividamento": 0.0549416265, "nota1": "A", "ind2_poupanca": 0.9249252611, "nota2": "B", "ind3_liquidez": 0.0880202604, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0678865763, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4300455", "municipio": "Alegria", "uf": "RS", "capag": "A", "ind1_endividamento": 0.0195435381, "nota1": "A", "ind2_poupanca": 0.875041305, "nota2": "B", "ind3_liquidez": 0.1344853102, "nota3": "A", "icf": "Dicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0148317336, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4300471", "municipio": "Almirante Tamandaré do Sul", "uf": "RS", "capag": "A+", "ind1_endividamento": 0.0374225905, "nota1": "A", "ind2_poupanca": 0.8220966012, "nota2": "A", "ind3_liquidez": 0.1870046512, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0346018268, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4300505", "municipio": "Alpestre", "uf": "RS", "capag": "A", "ind1_endividamento": 0, "nota1": "A", "ind2_poupanca": 0.7888207976, "nota2": "A", "ind3_liquidez": 0.1671903937, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.1017698115, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4300554", "municipio": "Alto Alegre", "uf": "RS", "capag": "A", "ind1_endividamento": 0.3649422091, "nota1": "A", "ind2_poupanca": 0.8361488938, "nota2": "A", "ind3_liquidez": 0.110873179, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0049287166, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4300570", "municipio": "Alto Feliz", "uf": "RS", "capag": "A", "ind1_endividamento": 0.1599426184, "nota1": "A", "ind2_poupanca": 0.7767240858, "nota2": "A", "ind3_liquidez": 0.0963791913, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.2377640314, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4300604", "municipio": "Alvorada", "uf": "RS", "capag": "A", "ind1_endividamento": 0.1131442668, "nota1": "A", "ind2_poupanca": 0.8237351266, "nota2": "A", "ind3_liquidez": 0.0860812818, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0171078193, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4300638", "municipio": "Amaral Ferrador", "uf": "RS", "capag": "B+", "ind1_endividamento": 0.0572885404, "nota1": "A", "ind2_poupanca": 0.9358778888, "nota2": "B", "ind3_liquidez": 0.0227383392, "nota3": "B", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.1725574085, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4300646", "municipio": "Ametista do Sul", "uf": "RS", "capag": "C", "ind1_endividamento": 0.0856992348, "nota1": "A", "ind2_poupanca": 2.9198901524, "nota2": "C", "ind3_liquidez": 0.0962197662, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0290432016, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4300661", "municipio": "André da Rocha", "uf": "RS", "capag": "A", "ind1_endividamento": 0, "nota1": "A", "ind2_poupanca": 0.7644662924, "nota2": "A", "ind3_liquidez": 0.0462899246, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0267615377, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4300703", "municipio": "Anta Gorda", "uf": "RS", "capag": "A", "ind1_endividamento": 0.0931063227, "nota1": "A", "ind2_poupanca": 0.8809989074, "nota2": "B", "ind3_liquidez": 0.1044435256, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0533801417, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4300802", "municipio": "Antônio Prado", "uf": "RS", "capag": "A+", "ind1_endividamento": 0.13558575, "nota1": "A", "ind2_poupanca": 0.8088124179, "nota2": "A", "ind3_liquidez": 0.097281419, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0183702507, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4300851", "municipio": "Arambaré", "uf": "RS", "capag": "A", "ind1_endividamento": 0.0162014447, "nota1": "A", "ind2_poupanca": 0.9028035101, "nota2": "B", "ind3_liquidez": 0.1085041765, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.1795940845, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4300877", "municipio": "Araricá", "uf": "RS", "capag": "C", "ind1_endividamento": 0.1204680618, "nota1": "A", "ind2_poupanca": 0.9852424372, "nota2": "C", "ind3_liquidez": -0.1480200872, "nota3": "C", "icf": "Dicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": null, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4300901", "municipio": "Aratiba", "uf": "RS", "capag": "A+", "ind1_endividamento": 0.2356201668, "nota1": "A", "ind2_poupanca": 0.8388194098, "nota2": "A", "ind3_liquidez": 0.0305552817, "nota3": "B", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0922658984, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4301008", "municipio": "Arroio do Meio", "uf": "RS", "capag": "C", "ind1_endividamento": 0.0796802518, "nota1": "A", "ind2_poupanca": 0.953874163, "nota2": "C", "ind3_liquidez": 0.0130553721, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.683277467, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4301057", "municipio": "Arroio do Sal", "uf": "RS", "capag": "B+", "ind1_endividamento": 0.0314651164, "nota1": "A", "ind2_poupanca": 0.8605808432, "nota2": "B", "ind3_liquidez": 0.0315221994, "nota3": "B", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.363743764, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4301073", "municipio": "Arroio do Padre", "uf": "RS", "capag": "A", "ind1_endividamento": 0, "nota1": "A", "ind2_poupanca": 0.8609119981, "nota2": "B", "ind3_liquidez": 0.3308554449, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0434881784, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4301107", "municipio": "Arroio dos Ratos", "uf": "RS", "capag": "C", "ind1_endividamento": 0.5503212719, "nota1": "A", "ind2_poupanca": 1.0465964811, "nota2": "C", "ind3_liquidez": -0.1081982609, "nota3": "C", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 70.2033116993, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4301206", "municipio": "Arroio do Tigre", "uf": "RS", "capag": "B", "ind1_endividamento": 0.1885861041, "nota1": "A", "ind2_poupanca": 0.89285033, "nota2": "B", "ind3_liquidez": 0.0080655599, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.5323743413, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4301305", "municipio": "Arroio Grande", "uf": "RS", "capag": "B", "ind1_endividamento": 0.1529433814, "nota1": "A", "ind2_poupanca": 0.9138953798, "nota2": "B", "ind3_liquidez": 0.0369759347, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.3752777002, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4301404", "municipio": "Arvorezinha", "uf": "RS", "capag": "B+", "ind1_endividamento": 0.1707586526, "nota1": "A", "ind2_poupanca": 0.8968763055, "nota2": "B", "ind3_liquidez": 0.0014961471, "nota3": "B", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.8491057335, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4301503", "municipio": "Augusto Pestana", "uf": "RS", "capag": "A+", "ind1_endividamento": 0.0567790396, "nota1": "A", "ind2_poupanca": 0.8193552527, "nota2": "A", "ind3_liquidez": 0.1962380963, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0528484599, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4301552", "municipio": "Áurea", "uf": "RS", "capag": "B", "ind1_endividamento": 0.1574822003, "nota1": "A", "ind2_poupanca": 0.9444552004, "nota2": "B", "ind3_liquidez": 0.023482549, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.2572084865, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4301602", "municipio": "Bagé", "uf": "RS", "capag": "C", "ind1_endividamento": 0.5138585594, "nota1": "A", "ind2_poupanca": 1.0267367952, "nota2": "C", "ind3_liquidez": -0.3096087209, "nota3": "C", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 33.4286375773, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4301636", "municipio": "Balneário Pinhal", "uf": "RS", "capag": "C", "ind1_endividamento": 0.1797780377, "nota1": "A", "ind2_poupanca": 0.8516726086, "nota2": "B", "ind3_liquidez": -0.0458675898, "nota3": "C", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": null, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4301651", "municipio": "Barão", "uf": "RS", "capag": "A", "ind1_endividamento": 0.3132160251, "nota1": "A", "ind2_poupanca": 0.8399383132, "nota2": "A", "ind3_liquidez": 0.0304341723, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.3935403533, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4301701", "municipio": "Barão de Cotegipe", "uf": "RS", "capag": "A", "ind1_endividamento": 0.0025186555, "nota1": "A", "ind2_poupanca": 0.8824369421, "nota2": "B", "ind3_liquidez": 0.1202561417, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4301750", "municipio": "Barão do Triunfo", "uf": "RS", "capag": "n.d.", "ind1_endividamento": 0.066401927, "nota1": "A", "ind2_poupanca": 0.7821904207, "nota2": "A", "ind3_liquidez": "n.d.", "nota3": "n.d.", "icf": "Cicf", "observacao": "Município declarou a Disponibilidade Bruta de Caixa de Recursos não Vinculados com valor negativo. Verifique a coluna Disponibilidade Bruta de Caixa da rubrica Total dos Recursos Não Vinculados do Anexo V do RGF do 2º Semestre/3º Quadrimestre. \n", "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": "n.d.", "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": "Negativa", "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4301800", "municipio": "Barracão", "uf": "RS", "capag": "B", "ind1_endividamento": 0.0937783655, "nota1": "A", "ind2_poupanca": 0.9022106505, "nota2": "B", "ind3_liquidez": 0.0245536912, "nota3": "B", "icf": "Cicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.2883076244, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4301859", "municipio": "Barra do Guarita", "uf": "RS", "capag": "A", "ind1_endividamento": 0.0462753415, "nota1": "A", "ind2_poupanca": 0.844382481, "nota2": "A", "ind3_liquidez": 0.0888573021, "nota3": "A", "icf": "Cicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0049313021, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4301875", "municipio": "Barra do Quaraí", "uf": "RS", "capag": "A", "ind1_endividamento": 0.1587999659, "nota1": "A", "ind2_poupanca": 0.7738526487, "nota2": "A", "ind3_liquidez": 0.0795024439, "nota3": "A", "icf": "Dicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.4310968761, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4301909", "municipio": "Barra do Ribeiro", "uf": "RS", "capag": "B", "ind1_endividamento": 0.0085497451, "nota1": "A", "ind2_poupanca": 0.9274934245, "nota2": "B", "ind3_liquidez": 0.0249506305, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.3232190784, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4301925", "municipio": "Barra do Rio Azul", "uf": "RS", "capag": "A", "ind1_endividamento": 0.0499569455, "nota1": "A", "ind2_poupanca": 0.8230610819, "nota2": "A", "ind3_liquidez": 0.0123427851, "nota3": "B", "icf": "Cicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4301958", "municipio": "Barra Funda", "uf": "RS", "capag": "A", "ind1_endividamento": 0.1583978872, "nota1": "A", "ind2_poupanca": 0.8441712007, "nota2": "A", "ind3_liquidez": 0.0643839905, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.1774552725, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4302006", "municipio": "Barros Cassal", "uf": "RS", "capag": "C", "ind1_endividamento": 0.0465909273, "nota1": "A", "ind2_poupanca": 6.1232716613, "nota2": "C", "ind3_liquidez": -0.1266552604, "nota3": "C", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": null, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4302055", "municipio": "Benjamin Constant do Sul", "uf": "RS", "capag": "A", "ind1_endividamento": 0.0791942786, "nota1": "A", "ind2_poupanca": 0.8689770524, "nota2": "B", "ind3_liquidez": 0.1077976103, "nota3": "A", "icf": "Cicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4302105", "municipio": "Bento Gonçalves", "uf": "RS", "capag": "C", "ind1_endividamento": 0.1321498194, "nota1": "A", "ind2_poupanca": 0.9504742547, "nota2": "C", "ind3_liquidez": -0.0017688861, "nota3": "C", "icf": "Dicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 1.1364701015, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4302154", "municipio": "Boa Vista das Missões", "uf": "RS", "capag": "A", "ind1_endividamento": 0.098358478, "nota1": "A", "ind2_poupanca": 0.790371315, "nota2": "A", "ind3_liquidez": 0.1153517832, "nota3": "A", "icf": "Cicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0927270699, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4302204", "municipio": "Boa Vista do Buricá", "uf": "RS", "capag": "A", "ind1_endividamento": 0.0835721349, "nota1": "A", "ind2_poupanca": 0.7976941505, "nota2": "A", "ind3_liquidez": 0.1699795004, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0543816584, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4302220", "municipio": "Boa Vista do Cadeado", "uf": "RS", "capag": "A", "ind1_endividamento": 0, "nota1": "A", "ind2_poupanca": 0.8698783478, "nota2": "B", "ind3_liquidez": 0.2714718096, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0066124733, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4302238", "municipio": "Boa Vista do Incra", "uf": "RS", "capag": "A", "ind1_endividamento": 0.1173237077, "nota1": "A", "ind2_poupanca": 0.8606066338, "nota2": "B", "ind3_liquidez": 0.0991907143, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.1558777087, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4302253", "municipio": "Boa Vista do Sul", "uf": "RS", "capag": "A+", "ind1_endividamento": 0, "nota1": "A", "ind2_poupanca": 0.776782746, "nota2": "A", "ind3_liquidez": 0.2442592228, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0192760217, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4302303", "municipio": "Bom Jesus", "uf": "RS", "capag": "B", "ind1_endividamento": 0.1478087165, "nota1": "A", "ind2_poupanca": 0.934303407, "nota2": "B", "ind3_liquidez": 0.0151388773, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.448538176, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4302352", "municipio": "Bom Princípio", "uf": "RS", "capag": "A+", "ind1_endividamento": 0.4136902684, "nota1": "A", "ind2_poupanca": 0.83934189, "nota2": "A", "ind3_liquidez": 0.0524420512, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0577119755, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4302378", "municipio": "Bom Progresso", "uf": "RS", "capag": "C", "ind1_endividamento": 0.0491950357, "nota1": "A", "ind2_poupanca": 0.9603442171, "nota2": "C", "ind3_liquidez": 0.0009507448, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.9774525224, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4302402", "municipio": "Bom Retiro do Sul", "uf": "RS", "capag": "A", "ind1_endividamento": 0.2583771321, "nota1": "A", "ind2_poupanca": 0.9279765594, "nota2": "B", "ind3_liquidez": 0.0571205142, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0713051265, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4302451", "municipio": "Boqueirão do Leão", "uf": "RS", "capag": "C", "ind1_endividamento": 0.0486678398, "nota1": "A", "ind2_poupanca": 12.063099546, "nota2": "C", "ind3_liquidez": 0, "nota3": "C", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": "n.d.", "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4302501", "municipio": "Bossoroca", "uf": "RS", "capag": "A", "ind1_endividamento": 0.1067338222, "nota1": "A", "ind2_poupanca": 0.8761069617, "nota2": "B", "ind3_liquidez": 0.1257676578, "nota3": "A", "icf": "Cicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.1491779946, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4302584", "municipio": "Bozano", "uf": "RS", "capag": "A+", "ind1_endividamento": 0.0061609598, "nota1": "A", "ind2_poupanca": 0.8254023865, "nota2": "A", "ind3_liquidez": 0.2350802735, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0061093787, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4302600", "municipio": "Braga", "uf": "RS", "capag": "A", "ind1_endividamento": 0.1251168126, "nota1": "A", "ind2_poupanca": 0.8439829652, "nota2": "A", "ind3_liquidez": 0.1091362082, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0491271617, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4302659", "municipio": "Brochier", "uf": "RS", "capag": "A", "ind1_endividamento": 0.0681901884, "nota1": "A", "ind2_poupanca": 0.8854050162, "nota2": "B", "ind3_liquidez": 0.160489212, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0839013628, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4302709", "municipio": "Butiá", "uf": "RS", "capag": "C", "ind1_endividamento": 0.2483357445, "nota1": "A", "ind2_poupanca": 0.9714999927, "nota2": "C", "ind3_liquidez": -0.0150599333, "nota3": "C", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 1.8037920798, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4302808", "municipio": "Caçapava do Sul", "uf": "RS", "capag": "C", "ind1_endividamento": 0.1991863926, "nota1": "A", "ind2_poupanca": 1.0134604681, "nota2": "C", "ind3_liquidez": -0.434094981, "nota3": "C", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": null, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4302907", "municipio": "Cacequi", "uf": "RS", "capag": "C", "ind1_endividamento": 0.2672837171, "nota1": "A", "ind2_poupanca": 0.9560469763, "nota2": "C", "ind3_liquidez": 0.0196594787, "nota3": "B", "icf": "Dicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.4021137658, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4303004", "municipio": "Cachoeira do Sul", "uf": "RS", "capag": "A+", "ind1_endividamento": 0.2228746635, "nota1": "A", "ind2_poupanca": 0.8993686922, "nota2": "B", "ind3_liquidez": 0.0597879552, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.4400494344, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4303103", "municipio": "Cachoeirinha", "uf": "RS", "capag": "A", "ind1_endividamento": 0.4889720781, "nota1": "A", "ind2_poupanca": 0.7958284966, "nota2": "A", "ind3_liquidez": 0.0271074181, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.1594884598, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4303202", "municipio": "Cacique Doble", "uf": "RS", "capag": "A", "ind1_endividamento": 0.0889505649, "nota1": "A", "ind2_poupanca": 0.8948999336, "nota2": "B", "ind3_liquidez": 0.0539019049, "nota3": "A", "icf": "Cicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4303301", "municipio": "Caibaté", "uf": "RS", "capag": "C", "ind1_endividamento": 0.0187181153, "nota1": "A", "ind2_poupanca": 0.9524753092, "nota2": "C", "ind3_liquidez": 0.4496977203, "nota3": "A", "icf": "Dicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4303400", "municipio": "Caiçara", "uf": "RS", "capag": "B", "ind1_endividamento": 0.0470195146, "nota1": "A", "ind2_poupanca": 0.8679881706, "nota2": "B", "ind3_liquidez": 0.0214299392, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.4230274803, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4303509", "municipio": "Camaquã", "uf": "RS", "capag": "A", "ind1_endividamento": 0.0723313463, "nota1": "A", "ind2_poupanca": 0.8810607635, "nota2": "B", "ind3_liquidez": 0.0764824381, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0950191232, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4303558", "municipio": "Camargo", "uf": "RS", "capag": "A", "ind1_endividamento": 0.1046874867, "nota1": "A", "ind2_poupanca": 0.8831756694, "nota2": "B", "ind3_liquidez": 0.0846266492, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0466150455, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4303608", "municipio": "Cambará do Sul", "uf": "RS", "capag": "C", "ind1_endividamento": 0.5480175946, "nota1": "A", "ind2_poupanca": 0.7949502902, "nota2": "A", "ind3_liquidez": -0.0704986883, "nota3": "C", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 50.9980426602, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4303673", "municipio": "Campestre da Serra", "uf": "RS", "capag": "A", "ind1_endividamento": 0.1391564963, "nota1": "A", "ind2_poupanca": 0.8752610378, "nota2": "B", "ind3_liquidez": 0.143621275, "nota3": "A", "icf": "Cicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0400971266, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4303707", "municipio": "Campina das Missões", "uf": "RS", "capag": "A+", "ind1_endividamento": 0.0247607572, "nota1": "A", "ind2_poupanca": 0.9327933934, "nota2": "B", "ind3_liquidez": 0.0699459201, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.075657741, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4303806", "municipio": "Campinas do Sul", "uf": "RS", "capag": "B", "ind1_endividamento": 0.000820322, "nota1": "A", "ind2_poupanca": 0.9264399745, "nota2": "B", "ind3_liquidez": 0.0276836749, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4303905", "municipio": "Campo Bom", "uf": "RS", "capag": "B", "ind1_endividamento": 0.1310628544, "nota1": "A", "ind2_poupanca": 0.880614413, "nota2": "B", "ind3_liquidez": 0.0003080298, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4304002", "municipio": "Campo Novo", "uf": "RS", "capag": "A+", "ind1_endividamento": 0.0973360665, "nota1": "A", "ind2_poupanca": 0.8833957283, "nota2": "B", "ind3_liquidez": 0.1646509156, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0745320632, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4304101", "municipio": "Campos Borges", "uf": "RS", "capag": "A", "ind1_endividamento": 0.0766815092, "nota1": "A", "ind2_poupanca": 0.7770705424, "nota2": "A", "ind3_liquidez": 0.1218947289, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0076316162, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4304200", "municipio": "Candelária", "uf": "RS", "capag": "B", "ind1_endividamento": 0.1211451947, "nota1": "A", "ind2_poupanca": 0.8929778647, "nota2": "B", "ind3_liquidez": 0.0142164263, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.1475781051, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4304309", "municipio": "Cândido Godói", "uf": "RS", "capag": "A", "ind1_endividamento": 0.0532859685, "nota1": "A", "ind2_poupanca": 0.8587067363, "nota2": "B", "ind3_liquidez": 0.5766740126, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0924893214, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4304358", "municipio": "Candiota", "uf": "RS", "capag": "n.d.", "ind1_endividamento": 0.1032595704, "nota1": "A", "ind2_poupanca": 0.9216480902, "nota2": "B", "ind3_liquidez": "n.d.", "nota3": "n.d.", "icf": "Cicf", "observacao": "Município declarou Obrigações Financeiras com valores negativos. Verifique as colunas Restos a Pagar Liquidados e Não Pagos de Exercícios Anteriores, Restos a Pagar Liquidados e Não Pagos do Exercício, Restos a Pagar Empenhados de Exercícios Anteriores e Demais Obrigações Financeiras da rubrica Total dos Recursos Não Vinculados extraídas do Anexo V do RGF.\n", "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": "n.d.", "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": "Sim", "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4304408", "municipio": "Canela", "uf": "RS", "capag": "C", "ind1_endividamento": 0.306641946, "nota1": "A", "ind2_poupanca": 0.9221066318, "nota2": "B", "ind3_liquidez": -0.0052396495, "nota3": "C", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 1.2243435119, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4304507", "municipio": "Canguçu", "uf": "RS", "capag": "A+", "ind1_endividamento": 0.0581051873, "nota1": "A", "ind2_poupanca": 0.8623882949, "nota2": "B", "ind3_liquidez": 0.1182028544, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0990460188, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4304606", "municipio": "Canoas", "uf": "RS", "capag": "C", "ind1_endividamento": 0.1932645582, "nota1": "A", "ind2_poupanca": 0.9855266178, "nota2": "C", "ind3_liquidez": -0.0234503149, "nota3": "C", "icf": "Cicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 2.4869894865, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4304614", "municipio": "Canudos do Vale", "uf": "RS", "capag": "A", "ind1_endividamento": 0, "nota1": "A", "ind2_poupanca": 0.76536381, "nota2": "A", "ind3_liquidez": 0.1753071062, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0415352454, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4304622", "municipio": "Capão Bonito do Sul", "uf": "RS", "capag": "A", "ind1_endividamento": 0.0313323732, "nota1": "A", "ind2_poupanca": 0.8261579165, "nota2": "A", "ind3_liquidez": 0.0619733865, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0328502545, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4304630", "municipio": "Capão da Canoa", "uf": "RS", "capag": "A", "ind1_endividamento": 0.1468531143, "nota1": "A", "ind2_poupanca": 0.8342794703, "nota2": "A", "ind3_liquidez": 0.0810731327, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0971868669, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4304655", "municipio": "Capão do Cipó", "uf": "RS", "capag": "B", "ind1_endividamento": 0.0391946308, "nota1": "A", "ind2_poupanca": 0.8729901317, "nota2": "B", "ind3_liquidez": 0.0165239381, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.4532173763, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4304663", "municipio": "Capão do Leão", "uf": "RS", "capag": "C", "ind1_endividamento": 0.0555677182, "nota1": "A", "ind2_poupanca": 0.9502496107, "nota2": "C", "ind3_liquidez": 0.0233128847, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.7276035095, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4304671", "municipio": "Capivari do Sul", "uf": "RS", "capag": "A+", "ind1_endividamento": 0.1001526031, "nota1": "A", "ind2_poupanca": 0.8455212122, "nota2": "A", "ind3_liquidez": 0.2966918829, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0555065077, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4304689", "municipio": "Capela de Santana", "uf": "RS", "capag": "C", "ind1_endividamento": 0.2606195797, "nota1": "A", "ind2_poupanca": 0.7904335349, "nota2": "A", "ind3_liquidez": -0.0339881744, "nota3": "C", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": null, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4304697", "municipio": "Capitão", "uf": "RS", "capag": "A+", "ind1_endividamento": 0.0674834133, "nota1": "A", "ind2_poupanca": 0.8343447214, "nota2": "A", "ind3_liquidez": 0.1741672711, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0959250504, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4304705", "municipio": "Carazinho", "uf": "RS", "capag": "A", "ind1_endividamento": 0.0319721367, "nota1": "A", "ind2_poupanca": 0.8812993066, "nota2": "B", "ind3_liquidez": 0.0774666552, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.1542815845, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4304713", "municipio": "Caraá", "uf": "RS", "capag": "C", "ind1_endividamento": 0, "nota1": "A", "ind2_poupanca": 0.8122714892, "nota2": "A", "ind3_liquidez": -0.031045465, "nota3": "C", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": null, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4304804", "municipio": "Carlos Barbosa", "uf": "RS", "capag": "A", "ind1_endividamento": 0.0843448052, "nota1": "A", "ind2_poupanca": 0.8144381295, "nota2": "A", "ind3_liquidez": 0.3225759783, "nota3": "A", "icf": "Dicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0543862387, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4304853", "municipio": "Carlos Gomes", "uf": "RS", "capag": "A", "ind1_endividamento": 0, "nota1": "A", "ind2_poupanca": 0.9077069494, "nota2": "B", "ind3_liquidez": 0.0552208324, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0356119808, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4304903", "municipio": "Casca", "uf": "RS", "capag": "A+", "ind1_endividamento": 0.1691218123, "nota1": "A", "ind2_poupanca": 0.8530820703, "nota2": "B", "ind3_liquidez": 0.1747446688, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0151306771, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4304952", "municipio": "Caseiros", "uf": "RS", "capag": "A", "ind1_endividamento": 0.0552558888, "nota1": "A", "ind2_poupanca": 0.8292648222, "nota2": "A", "ind3_liquidez": 0.0246349114, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.1737115781, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4305009", "municipio": "Catuípe", "uf": "RS", "capag": "B", "ind1_endividamento": 0.083224731, "nota1": "A", "ind2_poupanca": 0.8910158407, "nota2": "B", "ind3_liquidez": 0.0010020904, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4305108", "municipio": "Caxias do Sul", "uf": "RS", "capag": "A+", "ind1_endividamento": 0.3173454315, "nota1": "A", "ind2_poupanca": 0.912692173, "nota2": "B", "ind3_liquidez": 0.2290188854, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0939080571, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4305116", "municipio": "Centenário", "uf": "RS", "capag": "A", "ind1_endividamento": 0.1105650007, "nota1": "A", "ind2_poupanca": 0.9275581189, "nota2": "B", "ind3_liquidez": 0.139867042, "nota3": "A", "icf": "Cicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4305124", "municipio": "Cerrito", "uf": "RS", "capag": "B+", "ind1_endividamento": 0.1771441035, "nota1": "A", "ind2_poupanca": 0.9051290078, "nota2": "B", "ind3_liquidez": 0.0342777296, "nota3": "B", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.5100711908, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4305132", "municipio": "Cerro Branco", "uf": "RS", "capag": "A+", "ind1_endividamento": 0.1243446235, "nota1": "A", "ind2_poupanca": 0.8165775427, "nota2": "A", "ind3_liquidez": 0.0632033802, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.2601017038, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4305157", "municipio": "Cerro Grande", "uf": "RS", "capag": "B", "ind1_endividamento": 0.0836448767, "nota1": "A", "ind2_poupanca": 0.8629385792, "nota2": "B", "ind3_liquidez": 0.0022066807, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.4308302497, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4305173", "municipio": "Cerro Grande do Sul", "uf": "RS", "capag": "C", "ind1_endividamento": 0, "nota1": "A", "ind2_poupanca": 0.8953153255, "nota2": "B", "ind3_liquidez": -0.0134410911, "nota3": "C", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 1.9153779757, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4305207", "municipio": "Cerro Largo", "uf": "RS", "capag": "C", "ind1_endividamento": 0.0638514441, "nota1": "A", "ind2_poupanca": 0.8507313187, "nota2": "B", "ind3_liquidez": 0, "nota3": "C", "icf": "Dicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": "n.d.", "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4305306", "municipio": "Chapada", "uf": "RS", "capag": "A", "ind1_endividamento": 0.1216039561, "nota1": "A", "ind2_poupanca": 0.8745727771, "nota2": "B", "ind3_liquidez": 0.081947321, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.042186985, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4305355", "municipio": "Charqueadas", "uf": "RS", "capag": "n.d.", "ind1_endividamento": 0.5490084404, "nota1": "A", "ind2_poupanca": 0.8182431303, "nota2": "A", "ind3_liquidez": "n.d.", "nota3": "n.d.", "icf": "Bicf", "observacao": "Município declarou Obrigações Financeiras com valores negativos. Verifique as colunas Restos a Pagar Liquidados e Não Pagos de Exercícios Anteriores, Restos a Pagar Liquidados e Não Pagos do Exercício, Restos a Pagar Empenhados de Exercícios Anteriores e Demais Obrigações Financeiras da rubrica Total dos Recursos Não Vinculados extraídas do Anexo V do RGF.\n", "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": "n.d.", "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": "Sim", "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4305371", "municipio": "Charrua", "uf": "RS", "capag": "A+", "ind1_endividamento": 0.0316672874, "nota1": "A", "ind2_poupanca": 0.8369546072, "nota2": "A", "ind3_liquidez": 0.0788207281, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0387979069, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4305405", "municipio": "Chiapetta", "uf": "RS", "capag": "B", "ind1_endividamento": 0.026667841, "nota1": "A", "ind2_poupanca": 0.9137447307, "nota2": "B", "ind3_liquidez": 0.0176149424, "nota3": "B", "icf": "Cicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.4473177826, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4305439", "municipio": "Chuí", "uf": "RS", "capag": "C", "ind1_endividamento": 0.0685011081, "nota1": "A", "ind2_poupanca": 0.9673531368, "nota2": "C", "ind3_liquidez": 0.0290581681, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.1633632394, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4305447", "municipio": "Chuvisca", "uf": "RS", "capag": "A", "ind1_endividamento": 0.027349385, "nota1": "A", "ind2_poupanca": 0.9399187804, "nota2": "B", "ind3_liquidez": 0.0767760094, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.1906120116, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4305454", "municipio": "Cidreira", "uf": "RS", "capag": "C", "ind1_endividamento": 0.3136091141, "nota1": "A", "ind2_poupanca": 1.36618179, "nota2": "C", "ind3_liquidez": 0.0311521728, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.3592098505, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4305504", "municipio": "Ciríaco", "uf": "RS", "capag": "B", "ind1_endividamento": 0, "nota1": "A", "ind2_poupanca": 0.937895771, "nota2": "B", "ind3_liquidez": 0.0258988016, "nota3": "B", "icf": "Dicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.1243672283, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4305587", "municipio": "Colinas", "uf": "RS", "capag": "A", "ind1_endividamento": 0.0305961607, "nota1": "A", "ind2_poupanca": 0.8377364528, "nota2": "A", "ind3_liquidez": 0.1233113388, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.1659769589, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4305603", "municipio": "Colorado", "uf": "RS", "capag": "B", "ind1_endividamento": 0.2442043536, "nota1": "A", "ind2_poupanca": 0.9070882007, "nota2": "B", "ind3_liquidez": 0.0057711172, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.7804666576, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4305702", "municipio": "Condor", "uf": "RS", "capag": "B+", "ind1_endividamento": 0.2545878726, "nota1": "A", "ind2_poupanca": 0.897543614, "nota2": "B", "ind3_liquidez": 0.0014625101, "nota3": "B", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.9543383931, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4305801", "municipio": "Constantina", "uf": "RS", "capag": "A", "ind1_endividamento": 0.0658774464, "nota1": "A", "ind2_poupanca": 0.8722346263, "nota2": "B", "ind3_liquidez": 0.0809497853, "nota3": "A", "icf": "Cicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0536399559, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4305835", "municipio": "Coqueiro Baixo", "uf": "RS", "capag": "A", "ind1_endividamento": 0.0273887315, "nota1": "A", "ind2_poupanca": 0.8693204015, "nota2": "B", "ind3_liquidez": 0.1284345642, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0013379487, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4305850", "municipio": "Coqueiros do Sul", "uf": "RS", "capag": "A", "ind1_endividamento": 0.2403663058, "nota1": "A", "ind2_poupanca": 0.7960334465, "nota2": "A", "ind3_liquidez": 0.0186231001, "nota3": "B", "icf": "Cicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.4595670599, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4305871", "municipio": "Coronel Barros", "uf": "RS", "capag": "A+", "ind1_endividamento": 0.1363450199, "nota1": "A", "ind2_poupanca": 0.8115210426, "nota2": "A", "ind3_liquidez": 0.0243959841, "nota3": "B", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.2430114016, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4305900", "municipio": "Coronel Bicaco", "uf": "RS", "capag": "C", "ind1_endividamento": 0.1646896844, "nota1": "A", "ind2_poupanca": 0.8748050318, "nota2": "B", "ind3_liquidez": -0.0356270418, "nota3": "C", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 9.7103809304, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4305934", "municipio": "Coronel Pilar", "uf": "RS", "capag": "A", "ind1_endividamento": 0, "nota1": "A", "ind2_poupanca": 0.7998951416, "nota2": "A", "ind3_liquidez": 0.3443302633, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0011246413, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4305959", "municipio": "Cotiporã", "uf": "RS", "capag": "A", "ind1_endividamento": 0.053699638, "nota1": "A", "ind2_poupanca": 0.8234050825, "nota2": "A", "ind3_liquidez": 0.1545496833, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.2172969286, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4305975", "municipio": "Coxilha", "uf": "RS", "capag": "A", "ind1_endividamento": 0.1314696097, "nota1": "A", "ind2_poupanca": 0.90775238, "nota2": "B", "ind3_liquidez": 0.1272653404, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0007521542, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4306007", "municipio": "Crissiumal", "uf": "RS", "capag": "A+", "ind1_endividamento": 0, "nota1": "A", "ind2_poupanca": 0.8151491933, "nota2": "A", "ind3_liquidez": 0.2285651043, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0394325324, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4306056", "municipio": "Cristal", "uf": "RS", "capag": "B+", "ind1_endividamento": 0.0570828238, "nota1": "A", "ind2_poupanca": 0.9080457779, "nota2": "B", "ind3_liquidez": 0.0334575205, "nota3": "B", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.1001143174, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4306072", "municipio": "Cristal do Sul", "uf": "RS", "capag": "A", "ind1_endividamento": 0.0031163681, "nota1": "A", "ind2_poupanca": 0.8750942715, "nota2": "B", "ind3_liquidez": 0.1058910049, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.1368056056, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4306106", "municipio": "Cruz Alta", "uf": "RS", "capag": "B+", "ind1_endividamento": 0.4057616408, "nota1": "A", "ind2_poupanca": 0.9225971593, "nota2": "B", "ind3_liquidez": 0.0210544908, "nota3": "B", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.4438377899, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4306130", "municipio": "Cruzaltense", "uf": "RS", "capag": "A", "ind1_endividamento": 0.0600015166, "nota1": "A", "ind2_poupanca": 0.8290761634, "nota2": "A", "ind3_liquidez": 0.0502977244, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0161799857, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4306205", "municipio": "Cruzeiro do Sul", "uf": "RS", "capag": "B", "ind1_endividamento": 0.2679213347, "nota1": "A", "ind2_poupanca": 0.933935974, "nota2": "B", "ind3_liquidez": 0.0379657445, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0492830913, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4306304", "municipio": "David Canabarro", "uf": "RS", "capag": "B+", "ind1_endividamento": 0.1034977176, "nota1": "A", "ind2_poupanca": 0.930654028, "nota2": "B", "ind3_liquidez": 0.0305498541, "nota3": "B", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.078799842, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4306320", "municipio": "Derrubadas", "uf": "RS", "capag": "A", "ind1_endividamento": 0.1206242964, "nota1": "A", "ind2_poupanca": 0.8682881898, "nota2": "B", "ind3_liquidez": 0.1703145127, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0165624299, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4306353", "municipio": "Dezesseis de Novembro", "uf": "RS", "capag": "n.e.", "ind1_endividamento": "n.d.", "nota1": "n.d.", "ind2_poupanca": 0.9019048665, "nota2": "B", "ind3_liquidez": "n.d.", "nota3": "n.d.", "icf": "Eicf", "observacao": "Ente possui ranking da informação contábil Eicf", "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": null, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Não", "publicou_rreo": "Não"}, {"cod_ibge": "4306379", "municipio": "Dilermando de Aguiar", "uf": "RS", "capag": "A", "ind1_endividamento": 0.0339928947, "nota1": "A", "ind2_poupanca": 0.8276648802, "nota2": "A", "ind3_liquidez": 0.0918055764, "nota3": "A", "icf": "Cicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0086751568, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4306403", "municipio": "Dois Irmãos", "uf": "RS", "capag": "A+", "ind1_endividamento": 0.0552708272, "nota1": "A", "ind2_poupanca": 0.8289214154, "nota2": "A", "ind3_liquidez": 0.1323831749, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0560953467, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4306429", "municipio": "Dois Irmãos das Missões", "uf": "RS", "capag": "A", "ind1_endividamento": 0.0050456004, "nota1": "A", "ind2_poupanca": 0.8866632282, "nota2": "B", "ind3_liquidez": 0.0836804074, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0394035766, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4306452", "municipio": "Dois Lajeados", "uf": "RS", "capag": "A", "ind1_endividamento": 0, "nota1": "A", "ind2_poupanca": 0.8361753202, "nota2": "A", "ind3_liquidez": 0.0932474407, "nota3": "A", "icf": "Dicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0129592163, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4306502", "municipio": "Dom Feliciano", "uf": "RS", "capag": "C", "ind1_endividamento": 0.0323689187, "nota1": "A", "ind2_poupanca": 0.9578469775, "nota2": "C", "ind3_liquidez": 0.0403514773, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0311804163, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4306551", "municipio": "Dom Pedro de Alcântara", "uf": "RS", "capag": "A+", "ind1_endividamento": 0.2159779529, "nota1": "A", "ind2_poupanca": 0.7942190787, "nota2": "A", "ind3_liquidez": 0.0901605975, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0892942682, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4306601", "municipio": "Dom Pedrito", "uf": "RS", "capag": "A+", "ind1_endividamento": 0.1192038385, "nota1": "A", "ind2_poupanca": 0.8574597704, "nota2": "B", "ind3_liquidez": 0.1219860904, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.1233078467, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4306700", "municipio": "Dona Francisca", "uf": "RS", "capag": "A+", "ind1_endividamento": 0.1010174735, "nota1": "A", "ind2_poupanca": 0.8652882543, "nota2": "B", "ind3_liquidez": 0.0761955187, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.252156423, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4306734", "municipio": "Doutor Maurício Cardoso", "uf": "RS", "capag": "A", "ind1_endividamento": 0.0848514503, "nota1": "A", "ind2_poupanca": 0.7341442516, "nota2": "A", "ind3_liquidez": 0.1039897875, "nota3": "A", "icf": "Cicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0109075782, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4306759", "municipio": "Doutor Ricardo", "uf": "RS", "capag": "C", "ind1_endividamento": 0.0893578488, "nota1": "A", "ind2_poupanca": 0.9172286643, "nota2": "B", "ind3_liquidez": -0.0151315899, "nota3": "C", "icf": "Cicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 1.9515763566, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4306767", "municipio": "Eldorado do Sul", "uf": "RS", "capag": "A+", "ind1_endividamento": 0.025667767, "nota1": "A", "ind2_poupanca": 0.9323031199, "nota2": "B", "ind3_liquidez": 0.0604838899, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.3235209862, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4306809", "municipio": "Encantado", "uf": "RS", "capag": "B", "ind1_endividamento": 0.1014110077, "nota1": "A", "ind2_poupanca": 0.8796452365, "nota2": "B", "ind3_liquidez": 0.0495469264, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.1050428559, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4306908", "municipio": "Encruzilhada do Sul", "uf": "RS", "capag": "A", "ind1_endividamento": 0.2323066743, "nota1": "A", "ind2_poupanca": 0.8682689989, "nota2": "B", "ind3_liquidez": 0.1431771058, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0892497438, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4306924", "municipio": "Engenho Velho", "uf": "RS", "capag": "A", "ind1_endividamento": 0, "nota1": "A", "ind2_poupanca": 0.7669051332, "nota2": "A", "ind3_liquidez": 0.0478286434, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0517010465, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4306932", "municipio": "Entre-Ijuís", "uf": "RS", "capag": "B+", "ind1_endividamento": 0.0627057892, "nota1": "A", "ind2_poupanca": 0.9201917053, "nota2": "B", "ind3_liquidez": 0.0294068527, "nota3": "B", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.4883210226, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4306957", "municipio": "Entre Rios do Sul", "uf": "RS", "capag": "C", "ind1_endividamento": 0, "nota1": "A", "ind2_poupanca": 0.8960864397, "nota2": "B", "ind3_liquidez": 0, "nota3": "C", "icf": "Cicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": "n.d.", "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4306973", "municipio": "Erebango", "uf": "RS", "capag": "n.e.", "ind1_endividamento": "n.d.", "nota1": "n.d.", "ind2_poupanca": 0.8376291756, "nota2": "A", "ind3_liquidez": "n.d.", "nota3": "n.d.", "icf": "Eicf", "observacao": "Ente possui ranking da informação contábil Eicf", "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": null, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Não", "publicou_rreo": "Não"}, {"cod_ibge": "4307005", "municipio": "Erechim", "uf": "RS", "capag": "A+", "ind1_endividamento": 0.022346258, "nota1": "A", "ind2_poupanca": 0.8429275005, "nota2": "A", "ind3_liquidez": 0.0586500979, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.2710040269, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4307054", "municipio": "Ernestina", "uf": "RS", "capag": "A", "ind1_endividamento": 0.0670744305, "nota1": "A", "ind2_poupanca": 0.8809071219, "nota2": "B", "ind3_liquidez": 0.0750167715, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4307104", "municipio": "Herval", "uf": "RS", "capag": "A", "ind1_endividamento": 0.0040680789, "nota1": "A", "ind2_poupanca": 0.8452449071, "nota2": "A", "ind3_liquidez": 0.1664130484, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.1187232111, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4307203", "municipio": "Erval Grande", "uf": "RS", "capag": "C", "ind1_endividamento": 0.086778956, "nota1": "A", "ind2_poupanca": 0.9553119873, "nota2": "C", "ind3_liquidez": 0.0067951857, "nota3": "B", "icf": "Cicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.6824641614, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4307302", "municipio": "Erval Seco", "uf": "RS", "capag": "C", "ind1_endividamento": 0.1028678363, "nota1": "A", "ind2_poupanca": 0.9371350522, "nota2": "B", "ind3_liquidez": -0.0333867918, "nota3": "C", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 14.7477754193, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4307401", "municipio": "Esmeralda", "uf": "RS", "capag": "B", "ind1_endividamento": 0.0250271589, "nota1": "A", "ind2_poupanca": 0.9288267723, "nota2": "B", "ind3_liquidez": 0.0122431076, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.4211448034, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4307450", "municipio": "Esperança do Sul", "uf": "RS", "capag": "n.d.", "ind1_endividamento": 0.0007723732, "nota1": "A", "ind2_poupanca": "n.d.", "nota2": "n.d.", "ind3_liquidez": 0.1623074252, "nota3": "A", "icf": "Cicf", "observacao": "Município declarou Deduções de Receitas Correntes com valores negativos. Verifique as colunas Deduções - Transferências Constitucionais, Deduções - Fundeb e Outras Deduções da Receita na rubrica Receitas Correntes extraídas do Anexo I-C da DCA.\n", "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0722892306, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": "Sim", "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4307500", "municipio": "Espumoso", "uf": "RS", "capag": "B", "ind1_endividamento": 0.1454479142, "nota1": "A", "ind2_poupanca": 0.8855164709, "nota2": "B", "ind3_liquidez": 0.0155209737, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.151513276, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4307559", "municipio": "Estação", "uf": "RS", "capag": "B", "ind1_endividamento": 0.0859607675, "nota1": "A", "ind2_poupanca": 0.9030317953, "nota2": "B", "ind3_liquidez": 0.0223410173, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4307609", "municipio": "Estância Velha", "uf": "RS", "capag": "B", "ind1_endividamento": 0.0560414252, "nota1": "A", "ind2_poupanca": 0.9305603031, "nota2": "B", "ind3_liquidez": 0.0129631629, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.4006508586, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4307708", "municipio": "Esteio", "uf": "RS", "capag": "C", "ind1_endividamento": 0.1300988514, "nota1": "A", "ind2_poupanca": 0.9052487175, "nota2": "B", "ind3_liquidez": -0.0233102275, "nota3": "C", "icf": "Cicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 2.2471160682, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4307807", "municipio": "Estrela", "uf": "RS", "capag": "A", "ind1_endividamento": 0.2060362092, "nota1": "A", "ind2_poupanca": 0.9166963428, "nota2": "B", "ind3_liquidez": 0.0508755257, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.3258830103, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4307815", "municipio": "Estrela Velha", "uf": "RS", "capag": "A", "ind1_endividamento": 0.0417665756, "nota1": "A", "ind2_poupanca": 0.7578587705, "nota2": "A", "ind3_liquidez": 0.14789791, "nota3": "A", "icf": "Cicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0639581952, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4307831", "municipio": "Eugênio de Castro", "uf": "RS", "capag": "A+", "ind1_endividamento": 0.0840478959, "nota1": "A", "ind2_poupanca": 0.7877214955, "nota2": "A", "ind3_liquidez": 0.08194747, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0973724633, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4307864", "municipio": "Fagundes Varela", "uf": "RS", "capag": "A+", "ind1_endividamento": 0.0723783128, "nota1": "A", "ind2_poupanca": 0.7779730576, "nota2": "A", "ind3_liquidez": 0.1056261198, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0771407314, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4307906", "municipio": "Farroupilha", "uf": "RS", "capag": "A", "ind1_endividamento": 0.1448531727, "nota1": "A", "ind2_poupanca": 0.9172465178, "nota2": "B", "ind3_liquidez": 0.0836937387, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.2459685012, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4308003", "municipio": "Faxinal do Soturno", "uf": "RS", "capag": "A+", "ind1_endividamento": 0.0556158463, "nota1": "A", "ind2_poupanca": 0.8677720191, "nota2": "B", "ind3_liquidez": 0.0642218141, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0308247742, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4308052", "municipio": "Faxinalzinho", "uf": "RS", "capag": "C", "ind1_endividamento": 0.0722034474, "nota1": "A", "ind2_poupanca": 0.8587765641, "nota2": "B", "ind3_liquidez": -0.0990379738, "nota3": "C", "icf": "Dicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": null, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4308078", "municipio": "Fazenda Vilanova", "uf": "RS", "capag": "A", "ind1_endividamento": 0.1274878795, "nota1": "A", "ind2_poupanca": 0.8367941655, "nota2": "A", "ind3_liquidez": 0.0832095756, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.2190750308, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4308102", "municipio": "Feliz", "uf": "RS", "capag": "A+", "ind1_endividamento": 0.2355435262, "nota1": "A", "ind2_poupanca": 0.7898484196, "nota2": "A", "ind3_liquidez": 0.1460654916, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0544643072, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4308201", "municipio": "Flores da Cunha", "uf": "RS", "capag": "A", "ind1_endividamento": 0.0196785126, "nota1": "A", "ind2_poupanca": 0.7845366127, "nota2": "A", "ind3_liquidez": 0.2088128944, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0452807311, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4308250", "municipio": "Floriano Peixoto", "uf": "RS", "capag": "A", "ind1_endividamento": 0.0205392477, "nota1": "A", "ind2_poupanca": 0.7901960608, "nota2": "A", "ind3_liquidez": 0.0890718996, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0087338373, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4308300", "municipio": "Fontoura Xavier", "uf": "RS", "capag": "B", "ind1_endividamento": 0.1515126423, "nota1": "A", "ind2_poupanca": 0.8808355361, "nota2": "B", "ind3_liquidez": 0.0062342557, "nota3": "B", "icf": "Cicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0272943573, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4308409", "municipio": "Formigueiro", "uf": "RS", "capag": "A", "ind1_endividamento": 0.0621799874, "nota1": "A", "ind2_poupanca": 0.8698286042, "nota2": "B", "ind3_liquidez": 0.0564446293, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.1280659458, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4308433", "municipio": "Forquetinha", "uf": "RS", "capag": "A", "ind1_endividamento": 0, "nota1": "A", "ind2_poupanca": 0.7649272241, "nota2": "A", "ind3_liquidez": 0.3340216522, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0469820126, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4308458", "municipio": "Fortaleza dos Valos", "uf": "RS", "capag": "A+", "ind1_endividamento": 0.1021468967, "nota1": "A", "ind2_poupanca": 0.8376426114, "nota2": "A", "ind3_liquidez": 0.081646271, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0040936385, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4308508", "municipio": "Frederico Westphalen", "uf": "RS", "capag": "B", "ind1_endividamento": 0.0889423483, "nota1": "A", "ind2_poupanca": 0.8573088198, "nota2": "B", "ind3_liquidez": 0.0205839513, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.3951198327, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4308607", "municipio": "Garibaldi", "uf": "RS", "capag": "A", "ind1_endividamento": 0.1094953071, "nota1": "A", "ind2_poupanca": 0.8826149901, "nota2": "B", "ind3_liquidez": 0.3031002739, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.1707975516, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4308656", "municipio": "Garruchos", "uf": "RS", "capag": "A+", "ind1_endividamento": 0, "nota1": "A", "ind2_poupanca": 0.8205272487, "nota2": "A", "ind3_liquidez": 0.0871335512, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.2252568436, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4308706", "municipio": "Gaurama", "uf": "RS", "capag": "A", "ind1_endividamento": 0, "nota1": "A", "ind2_poupanca": 0.8460697603, "nota2": "A", "ind3_liquidez": 0.0847338548, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.1287872109, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4308805", "municipio": "General Câmara", "uf": "RS", "capag": "C", "ind1_endividamento": 0.2006032866, "nota1": "A", "ind2_poupanca": 6.3493703583, "nota2": "C", "ind3_liquidez": 0.0001836989, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0002199106, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4308854", "municipio": "Gentil", "uf": "RS", "capag": "B", "ind1_endividamento": 0.1099601749, "nota1": "A", "ind2_poupanca": 0.9105106305, "nota2": "B", "ind3_liquidez": 0.0088105103, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.5428643955, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4308904", "municipio": "Getúlio Vargas", "uf": "RS", "capag": "A", "ind1_endividamento": 0.1063855244, "nota1": "A", "ind2_poupanca": 0.838442806, "nota2": "A", "ind3_liquidez": 0.0058104355, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.006881988, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4309001", "municipio": "Giruá", "uf": "RS", "capag": "A", "ind1_endividamento": 0.0578758862, "nota1": "A", "ind2_poupanca": 0.9193486384, "nota2": "B", "ind3_liquidez": 0.0868829317, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.1238138222, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4309050", "municipio": "Glorinha", "uf": "RS", "capag": "C", "ind1_endividamento": 0.0719134327, "nota1": "A", "ind2_poupanca": 0.9739857511, "nota2": "C", "ind3_liquidez": 0.0490653304, "nota3": "B", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.2441620205, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4309100", "municipio": "Gramado", "uf": "RS", "capag": "B", "ind1_endividamento": 0.0297178012, "nota1": "A", "ind2_poupanca": 0.8605407757, "nota2": "B", "ind3_liquidez": 0.0406370694, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.1319579345, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4309126", "municipio": "Gramado dos Loureiros", "uf": "RS", "capag": "B", "ind1_endividamento": 0.2332230918, "nota1": "A", "ind2_poupanca": 0.8615761096, "nota2": "B", "ind3_liquidez": 0.0185597184, "nota3": "B", "icf": "Dicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.1193128111, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4309159", "municipio": "Gramado Xavier", "uf": "RS", "capag": "B+", "ind1_endividamento": 0.1307993228, "nota1": "A", "ind2_poupanca": 0.857736592, "nota2": "B", "ind3_liquidez": 0.0499849241, "nota3": "B", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.3192890929, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4309209", "municipio": "Gravataí", "uf": "RS", "capag": "C", "ind1_endividamento": 0.6615000844, "nota1": "B", "ind2_poupanca": 0.9374228942, "nota2": "B", "ind3_liquidez": -0.0402919781, "nota3": "C", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 23.8910566434, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4309258", "municipio": "Guabiju", "uf": "RS", "capag": "A", "ind1_endividamento": 0, "nota1": "A", "ind2_poupanca": 0.7954834485, "nota2": "A", "ind3_liquidez": 0.1836017928, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.1161470318, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4309308", "municipio": "Guaíba", "uf": "RS", "capag": "A", "ind1_endividamento": 0.1036183074, "nota1": "A", "ind2_poupanca": 0.886973591, "nota2": "B", "ind3_liquidez": 0.1681585723, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.040692946, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4309407", "municipio": "Guaporé", "uf": "RS", "capag": "A", "ind1_endividamento": 0.0865512189, "nota1": "A", "ind2_poupanca": 0.8798525431, "nota2": "B", "ind3_liquidez": 0.0945022267, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.2983271902, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4309506", "municipio": "Guarani das Missões", "uf": "RS", "capag": "B", "ind1_endividamento": 0.1580636323, "nota1": "A", "ind2_poupanca": 0.940378085, "nota2": "B", "ind3_liquidez": 0.019771033, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.6482754083, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4309555", "municipio": "Harmonia", "uf": "RS", "capag": "A", "ind1_endividamento": 0.1847234325, "nota1": "A", "ind2_poupanca": 0.7686646398, "nota2": "A", "ind3_liquidez": 0.2133199352, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0067624521, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4309571", "municipio": "Herveiras", "uf": "RS", "capag": "A", "ind1_endividamento": 0, "nota1": "A", "ind2_poupanca": 0.9070939355, "nota2": "B", "ind3_liquidez": 0.0929561547, "nota3": "A", "icf": "Cicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0455939512, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4309605", "municipio": "Horizontina", "uf": "RS", "capag": "A", "ind1_endividamento": 0.2875716172, "nota1": "A", "ind2_poupanca": 0.7941743701, "nota2": "A", "ind3_liquidez": 0.1564422568, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0323205029, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4309654", "municipio": "Hulha Negra", "uf": "RS", "capag": "A", "ind1_endividamento": 0.0050968307, "nota1": "A", "ind2_poupanca": 0.8962056382, "nota2": "B", "ind3_liquidez": 0.1187123701, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.131274006, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4309704", "municipio": "Humaitá", "uf": "RS", "capag": "B", "ind1_endividamento": 0.0648260175, "nota1": "A", "ind2_poupanca": 0.867451672, "nota2": "B", "ind3_liquidez": 0.0385329155, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.4847175042, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4309753", "municipio": "Ibarama", "uf": "RS", "capag": "A", "ind1_endividamento": 0, "nota1": "A", "ind2_poupanca": 0.8753217073, "nota2": "B", "ind3_liquidez": 0.0832320396, "nota3": "A", "icf": "Cicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.009102227, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4309803", "municipio": "Ibiaçá", "uf": "RS", "capag": "C", "ind1_endividamento": 0.0160977536, "nota1": "A", "ind2_poupanca": 10.6673759633, "nota2": "C", "ind3_liquidez": 0.0712211189, "nota3": "A", "icf": "Dicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0235240647, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4309902", "municipio": "Ibiraiaras", "uf": "RS", "capag": "A+", "ind1_endividamento": 0.1693075766, "nota1": "A", "ind2_poupanca": 0.8316658273, "nota2": "A", "ind3_liquidez": 0.0368406497, "nota3": "B", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.2875352732, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4309951", "municipio": "Ibirapuitã", "uf": "RS", "capag": "B", "ind1_endividamento": 0.0622165132, "nota1": "A", "ind2_poupanca": 0.9377796444, "nota2": "B", "ind3_liquidez": 0.0300585363, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.1365406761, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4310009", "municipio": "Ibirubá", "uf": "RS", "capag": "B+", "ind1_endividamento": 0.0674064685, "nota1": "A", "ind2_poupanca": 0.8807921035, "nota2": "B", "ind3_liquidez": 0.0162135342, "nota3": "B", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.5059606706, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4310108", "municipio": "Igrejinha", "uf": "RS", "capag": "B", "ind1_endividamento": 0.0854831594, "nota1": "A", "ind2_poupanca": 0.8745278197, "nota2": "B", "ind3_liquidez": 0.0024747997, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.8698322105, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4310207", "municipio": "Ijuí", "uf": "RS", "capag": "B+", "ind1_endividamento": 0.0912778698, "nota1": "A", "ind2_poupanca": 0.9021661056, "nota2": "B", "ind3_liquidez": 0.0490152768, "nota3": "B", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.2873404008, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4310306", "municipio": "Ilópolis", "uf": "RS", "capag": "A", "ind1_endividamento": 0.1424789144, "nota1": "A", "ind2_poupanca": 0.8101247108, "nota2": "A", "ind3_liquidez": 0.038349621, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.2070394432, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4310330", "municipio": "Imbé", "uf": "RS", "capag": "B+", "ind1_endividamento": 0.3795105183, "nota1": "A", "ind2_poupanca": 0.8521569893, "nota2": "B", "ind3_liquidez": 0.0358640668, "nota3": "B", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.3602445427, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4310363", "municipio": "Imigrante", "uf": "RS", "capag": "A+", "ind1_endividamento": 0.1116583147, "nota1": "A", "ind2_poupanca": 0.8261238033, "nota2": "A", "ind3_liquidez": 0.1496433997, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.015765381, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4310405", "municipio": "Independência", "uf": "RS", "capag": "A+", "ind1_endividamento": 0.0446496036, "nota1": "A", "ind2_poupanca": 0.8593232429, "nota2": "B", "ind3_liquidez": 0.0831335223, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0027290834, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4310413", "municipio": "Inhacorá", "uf": "RS", "capag": "B", "ind1_endividamento": 0.088380897, "nota1": "A", "ind2_poupanca": 0.9477964542, "nota2": "B", "ind3_liquidez": 0.0048235613, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.554700845, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4310439", "municipio": "Ipê", "uf": "RS", "capag": "A+", "ind1_endividamento": 0.0734044095, "nota1": "A", "ind2_poupanca": 0.799083432, "nota2": "A", "ind3_liquidez": 0.1545321806, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0971112209, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4310462", "municipio": "Ipiranga do Sul", "uf": "RS", "capag": "A", "ind1_endividamento": 8.7925e-05, "nota1": "A", "ind2_poupanca": 0.8860433718, "nota2": "B", "ind3_liquidez": 0.095381043, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0079855674, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4310504", "municipio": "Iraí", "uf": "RS", "capag": "A+", "ind1_endividamento": 0.0541285939, "nota1": "A", "ind2_poupanca": 0.9155848497, "nota2": "B", "ind3_liquidez": 0.0714356722, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.1080661941, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4310538", "municipio": "Itaara", "uf": "RS", "capag": "A+", "ind1_endividamento": 0.0016966943, "nota1": "A", "ind2_poupanca": 0.707288316, "nota2": "A", "ind3_liquidez": 0.3418778256, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0331386526, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4310553", "municipio": "Itacurubi", "uf": "RS", "capag": "A", "ind1_endividamento": 0.0492565072, "nota1": "A", "ind2_poupanca": 0.8909927437, "nota2": "B", "ind3_liquidez": 0.1169580871, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0723373402, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4310579", "municipio": "Itapuca", "uf": "RS", "capag": "A+", "ind1_endividamento": 0.0729300312, "nota1": "A", "ind2_poupanca": 0.8287962001, "nota2": "A", "ind3_liquidez": 0.1477763711, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0311799358, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4310603", "municipio": "Itaqui", "uf": "RS", "capag": "A", "ind1_endividamento": 0.4252141472, "nota1": "A", "ind2_poupanca": 0.8457582933, "nota2": "A", "ind3_liquidez": 0.0756422643, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.1078723817, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4310652", "municipio": "Itati", "uf": "RS", "capag": "B", "ind1_endividamento": 0.1031311936, "nota1": "A", "ind2_poupanca": 0.9112196101, "nota2": "B", "ind3_liquidez": 0.0446218122, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.464705923, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4310702", "municipio": "Itatiba do Sul", "uf": "RS", "capag": "A", "ind1_endividamento": 0.0345719091, "nota1": "A", "ind2_poupanca": 0.8935184071, "nota2": "B", "ind3_liquidez": 0.0849837291, "nota3": "A", "icf": "Dicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0076937207, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4310751", "municipio": "Ivorá", "uf": "RS", "capag": "n.d.", "ind1_endividamento": 0.0073594623, "nota1": "A", "ind2_poupanca": "n.d.", "nota2": "n.d.", "ind3_liquidez": 0.2882817312, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0552625039, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4310801", "municipio": "Ivoti", "uf": "RS", "capag": "A", "ind1_endividamento": 0, "nota1": "A", "ind2_poupanca": 0.7529234955, "nota2": "A", "ind3_liquidez": 0.1492045825, "nota3": "A", "icf": "Cicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.18103177, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4310850", "municipio": "Jaboticaba", "uf": "RS", "capag": "A", "ind1_endividamento": 0.1108065549, "nota1": "A", "ind2_poupanca": 0.9443264051, "nota2": "B", "ind3_liquidez": 0.1097894018, "nota3": "A", "icf": "Cicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.2028680353, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4310876", "municipio": "Jacuizinho", "uf": "RS", "capag": "A+", "ind1_endividamento": 0.0102030175, "nota1": "A", "ind2_poupanca": 0.7783860383, "nota2": "A", "ind3_liquidez": 0.0519002234, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.108291459, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4310900", "municipio": "Jacutinga", "uf": "RS", "capag": "B", "ind1_endividamento": 0.1650354462, "nota1": "A", "ind2_poupanca": 0.9263244686, "nota2": "B", "ind3_liquidez": 0.0146711544, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4311007", "municipio": "Jaguarão", "uf": "RS", "capag": "B+", "ind1_endividamento": 0.2477007171, "nota1": "A", "ind2_poupanca": 0.8932583485, "nota2": "B", "ind3_liquidez": 0.0216946697, "nota3": "B", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.381794459, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4311106", "municipio": "Jaguari", "uf": "RS", "capag": "C", "ind1_endividamento": 0.2862130045, "nota1": "A", "ind2_poupanca": 0.9228148325, "nota2": "B", "ind3_liquidez": -0.0384673818, "nota3": "C", "icf": "Cicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 54.2456207849, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4311122", "municipio": "Jaquirana", "uf": "RS", "capag": "A", "ind1_endividamento": 0.2449018482, "nota1": "A", "ind2_poupanca": 0.8976916773, "nota2": "B", "ind3_liquidez": 0.1253879927, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0004939668, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4311130", "municipio": "Jari", "uf": "RS", "capag": "A", "ind1_endividamento": 0, "nota1": "A", "ind2_poupanca": 0.8181367333, "nota2": "A", "ind3_liquidez": 0.1235717036, "nota3": "A", "icf": "Dicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0928021256, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4311155", "municipio": "Jóia", "uf": "RS", "capag": "A+", "ind1_endividamento": 0.1211540994, "nota1": "A", "ind2_poupanca": 0.8429345163, "nota2": "A", "ind3_liquidez": 0.2037042603, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0513135355, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4311205", "municipio": "Júlio de Castilhos", "uf": "RS", "capag": "C", "ind1_endividamento": 0.0486925829, "nota1": "A", "ind2_poupanca": 0.830840997, "nota2": "A", "ind3_liquidez": -0.0002588079, "nota3": "C", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": null, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4311239", "municipio": "Lagoa Bonita do Sul", "uf": "RS", "capag": "A", "ind1_endividamento": 0, "nota1": "A", "ind2_poupanca": 0.8840576053, "nota2": "B", "ind3_liquidez": 0.1578155806, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0599628967, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4311254", "municipio": "Lagoão", "uf": "RS", "capag": "C", "ind1_endividamento": 0.0280838001, "nota1": "A", "ind2_poupanca": 0.9094941306, "nota2": "B", "ind3_liquidez": -0.0272866378, "nota3": "C", "icf": "Dicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 2.4169694198, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4311270", "municipio": "Lagoa dos Três Cantos", "uf": "RS", "capag": "A+", "ind1_endividamento": 0.0560017437, "nota1": "A", "ind2_poupanca": 0.7815313256, "nota2": "A", "ind3_liquidez": 0.2003711983, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0127965284, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4311304", "municipio": "Lagoa Vermelha", "uf": "RS", "capag": "A", "ind1_endividamento": 0.1464992044, "nota1": "A", "ind2_poupanca": 0.8899453269, "nota2": "B", "ind3_liquidez": 0.0909616352, "nota3": "A", "icf": "Cicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0249381846, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4311403", "municipio": "Lajeado", "uf": "RS", "capag": "A+", "ind1_endividamento": 0.0498656417, "nota1": "A", "ind2_poupanca": 0.8709441321, "nota2": "B", "ind3_liquidez": 0.0949820434, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.2973178149, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4311429", "municipio": "Lajeado do Bugre", "uf": "RS", "capag": "B", "ind1_endividamento": 0.1374642607, "nota1": "A", "ind2_poupanca": 0.8651073351, "nota2": "B", "ind3_liquidez": 0.0472964532, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.1375027739, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4311502", "municipio": "Lavras do Sul", "uf": "RS", "capag": "A", "ind1_endividamento": 0, "nota1": "A", "ind2_poupanca": 0.9245815817, "nota2": "B", "ind3_liquidez": 0.0707917372, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.2543037277, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4311601", "municipio": "Liberato Salzano", "uf": "RS", "capag": "B", "ind1_endividamento": 0.0468190798, "nota1": "A", "ind2_poupanca": 0.8804126739, "nota2": "B", "ind3_liquidez": 0.0409355208, "nota3": "B", "icf": "Cicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0170469897, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4311627", "municipio": "Lindolfo Collor", "uf": "RS", "capag": "A", "ind1_endividamento": 0.1300931855, "nota1": "A", "ind2_poupanca": 0.779177774, "nota2": "A", "ind3_liquidez": 0.0700136372, "nota3": "A", "icf": "Cicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.2862746896, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4311643", "municipio": "Linha Nova", "uf": "RS", "capag": "A", "ind1_endividamento": 0, "nota1": "A", "ind2_poupanca": 0.9091336821, "nota2": "B", "ind3_liquidez": 0.1640371575, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0720207434, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4311700", "municipio": "Machadinho", "uf": "RS", "capag": "B", "ind1_endividamento": 0.2072302221, "nota1": "A", "ind2_poupanca": 0.8917574852, "nota2": "B", "ind3_liquidez": 0.0422094588, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0956827336, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4311718", "municipio": "Maçambará", "uf": "RS", "capag": "A", "ind1_endividamento": 0.0015240346, "nota1": "A", "ind2_poupanca": 0.9143304468, "nota2": "B", "ind3_liquidez": 0.1145306641, "nota3": "A", "icf": "Cicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0587082693, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4311734", "municipio": "Mampituba", "uf": "RS", "capag": "A", "ind1_endividamento": 0.0727570744, "nota1": "A", "ind2_poupanca": 0.8483235096, "nota2": "A", "ind3_liquidez": 0.0157370608, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0288992995, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4311759", "municipio": "Manoel Viana", "uf": "RS", "capag": "A", "ind1_endividamento": 0.2420863183, "nota1": "A", "ind2_poupanca": 0.7890880242, "nota2": "A", "ind3_liquidez": 0.2512728274, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0223459924, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4311775", "municipio": "Maquiné", "uf": "RS", "capag": "B", "ind1_endividamento": 0.0814247829, "nota1": "A", "ind2_poupanca": 0.8883281638, "nota2": "B", "ind3_liquidez": 0.0016917365, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.910450063, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4311791", "municipio": "Maratá", "uf": "RS", "capag": "A+", "ind1_endividamento": 0.1665877411, "nota1": "A", "ind2_poupanca": 0.8391511145, "nota2": "A", "ind3_liquidez": 0.0429608425, "nota3": "B", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.3126770751, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4311809", "municipio": "Marau", "uf": "RS", "capag": "A+", "ind1_endividamento": 0.1406094025, "nota1": "A", "ind2_poupanca": 0.8298940115, "nota2": "A", "ind3_liquidez": 0.1089973737, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.1150179227, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4311908", "municipio": "Marcelino Ramos", "uf": "RS", "capag": "A", "ind1_endividamento": 0, "nota1": "A", "ind2_poupanca": 0.8808046562, "nota2": "B", "ind3_liquidez": 0.0781670677, "nota3": "A", "icf": "Cicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.170460009, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4311981", "municipio": "Mariana Pimentel", "uf": "RS", "capag": "B", "ind1_endividamento": 0.1547620284, "nota1": "A", "ind2_poupanca": 0.8536590926, "nota2": "B", "ind3_liquidez": 0.0266734363, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.3401455058, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4312005", "municipio": "Mariano Moro", "uf": "RS", "capag": "A+", "ind1_endividamento": 0.0354674962, "nota1": "A", "ind2_poupanca": 0.8228172729, "nota2": "A", "ind3_liquidez": 0.0297957677, "nota3": "B", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.1650459037, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4312054", "municipio": "Marques de Souza", "uf": "RS", "capag": "A+", "ind1_endividamento": 0.0735645842, "nota1": "A", "ind2_poupanca": 0.8226301901, "nota2": "A", "ind3_liquidez": 0.1547947128, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0810005414, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4312104", "municipio": "Mata", "uf": "RS", "capag": "B", "ind1_endividamento": 0.0292799372, "nota1": "A", "ind2_poupanca": 0.8814465078, "nota2": "B", "ind3_liquidez": 0.0107187521, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.2317936967, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4312138", "municipio": "Mato Castelhano", "uf": "RS", "capag": "C", "ind1_endividamento": 0.092543273, "nota1": "A", "ind2_poupanca": 2.3316170052, "nota2": "C", "ind3_liquidez": 0.0048690526, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.6120855184, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4312153", "municipio": "Mato Leitão", "uf": "RS", "capag": "A", "ind1_endividamento": 0.0768122791, "nota1": "A", "ind2_poupanca": 0.8171472982, "nota2": "A", "ind3_liquidez": 0.1182430054, "nota3": "A", "icf": "Cicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.1628897879, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4312179", "municipio": "Mato Queimado", "uf": "RS", "capag": "A", "ind1_endividamento": 0, "nota1": "A", "ind2_poupanca": 0.8136722909, "nota2": "A", "ind3_liquidez": 0.1338070722, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0096583749, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4312203", "municipio": "Maximiliano de Almeida", "uf": "RS", "capag": "n.d.", "ind1_endividamento": 0.1742199995, "nota1": "A", "ind2_poupanca": 0.9191780465, "nota2": "B", "ind3_liquidez": "n.d.", "nota3": "n.d.", "icf": "Bicf", "observacao": "Município declarou Obrigações Financeiras com valores negativos. Verifique as colunas Restos a Pagar Liquidados e Não Pagos de Exercícios Anteriores, Restos a Pagar Liquidados e Não Pagos do Exercício, Restos a Pagar Empenhados de Exercícios Anteriores e Demais Obrigações Financeiras da rubrica Total dos Recursos Não Vinculados extraídas do Anexo V do RGF.\n", "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": "n.d.", "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": "Sim", "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4312252", "municipio": "Minas do Leão", "uf": "RS", "capag": "A", "ind1_endividamento": 0.1882638785, "nota1": "A", "ind2_poupanca": 0.8835028786, "nota2": "B", "ind3_liquidez": 0.152414179, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0350462724, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4312302", "municipio": "Miraguaí", "uf": "RS", "capag": "C", "ind1_endividamento": 0.0479899222, "nota1": "A", "ind2_poupanca": 0.9549889169, "nota2": "C", "ind3_liquidez": 0.0188485202, "nota3": "B", "icf": "Cicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4312351", "municipio": "Montauri", "uf": "RS", "capag": "A+", "ind1_endividamento": 0, "nota1": "A", "ind2_poupanca": 0.7741629517, "nota2": "A", "ind3_liquidez": 0.1844608456, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0132827082, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4312377", "municipio": "Monte Alegre dos Campos", "uf": "RS", "capag": "A", "ind1_endividamento": 0, "nota1": "A", "ind2_poupanca": 0.9160323598, "nota2": "B", "ind3_liquidez": 0.0605986588, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0839635188, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4312385", "municipio": "Monte Belo do Sul", "uf": "RS", "capag": "B", "ind1_endividamento": 0, "nota1": "A", "ind2_poupanca": 0.9056129775, "nota2": "B", "ind3_liquidez": 0.0499118241, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.3149556513, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4312401", "municipio": "Montenegro", "uf": "RS", "capag": "A", "ind1_endividamento": 0.2608472896, "nota1": "A", "ind2_poupanca": 0.8690538794, "nota2": "B", "ind3_liquidez": 0.1315109025, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0344176819, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4312427", "municipio": "Mormaço", "uf": "RS", "capag": "A", "ind1_endividamento": 0.1318157164, "nota1": "A", "ind2_poupanca": 0.7772530127, "nota2": "A", "ind3_liquidez": 0.1219363822, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0151703184, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4312443", "municipio": "Morrinhos do Sul", "uf": "RS", "capag": "C", "ind1_endividamento": 0.1021576513, "nota1": "A", "ind2_poupanca": 0.9315305769, "nota2": "B", "ind3_liquidez": -0.0261615249, "nota3": "C", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 26.23648165, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4312450", "municipio": "Morro Redondo", "uf": "RS", "capag": "A", "ind1_endividamento": 0, "nota1": "A", "ind2_poupanca": 0.926777627, "nota2": "B", "ind3_liquidez": 0.2201474259, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0676198323, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4312476", "municipio": "Morro Reuter", "uf": "RS", "capag": "A+", "ind1_endividamento": 0.0234410415, "nota1": "A", "ind2_poupanca": 0.8451372917, "nota2": "A", "ind3_liquidez": 0.1504194454, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0083910959, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4312500", "municipio": "Mostardas", "uf": "RS", "capag": "B+", "ind1_endividamento": 0.1745788515, "nota1": "A", "ind2_poupanca": 0.8836079983, "nota2": "B", "ind3_liquidez": 0.0396761728, "nota3": "B", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.1879172331, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4312609", "municipio": "Muçum", "uf": "RS", "capag": "n.d.", "ind1_endividamento": 0.0962073714, "nota1": "A", "ind2_poupanca": 0.9487567137, "nota2": "B", "ind3_liquidez": "n.d.", "nota3": "n.d.", "icf": "Bicf", "observacao": "Município declarou Obrigações Financeiras com valores negativos. Verifique as colunas Restos a Pagar Liquidados e Não Pagos de Exercícios Anteriores, Restos a Pagar Liquidados e Não Pagos do Exercício, Restos a Pagar Empenhados de Exercícios Anteriores e Demais Obrigações Financeiras da rubrica Total dos Recursos Não Vinculados extraídas do Anexo V do RGF.\n", "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": "n.d.", "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": "Sim", "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4312617", "municipio": "Muitos Capões", "uf": "RS", "capag": "n.d.", "ind1_endividamento": 0.026600321, "nota1": "A", "ind2_poupanca": 0.8136767028, "nota2": "A", "ind3_liquidez": "n.d.", "nota3": "n.d.", "icf": "Bicf", "observacao": "Município declarou Obrigações Financeiras com valores negativos. Verifique as colunas Restos a Pagar Liquidados e Não Pagos de Exercícios Anteriores, Restos a Pagar Liquidados e Não Pagos do Exercício, Restos a Pagar Empenhados de Exercícios Anteriores e Demais Obrigações Financeiras da rubrica Total dos Recursos Não Vinculados extraídas do Anexo V do RGF.\n", "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": "n.d.", "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": "Sim", "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4312625", "municipio": "Muliterno", "uf": "RS", "capag": "A", "ind1_endividamento": 0.0514576502, "nota1": "A", "ind2_poupanca": 0.8648189287, "nota2": "B", "ind3_liquidez": 0.105947592, "nota3": "A", "icf": "Cicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.081643029, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4312658", "municipio": "Não-Me-Toque", "uf": "RS", "capag": "A", "ind1_endividamento": 0.1336614987, "nota1": "A", "ind2_poupanca": 0.869938347, "nota2": "B", "ind3_liquidez": 0.096733587, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.1618345986, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4312674", "municipio": "Nicolau Vergueiro", "uf": "RS", "capag": "A", "ind1_endividamento": 0.1799268221, "nota1": "A", "ind2_poupanca": 0.9206734446, "nota2": "B", "ind3_liquidez": 0.1061331357, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 1.70854e-05, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4312708", "municipio": "Nonoai", "uf": "RS", "capag": "B", "ind1_endividamento": 0.2334151906, "nota1": "A", "ind2_poupanca": 0.8544186441, "nota2": "B", "ind3_liquidez": 0.0333236517, "nota3": "B", "icf": "Dicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0665386165, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4312757", "municipio": "Nova Alvorada", "uf": "RS", "capag": "A+", "ind1_endividamento": 0.1529409556, "nota1": "A", "ind2_poupanca": 0.8631251636, "nota2": "B", "ind3_liquidez": 0.1211969669, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0279572219, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4312807", "municipio": "Nova Araçá", "uf": "RS", "capag": "A", "ind1_endividamento": 0.1157219075, "nota1": "A", "ind2_poupanca": 0.7682427196, "nota2": "A", "ind3_liquidez": 0.1553487804, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0896600649, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4312906", "municipio": "Nova Bassano", "uf": "RS", "capag": "A", "ind1_endividamento": 0.0136140166, "nota1": "A", "ind2_poupanca": 0.8350586321, "nota2": "A", "ind3_liquidez": 0.0472274746, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.1710395086, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4312955", "municipio": "Nova Boa Vista", "uf": "RS", "capag": "A+", "ind1_endividamento": 0.1725719984, "nota1": "A", "ind2_poupanca": 0.8001104163, "nota2": "A", "ind3_liquidez": 0.0691947439, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0728006364, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4313003", "municipio": "Nova Bréscia", "uf": "RS", "capag": "A", "ind1_endividamento": 0.2164932814, "nota1": "A", "ind2_poupanca": 0.8479091505, "nota2": "A", "ind3_liquidez": 0.1115743231, "nota3": "A", "icf": "Cicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0241087447, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4313011", "municipio": "Nova Candelária", "uf": "RS", "capag": "A+", "ind1_endividamento": 0, "nota1": "A", "ind2_poupanca": 0.7432440776, "nota2": "A", "ind3_liquidez": 0.1370702829, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0472086792, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4313037", "municipio": "Nova Esperança do Sul", "uf": "RS", "capag": "A", "ind1_endividamento": 0.0314477979, "nota1": "A", "ind2_poupanca": 0.8646898247, "nota2": "B", "ind3_liquidez": 0.0604044976, "nota3": "A", "icf": "Cicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0202085989, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4313060", "municipio": "Nova Hartz", "uf": "RS", "capag": "A", "ind1_endividamento": 0.3035396386, "nota1": "A", "ind2_poupanca": 0.8630754624, "nota2": "B", "ind3_liquidez": 0.1076983473, "nota3": "A", "icf": "Dicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.1469233108, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4313086", "municipio": "Nova Pádua", "uf": "RS", "capag": "A", "ind1_endividamento": 0.013527129, "nota1": "A", "ind2_poupanca": 0.7982529205, "nota2": "A", "ind3_liquidez": 0.1142013856, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0833726524, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4313102", "municipio": "Nova Palma", "uf": "RS", "capag": "A+", "ind1_endividamento": 0.0171887706, "nota1": "A", "ind2_poupanca": 0.8124153889, "nota2": "A", "ind3_liquidez": 0.0877718781, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.1223069116, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4313201", "municipio": "Nova Petrópolis", "uf": "RS", "capag": "A", "ind1_endividamento": 0.0482301337, "nota1": "A", "ind2_poupanca": 0.9195219791, "nota2": "B", "ind3_liquidez": 0.0706195971, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.1237979629, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4313300", "municipio": "Nova Prata", "uf": "RS", "capag": "C", "ind1_endividamento": 0, "nota1": "A", "ind2_poupanca": 0.9525105868, "nota2": "C", "ind3_liquidez": 0.0991858776, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.1293684419, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4313334", "municipio": "Nova Ramada", "uf": "RS", "capag": "A+", "ind1_endividamento": 0.1415927969, "nota1": "A", "ind2_poupanca": 0.7952538566, "nota2": "A", "ind3_liquidez": 0.3840010719, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0233694031, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4313359", "municipio": "Nova Roma do Sul", "uf": "RS", "capag": "A", "ind1_endividamento": 0.1974774759, "nota1": "A", "ind2_poupanca": 0.8165687398, "nota2": "A", "ind3_liquidez": 0.1037563743, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.2883822057, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4313375", "municipio": "Nova Santa Rita", "uf": "RS", "capag": "A", "ind1_endividamento": 0.0589912615, "nota1": "A", "ind2_poupanca": 0.8748240688, "nota2": "B", "ind3_liquidez": 0.17567318, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.1121653106, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4313391", "municipio": "Novo Cabrais", "uf": "RS", "capag": "A+", "ind1_endividamento": 0, "nota1": "A", "ind2_poupanca": 0.8770389124, "nota2": "B", "ind3_liquidez": 0.208340802, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0850660127, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4313409", "municipio": "Novo Hamburgo", "uf": "RS", "capag": "B", "ind1_endividamento": 0.8285832073, "nota1": "B", "ind2_poupanca": 0.9150149157, "nota2": "B", "ind3_liquidez": 0.0307440067, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.7565269341, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4313425", "municipio": "Novo Machado", "uf": "RS", "capag": "n.d.", "ind1_endividamento": 0.0729622491, "nota1": "A", "ind2_poupanca": 0.7670515502, "nota2": "A", "ind3_liquidez": "n.d.", "nota3": "n.d.", "icf": "Cicf", "observacao": "Município declarou Obrigações Financeiras com valores negativos. Verifique as colunas Restos a Pagar Liquidados e Não Pagos de Exercícios Anteriores, Restos a Pagar Liquidados e Não Pagos do Exercício, Restos a Pagar Empenhados de Exercícios Anteriores e Demais Obrigações Financeiras da rubrica Total dos Recursos Não Vinculados extraídas do Anexo V do RGF.\n", "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": "n.d.", "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": "Sim", "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4313441", "municipio": "Novo Tiradentes", "uf": "RS", "capag": "B", "ind1_endividamento": 0.1008210742, "nota1": "A", "ind2_poupanca": 0.8556012133, "nota2": "B", "ind3_liquidez": 0.0293663309, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4313466", "municipio": "Novo Xingu", "uf": "RS", "capag": "A", "ind1_endividamento": 0.0560877971, "nota1": "A", "ind2_poupanca": 0.8310461024, "nota2": "A", "ind3_liquidez": 0.1502281578, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0122803554, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4313490", "municipio": "Novo Barreiro", "uf": "RS", "capag": "A", "ind1_endividamento": 0.2761767927, "nota1": "A", "ind2_poupanca": 0.814943926, "nota2": "A", "ind3_liquidez": 0.0220176637, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.4870808144, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4313508", "municipio": "Osório", "uf": "RS", "capag": "B", "ind1_endividamento": 0.1619735749, "nota1": "A", "ind2_poupanca": 0.8695479201, "nota2": "B", "ind3_liquidez": 0.019906714, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.5144424957, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4313607", "municipio": "Paim Filho", "uf": "RS", "capag": "B", "ind1_endividamento": 0.0403147541, "nota1": "A", "ind2_poupanca": 0.897626254, "nota2": "B", "ind3_liquidez": 0.0341129014, "nota3": "B", "icf": "Cicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0217999993, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4313656", "municipio": "Palmares do Sul", "uf": "RS", "capag": "A+", "ind1_endividamento": 0.158668539, "nota1": "A", "ind2_poupanca": 0.9062728491, "nota2": "B", "ind3_liquidez": 0.0550858694, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.2686925942, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4313706", "municipio": "Palmeira das Missões", "uf": "RS", "capag": "A", "ind1_endividamento": 0.3746340597, "nota1": "A", "ind2_poupanca": 0.806072608, "nota2": "A", "ind3_liquidez": 0.0565570422, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.14468064, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4313805", "municipio": "Palmitinho", "uf": "RS", "capag": "B", "ind1_endividamento": 0.0200712329, "nota1": "A", "ind2_poupanca": 0.9377706891, "nota2": "B", "ind3_liquidez": 0.0053528797, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.6966206394, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4313904", "municipio": "Panambi", "uf": "RS", "capag": "A", "ind1_endividamento": 0.239932978, "nota1": "A", "ind2_poupanca": 0.7992053491, "nota2": "A", "ind3_liquidez": 0.0768663485, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.3345464681, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4313953", "municipio": "Pantano Grande", "uf": "RS", "capag": "C", "ind1_endividamento": 0.138903426, "nota1": "A", "ind2_poupanca": 0.9341102458, "nota2": "B", "ind3_liquidez": -0.0045147987, "nota3": "C", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 2.695416191, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4314001", "municipio": "Paraí", "uf": "RS", "capag": "A", "ind1_endividamento": 0.1344400509, "nota1": "A", "ind2_poupanca": 0.8125963486, "nota2": "A", "ind3_liquidez": 0.0912759991, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.1099465629, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4314027", "municipio": "Paraíso do Sul", "uf": "RS", "capag": "A+", "ind1_endividamento": 0.1046475057, "nota1": "A", "ind2_poupanca": 0.8323465693, "nota2": "A", "ind3_liquidez": 0.0245514093, "nota3": "B", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.3313149416, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4314035", "municipio": "Pareci Novo", "uf": "RS", "capag": "C", "ind1_endividamento": 0.1870322803, "nota1": "A", "ind2_poupanca": 1.0476772617, "nota2": "C", "ind3_liquidez": 0.1069345056, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.1355754049, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4314050", "municipio": "Parobé", "uf": "RS", "capag": "B", "ind1_endividamento": 0.5524449303, "nota1": "A", "ind2_poupanca": 0.857700298, "nota2": "B", "ind3_liquidez": 0.0137936031, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.6347747633, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4314068", "municipio": "Passa Sete", "uf": "RS", "capag": "A", "ind1_endividamento": 0, "nota1": "A", "ind2_poupanca": 0.814266467, "nota2": "A", "ind3_liquidez": 0.1444014118, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0453060358, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4314076", "municipio": "Passo do Sobrado", "uf": "RS", "capag": "B", "ind1_endividamento": 0.1392154602, "nota1": "A", "ind2_poupanca": 0.8942666982, "nota2": "B", "ind3_liquidez": 0.021992636, "nota3": "B", "icf": "Cicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.1497105342, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4314100", "municipio": "Passo Fundo", "uf": "RS", "capag": "A", "ind1_endividamento": 0.1064517194, "nota1": "A", "ind2_poupanca": 0.8460833035, "nota2": "A", "ind3_liquidez": 0.2030557006, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.1410286435, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4314134", "municipio": "Paulo Bento", "uf": "RS", "capag": "B", "ind1_endividamento": 0.1266536072, "nota1": "A", "ind2_poupanca": 0.8831889764, "nota2": "B", "ind3_liquidez": 0.0187156154, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0410632301, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4314159", "municipio": "Paverama", "uf": "RS", "capag": "B", "ind1_endividamento": 0.1642861908, "nota1": "A", "ind2_poupanca": 0.9070964923, "nota2": "B", "ind3_liquidez": 0.0071065766, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.7149718118, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4314175", "municipio": "Pedras Altas", "uf": "RS", "capag": "A+", "ind1_endividamento": 0, "nota1": "A", "ind2_poupanca": 0.9044119457, "nota2": "B", "ind3_liquidez": 0.1009630885, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.1232136019, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4314209", "municipio": "Pedro Osório", "uf": "RS", "capag": "n.d.", "ind1_endividamento": 0.0866699351, "nota1": "A", "ind2_poupanca": 0.9759410572, "nota2": "C", "ind3_liquidez": "n.d.", "nota3": "n.d.", "icf": "Aicf", "observacao": "Município declarou Obrigações Financeiras com valores negativos. Verifique as colunas Restos a Pagar Liquidados e Não Pagos de Exercícios Anteriores, Restos a Pagar Liquidados e Não Pagos do Exercício, Restos a Pagar Empenhados de Exercícios Anteriores e Demais Obrigações Financeiras da rubrica Total dos Recursos Não Vinculados extraídas do Anexo V do RGF.\n", "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": "n.d.", "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": "Sim", "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4314308", "municipio": "Pejuçara", "uf": "RS", "capag": "B+", "ind1_endividamento": 0.0942616989, "nota1": "A", "ind2_poupanca": 0.9081308085, "nota2": "B", "ind3_liquidez": 0.0306136767, "nota3": "B", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4314407", "municipio": "Pelotas", "uf": "RS", "capag": "C", "ind1_endividamento": 0.4439618384, "nota1": "A", "ind2_poupanca": 0.9420925283, "nota2": "B", "ind3_liquidez": -0.1273068568, "nota3": "C", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": null, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4314423", "municipio": "Picada Café", "uf": "RS", "capag": "A+", "ind1_endividamento": 0, "nota1": "A", "ind2_poupanca": 0.9250986067, "nota2": "B", "ind3_liquidez": 0.1175682224, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0080794355, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4314456", "municipio": "Pinhal", "uf": "RS", "capag": "A+", "ind1_endividamento": 0.1022148589, "nota1": "A", "ind2_poupanca": 0.8221378304, "nota2": "A", "ind3_liquidez": 0.1040373068, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.1544018561, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4314464", "municipio": "Pinhal da Serra", "uf": "RS", "capag": "n.d.", "ind1_endividamento": 0.0365541826, "nota1": "A", "ind2_poupanca": 0.9154209692, "nota2": "B", "ind3_liquidez": "n.d.", "nota3": "n.d.", "icf": "Bicf", "observacao": "Município declarou Obrigações Financeiras com valores negativos. Verifique as colunas Restos a Pagar Liquidados e Não Pagos de Exercícios Anteriores, Restos a Pagar Liquidados e Não Pagos do Exercício, Restos a Pagar Empenhados de Exercícios Anteriores e Demais Obrigações Financeiras da rubrica Total dos Recursos Não Vinculados extraídas do Anexo V do RGF.\n", "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": "n.d.", "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": "Sim", "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4314472", "municipio": "Pinhal Grande", "uf": "RS", "capag": "B", "ind1_endividamento": 0.0344967045, "nota1": "A", "ind2_poupanca": 0.8723290141, "nota2": "B", "ind3_liquidez": 0.0148415081, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.3108150894, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4314498", "municipio": "Pinheirinho do Vale", "uf": "RS", "capag": "C", "ind1_endividamento": 0, "nota1": "A", "ind2_poupanca": 0.9742532909, "nota2": "C", "ind3_liquidez": -0.0085072609, "nota3": "C", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 1.8825169813, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4314506", "municipio": "Pinheiro Machado", "uf": "RS", "capag": "A", "ind1_endividamento": 0.4202148516, "nota1": "A", "ind2_poupanca": 0.8197495292, "nota2": "A", "ind3_liquidez": 0.0191891964, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0022765406, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4314548", "municipio": "Pinto Bandeira", "uf": "RS", "capag": "C", "ind1_endividamento": 0, "nota1": "A", "ind2_poupanca": 2.5471771069, "nota2": "C", "ind3_liquidez": 0.2880112379, "nota3": "A", "icf": "Cicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0316276172, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4314555", "municipio": "Pirapó", "uf": "RS", "capag": "A", "ind1_endividamento": 0.0139488496, "nota1": "A", "ind2_poupanca": 0.8601352955, "nota2": "B", "ind3_liquidez": 0.1123267904, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0615377066, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4314605", "municipio": "Piratini", "uf": "RS", "capag": "B", "ind1_endividamento": 0.0742164516, "nota1": "A", "ind2_poupanca": 0.8639716879, "nota2": "B", "ind3_liquidez": 0.0352918125, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.1038533849, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4314704", "municipio": "Planalto", "uf": "RS", "capag": "B", "ind1_endividamento": 0.0253744357, "nota1": "A", "ind2_poupanca": 0.8959070722, "nota2": "B", "ind3_liquidez": 0.0229906482, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.1651490352, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4314753", "municipio": "Poço das Antas", "uf": "RS", "capag": "A+", "ind1_endividamento": 0.0026913684, "nota1": "A", "ind2_poupanca": 0.8326280304, "nota2": "A", "ind3_liquidez": 0.1620361949, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0231754839, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4314779", "municipio": "Pontão", "uf": "RS", "capag": "B", "ind1_endividamento": 0.0475110612, "nota1": "A", "ind2_poupanca": 0.8695326103, "nota2": "B", "ind3_liquidez": 0.015311782, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.1523845826, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4314787", "municipio": "Ponte Preta", "uf": "RS", "capag": "A", "ind1_endividamento": 0.0884882396, "nota1": "A", "ind2_poupanca": 0.8191498849, "nota2": "A", "ind3_liquidez": 0.1788719436, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.1548682389, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4314803", "municipio": "Portão", "uf": "RS", "capag": "A", "ind1_endividamento": 0.0803656888, "nota1": "A", "ind2_poupanca": 0.8028151421, "nota2": "A", "ind3_liquidez": 0.2616531629, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0661427634, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4314902", "municipio": "Porto Alegre", "uf": "RS", "capag": "A+", "ind1_endividamento": 0.2022119172, "nota1": "A", "ind2_poupanca": 0.9319264956, "nota2": "B", "ind3_liquidez": 0.0640616115, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.1190552898, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4315008", "municipio": "Porto Lucena", "uf": "RS", "capag": "B", "ind1_endividamento": 0.3612169306, "nota1": "A", "ind2_poupanca": 0.9096898667, "nota2": "B", "ind3_liquidez": 0.0435002, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.123632828, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4315057", "municipio": "Porto Mauá", "uf": "RS", "capag": "A", "ind1_endividamento": 0.1709300345, "nota1": "A", "ind2_poupanca": 0.7721739349, "nota2": "A", "ind3_liquidez": 0.153478518, "nota3": "A", "icf": "Cicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0314256368, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4315073", "municipio": "Porto Vera Cruz", "uf": "RS", "capag": "A", "ind1_endividamento": 0.1378816192, "nota1": "A", "ind2_poupanca": 0.7926981678, "nota2": "A", "ind3_liquidez": 0.2786711258, "nota3": "A", "icf": "Cicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0939558006, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4315107", "municipio": "Porto Xavier", "uf": "RS", "capag": "B", "ind1_endividamento": 0.0320211477, "nota1": "A", "ind2_poupanca": 0.8869138611, "nota2": "B", "ind3_liquidez": 0.0109923008, "nota3": "B", "icf": "Cicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.5404286045, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4315131", "municipio": "Pouso Novo", "uf": "RS", "capag": "B+", "ind1_endividamento": 0.1173237352, "nota1": "A", "ind2_poupanca": 0.8788077462, "nota2": "B", "ind3_liquidez": 0.0234416334, "nota3": "B", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.6616054636, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4315149", "municipio": "Presidente Lucena", "uf": "RS", "capag": "A+", "ind1_endividamento": 0, "nota1": "A", "ind2_poupanca": 0.7148733231, "nota2": "A", "ind3_liquidez": 0.3092034078, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.025530421, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4315156", "municipio": "Progresso", "uf": "RS", "capag": "C", "ind1_endividamento": 0.0939505242, "nota1": "A", "ind2_poupanca": 1.0200062634, "nota2": "C", "ind3_liquidez": 0.0246030221, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0980185303, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4315172", "municipio": "Protásio Alves", "uf": "RS", "capag": "A", "ind1_endividamento": 0, "nota1": "A", "ind2_poupanca": 0.7702337914, "nota2": "A", "ind3_liquidez": 0.2728357205, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0173808109, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4315206", "municipio": "Putinga", "uf": "RS", "capag": "A+", "ind1_endividamento": 0.0317008377, "nota1": "A", "ind2_poupanca": 0.9149853629, "nota2": "B", "ind3_liquidez": 0.0692264042, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0585159614, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4315305", "municipio": "Quaraí", "uf": "RS", "capag": "C", "ind1_endividamento": 0.001085419, "nota1": "A", "ind2_poupanca": 0.9679342038, "nota2": "C", "ind3_liquidez": 0.0336730579, "nota3": "B", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.3322250452, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4315313", "municipio": "Quatro Irmãos", "uf": "RS", "capag": "A+", "ind1_endividamento": 0.1467230997, "nota1": "A", "ind2_poupanca": 0.9152716423, "nota2": "B", "ind3_liquidez": 0.0663256383, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0794758939, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4315321", "municipio": "Quevedos", "uf": "RS", "capag": "n.d.", "ind1_endividamento": 0.0018468312, "nota1": "A", "ind2_poupanca": 4.8423099211, "nota2": "C", "ind3_liquidez": "n.d.", "nota3": "n.d.", "icf": "Cicf", "observacao": "Município declarou Obrigações Financeiras com valores negativos. Verifique as colunas Restos a Pagar Liquidados e Não Pagos de Exercícios Anteriores, Restos a Pagar Liquidados e Não Pagos do Exercício, Restos a Pagar Empenhados de Exercícios Anteriores e Demais Obrigações Financeiras da rubrica Total dos Recursos Não Vinculados extraídas do Anexo V do RGF.\n", "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": "n.d.", "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": "Sim", "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4315354", "municipio": "Quinze de Novembro", "uf": "RS", "capag": "B+", "ind1_endividamento": 0.1450407878, "nota1": "A", "ind2_poupanca": 0.8897828545, "nota2": "B", "ind3_liquidez": 0.0153177817, "nota3": "B", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.3689011125, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4315404", "municipio": "Redentora", "uf": "RS", "capag": "A", "ind1_endividamento": 0.0550641779, "nota1": "A", "ind2_poupanca": 0.8786609901, "nota2": "B", "ind3_liquidez": 0.1232092719, "nota3": "A", "icf": "Dicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0912160158, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4315453", "municipio": "Relvado", "uf": "RS", "capag": "A", "ind1_endividamento": 0.0402886634, "nota1": "A", "ind2_poupanca": 0.8803323315, "nota2": "B", "ind3_liquidez": 0.1321619978, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0173594675, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4315503", "municipio": "Restinga Sêca", "uf": "RS", "capag": "B", "ind1_endividamento": 0.1518272405, "nota1": "A", "ind2_poupanca": 0.8626869985, "nota2": "B", "ind3_liquidez": 0.0429092656, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.348567469, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4315552", "municipio": "Rio dos Índios", "uf": "RS", "capag": "A", "ind1_endividamento": 0.1676765836, "nota1": "A", "ind2_poupanca": 0.8134725459, "nota2": "A", "ind3_liquidez": 0.0631856355, "nota3": "A", "icf": "Dicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0808121149, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4315602", "municipio": "Rio Grande", "uf": "RS", "capag": "A+", "ind1_endividamento": 0.3025689278, "nota1": "A", "ind2_poupanca": 0.8125201745, "nota2": "A", "ind3_liquidez": 0.0795229609, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.2887171194, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4315701", "municipio": "Rio Pardo", "uf": "RS", "capag": "B+", "ind1_endividamento": 0.4528460092, "nota1": "A", "ind2_poupanca": 0.9155319906, "nota2": "B", "ind3_liquidez": 0.0064977249, "nota3": "B", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.8695818324, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4315750", "municipio": "Riozinho", "uf": "RS", "capag": "A", "ind1_endividamento": 0.192724959, "nota1": "A", "ind2_poupanca": 0.8434635266, "nota2": "A", "ind3_liquidez": 0.8704813939, "nota3": "A", "icf": "Dicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0295887586, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4315800", "municipio": "Roca Sales", "uf": "RS", "capag": "C", "ind1_endividamento": 0.0456974761, "nota1": "A", "ind2_poupanca": 0.8795983645, "nota2": "B", "ind3_liquidez": -0.0421483891, "nota3": "C", "icf": "Dicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 2.1831462049, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4315909", "municipio": "Rodeio Bonito", "uf": "RS", "capag": "A", "ind1_endividamento": 0.020609772, "nota1": "A", "ind2_poupanca": 0.8583501622, "nota2": "B", "ind3_liquidez": 0.1872858807, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0032634189, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4315958", "municipio": "Rolador", "uf": "RS", "capag": "B", "ind1_endividamento": 0.1015772061, "nota1": "A", "ind2_poupanca": 0.8540209941, "nota2": "B", "ind3_liquidez": 0.0458328336, "nota3": "B", "icf": "Cicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.041272918, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4316006", "municipio": "Rolante", "uf": "RS", "capag": "B", "ind1_endividamento": 0.2572416059, "nota1": "A", "ind2_poupanca": 0.8552102159, "nota2": "B", "ind3_liquidez": 0.0357101497, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.1503634297, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4316105", "municipio": "Ronda Alta", "uf": "RS", "capag": "A", "ind1_endividamento": 0.0948459615, "nota1": "A", "ind2_poupanca": 0.8490594525, "nota2": "A", "ind3_liquidez": 0.0555164368, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0666345485, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4316204", "municipio": "Rondinha", "uf": "RS", "capag": "A", "ind1_endividamento": 0.1035162607, "nota1": "A", "ind2_poupanca": 0.7827981324, "nota2": "A", "ind3_liquidez": 0.1980334377, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0262197371, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4316303", "municipio": "Roque Gonzales", "uf": "RS", "capag": "B", "ind1_endividamento": 0.1090133157, "nota1": "A", "ind2_poupanca": 0.9239450554, "nota2": "B", "ind3_liquidez": 0.0433360148, "nota3": "B", "icf": "Cicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.2564898199, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4316402", "municipio": "Rosário do Sul", "uf": "RS", "capag": "C", "ind1_endividamento": 0.4410463066, "nota1": "A", "ind2_poupanca": 0.8663485529, "nota2": "B", "ind3_liquidez": -0.0942973753, "nota3": "C", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 10.8058653088, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4316428", "municipio": "Sagrada Família", "uf": "RS", "capag": "A", "ind1_endividamento": 0.1540717427, "nota1": "A", "ind2_poupanca": 0.8289349012, "nota2": "A", "ind3_liquidez": 0.00117641, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.6663791591, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4316436", "municipio": "Saldanha Marinho", "uf": "RS", "capag": "C", "ind1_endividamento": 0.1199458601, "nota1": "A", "ind2_poupanca": 0.9013626177, "nota2": "B", "ind3_liquidez": -0.0736733477, "nota3": "C", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": null, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4316451", "municipio": "Salto do Jacuí", "uf": "RS", "capag": "B", "ind1_endividamento": 0.216642621, "nota1": "A", "ind2_poupanca": 0.8658601624, "nota2": "B", "ind3_liquidez": 0.0177865269, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0678205252, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4316477", "municipio": "Salvador das Missões", "uf": "RS", "capag": "A", "ind1_endividamento": 0, "nota1": "A", "ind2_poupanca": 0.9079813943, "nota2": "B", "ind3_liquidez": 0.0846366807, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0320087353, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4316501", "municipio": "Salvador do Sul", "uf": "RS", "capag": "A", "ind1_endividamento": 0.1674547378, "nota1": "A", "ind2_poupanca": 0.7810766888, "nota2": "A", "ind3_liquidez": 0.1198156462, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0300470598, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4316600", "municipio": "Sananduva", "uf": "RS", "capag": "B", "ind1_endividamento": 0.0675374919, "nota1": "A", "ind2_poupanca": 0.8594724681, "nota2": "B", "ind3_liquidez": 0.0031641747, "nota3": "B", "icf": "Dicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.797265553, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4316709", "municipio": "Santa Bárbara do Sul", "uf": "RS", "capag": "A", "ind1_endividamento": 0.1399923612, "nota1": "A", "ind2_poupanca": 0.8808817195, "nota2": "B", "ind3_liquidez": 0.1279843238, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0747422095, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4316733", "municipio": "Santa Cecília do Sul", "uf": "RS", "capag": "B", "ind1_endividamento": 0.13562292, "nota1": "A", "ind2_poupanca": 0.8908939841, "nota2": "B", "ind3_liquidez": 0.0137449621, "nota3": "B", "icf": "Cicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.3969351796, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4316758", "municipio": "Santa Clara do Sul", "uf": "RS", "capag": "A+", "ind1_endividamento": 0, "nota1": "A", "ind2_poupanca": 0.8900643794, "nota2": "B", "ind3_liquidez": 0.0647522742, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0629158, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4316808", "municipio": "Santa Cruz do Sul", "uf": "RS", "capag": "C", "ind1_endividamento": 0.2695361805, "nota1": "A", "ind2_poupanca": 0.9568065795, "nota2": "C", "ind3_liquidez": 0.0413723515, "nota3": "B", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.4915402372, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4316907", "municipio": "Santa Maria", "uf": "RS", "capag": "C", "ind1_endividamento": 0.1591597538, "nota1": "A", "ind2_poupanca": 0.9789750792, "nota2": "C", "ind3_liquidez": 0.0199390542, "nota3": "B", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.6990303623, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4316956", "municipio": "Santa Maria do Herval", "uf": "RS", "capag": "A", "ind1_endividamento": 0, "nota1": "A", "ind2_poupanca": 0.8618526838, "nota2": "B", "ind3_liquidez": 0.0563316355, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.2884813362, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4316972", "municipio": "Santa Margarida do Sul", "uf": "RS", "capag": "A", "ind1_endividamento": 0.11498682, "nota1": "A", "ind2_poupanca": 0.8578343109, "nota2": "B", "ind3_liquidez": 0.2474095713, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0215830678, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4317004", "municipio": "Santana da Boa Vista", "uf": "RS", "capag": "A+", "ind1_endividamento": 0, "nota1": "A", "ind2_poupanca": 0.8117216721, "nota2": "A", "ind3_liquidez": 0.1308943373, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.048990116, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4317103", "municipio": "Sant'Ana do Livramento", "uf": "RS", "capag": "B", "ind1_endividamento": 0.926464369, "nota1": "B", "ind2_poupanca": 0.8503356447, "nota2": "B", "ind3_liquidez": 0.1416382017, "nota3": "A", "icf": "Dicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.2005578058, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4317202", "municipio": "Santa Rosa", "uf": "RS", "capag": "A+", "ind1_endividamento": 0.3196178147, "nota1": "A", "ind2_poupanca": 0.8345099314, "nota2": "A", "ind3_liquidez": 0.1340781331, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.1083331256, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4317251", "municipio": "Santa Tereza", "uf": "RS", "capag": "A", "ind1_endividamento": 0, "nota1": "A", "ind2_poupanca": 0.9243754076, "nota2": "B", "ind3_liquidez": 0.1251258605, "nota3": "A", "icf": "Cicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.169465684, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4317301", "municipio": "Santa Vitória do Palmar", "uf": "RS", "capag": "A+", "ind1_endividamento": 0.230120573, "nota1": "A", "ind2_poupanca": 0.8445890045, "nota2": "A", "ind3_liquidez": 0.0589657161, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.2913205083, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4317400", "municipio": "Santiago", "uf": "RS", "capag": "A", "ind1_endividamento": 0.0742050988, "nota1": "A", "ind2_poupanca": 0.8758484189, "nota2": "B", "ind3_liquidez": 0.1478419891, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0787426797, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4317509", "municipio": "Santo Ângelo", "uf": "RS", "capag": "C", "ind1_endividamento": 0.2555457935, "nota1": "A", "ind2_poupanca": 0.9333095237, "nota2": "B", "ind3_liquidez": -0.0039062191, "nota3": "C", "icf": "Cicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 1.1296177451, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4317558", "municipio": "Santo Antônio do Palma", "uf": "RS", "capag": "C", "ind1_endividamento": 0.2642688818, "nota1": "A", "ind2_poupanca": 0.8350730541, "nota2": "A", "ind3_liquidez": 0, "nota3": "C", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": "n.d.", "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4317608", "municipio": "Santo Antônio da Patrulha", "uf": "RS", "capag": "B+", "ind1_endividamento": 0.1631423221, "nota1": "A", "ind2_poupanca": 0.8764399898, "nota2": "B", "ind3_liquidez": 0.0343694053, "nota3": "B", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.3888182871, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4317707", "municipio": "Santo Antônio das Missões", "uf": "RS", "capag": "B", "ind1_endividamento": 0.0910187336, "nota1": "A", "ind2_poupanca": 0.9314063171, "nota2": "B", "ind3_liquidez": 0.0275780732, "nota3": "B", "icf": "Cicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.3171092302, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4317756", "municipio": "Santo Antônio do Planalto", "uf": "RS", "capag": "A", "ind1_endividamento": 0.1778869475, "nota1": "A", "ind2_poupanca": 0.7829734407, "nota2": "A", "ind3_liquidez": 0.0950761358, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.264012451, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4317806", "municipio": "Santo Augusto", "uf": "RS", "capag": "A", "ind1_endividamento": 0.0269385271, "nota1": "A", "ind2_poupanca": 0.8116831869, "nota2": "A", "ind3_liquidez": 0.2171992479, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.049183954, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4317905", "municipio": "Santo Cristo", "uf": "RS", "capag": "A", "ind1_endividamento": 0, "nota1": "A", "ind2_poupanca": 0.7893970622, "nota2": "A", "ind3_liquidez": 0.1657585051, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.2196002133, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4317954", "municipio": "Santo Expedito do Sul", "uf": "RS", "capag": "B", "ind1_endividamento": 0.1118919509, "nota1": "A", "ind2_poupanca": 0.9316666012, "nota2": "B", "ind3_liquidez": 0.0458045616, "nota3": "B", "icf": "Cicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0657473019, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4318002", "municipio": "São Borja", "uf": "RS", "capag": "B+", "ind1_endividamento": 0.2219157325, "nota1": "A", "ind2_poupanca": 0.9003591851, "nota2": "B", "ind3_liquidez": 0.0430688376, "nota3": "B", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.1390034941, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4318051", "municipio": "São Domingos do Sul", "uf": "RS", "capag": "B", "ind1_endividamento": 0, "nota1": "A", "ind2_poupanca": 0.9146201967, "nota2": "B", "ind3_liquidez": 0.0338053972, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0480942085, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4318101", "municipio": "São Francisco de Assis", "uf": "RS", "capag": "B+", "ind1_endividamento": 0.3114347285, "nota1": "A", "ind2_poupanca": 0.9142379633, "nota2": "B", "ind3_liquidez": 0.0416236668, "nota3": "B", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.3040670149, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4318200", "municipio": "São Francisco de Paula", "uf": "RS", "capag": "n.d.", "ind1_endividamento": 0.1032898649, "nota1": "A", "ind2_poupanca": 0.8481970758, "nota2": "A", "ind3_liquidez": "n.d.", "nota3": "n.d.", "icf": "Bicf", "observacao": "Município declarou Obrigações Financeiras com valores negativos. Verifique as colunas Restos a Pagar Liquidados e Não Pagos de Exercícios Anteriores, Restos a Pagar Liquidados e Não Pagos do Exercício, Restos a Pagar Empenhados de Exercícios Anteriores e Demais Obrigações Financeiras da rubrica Total dos Recursos Não Vinculados extraídas do Anexo V do RGF.\n", "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": "n.d.", "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": "Sim", "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4318309", "municipio": "São Gabriel", "uf": "RS", "capag": "C", "ind1_endividamento": 0.3025167341, "nota1": "A", "ind2_poupanca": 0.9073541503, "nota2": "B", "ind3_liquidez": -0.0581438884, "nota3": "C", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 9.125458067, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4318408", "municipio": "São Jerônimo", "uf": "RS", "capag": "A", "ind1_endividamento": 0.0986430391, "nota1": "A", "ind2_poupanca": 0.8242864835, "nota2": "A", "ind3_liquidez": 0.1631214, "nota3": "A", "icf": "Cicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0502466728, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4318424", "municipio": "São João da Urtiga", "uf": "RS", "capag": "B", "ind1_endividamento": 0.0089243976, "nota1": "A", "ind2_poupanca": 0.8715300757, "nota2": "B", "ind3_liquidez": 0.025547427, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4318432", "municipio": "São João do Polêsine", "uf": "RS", "capag": "A", "ind1_endividamento": 0.0210662821, "nota1": "A", "ind2_poupanca": 0.7767370391, "nota2": "A", "ind3_liquidez": 0.0880267931, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.137024861, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4318440", "municipio": "São Jorge", "uf": "RS", "capag": "A+", "ind1_endividamento": 0.1118542494, "nota1": "A", "ind2_poupanca": 0.8432686859, "nota2": "A", "ind3_liquidez": 0.1157546471, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0143263157, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4318457", "municipio": "São José das Missões", "uf": "RS", "capag": "B", "ind1_endividamento": 0.0570364076, "nota1": "A", "ind2_poupanca": 0.9431762265, "nota2": "B", "ind3_liquidez": 0.0073428052, "nota3": "B", "icf": "Cicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.6669770581, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4318465", "municipio": "São José do Herval", "uf": "RS", "capag": "A+", "ind1_endividamento": 0.0340503338, "nota1": "A", "ind2_poupanca": 0.8831709196, "nota2": "B", "ind3_liquidez": 0.051005201, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0709908421, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4318481", "municipio": "São José do Hortêncio", "uf": "RS", "capag": "A", "ind1_endividamento": 0, "nota1": "A", "ind2_poupanca": 0.8335275556, "nota2": "A", "ind3_liquidez": 0.0387481974, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0673895422, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4318499", "municipio": "São José do Inhacorá", "uf": "RS", "capag": "A", "ind1_endividamento": 0.0130069158, "nota1": "A", "ind2_poupanca": 0.7888357524, "nota2": "A", "ind3_liquidez": 0.1082892027, "nota3": "A", "icf": "Cicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0451840896, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4318507", "municipio": "São José do Norte", "uf": "RS", "capag": "A+", "ind1_endividamento": 0.0912853134, "nota1": "A", "ind2_poupanca": 0.9456235523, "nota2": "B", "ind3_liquidez": 0.0544203707, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0620687143, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4318606", "municipio": "São José do Ouro", "uf": "RS", "capag": "C", "ind1_endividamento": 0.1869720605, "nota1": "A", "ind2_poupanca": 0.8797122983, "nota2": "B", "ind3_liquidez": 0, "nota3": "C", "icf": "Cicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": "n.d.", "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4318614", "municipio": "São José do Sul", "uf": "RS", "capag": "A", "ind1_endividamento": 0.058298452, "nota1": "A", "ind2_poupanca": 0.804140644, "nota2": "A", "ind3_liquidez": 0.1390582446, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0421850146, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4318622", "municipio": "São José dos Ausentes", "uf": "RS", "capag": "n.d.", "ind1_endividamento": 0.0521063227, "nota1": "A", "ind2_poupanca": 0.7222263221, "nota2": "A", "ind3_liquidez": "n.d.", "nota3": "n.d.", "icf": "Bicf", "observacao": "Município declarou Obrigações Financeiras com valores negativos. Verifique as colunas Restos a Pagar Liquidados e Não Pagos de Exercícios Anteriores, Restos a Pagar Liquidados e Não Pagos do Exercício, Restos a Pagar Empenhados de Exercícios Anteriores e Demais Obrigações Financeiras da rubrica Total dos Recursos Não Vinculados extraídas do Anexo V do RGF.\n", "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": "n.d.", "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": "Sim", "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4318705", "municipio": "São Leopoldo", "uf": "RS", "capag": "C", "ind1_endividamento": 0.5190020742, "nota1": "A", "ind2_poupanca": 0.908125391, "nota2": "B", "ind3_liquidez": -0.0152857403, "nota3": "C", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 3.1098396641, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4318804", "municipio": "São Lourenço do Sul", "uf": "RS", "capag": "B", "ind1_endividamento": 0.4393244269, "nota1": "A", "ind2_poupanca": 0.8860597033, "nota2": "B", "ind3_liquidez": 0.0353648859, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.3310057636, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4318903", "municipio": "São Luiz Gonzaga", "uf": "RS", "capag": "A", "ind1_endividamento": 0.1235365842, "nota1": "A", "ind2_poupanca": 0.8496300568, "nota2": "A", "ind3_liquidez": 0.0957100465, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.1824563551, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4319000", "municipio": "São Marcos", "uf": "RS", "capag": "A", "ind1_endividamento": 0, "nota1": "A", "ind2_poupanca": 0.7462434202, "nota2": "A", "ind3_liquidez": 0.2703093532, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0175894946, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4319109", "municipio": "São Martinho", "uf": "RS", "capag": "A", "ind1_endividamento": 0.1323342206, "nota1": "A", "ind2_poupanca": 0.8489907965, "nota2": "A", "ind3_liquidez": 0.0703658045, "nota3": "A", "icf": "Cicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.2630980411, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4319125", "municipio": "São Martinho da Serra", "uf": "RS", "capag": "A", "ind1_endividamento": 0.0244578296, "nota1": "A", "ind2_poupanca": 0.9121951115, "nota2": "B", "ind3_liquidez": 0.1978639498, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.1197087026, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4319158", "municipio": "São Miguel das Missões", "uf": "RS", "capag": "A", "ind1_endividamento": 0.0198356423, "nota1": "A", "ind2_poupanca": 0.871509919, "nota2": "B", "ind3_liquidez": 0.1974266245, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0383315656, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4319208", "municipio": "São Nicolau", "uf": "RS", "capag": "B", "ind1_endividamento": 0.1841967232, "nota1": "A", "ind2_poupanca": 0.908673877, "nota2": "B", "ind3_liquidez": 0.0113087677, "nota3": "B", "icf": "Dicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.4336804302, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4319307", "municipio": "São Paulo das Missões", "uf": "RS", "capag": "B", "ind1_endividamento": 0, "nota1": "A", "ind2_poupanca": 0.9341318814, "nota2": "B", "ind3_liquidez": 0.0186334592, "nota3": "B", "icf": "Cicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.6507710592, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4319356", "municipio": "São Pedro da Serra", "uf": "RS", "capag": "A", "ind1_endividamento": 0, "nota1": "A", "ind2_poupanca": 0.7367628981, "nota2": "A", "ind3_liquidez": 0.2259701808, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0459747855, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4319364", "municipio": "São Pedro das Missões", "uf": "RS", "capag": "A", "ind1_endividamento": 0, "nota1": "A", "ind2_poupanca": 0.8537147214, "nota2": "B", "ind3_liquidez": 0.0562889216, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4319372", "municipio": "São Pedro do Butiá", "uf": "RS", "capag": "A", "ind1_endividamento": 0, "nota1": "A", "ind2_poupanca": 0.8109674571, "nota2": "A", "ind3_liquidez": 0.1260588681, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0262367735, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4319406", "municipio": "São Pedro do Sul", "uf": "RS", "capag": "C", "ind1_endividamento": 0.0443993946, "nota1": "A", "ind2_poupanca": 0.9644062544, "nota2": "C", "ind3_liquidez": 0.0324089667, "nota3": "B", "icf": "Cicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.2585441716, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4319505", "municipio": "São Sebastião do Caí", "uf": "RS", "capag": "A", "ind1_endividamento": 0.1370186838, "nota1": "A", "ind2_poupanca": 0.8319710854, "nota2": "A", "ind3_liquidez": 0.0174554072, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.4127919868, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4319604", "municipio": "São Sepé", "uf": "RS", "capag": "C", "ind1_endividamento": 0, "nota1": "A", "ind2_poupanca": 1.0143251422, "nota2": "C", "ind3_liquidez": 0.0273558235, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.1743217359, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4319703", "municipio": "São Valentim", "uf": "RS", "capag": "A", "ind1_endividamento": 0.0773432862, "nota1": "A", "ind2_poupanca": 0.869131936, "nota2": "B", "ind3_liquidez": 0.0673150382, "nota3": "A", "icf": "Dicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0135973695, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4319711", "municipio": "São Valentim do Sul", "uf": "RS", "capag": "A+", "ind1_endividamento": 0, "nota1": "A", "ind2_poupanca": 0.7864800779, "nota2": "A", "ind3_liquidez": 0.1796093813, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.024560733, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4319737", "municipio": "São Valério do Sul", "uf": "RS", "capag": "A", "ind1_endividamento": 0.0269180236, "nota1": "A", "ind2_poupanca": 0.807037202, "nota2": "A", "ind3_liquidez": 0.079560576, "nota3": "A", "icf": "Cicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.1681870096, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4319752", "municipio": "São Vendelino", "uf": "RS", "capag": "A", "ind1_endividamento": 0.1231348751, "nota1": "A", "ind2_poupanca": 0.7117495151, "nota2": "A", "ind3_liquidez": 0.0438299791, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.3134574419, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4319802", "municipio": "São Vicente do Sul", "uf": "RS", "capag": "A", "ind1_endividamento": 0.0895430216, "nota1": "A", "ind2_poupanca": 0.852917635, "nota2": "B", "ind3_liquidez": 0.148765885, "nota3": "A", "icf": "Cicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0111062922, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4319901", "municipio": "Sapiranga", "uf": "RS", "capag": "A", "ind1_endividamento": 0.2113530059, "nota1": "A", "ind2_poupanca": 0.7935863279, "nota2": "A", "ind3_liquidez": 0.1614975849, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.062451036, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4320008", "municipio": "Sapucaia do Sul", "uf": "RS", "capag": "B", "ind1_endividamento": 0.2220872146, "nota1": "A", "ind2_poupanca": 0.8789082869, "nota2": "B", "ind3_liquidez": 0.009036849, "nota3": "B", "icf": "Cicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.683994925, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4320107", "municipio": "Sarandi", "uf": "RS", "capag": "B+", "ind1_endividamento": 0.1559596702, "nota1": "A", "ind2_poupanca": 0.8557077381, "nota2": "B", "ind3_liquidez": 0.0469766953, "nota3": "B", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.1112872603, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4320206", "municipio": "Seberi", "uf": "RS", "capag": "C", "ind1_endividamento": 0.2004874305, "nota1": "A", "ind2_poupanca": 0.8783691297, "nota2": "B", "ind3_liquidez": -0.0066741893, "nota3": "C", "icf": "Cicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": null, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4320230", "municipio": "Sede Nova", "uf": "RS", "capag": "A+", "ind1_endividamento": 0.0816473885, "nota1": "A", "ind2_poupanca": 0.8085282538, "nota2": "A", "ind3_liquidez": 0.1933583223, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0670104056, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4320263", "municipio": "Segredo", "uf": "RS", "capag": "B", "ind1_endividamento": 0.0036676943, "nota1": "A", "ind2_poupanca": 0.8862404051, "nota2": "B", "ind3_liquidez": 0.0340588737, "nota3": "B", "icf": "Cicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.1060671236, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4320305", "municipio": "Selbach", "uf": "RS", "capag": "A+", "ind1_endividamento": 0.0874880412, "nota1": "A", "ind2_poupanca": 0.7790720794, "nota2": "A", "ind3_liquidez": 0.138691035, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0250645328, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4320321", "municipio": "Senador Salgado Filho", "uf": "RS", "capag": "A+", "ind1_endividamento": 0, "nota1": "A", "ind2_poupanca": 0.8642875206, "nota2": "B", "ind3_liquidez": 0.1225284081, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0165716415, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4320354", "municipio": "Sentinela do Sul", "uf": "RS", "capag": "A+", "ind1_endividamento": 0, "nota1": "A", "ind2_poupanca": 0.8767667562, "nota2": "B", "ind3_liquidez": 0.1768559446, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0656275987, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4320404", "municipio": "Serafina Corrêa", "uf": "RS", "capag": "A", "ind1_endividamento": 0.0917352345, "nota1": "A", "ind2_poupanca": 0.8274841822, "nota2": "A", "ind3_liquidez": 0.0254870191, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.1497401703, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4320453", "municipio": "Sério", "uf": "RS", "capag": "A", "ind1_endividamento": 0.0668334063, "nota1": "A", "ind2_poupanca": 0.8804990201, "nota2": "B", "ind3_liquidez": 0.1249294278, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0597208943, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4320503", "municipio": "Sertão", "uf": "RS", "capag": "B", "ind1_endividamento": 0.2823260719, "nota1": "A", "ind2_poupanca": 0.8883728507, "nota2": "B", "ind3_liquidez": 0.0452543664, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.2576863313, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4320552", "municipio": "Sertão Santana", "uf": "RS", "capag": "A", "ind1_endividamento": 0, "nota1": "A", "ind2_poupanca": 0.8355747496, "nota2": "A", "ind3_liquidez": 0.0175541611, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.3991187604, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4320578", "municipio": "Sete de Setembro", "uf": "RS", "capag": "A", "ind1_endividamento": 0.062257129, "nota1": "A", "ind2_poupanca": 0.8057972255, "nota2": "A", "ind3_liquidez": 0.1025422094, "nota3": "A", "icf": "Cicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.1310676583, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4320602", "municipio": "Severiano de Almeida", "uf": "RS", "capag": "A+", "ind1_endividamento": 0.0582928748, "nota1": "A", "ind2_poupanca": 0.7967770625, "nota2": "A", "ind3_liquidez": 0.105956523, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0446568943, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4320651", "municipio": "Silveira Martins", "uf": "RS", "capag": "A+", "ind1_endividamento": 0, "nota1": "A", "ind2_poupanca": 0.6904122868, "nota2": "A", "ind3_liquidez": 0.1554377911, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0242615605, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4320677", "municipio": "Sinimbu", "uf": "RS", "capag": "A+", "ind1_endividamento": 0.0780040958, "nota1": "A", "ind2_poupanca": 0.9256479964, "nota2": "B", "ind3_liquidez": 0.1491113108, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0893814387, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4320701", "municipio": "Sobradinho", "uf": "RS", "capag": "C", "ind1_endividamento": 0.0996672104, "nota1": "A", "ind2_poupanca": 0.8976110515, "nota2": "B", "ind3_liquidez": -0.0300274939, "nota3": "C", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": null, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4320800", "municipio": "Soledade", "uf": "RS", "capag": "A", "ind1_endividamento": 0.1360383194, "nota1": "A", "ind2_poupanca": 0.9169454435, "nota2": "B", "ind3_liquidez": 0.0612668689, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.1204648777, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4320859", "municipio": "Tabaí", "uf": "RS", "capag": "B", "ind1_endividamento": 0.1898617386, "nota1": "A", "ind2_poupanca": 0.9417316378, "nota2": "B", "ind3_liquidez": 0.0339019686, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.5749098956, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4320909", "municipio": "Tapejara", "uf": "RS", "capag": "A", "ind1_endividamento": 0.1534907487, "nota1": "A", "ind2_poupanca": 0.835588267, "nota2": "A", "ind3_liquidez": 0.0596749763, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.2213766598, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4321006", "municipio": "Tapera", "uf": "RS", "capag": "A", "ind1_endividamento": 0.1357820335, "nota1": "A", "ind2_poupanca": 0.8592846272, "nota2": "B", "ind3_liquidez": 0.0829524683, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0233051971, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4321105", "municipio": "Tapes", "uf": "RS", "capag": "A+", "ind1_endividamento": 0.1017927402, "nota1": "A", "ind2_poupanca": 0.8474640877, "nota2": "A", "ind3_liquidez": 0.0427460137, "nota3": "B", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.2529200822, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4321204", "municipio": "Taquara", "uf": "RS", "capag": "B", "ind1_endividamento": 0.2389972931, "nota1": "A", "ind2_poupanca": 0.8662880991, "nota2": "B", "ind3_liquidez": 0.0065623086, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.8008787762, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4321303", "municipio": "Taquari", "uf": "RS", "capag": "B", "ind1_endividamento": 0.3038908328, "nota1": "A", "ind2_poupanca": 0.8743174399, "nota2": "B", "ind3_liquidez": 0.0406379825, "nota3": "B", "icf": "Cicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0222442607, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4321329", "municipio": "Taquaruçu do Sul", "uf": "RS", "capag": "A", "ind1_endividamento": 0.0692881857, "nota1": "A", "ind2_poupanca": 0.884153556, "nota2": "B", "ind3_liquidez": 0.1281378253, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0791486182, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4321352", "municipio": "Tavares", "uf": "RS", "capag": "A+", "ind1_endividamento": 0.1538789168, "nota1": "A", "ind2_poupanca": 0.8866597577, "nota2": "B", "ind3_liquidez": 0.1490507123, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0589157433, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4321402", "municipio": "Tenente Portela", "uf": "RS", "capag": "n.d.", "ind1_endividamento": 0.12781026, "nota1": "A", "ind2_poupanca": 0.8570266468, "nota2": "B", "ind3_liquidez": "n.d.", "nota3": "n.d.", "icf": "Bicf", "observacao": "Município declarou Obrigações Financeiras com valores negativos. Verifique as colunas Restos a Pagar Liquidados e Não Pagos de Exercícios Anteriores, Restos a Pagar Liquidados e Não Pagos do Exercício, Restos a Pagar Empenhados de Exercícios Anteriores e Demais Obrigações Financeiras da rubrica Total dos Recursos Não Vinculados extraídas do Anexo V do RGF.\n", "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": "n.d.", "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": "Sim", "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4321436", "municipio": "Terra de Areia", "uf": "RS", "capag": "A", "ind1_endividamento": 0.2628604766, "nota1": "A", "ind2_poupanca": 0.8511824476, "nota2": "B", "ind3_liquidez": 0.0524598632, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.2751407137, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4321451", "municipio": "Teutônia", "uf": "RS", "capag": "B", "ind1_endividamento": 0.0995124745, "nota1": "A", "ind2_poupanca": 0.8661153327, "nota2": "B", "ind3_liquidez": 0.0210365644, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.205562525, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4321469", "municipio": "Tio Hugo", "uf": "RS", "capag": "A", "ind1_endividamento": 0.1223050655, "nota1": "A", "ind2_poupanca": 0.8935463534, "nota2": "B", "ind3_liquidez": 0.1025462477, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0158139636, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4321477", "municipio": "Tiradentes do Sul", "uf": "RS", "capag": "A", "ind1_endividamento": 0.0665120993, "nota1": "A", "ind2_poupanca": 0.8987884816, "nota2": "B", "ind3_liquidez": 0.0631808357, "nota3": "A", "icf": "Cicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0341028892, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4321493", "municipio": "Toropi", "uf": "RS", "capag": "B", "ind1_endividamento": 0, "nota1": "A", "ind2_poupanca": 0.8666954045, "nota2": "B", "ind3_liquidez": 0.0267352559, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.1608917897, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4321501", "municipio": "Torres", "uf": "RS", "capag": "A+", "ind1_endividamento": 0.096832186, "nota1": "A", "ind2_poupanca": 0.7795222798, "nota2": "A", "ind3_liquidez": 0.0647304099, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.5231109989, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4321600", "municipio": "Tramandaí", "uf": "RS", "capag": "A", "ind1_endividamento": 0.281905491, "nota1": "A", "ind2_poupanca": 0.840839712, "nota2": "A", "ind3_liquidez": 0.0109181553, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.4423206649, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4321626", "municipio": "Travesseiro", "uf": "RS", "capag": "C", "ind1_endividamento": 0.0510290574, "nota1": "A", "ind2_poupanca": 0.967279115, "nota2": "C", "ind3_liquidez": 0.1282117051, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.1319203783, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4321634", "municipio": "Três Arroios", "uf": "RS", "capag": "A", "ind1_endividamento": 0.1087410308, "nota1": "A", "ind2_poupanca": 0.7811641779, "nota2": "A", "ind3_liquidez": 0.0914229781, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0205618691, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4321667", "municipio": "Três Cachoeiras", "uf": "RS", "capag": "B", "ind1_endividamento": 0.172217425, "nota1": "A", "ind2_poupanca": 0.9470212469, "nota2": "B", "ind3_liquidez": 0.035957043, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4321709", "municipio": "Três Coroas", "uf": "RS", "capag": "B+", "ind1_endividamento": 0.1063596212, "nota1": "A", "ind2_poupanca": 0.8632736438, "nota2": "B", "ind3_liquidez": 0.0426000607, "nota3": "B", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.1655701111, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4321808", "municipio": "Três de Maio", "uf": "RS", "capag": "A", "ind1_endividamento": 0.2780678864, "nota1": "A", "ind2_poupanca": 0.9125283845, "nota2": "B", "ind3_liquidez": 0.1074586533, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.1039923874, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4321832", "municipio": "Três Forquilhas", "uf": "RS", "capag": "C", "ind1_endividamento": 0.1205300534, "nota1": "A", "ind2_poupanca": 1.6003980414, "nota2": "C", "ind3_liquidez": 0.0014406086, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.8025518072, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4321857", "municipio": "Três Palmeiras", "uf": "RS", "capag": "B", "ind1_endividamento": 0.2889639957, "nota1": "A", "ind2_poupanca": 0.8759026971, "nota2": "B", "ind3_liquidez": 0.0137072164, "nota3": "B", "icf": "Dicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.3344950957, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4321907", "municipio": "Três Passos", "uf": "RS", "capag": "A", "ind1_endividamento": 0, "nota1": "A", "ind2_poupanca": 0.8719097997, "nota2": "B", "ind3_liquidez": 0.1459130729, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0444674247, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4321956", "municipio": "Trindade do Sul", "uf": "RS", "capag": "A", "ind1_endividamento": 0.1659844855, "nota1": "A", "ind2_poupanca": 0.8454234051, "nota2": "A", "ind3_liquidez": 0.00800012, "nota3": "B", "icf": "Cicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0975940993, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4322004", "municipio": "Triunfo", "uf": "RS", "capag": "C", "ind1_endividamento": 0.6263150539, "nota1": "B", "ind2_poupanca": 0.8694460847, "nota2": "B", "ind3_liquidez": -0.0592217268, "nota3": "C", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 5.6912145991, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4322103", "municipio": "Tucunduva", "uf": "RS", "capag": "B", "ind1_endividamento": 0.1973663105, "nota1": "A", "ind2_poupanca": 0.9144430393, "nota2": "B", "ind3_liquidez": 0.0348818489, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0170655084, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4322152", "municipio": "Tunas", "uf": "RS", "capag": "C", "ind1_endividamento": 0.3842428165, "nota1": "A", "ind2_poupanca": 0.7580803547, "nota2": "A", "ind3_liquidez": -0.0135481913, "nota3": "C", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 1.9900102778, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4322186", "municipio": "Tupanci do Sul", "uf": "RS", "capag": "B", "ind1_endividamento": 0.0852061128, "nota1": "A", "ind2_poupanca": 0.9273041841, "nota2": "B", "ind3_liquidez": 0.0330376318, "nota3": "B", "icf": "Dicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.2107025417, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4322202", "municipio": "Tupanciretã", "uf": "RS", "capag": "A+", "ind1_endividamento": 0.0247027758, "nota1": "A", "ind2_poupanca": 0.809893567, "nota2": "A", "ind3_liquidez": 0.2322647333, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0600017905, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4322251", "municipio": "Tupandi", "uf": "RS", "capag": "A", "ind1_endividamento": 0, "nota1": "A", "ind2_poupanca": 0.8260733455, "nota2": "A", "ind3_liquidez": 0.0552592736, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.063400662, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4322301", "municipio": "Tuparendi", "uf": "RS", "capag": "A", "ind1_endividamento": 0.1901125823, "nota1": "A", "ind2_poupanca": 0.7732250448, "nota2": "A", "ind3_liquidez": 0.0584861651, "nota3": "A", "icf": "Dicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0385899836, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4322327", "municipio": "Turuçu", "uf": "RS", "capag": "C", "ind1_endividamento": 0, "nota1": "A", "ind2_poupanca": 0.9636779849, "nota2": "C", "ind3_liquidez": 0.0781684029, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.1358623362, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4322343", "municipio": "Ubiretama", "uf": "RS", "capag": "A", "ind1_endividamento": 0.0067686449, "nota1": "A", "ind2_poupanca": 0.8028648305, "nota2": "A", "ind3_liquidez": 0.053406024, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.1069616429, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4322350", "municipio": "União da Serra", "uf": "RS", "capag": "A+", "ind1_endividamento": 0, "nota1": "A", "ind2_poupanca": 0.8195371169, "nota2": "A", "ind3_liquidez": 0.1551073805, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.005417356, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4322376", "municipio": "Unistalda", "uf": "RS", "capag": "A", "ind1_endividamento": 0, "nota1": "A", "ind2_poupanca": 0.7595671665, "nota2": "A", "ind3_liquidez": 0.6418426802, "nota3": "A", "icf": "Cicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0006190667, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4322400", "municipio": "Uruguaiana", "uf": "RS", "capag": "B+", "ind1_endividamento": 0.4784070863, "nota1": "A", "ind2_poupanca": 0.932682151, "nota2": "B", "ind3_liquidez": 0.0331561602, "nota3": "B", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.3177688322, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4322509", "municipio": "Vacaria", "uf": "RS", "capag": "C", "ind1_endividamento": 0.1087342913, "nota1": "A", "ind2_poupanca": 5.0674754992, "nota2": "C", "ind3_liquidez": 0.0163809244, "nota3": "B", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.4310306358, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4322525", "municipio": "Vale Verde", "uf": "RS", "capag": "A", "ind1_endividamento": 0.0911785821, "nota1": "A", "ind2_poupanca": 0.8407725669, "nota2": "A", "ind3_liquidez": 0.0627223306, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0677180974, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4322533", "municipio": "Vale do Sol", "uf": "RS", "capag": "B+", "ind1_endividamento": 0.0480401911, "nota1": "A", "ind2_poupanca": 0.8756488298, "nota2": "B", "ind3_liquidez": 0.0456223291, "nota3": "B", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0876879132, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4322541", "municipio": "Vale Real", "uf": "RS", "capag": "B", "ind1_endividamento": 0.179359042, "nota1": "A", "ind2_poupanca": 0.8598837451, "nota2": "B", "ind3_liquidez": 0.0343168611, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.1405498803, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4322558", "municipio": "Vanini", "uf": "RS", "capag": "A+", "ind1_endividamento": 0.1708513581, "nota1": "A", "ind2_poupanca": 0.8632846477, "nota2": "B", "ind3_liquidez": 0.1208995381, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0138135297, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4322608", "municipio": "Venâncio Aires", "uf": "RS", "capag": "A+", "ind1_endividamento": 0.1998875509, "nota1": "A", "ind2_poupanca": 0.8722700388, "nota2": "B", "ind3_liquidez": 0.1045974402, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0696101823, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4322707", "municipio": "Vera Cruz", "uf": "RS", "capag": "A+", "ind1_endividamento": 0.0740783007, "nota1": "A", "ind2_poupanca": 0.878879633, "nota2": "B", "ind3_liquidez": 0.1161048668, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0438475942, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4322806", "municipio": "Veranópolis", "uf": "RS", "capag": "A", "ind1_endividamento": 0.0272829658, "nota1": "A", "ind2_poupanca": 0.8626257676, "nota2": "B", "ind3_liquidez": 0.0831112539, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.3269300822, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4322855", "municipio": "Vespasiano Corrêa", "uf": "RS", "capag": "C", "ind1_endividamento": 0, "nota1": "A", "ind2_poupanca": 0.9693844421, "nota2": "C", "ind3_liquidez": 0.0159337863, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.550828229, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4322905", "municipio": "Viadutos", "uf": "RS", "capag": "A+", "ind1_endividamento": 0.0315374822, "nota1": "A", "ind2_poupanca": 0.7909285248, "nota2": "A", "ind3_liquidez": 0.1121399826, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.1273976941, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4323002", "municipio": "Viamão", "uf": "RS", "capag": "C", "ind1_endividamento": 0.3618892193, "nota1": "A", "ind2_poupanca": 0.9269290247, "nota2": "B", "ind3_liquidez": -0.0044829795, "nota3": "C", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": null, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4323101", "municipio": "Vicente Dutra", "uf": "RS", "capag": "A", "ind1_endividamento": 0.0571084743, "nota1": "A", "ind2_poupanca": 0.8715149142, "nota2": "B", "ind3_liquidez": 0.0895058392, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.1588441602, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4323200", "municipio": "Victor Graeff", "uf": "RS", "capag": "A", "ind1_endividamento": 0.1107262183, "nota1": "A", "ind2_poupanca": 0.7915040063, "nota2": "A", "ind3_liquidez": 0.1352595531, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0965254123, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4323309", "municipio": "Vila Flores", "uf": "RS", "capag": "C", "ind1_endividamento": 0.0677126346, "nota1": "A", "ind2_poupanca": 1.1222229725, "nota2": "C", "ind3_liquidez": 0.0940458769, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0727668184, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4323358", "municipio": "Vila Lângaro", "uf": "RS", "capag": "A", "ind1_endividamento": 0.0942786849, "nota1": "A", "ind2_poupanca": 0.7563282975, "nota2": "A", "ind3_liquidez": 0.0885726442, "nota3": "A", "icf": "Cicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0429691811, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4323408", "municipio": "Vila Maria", "uf": "RS", "capag": "A+", "ind1_endividamento": 0.124533602, "nota1": "A", "ind2_poupanca": 0.8312285809, "nota2": "A", "ind3_liquidez": 0.0426471621, "nota3": "B", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.031264262, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4323457", "municipio": "Vila Nova do Sul", "uf": "RS", "capag": "A+", "ind1_endividamento": 0.0274256942, "nota1": "A", "ind2_poupanca": 0.8411458018, "nota2": "A", "ind3_liquidez": 0.1504509464, "nota3": "A", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0116193332, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4323507", "municipio": "Vista Alegre", "uf": "RS", "capag": "A", "ind1_endividamento": 0.047940503, "nota1": "A", "ind2_poupanca": 0.9092869386, "nota2": "B", "ind3_liquidez": 0.052598432, "nota3": "A", "icf": "Cicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0266405936, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4323606", "municipio": "Vista Alegre do Prata", "uf": "RS", "capag": "A", "ind1_endividamento": 0, "nota1": "A", "ind2_poupanca": 0.8525527293, "nota2": "B", "ind3_liquidez": 0.1509952201, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.105942365, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4323705", "municipio": "Vista Gaúcha", "uf": "RS", "capag": "A", "ind1_endividamento": 0.154549204, "nota1": "A", "ind2_poupanca": 0.8295678279, "nota2": "A", "ind3_liquidez": 0.0426401185, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4323754", "municipio": "Vitória das Missões", "uf": "RS", "capag": "C", "ind1_endividamento": 0.1559353975, "nota1": "A", "ind2_poupanca": 7.710271129, "nota2": "C", "ind3_liquidez": -0.0637715269, "nota3": "C", "icf": "Aicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 3.6692640076, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4323770", "municipio": "Westfália", "uf": "RS", "capag": "A", "ind1_endividamento": 0.0132316385, "nota1": "A", "ind2_poupanca": 0.8418788159, "nota2": "A", "ind3_liquidez": 0.2122292371, "nota3": "A", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.0921374564, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}, {"cod_ibge": "4323804", "municipio": "Xangri-lá", "uf": "RS", "capag": "B", "ind1_endividamento": 0.1722537645, "nota1": "A", "ind2_poupanca": 0.8646834562, "nota2": "B", "ind3_liquidez": 0.0086070729, "nota3": "B", "icf": "Bicf", "observacao": null, "origem_nota": "CAPAG Ano Base 2024", "possui_dca_2024": "Sim", "ind3_antigo": 0.6296146996, "possui_dca_2023": "Sim", "capag_rebaixada": null, "deducao_negativa": null, "dcb_zerada_negativa": null, "of_negativa": null, "publicou_rgf": "Sim", "publicou_rreo": "Sim"}] \ No newline at end of file diff --git a/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/data/source/centroids_rs.json b/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/data/source/centroids_rs.json new file mode 100644 index 0000000..cf237ab --- /dev/null +++ b/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/data/source/centroids_rs.json @@ -0,0 +1 @@ +{"4300034": [-31.8665, -54.1615], "4300059": [-28.1672, -52.031], "4300109": [-29.6447, -53.2515], "4300208": [-28.2342, -53.7757], "4300307": [-27.6579, -54.7649], "4300406": [-29.7902, -55.7949], "4300455": [-27.8345, -54.0557], "4300471": [-28.1149, -52.9142], "4300505": [-27.2502, -53.0341], "4300554": [-28.7769, -52.9893], "4300570": [-29.3919, -51.3123], "4300604": [-29.9914, -51.0809], "4300638": [-30.8756, -52.2509], "4300646": [-27.3607, -53.183], "4300661": [-28.6283, -51.5797], "4300703": [-28.9698, -52.0102], "4300802": [-28.8565, -51.2883], "4300851": [-30.9092, -51.5046], "4300877": [-29.6168, -50.9291], "4300901": [-27.3978, -52.2975], "4301008": [-29.4014, -51.9557], "4301057": [-29.5439, -49.8895], "4301073": [-31.4389, -52.4246], "4301107": [-30.0875, -51.7275], "4301206": [-29.3348, -53.0966], "4301305": [-32.2327, -53.0862], "4301404": [-28.8737, -52.1781], "4301503": [-28.5172, -53.9883], "4301552": [-27.6936, -52.0505], "4301602": [-31.3297, -54.0999], "4301636": [-30.2419, -50.2337], "4301651": [-29.3725, -51.4949], "4301701": [-27.6208, -52.3798], "4301750": [-30.3891, -51.7384], "4301800": [-27.6739, -51.4585], "4301859": [-27.1927, -53.7109], "4301875": [-30.2029, -57.5497], "4301909": [-30.2939, -51.3014], "4301925": [-27.4069, -52.4084], "4301958": [-27.9205, -53.0391], "4302006": [-29.0947, -52.5836], "4302055": [-27.5086, -52.5995], "4302105": [-29.1662, -51.5165], "4302154": [-27.6671, -53.3102], "4302204": [-27.6693, -54.1082], "4302220": [-28.5791, -53.8108], "4302238": [-28.8185, -53.391], "4302253": [-29.3544, -51.6687], "4302303": [-28.6697, -50.4295], "4302352": [-29.4856, -51.3548], "4302378": [-27.5399, -53.8716], "4302402": [-29.6071, -51.9456], "4302451": [-29.3046, -52.4284], "4302501": [-28.7291, -54.9035], "4302584": [-28.3659, -53.772], "4302600": [-27.6173, -53.7405], "4302659": [-29.5501, -51.5945], "4302709": [-30.1179, -51.9601], "4302808": [-30.5144, -53.4827], "4302907": [-29.8883, -54.822], "4303004": [-30.033, -52.8928], "4303103": [-29.9472, -51.1016], "4303202": [-27.767, -51.6597], "4303301": [-28.2905, -54.6454], "4303400": [-27.2791, -53.4257], "4303509": [-30.8489, -51.8043], "4303558": [-28.588, -52.2003], "4303608": [-29.0474, -50.1465], "4303673": [-28.7926, -51.0941], "4303707": [-27.9888, -54.8416], "4303806": [-27.7174, -52.6248], "4303905": [-29.6747, -51.0606], "4304002": [-27.6792, -53.8052], "4304101": [-28.8871, -53.0008], "4304200": [-29.6684, -52.7895], "4304309": [-27.9515, -54.7517], "4304358": [-31.5516, -53.6773], "4304408": [-29.356, -50.8119], "4304507": [-31.396, -52.6783], "4304606": [-29.9128, -51.1857], "4304614": [-29.3271, -52.2374], "4304622": [-28.1254, -51.3961], "4304630": [-29.7642, -50.0282], "4304655": [-28.9312, -54.5558], "4304663": [-31.7565, -52.4889], "4304671": [-30.1383, -50.5152], "4304689": [-29.6961, -51.328], "4304697": [-29.2674, -51.9853], "4304705": [-28.2958, -52.7933], "4304713": [-29.7869, -50.4316], "4304804": [-29.2969, -51.5028], "4304853": [-27.7167, -51.9121], "4304903": [-28.5605, -51.9815], "4304952": [-28.2582, -51.6861], "4305009": [-28.2554, -54.0132], "4305108": [-29.1629, -51.1792], "4305116": [-27.7615, -51.9984], "4305124": [-31.8419, -52.8004], "4305132": [-29.657, -52.9406], "4305157": [-27.6106, -53.1672], "4305173": [-30.5905, -51.7418], "4305207": [-28.1463, -54.7428], "4305306": [-28.0559, -53.0665], "4305355": [-29.9625, -51.6289], "4305371": [-27.9493, -52.015], "4305405": [-27.923, -53.9419], "4305439": [-33.6866, -53.4594], "4305447": [-30.7504, -51.9737], "4305454": [-30.1604, -50.2337], "4305504": [-28.3419, -51.8741], "4305587": [-29.3948, -51.8556], "4305603": [-28.5258, -52.9928], "4305702": [-28.2075, -53.4905], "4305801": [-27.732, -52.9938], "4305835": [-29.1802, -52.0942], "4305850": [-28.1194, -52.7842], "4305871": [-28.3921, -54.0686], "4305900": [-27.7197, -53.7022], "4305934": [-29.2695, -51.6847], "4305959": [-28.9891, -51.6971], "4305975": [-28.128, -52.3023], "4306007": [-27.4999, -54.0994], "4306056": [-31.0046, -52.0436], "4306072": [-27.452, -53.2422], "4306106": [-28.645, -53.6048], "4306130": [-27.6672, -52.6522], "4306205": [-29.5148, -51.9928], "4306304": [-28.3849, -51.8482], "4306320": [-27.2642, -53.8645], "4306353": [-28.219, -55.0617], "4306379": [-29.7054, -54.2122], "4306403": [-29.5836, -51.0898], "4306429": [-27.6621, -53.5304], "4306452": [-28.983, -51.8396], "4306502": [-30.7004, -52.1026], "4306551": [-29.3639, -49.853], "4306601": [-30.9756, -54.6694], "4306700": [-29.6195, -53.3617], "4306734": [-27.5103, -54.3577], "4306759": [-29.084, -51.9972], "4306767": [-30.0847, -51.6187], "4306809": [-29.2351, -51.8703], "4306908": [-30.543, -52.5204], "4306924": [-27.706, -52.9145], "4306932": [-28.3686, -54.2686], "4306957": [-27.5298, -52.7347], "4306973": [-27.8544, -52.3005], "4307005": [-27.6364, -52.2697], "4307054": [-28.4977, -52.5836], "4307104": [-32.024, -53.3944], "4307203": [-27.3926, -52.574], "4307302": [-27.5443, -53.5005], "4307401": [-28.0518, -51.1933], "4307450": [-27.3603, -53.9891], "4307500": [-28.7286, -52.8461], "4307559": [-27.9135, -52.2635], "4307609": [-29.6535, -51.1843], "4307708": [-29.852, -51.1841], "4307807": [-29.5002, -51.9495], "4307815": [-29.1713, -53.1639], "4307831": [-28.5315, -54.1506], "4307864": [-28.8794, -51.7014], "4307906": [-29.2227, -51.3419], "4308003": [-29.5788, -53.4484], "4308052": [-27.4238, -52.6789], "4308078": [-29.5885, -51.8217], "4308102": [-29.4527, -51.3032], "4308201": [-29.0261, -51.1875], "4308250": [-27.8614, -52.0838], "4308300": [-28.9817, -52.3445], "4308409": [-30.0035, -53.4959], "4308433": [-29.3828, -52.0981], "4308458": [-28.7986, -53.2249], "4308508": [-27.3586, -53.3958], "4308607": [-29.259, -51.5352], "4308656": [-28.1944, -55.6383], "4308706": [-27.5856, -52.0915], "4308805": [-29.9032, -51.7612], "4308854": [-28.4316, -52.0337], "4308904": [-27.8911, -52.2294], "4309001": [-28.0297, -54.3517], "4309050": [-29.8798, -50.7734], "4309100": [-29.3734, -50.8762], "4309126": [-27.4429, -52.9149], "4309159": [-29.2706, -52.5795], "4309209": [-29.9413, -50.9869], "4309258": [-28.5421, -51.6948], "4309308": [-30.1086, -51.3233], "4309407": [-28.8399, -51.8895], "4309506": [-28.1491, -54.5629], "4309555": [-29.5456, -51.4185], "4309571": [-29.4552, -52.6553], "4309605": [-27.6282, -54.3053], "4309654": [-31.4067, -53.8667], "4309704": [-27.5691, -53.9695], "4309753": [-29.4203, -53.1295], "4309803": [-28.0566, -51.8599], "4309902": [-28.3741, -51.6377], "4309951": [-28.6247, -52.5158], "4310009": [-28.6302, -53.0961], "4310108": [-29.5693, -50.7919], "4310207": [-28.388, -53.92], "4310306": [-28.9282, -52.1258], "4310330": [-29.9753, -50.1281], "4310363": [-29.3508, -51.7748], "4310405": [-27.8354, -54.1886], "4310413": [-27.8752, -54.015], "4310439": [-28.8171, -51.2859], "4310462": [-27.9404, -52.4271], "4310504": [-27.1951, -53.2543], "4310538": [-29.6013, -53.7725], "4310553": [-28.7913, -55.2447], "4310579": [-28.7768, -52.1693], "4310603": [-29.1311, -56.5515], "4310652": [-29.4974, -50.1016], "4310702": [-27.3846, -52.4538], "4310751": [-29.5232, -53.5842], "4310801": [-29.5995, -51.1533], "4310850": [-27.6347, -53.2762], "4310876": [-29.0401, -53.0657], "4310900": [-27.7291, -52.5372], "4311007": [-32.5604, -53.377], "4311106": [-29.4936, -54.703], "4311122": [-28.8811, -50.3637], "4311130": [-29.2922, -54.2237], "4311155": [-28.6435, -54.1141], "4311205": [-29.2299, -53.6772], "4311239": [-29.4939, -53.017], "4311254": [-29.2348, -52.7997], "4311270": [-28.5676, -52.8618], "4311304": [-28.2093, -51.5248], "4311403": [-29.4591, -51.9644], "4311429": [-27.6913, -53.1818], "4311502": [-30.8071, -53.8931], "4311601": [-27.601, -53.0753], "4311627": [-29.5859, -51.2141], "4311643": [-29.4679, -51.2003], "4311700": [-27.5667, -51.6668], "4311718": [-29.1445, -56.0674], "4311734": [-29.2136, -49.9311], "4311759": [-29.5859, -55.4841], "4311775": [-29.6798, -50.2079], "4311791": [-29.5457, -51.5573], "4311809": [-28.4498, -52.1986], "4311908": [-27.4676, -51.9095], "4311981": [-30.353, -51.5803], "4312005": [-27.3568, -52.1467], "4312054": [-29.3311, -52.0973], "4312104": [-29.5649, -54.4641], "4312138": [-28.28, -52.1932], "4312153": [-29.5285, -52.1278], "4312179": [-28.252, -54.6159], "4312203": [-27.6325, -51.802], "4312252": [-30.1346, -52.0423], "4312302": [-27.497, -53.6891], "4312351": [-28.6462, -52.0767], "4312377": [-28.6805, -50.7834], "4312385": [-29.1607, -51.6333], "4312401": [-29.6824, -51.4679], "4312427": [-28.6968, -52.6999], "4312443": [-29.3578, -49.9328], "4312450": [-31.5887, -52.6261], "4312476": [-29.5379, -51.0811], "4312500": [-31.1054, -50.9167], "4312609": [-29.163, -51.8714], "4312617": [-28.3132, -51.1836], "4312625": [-28.3253, -51.7697], "4312658": [-28.4548, -52.8182], "4312674": [-28.5298, -52.4676], "4312708": [-27.3689, -52.7756], "4312757": [-28.6822, -52.1631], "4312807": [-28.6537, -51.7458], "4312906": [-28.7291, -51.7072], "4312955": [-27.9926, -52.9784], "4313003": [-29.2182, -52.0319], "4313011": [-27.6137, -54.1074], "4313037": [-29.4066, -54.8293], "4313060": [-29.5808, -50.9051], "4313086": [-29.0275, -51.3098], "4313102": [-29.471, -53.4689], "4313201": [-29.3741, -51.1136], "4313300": [-28.7799, -51.6113], "4313334": [-28.0667, -53.6992], "4313359": [-28.9882, -51.4095], "4313375": [-29.8525, -51.2837], "4313391": [-29.7338, -52.9489], "4313409": [-29.6875, -51.1328], "4313425": [-27.5765, -54.5036], "4313441": [-27.5649, -53.1837], "4313466": [-27.749, -53.0639], "4313490": [-27.9077, -53.1103], "4313508": [-29.8881, -50.2667], "4313607": [-27.7075, -51.763], "4313656": [-30.2535, -50.5103], "4313706": [-27.9007, -53.3134], "4313805": [-27.3596, -53.558], "4313904": [-28.2833, -53.5023], "4313953": [-30.1902, -52.3729], "4314001": [-28.5964, -51.7896], "4314027": [-29.6717, -53.144], "4314035": [-29.6365, -51.3974], "4314050": [-29.6243, -50.8312], "4314068": [-29.4577, -52.9599], "4314076": [-29.748, -52.2748], "4314100": [-28.2576, -52.4091], "4314134": [-27.7051, -52.4169], "4314159": [-29.5486, -51.7339], "4314175": [-31.7365, -53.5814], "4314209": [-31.8642, -52.8184], "4314308": [-28.4283, -53.6579], "4314407": [-31.7649, -52.3371], "4314423": [-29.4464, -51.1367], "4314456": [-27.508, -53.2082], "4314464": [-27.8751, -51.1673], "4314472": [-29.345, -53.3206], "4314498": [-27.2109, -53.608], "4314506": [-31.5794, -53.3798], "4314548": [-29.0975, -51.4503], "4314555": [-28.0439, -55.2001], "4314605": [-31.4473, -53.0973], "4314704": [-27.3297, -53.0575], "4314753": [-29.4481, -51.6719], "4314779": [-28.0585, -52.6791], "4314787": [-27.6587, -52.4848], "4314803": [-29.7015, -51.2429], "4314902": [-30.0318, -51.2065], "4315008": [-27.8569, -55.01], "4315057": [-27.5796, -54.6657], "4315073": [-27.7405, -54.8994], "4315107": [-27.9082, -55.1379], "4315131": [-29.1738, -52.2136], "4315149": [-29.5175, -51.1798], "4315156": [-29.2441, -52.3197], "4315172": [-28.7572, -51.4757], "4315206": [-29.0045, -52.1569], "4315305": [-30.384, -56.4483], "4315313": [-27.8257, -52.4424], "4315321": [-29.3504, -54.0789], "4315354": [-28.7466, -53.1011], "4315404": [-27.664, -53.6407], "4315453": [-29.1164, -52.0778], "4315503": [-29.8188, -53.3807], "4315552": [-27.2973, -52.8417], "4315602": [-32.0349, -52.1071], "4315701": [-29.988, -52.3711], "4315750": [-29.639, -50.4488], "4315800": [-29.2884, -51.8658], "4315909": [-27.4742, -53.1706], "4315958": [-28.2566, -54.8186], "4316006": [-29.6462, -50.5819], "4316105": [-27.7758, -52.8056], "4316204": [-27.8315, -52.9081], "4316303": [-28.1297, -55.0266], "4316402": [-30.2515, -54.9221], "4316428": [-27.7085, -53.1351], "4316436": [-28.3941, -53.097], "4316451": [-29.0951, -53.2133], "4316477": [-28.1233, -54.8373], "4316501": [-29.4386, -51.5077], "4316600": [-27.947, -51.8079], "4316709": [-28.3653, -53.251], "4316733": [-28.1609, -51.9279], "4316758": [-29.4747, -52.0843], "4316808": [-29.722, -52.4343], "4316907": [-29.6868, -53.8149], "4316956": [-29.4902, -50.9919], "4316972": [-30.3393, -54.0817], "4317004": [-30.8697, -53.11], "4317103": [-30.8773, -55.5392], "4317202": [-27.8702, -54.4796], "4317251": [-29.1655, -51.7351], "4317301": [-33.525, -53.3717], "4317400": [-29.1897, -54.8666], "4317509": [-28.3001, -54.2668], "4317558": [-28.4956, -52.0267], "4317608": [-29.8268, -50.5175], "4317707": [-28.514, -55.2251], "4317756": [-28.403, -52.6992], "4317806": [-27.8526, -53.7776], "4317905": [-27.8263, -54.662], "4317954": [-27.9074, -51.6434], "4318002": [-28.6578, -56.0036], "4318051": [-28.5312, -51.886], "4318101": [-29.5547, -55.1253], "4318200": [-29.4404, -50.5828], "4318309": [-30.3337, -54.3217], "4318408": [-29.9716, -51.7251], "4318424": [-27.8195, -51.8257], "4318432": [-29.6194, -53.4439], "4318440": [-28.4984, -51.7064], "4318457": [-27.7789, -53.1226], "4318465": [-29.052, -52.295], "4318481": [-29.528, -51.245], "4318499": [-27.7251, -54.1275], "4318507": [-32.0151, -52.0331], "4318606": [-27.7707, -51.5966], "4318614": [-29.5448, -51.4821], "4318622": [-28.7476, -50.0677], "4318705": [-29.7545, -51.1498], "4318804": [-31.3564, -51.9715], "4318903": [-28.412, -54.9559], "4319000": [-28.9677, -51.0696], "4319109": [-27.7112, -53.9699], "4319125": [-29.5397, -53.859], "4319158": [-28.556, -54.5559], "4319208": [-28.1834, -55.2654], "4319307": [-28.0195, -54.9404], "4319356": [-29.4193, -51.5134], "4319364": [-27.7706, -53.2513], "4319372": [-28.1243, -54.8926], "4319406": [-29.6202, -54.1855], "4319505": [-29.5885, -51.3749], "4319604": [-30.1643, -53.5603], "4319703": [-27.5583, -52.5237], "4319711": [-29.0451, -51.7684], "4319737": [-27.7906, -53.9368], "4319752": [-29.3729, -51.3675], "4319802": [-29.6882, -54.6826], "4319901": [-29.6349, -51.0064], "4320008": [-29.8276, -51.145], "4320107": [-27.942, -52.9231], "4320206": [-27.4829, -53.4026], "4320230": [-27.6367, -53.9493], "4320263": [-29.3523, -52.9767], "4320305": [-28.6294, -52.9498], "4320321": [-28.025, -54.5507], "4320354": [-30.6107, -51.5862], "4320404": [-28.7126, -51.9352], "4320453": [-29.3904, -52.2685], "4320503": [-27.9798, -52.2588], "4320552": [-30.4562, -51.6017], "4320578": [-28.1362, -54.4637], "4320602": [-27.4362, -52.1217], "4320651": [-29.6467, -53.591], "4320677": [-29.5357, -52.5304], "4320701": [-29.4194, -53.0326], "4320800": [-28.8306, -52.5131], "4320859": [-29.643, -51.6823], "4320909": [-28.0652, -52.0097], "4321006": [-28.6277, -52.8613], "4321105": [-30.6683, -51.3991], "4321204": [-29.6505, -50.7753], "4321303": [-29.7943, -51.8653], "4321329": [-27.4005, -53.4702], "4321352": [-31.2843, -51.088], "4321402": [-27.3711, -53.7585], "4321436": [-29.5782, -50.0644], "4321451": [-29.4482, -51.8044], "4321469": [-28.5712, -52.5955], "4321477": [-27.4022, -54.0814], "4321493": [-29.4782, -54.2244], "4321501": [-29.3334, -49.7333], "4321600": [-29.9841, -50.1322], "4321626": [-29.2977, -52.0532], "4321634": [-27.5003, -52.1448], "4321667": [-29.4487, -49.9275], "4321709": [-29.5137, -50.7739], "4321808": [-27.78, -54.2357], "4321832": [-29.5384, -50.0708], "4321857": [-27.6139, -52.8437], "4321907": [-27.4555, -53.9296], "4321956": [-27.5239, -52.8956], "4322004": [-29.9291, -51.7075], "4322103": [-27.6573, -54.4439], "4322152": [-29.1039, -52.9538], "4322186": [-27.9241, -51.5383], "4322202": [-29.0858, -53.8445], "4322251": [-29.4772, -51.4174], "4322301": [-27.7598, -54.4814], "4322327": [-31.4173, -52.1706], "4322343": [-28.0404, -54.686], "4322350": [-28.7833, -52.0238], "4322376": [-29.04, -55.1517], "4322400": [-29.7614, -57.0853], "4322509": [-28.5079, -50.9418], "4322525": [-29.7864, -52.1857], "4322533": [-29.5967, -52.6839], "4322541": [-29.3919, -51.2559], "4322558": [-28.4758, -51.8447], "4322608": [-29.6143, -52.1932], "4322707": [-29.7184, -52.5152], "4322806": [-28.9312, -51.5516], "4322855": [-29.0655, -51.8625], "4322905": [-27.5716, -52.0211], "4323002": [-30.0819, -51.0194], "4323101": [-27.1607, -53.4022], "4323200": [-28.5632, -52.7495], "4323309": [-28.8598, -51.5504], "4323358": [-28.1062, -52.1438], "4323408": [-28.5359, -52.1486], "4323457": [-30.3461, -53.876], "4323507": [-27.3686, -53.4919], "4323606": [-28.8052, -51.7947], "4323705": [-27.2902, -53.6974], "4323754": [-28.3516, -54.504], "4323770": [-29.4263, -51.7645], "4323804": [-29.8065, -50.0519]} \ No newline at end of file diff --git a/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/data/source/comuna_capacity_scores_u11.csv b/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/data/source/comuna_capacity_scores_u11.csv new file mode 100644 index 0000000..9b5aee4 --- /dev/null +++ b/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/data/source/comuna_capacity_scores_u11.csv @@ -0,0 +1,6 @@ +city_name,locode,region_name,population,fcm_dependency_pct,fcm_dependency_band,poverty_rate,median_household_income,city_id,country_code,disability_prevalence,electricity_access_rate,employment_agriculture_forestry,employment_construction,employment_electricity_gas,employment_in_transport_and_logistics,employment_manufacturing,employment_mining,employment_water_waste,fixed_internet_household_share,home_ownership,indigenous_identification_rate,literacy_rate,mean_years_schooling,public_transport_share,renter_share,unemployment_rate,total_income_2023_mclp,ipp_percapita_2023_mclp,ipp_share_total_pct_2023,total_income_pc_clp,staff_planta_2023,staff_contrata_2023,total_staff_2023,professionalization_pct_2023,staff_per_1000_2023,prof_staff_abs,p_fcm,p_ipppc,p_ippsh,cofinance_score,p_prof,p_profstaff,p_totinc,anchor_score,composite_score +Corral,CL CRR,Los Ríos,5493.0,88.47,very high (dependent),12.53,813000.0,62gud2hq4rrsvur4btdn,CL,15.25,98.39,21.74,9.64,0.28,11.39,9.03,0.57,1.23,15.21,80.48,28.25,94.42,9.01,33.92,7.09,3.71,4166117.0,64.2,8.37,758441.0,28.0,6.0,34.0,44.12,6.19,15.0008,8.280254777070056,16.666666666666664,7.051282051282051,10.7,71.04377104377105,5.05050505050505,7.6923076923076925,27.9,19.3 +Máfil,CL MAF,Los Ríos,8036.0,80.0,very high (dependent),32.89,873481.0,62unjyq2bu87wkf13yp2,CL,12.92,98.94,24.26,8.91,0.39,4.76,9.94,1.03,1.22,31.71,67.65,17.83,94.39,9.31,26.61,13.06,15.02,4112239.0,78.14,14.03,511727.0,30.0,23.0,53.0,37.74,6.6,20.002200000000002,24.522292993630572,29.166666666666668,22.756410256410255,25.5,46.801346801346796,13.468013468013467,7.371794871794872,22.5,24.0 +Los Lagos,CL LLG,Los Ríos,21421.0,67.53,high,23.9,900828.0,62umhur7qh5p808vkbem,CL,12.92,98.93,19.16,11.28,0.82,6.08,12.07,0.99,0.76,31.18,66.92,14.41,93.35,8.95,15.46,13.82,5.5,7539992.0,81.37,22.15,351991.0,70.0,24.0,94.0,38.3,4.39,36.001999999999995,51.910828025477706,32.69230769230769,43.91025641025641,42.8,47.81144781144781,48.821548821548824,39.1025641025641,45.2,44.0 +Paillaco,CL PAO,Los Ríos,19719.0,67.22,high,28.0,803695.0,62uhn2tnhkg18mgfe4pe,CL,11.51,99.35,22.17,9.07,2.38,6.33,7.6,0.87,0.99,34.82,66.34,17.68,93.85,9.03,16.53,14.01,10.03,8358367.0,85.41,21.37,423874.0,27.0,47.0,74.0,56.76,3.75,42.0024,52.86624203821656,37.17948717948718,40.38461538461539,43.5,91.91919191919192,56.9023569023569,41.98717948717949,63.6,53.6 +Valdivia,CL ZAL,Los Ríos,166958.0,56.98,high,15.47,1088166.0,62gvqzr8df70vknj13re,CL,10.84,99.73,3.43,7.86,0.94,5.47,8.64,0.4,0.68,71.91,59.22,16.34,96.45,11.01,33.1,28.21,8.15,54497643.0,109.41,36.31,326415.0,372.0,273.0,645.0,41.09,3.86,265.0305,66.2420382165605,53.205128205128204,77.56410256410257,65.7,59.93265993265994,96.63299663299664,90.06410256410257,82.2,74.0 diff --git a/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/data/source/coordination_units_u11.csv b/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/data/source/coordination_units_u11.csv new file mode 100644 index 0000000..5a4bc0b --- /dev/null +++ b/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/data/source/coordination_units_u11.csv @@ -0,0 +1,7 @@ +unit_id,comuna,region,locode,anchor_score,cofinance_score,is_anchor,unit_anchor,unit_anchor_score,unit_size,unit_viable_anchor +11,Valdivia,Región de Los Ríos,CL ZAL,82.2,65.7,True,Valdivia,82.2,6,True +11,Paillaco,Región de Los Ríos,CL PAO,63.6,43.5,False,Valdivia,82.2,6,True +11,Los Lagos,Región de Los Ríos,CL LLG,45.2,42.8,False,Valdivia,82.2,6,True +11,Corral,Región de Los Ríos,CL CRR,27.9,10.7,False,Valdivia,82.2,6,True +11,Máfil,Región de Los Ríos,CL MAF,22.5,25.5,False,Valdivia,82.2,6,True +11,Mariquina,Región de Los Ríos,,,,False,Valdivia,82.2,6,True diff --git a/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/data/source/unit_bundle_candidates_u11.csv b/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/data/source/unit_bundle_candidates_u11.csv new file mode 100644 index 0000000..d3347ca --- /dev/null +++ b/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/data/source/unit_bundle_candidates_u11.csv @@ -0,0 +1,14 @@ +unit_id,unit_anchor,region,unit_size,sector,coordination_tier,n_comunas_sharing,n_action_archetypes,instrument_class,viable_anchor,actor_route,bundle_feasible +11,Valdivia,Región de Los Ríos,6,Stationary Energy,highly_coordinated,5,20,pooled grant/loan · ESCO · debt,True,municipal applicant,True +11,Valdivia,Región de Los Ríos,6,Stationary Energy,semi_coordinated,5,9,programmatic / blended,True,municipal applicant,True +11,Valdivia,Región de Los Ríos,6,Transportation,highly_coordinated,4,1,pooled grant/loan · ESCO · debt,True,municipal applicant,True +11,Valdivia,Región de Los Ríos,6,Transportation,semi_coordinated,4,5,programmatic / blended,True,municipal applicant,True +11,Valdivia,Región de Los Ríos,6,Waste,highly_coordinated,2,1,pooled grant/loan · ESCO · debt,True,municipal applicant,True +11,Valdivia,Región de Los Ríos,6,Waste,semi_coordinated,2,7,programmatic / blended,True,municipal applicant,True +11,Valdivia,Región de Los Ríos,6,Stationary Energy,idiosyncratic,5,2,grant / PES / TA,True,municipal applicant,False +11,Valdivia,Región de Los Ríos,6,Transportation,idiosyncratic,4,2,grant / PES / TA,True,municipal applicant,False +11,Valdivia,Región de Los Ríos,6,AFOLU,idiosyncratic,4,27,grant / PES / TA,True,municipal applicant,False +11,Valdivia,Región de Los Ríos,6,IPPU,highly_coordinated,3,5,pooled grant/loan · ESCO · debt,True,firm-actor: city is referrer,False +11,Valdivia,Región de Los Ríos,6,IPPU,idiosyncratic,3,3,grant / PES / TA,True,firm-actor: city is referrer,False +11,Valdivia,Región de Los Ríos,6,IPPU,semi_coordinated,3,18,programmatic / blended,True,firm-actor: city is referrer,False +11,Valdivia,Región de Los Ríos,6,Waste,idiosyncratic,2,2,grant / PES / TA,True,municipal applicant,False diff --git a/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/data/source/valdivia_action_matches.csv b/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/data/source/valdivia_action_matches.csv new file mode 100644 index 0000000..8c11c86 --- /dev/null +++ b/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/data/source/valdivia_action_matches.csv @@ -0,0 +1,103 @@ +action_id,action,sector,priority,best_funder,best_funder_inst,role,af,cf,combined,verdict +icare_0117,Improve public transport systems to promote modal shift,transportation,0.3134,Programa de Prevención y Mitigación de Riesgos (PMR),SUBDERE,applicant,0.61,1.0,0.61,match +icare_0121,"Incentive to create bike-sharing programs in urban areas, wi",transportation,0.3134,Programa de Prevención y Mitigación de Riesgos (PMR),SUBDERE,applicant,0.61,1.0,0.61,match +icare_0139,Implement congestion pricing and restrictions on high-pollut,transportation,0.3134,Programa de Prevención y Mitigación de Riesgos (PMR),SUBDERE,applicant,0.61,1.0,0.61,match +c40_0023,Adopt zero-emission bus fleets for public transport,transportation,0.3134,Programa de Prevención y Mitigación de Riesgos (PMR),SUBDERE,applicant,0.61,1.0,0.61,match +c40_0025,Promote deployment of zero-emission freight fleets (trucks),transportation,0.3134,Programa de Prevención y Mitigación de Riesgos (PMR),SUBDERE,applicant,0.61,1.0,0.61,match +c40_0029,Electrify municipal vehicle fleets,transportation,0.3134,Programa de Prevención y Mitigación de Riesgos (PMR),SUBDERE,applicant,0.61,1.0,0.61,match +ipcc_0001,Promote compact urban form and transit-oriented development,transportation,0.3134,Programa de Prevención y Mitigación de Riesgos (PMR),SUBDERE,applicant,0.61,1.0,0.61,match +ipcc_0105,Promote active mobility through road space reallocation,transportation,0.3134,Programa de Prevención y Mitigación de Riesgos (PMR),SUBDERE,applicant,0.61,1.0,0.61,match +icare_0002,Promote and expand the use of the Brazilian Energy Labeling ,stationary_energy,0.2861,Mejor Escuela (energías renovables / acond. térmico escuelas),"Ministerio de Energía / Agencia de Sostenibilidad Energética (AgenciaSE, fundación de derecho privado)",applicant,1.0,1.0,1.0,match +icare_0006,Develop integrated renewable energy planning and solar–batte,stationary_energy,0.2861,Mejor Escuela (energías renovables / acond. térmico escuelas),"Ministerio de Energía / Agencia de Sostenibilidad Energética (AgenciaSE, fundación de derecho privado)",applicant,1.0,1.0,1.0,match +icare_0008,Enable smart grid integration and distributed energy storage,stationary_energy,0.2861,Mejor Escuela (energías renovables / acond. térmico escuelas),"Ministerio de Energía / Agencia de Sostenibilidad Energética (AgenciaSE, fundación de derecho privado)",applicant,1.0,1.0,1.0,match +icare_0009,Deploy cogeneration systems in industries,stationary_energy,0.2861,Mejor Escuela (energías renovables / acond. térmico escuelas),"Ministerio de Energía / Agencia de Sostenibilidad Energética (AgenciaSE, fundación de derecho privado)",applicant,1.0,1.0,1.0,match +icare_0010,Promote Net-Zero and Green Building Certifications,stationary_energy,0.2861,Mejor Escuela (energías renovables / acond. térmico escuelas),"Ministerio de Energía / Agencia de Sostenibilidad Energética (AgenciaSE, fundación de derecho privado)",applicant,1.0,1.0,1.0,match +icare_0012,Expand solar energy generation on municipal facilities and p,stationary_energy,0.2861,Mejor Escuela (energías renovables / acond. térmico escuelas),"Ministerio de Energía / Agencia de Sostenibilidad Energética (AgenciaSE, fundación de derecho privado)",applicant,1.0,1.0,1.0,match +icare_0015,Promote Mini and Micro-Hydropower and Biomass Energy,stationary_energy,0.2861,Mejor Escuela (energías renovables / acond. térmico escuelas),"Ministerio de Energía / Agencia de Sostenibilidad Energética (AgenciaSE, fundación de derecho privado)",applicant,1.0,1.0,1.0,match +icare_0016,Promote solar thermal and heat pump systems for water heatin,stationary_energy,0.2861,Mejor Escuela (energías renovables / acond. térmico escuelas),"Ministerio de Energía / Agencia de Sostenibilidad Energética (AgenciaSE, fundación de derecho privado)",applicant,1.0,1.0,1.0,match +icare_0023,Upgrade and maintain electrical substations,stationary_energy,0.2861,Mejor Escuela (energías renovables / acond. térmico escuelas),"Ministerio de Energía / Agencia de Sostenibilidad Energética (AgenciaSE, fundación de derecho privado)",applicant,1.0,1.0,1.0,match +icare_0024,Integrate renewables into municipal water systems,stationary_energy,0.2861,Mejor Escuela (energías renovables / acond. térmico escuelas),"Ministerio de Energía / Agencia de Sostenibilidad Energética (AgenciaSE, fundación de derecho privado)",applicant,1.0,1.0,1.0,match +icare_0025,Promote energy-efficient and climate-resilient housing for l,stationary_energy,0.2861,Mejor Escuela (energías renovables / acond. térmico escuelas),"Ministerio de Energía / Agencia de Sostenibilidad Energética (AgenciaSE, fundación de derecho privado)",applicant,1.0,1.0,1.0,match +icare_0026,Implement time-of-use electricity tariffs to enhance demand-,stationary_energy,0.2861,Mejor Escuela (energías renovables / acond. térmico escuelas),"Ministerio de Energía / Agencia de Sostenibilidad Energética (AgenciaSE, fundación de derecho privado)",applicant,1.0,1.0,1.0,match +icare_0027,Create financing programs for local renewable energy project,stationary_energy,0.2861,Mejor Escuela (energías renovables / acond. térmico escuelas),"Ministerio de Energía / Agencia de Sostenibilidad Energética (AgenciaSE, fundación de derecho privado)",applicant,1.0,1.0,1.0,match +icare_0028,Promote passive cooling through natural shading and ventilat,stationary_energy,0.2861,Mejor Escuela (energías renovables / acond. térmico escuelas),"Ministerio de Energía / Agencia de Sostenibilidad Energética (AgenciaSE, fundación de derecho privado)",applicant,1.0,1.0,1.0,match +icare_0033,Install biodigesters in rural properties,stationary_energy,0.2861,Mejor Escuela (energías renovables / acond. térmico escuelas),"Ministerio de Energía / Agencia de Sostenibilidad Energética (AgenciaSE, fundación de derecho privado)",applicant,1.0,1.0,1.0,match +icare_0035,Enhance industrial energy efficiency processes,stationary_energy,0.2861,Mejor Escuela (energías renovables / acond. térmico escuelas),"Ministerio de Energía / Agencia de Sostenibilidad Energética (AgenciaSE, fundación de derecho privado)",applicant,1.0,1.0,1.0,match +icare_0040,Deploy energy-efficient and solar-powered street lighting ac,stationary_energy,0.2861,Mejor Escuela (energías renovables / acond. térmico escuelas),"Ministerio de Energía / Agencia de Sostenibilidad Energética (AgenciaSE, fundación de derecho privado)",applicant,1.0,1.0,1.0,match +icare_0049,Develop regional hubs for renewable energy production,stationary_energy,0.2861,Mejor Escuela (energías renovables / acond. térmico escuelas),"Ministerio de Energía / Agencia de Sostenibilidad Energética (AgenciaSE, fundación de derecho privado)",applicant,1.0,1.0,1.0,match +icare_0104,Adopt hybrid renewable energy systems (solar-wind),stationary_energy,0.2861,Mejor Escuela (energías renovables / acond. térmico escuelas),"Ministerio de Energía / Agencia de Sostenibilidad Energética (AgenciaSE, fundación de derecho privado)",applicant,1.0,1.0,1.0,match +icare_0105,Reduce technical losses in energy distribution networks,stationary_energy,0.2861,Mejor Escuela (energías renovables / acond. térmico escuelas),"Ministerio de Energía / Agencia de Sostenibilidad Energética (AgenciaSE, fundación de derecho privado)",applicant,1.0,1.0,1.0,match +icare_0120,Implement energy efficiency criteria and indicators in the p,stationary_energy,0.2861,Mejor Escuela (energías renovables / acond. térmico escuelas),"Ministerio de Energía / Agencia de Sostenibilidad Energética (AgenciaSE, fundación de derecho privado)",applicant,1.0,1.0,1.0,match +icare_0137,Replace Inefficient Lighting with LED Technology in Public S,stationary_energy,0.2861,Mejor Escuela (energías renovables / acond. térmico escuelas),"Ministerio de Energía / Agencia de Sostenibilidad Energética (AgenciaSE, fundación de derecho privado)",applicant,1.0,1.0,1.0,match +c40_0010,Introduce energy-efficiency standards for new residential bu,stationary_energy,0.2861,Mejor Escuela (energías renovables / acond. térmico escuelas),"Ministerio de Energía / Agencia de Sostenibilidad Energética (AgenciaSE, fundación de derecho privado)",applicant,1.0,1.0,1.0,match +c40_0012,Introduce energy-efficiency standards for new institutional ,stationary_energy,0.2861,Mejor Escuela (energías renovables / acond. térmico escuelas),"Ministerio de Energía / Agencia de Sostenibilidad Energética (AgenciaSE, fundación de derecho privado)",applicant,1.0,1.0,1.0,match +c40_0013,Support Implementation of Industrial Building Efficiency Sta,stationary_energy,0.2861,Mejor Escuela (energías renovables / acond. térmico escuelas),"Ministerio de Energía / Agencia de Sostenibilidad Energética (AgenciaSE, fundación de derecho privado)",applicant,1.0,1.0,1.0,match +c40_0015,Retrofit residential buildings for energy efficiency,stationary_energy,0.2861,Mejor Escuela (energías renovables / acond. térmico escuelas),"Ministerio de Energía / Agencia de Sostenibilidad Energética (AgenciaSE, fundación de derecho privado)",applicant,1.0,1.0,1.0,match +c40_0016,Retrofit commercial and institutional other non-residential ,stationary_energy,0.2861,Mejor Escuela (energías renovables / acond. térmico escuelas),"Ministerio de Energía / Agencia de Sostenibilidad Energética (AgenciaSE, fundación de derecho privado)",applicant,1.0,1.0,1.0,match +c40_0017,Retrofit municipal buildings for energy efficiency,stationary_energy,0.2861,Mejor Escuela (energías renovables / acond. térmico escuelas),"Ministerio de Energía / Agencia de Sostenibilidad Energética (AgenciaSE, fundación de derecho privado)",applicant,1.0,1.0,1.0,match +c40_0018,Optimize energy efficiency and sustainability standards for ,stationary_energy,0.2861,Mejor Escuela (energías renovables / acond. térmico escuelas),"Ministerio de Energía / Agencia de Sostenibilidad Energética (AgenciaSE, fundación de derecho privado)",applicant,1.0,1.0,1.0,match +c40_0071,Promote the phase out the reliance on fossil fuels for cooki,stationary_energy,0.2861,Mejor Escuela (energías renovables / acond. térmico escuelas),"Ministerio de Energía / Agencia de Sostenibilidad Energética (AgenciaSE, fundación de derecho privado)",applicant,1.0,1.0,1.0,match +ipcc_0074,Promote compact urban form through spatial planning,stationary_energy,0.2861,Mejor Escuela (energías renovables / acond. térmico escuelas),"Ministerio de Energía / Agencia de Sostenibilidad Energética (AgenciaSE, fundación de derecho privado)",applicant,1.0,1.0,1.0,match +icare_0053,Support cooperatives of voluntary waste collectors to aggreg,waste,0.1507,FPR 2026 - Fondo para el Reciclaje,Ministerio del Medio Ambiente (MMA),applicant,1.0,1.0,1.0,match +icare_0064,Develop an organic waste management strategy,waste,0.1507,FPR 2026 - Fondo para el Reciclaje,Ministerio del Medio Ambiente (MMA),applicant,1.0,1.0,1.0,match +icare_0110,Regulate Construction and Demolition Waste Management to imp,waste,0.1507,FPR 2026 - Fondo para el Reciclaje,Ministerio del Medio Ambiente (MMA),applicant,1.0,1.0,1.0,match +icare_0111,Strengthen Extended Producer Responsibility (EPR) Systems,waste,0.1507,FPR 2026 - Fondo para el Reciclaje,Ministerio del Medio Ambiente (MMA),applicant,1.0,1.0,1.0,match +c40_0034,Enact and enforce material bans in order to restrict single ,waste,0.1507,FPR 2026 - Fondo para el Reciclaje,Ministerio del Medio Ambiente (MMA),applicant,1.0,1.0,1.0,match +c40_0035,Optmize waste management systems,waste,0.1507,FPR 2026 - Fondo para el Reciclaje,Ministerio del Medio Ambiente (MMA),applicant,1.0,1.0,1.0,match +c40_0036,Upgrade Landfills to Engineered Sanitary Landfills with Gas ,waste,0.1507,FPR 2026 - Fondo para el Reciclaje,Ministerio del Medio Ambiente (MMA),applicant,1.0,1.0,1.0,match +c40_0037,Implement residential and business segregated collection of ,waste,0.1507,FPR 2026 - Fondo para el Reciclaje,Ministerio del Medio Ambiente (MMA),applicant,1.0,1.0,1.0,match +c40_0040,Implement Volume-Based Collection policy,waste,0.1507,FPR 2026 - Fondo para el Reciclaje,Ministerio del Medio Ambiente (MMA),applicant,1.0,1.0,1.0,match +icare_0031,Capture & Use Biogas at Wastewater Treatment Plants',waste,0.1507,Programa de Prevención y Mitigación de Riesgos (PMR),SUBDERE,applicant,0.61,1.0,0.61,best-fit funder needs referrer route (Ministerio del Medio Ambiente (MMA)) +icare_0001,Improve heat and energy recovery,industry/IPPU,0.1365,Programa de Prevención y Mitigación de Riesgos (PMR),SUBDERE,applicant,0.61,1.0,0.61,best-fit funder needs referrer route (Corporación de Fomento de la Producción (CORFO)) +icare_0034,Improve Fuel Supply Systems for Industrial Heating,industry/IPPU,0.1365,Programa de Prevención y Mitigación de Riesgos (PMR),SUBDERE,applicant,0.61,1.0,0.61,best-fit funder needs referrer route (Corporación de Fomento de la Producción (CORFO)) +icare_0071,Increase efficiency of industrial furnaces and kilns,industry/IPPU,0.1365,Programa de Prevención y Mitigación de Riesgos (PMR),SUBDERE,applicant,0.61,1.0,0.61,best-fit funder needs referrer route (Corporación de Fomento de la Producción (CORFO)) +icare_0072,Improve Heat Recovery and Reuse through Heat Exchanger Netwo,industry/IPPU,0.1365,Programa de Prevención y Mitigación de Riesgos (PMR),SUBDERE,applicant,0.61,1.0,0.61,best-fit funder needs referrer route (Corporación de Fomento de la Producción (CORFO)) +icare_0074,Adopt industrial energy efficiency technologies,industry/IPPU,0.1365,Programa de Prevención y Mitigación de Riesgos (PMR),SUBDERE,applicant,0.61,1.0,0.61,best-fit funder needs referrer route (Corporación de Fomento de la Producción (CORFO)) +icare_0076,Electrify Industrial Processes (with Renewable Power),industry/IPPU,0.1365,Programa de Prevención y Mitigación de Riesgos (PMR),SUBDERE,applicant,0.61,1.0,0.61,best-fit funder needs referrer route (Corporación de Fomento de la Producción (CORFO)) +icare_0078,Decarbonize industrial feedstocks,industry/IPPU,0.1365,Programa de Prevención y Mitigación de Riesgos (PMR),SUBDERE,applicant,0.61,1.0,0.61,best-fit funder needs referrer route (Corporación de Fomento de la Producción (CORFO)) +icare_0079,Implement carbon capture and utilization (CCU),industry/IPPU,0.1365,Programa de Prevención y Mitigación de Riesgos (PMR),SUBDERE,applicant,0.61,1.0,0.61,best-fit funder needs referrer route (Corporación de Fomento de la Producción (CORFO)) +icare_0082,Implement carbon capture and storage (CCS),industry/IPPU,0.1365,Programa de Prevención y Mitigación de Riesgos (PMR),SUBDERE,applicant,0.61,1.0,0.61,best-fit funder needs referrer route (Corporación de Fomento de la Producción (CORFO)) +ipcc_0023,Design products with lightweight materials,industry/IPPU,0.1365,Programa de Prevención y Mitigación de Riesgos (PMR),SUBDERE,applicant,0.61,1.0,0.61,best-fit funder needs referrer route (Corporación de Fomento de la Producción (CORFO)) +ipcc_0024,Improve material utilization efficiency in production,industry/IPPU,0.1365,Programa de Prevención y Mitigación de Riesgos (PMR),SUBDERE,applicant,0.61,1.0,0.61,best-fit funder needs referrer route (Corporación de Fomento de la Producción (CORFO)) +ipcc_0025,"Design for Recovery, Reuse, or Repurposing",industry/IPPU,0.1365,Programa de Prevención y Mitigación de Riesgos (PMR),SUBDERE,applicant,0.61,1.0,0.61,best-fit funder needs referrer route (Corporación de Fomento de la Producción (CORFO)) +ipcc_0026,Adopt alternative feedstocks in industrial production,industry/IPPU,0.1365,Programa de Prevención y Mitigación de Riesgos (PMR),SUBDERE,applicant,0.61,1.0,0.61,best-fit funder needs referrer route (Corporación de Fomento de la Producción (CORFO)) +ipcc_0031,Enhanced product service levels per product (e.g. product sh,industry/IPPU,0.1365,Programa de Prevención y Mitigación de Riesgos (PMR),SUBDERE,applicant,0.61,1.0,0.61,best-fit funder needs referrer route (Corporación de Fomento de la Producción (CORFO)) +ipcc_0033,Improve product maintenance to extend lifespan,industry/IPPU,0.1365,Programa de Prevención y Mitigación de Riesgos (PMR),SUBDERE,applicant,0.61,1.0,0.61,best-fit funder needs referrer route (Corporación de Fomento de la Producción (CORFO)) +ipcc_0037,Adopt net-zero-emissions materials and supply chains,industry/IPPU,0.1365,Programa de Prevención y Mitigación de Riesgos (PMR),SUBDERE,applicant,0.61,1.0,0.61,best-fit funder needs referrer route (Corporación de Fomento de la Producción (CORFO)) +ipcc_0038,Stimulate solar energy production in industrial facilities,industry/IPPU,0.1365,Programa de Prevención y Mitigación de Riesgos (PMR),SUBDERE,applicant,0.61,1.0,0.61,best-fit funder needs referrer route (Corporación de Fomento de la Producción (CORFO)) +ipcc_0039,Promote the substitution of traditional materials with susta,industry/IPPU,0.1365,Programa de Prevención y Mitigación de Riesgos (PMR),SUBDERE,applicant,0.61,1.0,0.61,best-fit funder needs referrer route (Corporación de Fomento de la Producción (CORFO)) +ipcc_0040,Promote industry-government collaborations on emissions redu,industry/IPPU,0.1365,Programa de Prevención y Mitigación de Riesgos (PMR),SUBDERE,applicant,0.61,1.0,0.61,best-fit funder needs referrer route (Corporación de Fomento de la Producción (CORFO)) +ipcc_0041,Support research into carbon-neutral manufacturing technolog,industry/IPPU,0.1365,Programa de Prevención y Mitigación de Riesgos (PMR),SUBDERE,applicant,0.61,1.0,0.61,best-fit funder needs referrer route (Corporación de Fomento de la Producción (CORFO)) +ipcc_0042,Set carbon emissions reduction targets for industrial sector,industry/IPPU,0.1365,Programa de Prevención y Mitigación de Riesgos (PMR),SUBDERE,applicant,0.61,1.0,0.61,best-fit funder needs referrer route (Corporación de Fomento de la Producción (CORFO)) +ipcc_0043,Encourage the Use of Zero-Emission Fuels in Industrial Proce,industry/IPPU,0.1365,Programa de Prevención y Mitigación de Riesgos (PMR),SUBDERE,applicant,0.61,1.0,0.61,best-fit funder needs referrer route (Corporación de Fomento de la Producción (CORFO)) +ipcc_0045,Transition to renewable energy for industrial operations,industry/IPPU,0.1365,Programa de Prevención y Mitigación de Riesgos (PMR),SUBDERE,applicant,0.61,1.0,0.61,best-fit funder needs referrer route (Corporación de Fomento de la Producción (CORFO)) +ipcc_0049,Develop and implement circular economy policies,industry/IPPU,0.1365,Programa de Prevención y Mitigación de Riesgos (PMR),SUBDERE,applicant,0.61,1.0,0.61,best-fit funder needs referrer route (Corporación de Fomento de la Producción (CORFO)) +ipcc_0050,Create tax incentives for companies adopting clean technolog,industry/IPPU,0.1365,Programa de Prevención y Mitigación de Riesgos (PMR),SUBDERE,applicant,0.61,1.0,0.61,best-fit funder needs referrer route (Corporación de Fomento de la Producción (CORFO)) +ipcc_0076,Implement energy audits in industrial plants,industry/IPPU,0.1365,Programa de Prevención y Mitigación de Riesgos (PMR),SUBDERE,applicant,0.61,1.0,0.61,best-fit funder needs referrer route (Corporación de Fomento de la Producción (CORFO)) +icare_0045,"Promote organic, regenerative and agroecological agriculture",afolu,0.1133,Programa Concursable de Espacios Públicos,MINVU (Ministerio de Vivienda y Urbanismo),applicant,1.0,1.0,1.0,match +icare_0050,Accelerate the adoption of Agroforestry',afolu,0.1133,Programa Concursable de Espacios Públicos,MINVU (Ministerio de Vivienda y Urbanismo),applicant,1.0,1.0,1.0,match +icare_0069,Complete ecological and agroclimatic mapping,afolu,0.1133,Programa Concursable de Espacios Públicos,MINVU (Ministerio de Vivienda y Urbanismo),applicant,1.0,1.0,1.0,match +icare_0099,Increase local participation in Agroecological Certification,afolu,0.1133,Programa Concursable de Espacios Públicos,MINVU (Ministerio de Vivienda y Urbanismo),applicant,1.0,1.0,1.0,match +icare_0101,Accelerate the adoption of Zero Emission Agricultural Machin,afolu,0.1133,Programa Concursable de Espacios Públicos,MINVU (Ministerio de Vivienda y Urbanismo),applicant,1.0,1.0,1.0,match +icare_0122,Establish eco-parks.,afolu,0.1133,Programa Concursable de Espacios Públicos,MINVU (Ministerio de Vivienda y Urbanismo),applicant,1.0,1.0,1.0,match +icare_0127,Improve Accelerate Environmental Regularization of Rural Pro,afolu,0.1133,Programa Concursable de Espacios Públicos,MINVU (Ministerio de Vivienda y Urbanismo),applicant,1.0,1.0,1.0,match +icare_0128,Establish Municipal Programs for Payment for Environmental S,afolu,0.1133,Programa Concursable de Espacios Públicos,MINVU (Ministerio de Vivienda y Urbanismo),applicant,1.0,1.0,1.0,match +icare_0131,Prioritize Procurement of Locally Produced Agroecological Pr,afolu,0.1133,Programa Concursable de Espacios Públicos,MINVU (Ministerio de Vivienda y Urbanismo),applicant,1.0,1.0,1.0,match +icare_0132,Encourage Local Agroecological Production and Short Supply C,afolu,0.1133,Programa Concursable de Espacios Públicos,MINVU (Ministerio de Vivienda y Urbanismo),applicant,1.0,1.0,1.0,match +c40_0042,Expand urban and peri-urban green spaces,afolu,0.1133,Programa Concursable de Espacios Públicos,MINVU (Ministerio de Vivienda y Urbanismo),applicant,1.0,1.0,1.0,match +ipcc_0028,"Behavioral Changes for Reduced Waste (e.g., Food)",afolu,0.1133,Programa Concursable de Espacios Públicos,MINVU (Ministerio de Vivienda y Urbanismo),applicant,1.0,1.0,1.0,match +ipcc_0034,Promote consumer behavior focused on sufficiency and reduced,afolu,0.1133,Programa Concursable de Espacios Públicos,MINVU (Ministerio de Vivienda y Urbanismo),applicant,1.0,1.0,1.0,match +ipcc_0052,Reduce Deforestation and Degradation,afolu,0.1133,Programa Concursable de Espacios Públicos,MINVU (Ministerio de Vivienda y Urbanismo),applicant,1.0,1.0,1.0,match +ipcc_0053,"Implement afforestation, reforestation, and forest ecosystem",afolu,0.1133,Programa Concursable de Espacios Públicos,MINVU (Ministerio de Vivienda y Urbanismo),applicant,1.0,1.0,1.0,match +ipcc_0054,Adopt sustainable forest management practices,afolu,0.1133,Programa Concursable de Espacios Públicos,MINVU (Ministerio de Vivienda y Urbanismo),applicant,1.0,1.0,1.0,match +ipcc_0055,"Implement fire management in forests, grasslands, and savann",afolu,0.1133,Programa Concursable de Espacios Públicos,MINVU (Ministerio de Vivienda y Urbanismo),applicant,1.0,1.0,1.0,match +ipcc_0056,Reduce and prevent degradation and conversion of Grasslands ,afolu,0.1133,Programa Concursable de Espacios Públicos,MINVU (Ministerio de Vivienda y Urbanismo),applicant,1.0,1.0,1.0,match +ipcc_0057,Restore degraded peatlands and prevent further conversion or,afolu,0.1133,Programa Concursable de Espacios Públicos,MINVU (Ministerio de Vivienda y Urbanismo),applicant,1.0,1.0,1.0,match +ipcc_0060,Protect and Restore Coastal Wetlands,afolu,0.1133,Programa Concursable de Espacios Públicos,MINVU (Ministerio de Vivienda y Urbanismo),applicant,1.0,1.0,1.0,match +ipcc_0062,Create partnerships to implement biochar plants.,afolu,0.1133,Programa Concursable de Espacios Públicos,MINVU (Ministerio de Vivienda y Urbanismo),applicant,1.0,1.0,1.0,match +ipcc_0064,Reduce methane emissions from enteric fermentation in livest,afolu,0.1133,Programa Concursable de Espacios Públicos,MINVU (Ministerio de Vivienda y Urbanismo),applicant,1.0,1.0,1.0,match +ipcc_0067,Improve manure management and crop nutrient practices,afolu,0.1133,Programa Concursable de Espacios Públicos,MINVU (Ministerio de Vivienda y Urbanismo),applicant,1.0,1.0,1.0,match +ipcc_0068,Pilot Bioenergy with Carbon Capture in Partnership with Util,afolu,0.1133,Programa Concursable de Espacios Públicos,MINVU (Ministerio de Vivienda y Urbanismo),applicant,1.0,1.0,1.0,match +ipcc_0069,Promote sustainable and healthy diets,afolu,0.1133,Programa Concursable de Espacios Públicos,MINVU (Ministerio de Vivienda y Urbanismo),applicant,1.0,1.0,1.0,match +ipcc_0070,Reduce food loss and waste,afolu,0.1133,Programa Concursable de Espacios Públicos,MINVU (Ministerio de Vivienda y Urbanismo),applicant,1.0,1.0,1.0,match +ipcc_0071,Increase sustainable use of wood products,afolu,0.1133,Programa Concursable de Espacios Públicos,MINVU (Ministerio de Vivienda y Urbanismo),applicant,1.0,1.0,1.0,match diff --git a/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/data/source/valdivia_funders_open.csv b/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/data/source/valdivia_funders_open.csv new file mode 100644 index 0000000..e77a415 --- /dev/null +++ b/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/data/source/valdivia_funders_open.csv @@ -0,0 +1,79 @@ +program,funder,role,cf_score,eligible_actor +FPR 2026 - Fondo para el Reciclaje,Ministerio del Medio Ambiente (MMA),applicant,1.0,municipality +FPR 2025 – Fondo para el Reciclaje 2025,Ministerio del Medio Ambiente (MMA),applicant,1.0,municipality +FPR 2024 – Fondo para el Reciclaje 2024,Ministerio del Medio Ambiente (MMA),applicant,1.0,municipality +FPR 2023 – Fondo para el Reciclaje,Ministerio del Medio Ambiente (MMA),applicant,1.0,municipality +FPR 2022 Exequiel Estay – Recicladores de Base,Ministerio del Medio Ambiente (MMA),applicant,1.0,municipality +FPR 2021 Exequiel Estay – Recicladores de Base,Ministerio del Medio Ambiente (MMA),applicant,1.0,municipality +FPR 2020 – Promoviendo la economía circular en municipios a través del reciclaje,Ministerio del Medio Ambiente (MMA),applicant,1.0,municipality +FPR 2020 Exequiel Estay – Recicladores de Base,Ministerio del Medio Ambiente (MMA),applicant,1.0,municipality +FPR 2020 – Fondo para el Reciclaje Chiloé 2020,Ministerio del Medio Ambiente (MMA),applicant,1.0,municipality +Asistencia Técnica para Municipios en Gestión Energética Local,"Ministerio de Energía / Agencia de Sostenibilidad Energética (AgenciaSE, fundación de derecho privado)",applicant,1.0,municipality +Parque Solar Comunitario,"Ministerio de Energía / Agencia de Sostenibilidad Energética (AgenciaSE, fundación de derecho privado)",applicant,1.0,municipality + community (joint ownership) +Mejor Escuela (energías renovables / acond. térmico escuelas),"Ministerio de Energía / Agencia de Sostenibilidad Energética (AgenciaSE, fundación de derecho privado)",applicant,1.0,school sostenedor (often municipal) +Programa de Mejoramiento Urbano y Equipamiento Comunal (PMU),SUBDERE (Subsecretaría de Desarrollo Regional y Administrativo),applicant,1.0,municipality +Programa de Mejoramiento de Barrios (PMB),SUBDERE,applicant,1.0,municipality + municipal associations +Programa de Prevención y Mitigación de Riesgos (PMR),SUBDERE,applicant,1.0,municipality +Fondo de Recuperación de Ciudades (FRC),SUBDERE,applicant,1.0,municipality / regional +Programa Concursable de Espacios Públicos,MINVU (Ministerio de Vivienda y Urbanismo),applicant,1.0,municipality (alcalde presents; community/SEREMI may originate) +Parques Urbanos (construcción y conservación),MINVU,applicant,1.0,municipality (SEREMI prioritises construction) +Pavimentación Participativa,MINVU,applicant,1.0,municipality + comités de pavimentación +Programa de Recuperación de Barrios (Quiero Mi Barrio),MINVU,applicant,1.0,municipality (with community) +FNDR — Inversión Regional (Glosa 03 / SNI),Gobiernos Regionales (16) + SUBDERE / Min. Interior,applicant,1.0,municipality / regional government / public services (projects via SNI-BIP) +FRIL — Fondo Regional de Iniciativa Local,Gobiernos Regionales,applicant,1.0,municipality +FPA 2025 – TSEJ comuna de Tocopilla,Ministerio del Medio Ambiente (MMA),applicant,0.8,unspecified +FPA 2025 – TSEJ comuna de Mejillones,Ministerio del Medio Ambiente (MMA),applicant,0.8,unspecified +FPA 2025 – Conservando y protegiendo la fauna silvestre (Centros de Rehabilitación o Rescate),Ministerio del Medio Ambiente (MMA),applicant,0.8,unspecified +FPA 2024 – Conservación del Pudú en la provincia de Chiloé,Ministerio del Medio Ambiente (MMA),applicant,0.8,unspecified +"FPA 2024 – Iniciativas Ciudadanas TSEJ, comuna de Huasco",Ministerio del Medio Ambiente (MMA),applicant,0.8,unspecified +"FPA 2024 – Iniciativas Ciudadanas TSEJ, Concón, Quintero y Puchuncaví",Ministerio del Medio Ambiente (MMA),applicant,0.8,unspecified +"FPA 2024 – Iniciativas Ciudadanas TSEJ, comuna de Coronel",Ministerio del Medio Ambiente (MMA),applicant,0.8,unspecified +FPA 2024 – Fortalecimiento de Centros de Rehabilitación o Rescate de Fauna Silvestre,Ministerio del Medio Ambiente (MMA),applicant,0.8,unspecified +FPA 2024 – Educación Ambiental para la Prevención de Incendios Forestales y Protección de la Biodiversidad,Ministerio del Medio Ambiente (MMA),applicant,0.8,unspecified +FPA 2024 – Fortalecimiento para recicladores de base,Ministerio del Medio Ambiente (MMA),applicant,0.8,unspecified +FPA 2024 – Programa Modelo para la Formación de Líderes Ambientales Comunitarios,Ministerio del Medio Ambiente (MMA),applicant,0.8,unspecified +FPA 2024 – Chiloé Reduce en tu Establecimiento Educacional,Ministerio del Medio Ambiente (MMA),applicant,0.8,unspecified +FPA 2023 – Concurso EcoDesafíos,Ministerio del Medio Ambiente (MMA),applicant,0.8,unspecified +FPA 2023 – Emprendimientos Circulares para Comunidades Chilotas,Ministerio del Medio Ambiente (MMA),applicant,0.8,unspecified +FPA 2023 – Proyectos Sustentables en Establecimientos Educacionales,Ministerio del Medio Ambiente (MMA),applicant,0.8,unspecified +FPA 2023 – Proyectos Sustentables Ciudadanos,Ministerio del Medio Ambiente (MMA),applicant,0.8,unspecified +FPA 2022 – Rapa Nui Sustentable,Ministerio del Medio Ambiente (MMA),applicant,0.8,unspecified +FPA 2022 – Conservación de Humedales Urbanos,Ministerio del Medio Ambiente (MMA),applicant,0.8,unspecified +FPA 2022 – Iniciativas Sustentables en Establecimientos Educacionales,Ministerio del Medio Ambiente (MMA),applicant,0.8,unspecified +FPA 2022 – Iniciativas Sustentables Ciudadanas,Ministerio del Medio Ambiente (MMA),applicant,0.8,unspecified +FPA 2021 – Iniciativas Sustentables en Establecimientos Educacionales,Ministerio del Medio Ambiente (MMA),applicant,0.8,unspecified +FPA 2021 – Conservación de Humedales Urbanos,Ministerio del Medio Ambiente (MMA),applicant,0.8,unspecified +FPA 2021 – Iniciativas Sustentables Ciudadanas,Ministerio del Medio Ambiente (MMA),applicant,0.8,unspecified +FPA 2021 – 2º Concurso FPA Rapa Nui Sustentable,Ministerio del Medio Ambiente (MMA),applicant,0.8,unspecified +FPA 2020 – Iniciativas Sustentables en Establecimientos Educacionales,Ministerio del Medio Ambiente (MMA),applicant,0.8,unspecified +FPA 2020 – Iniciativas Sustentables Ciudadanas,Ministerio del Medio Ambiente (MMA),applicant,0.8,unspecified +FPA 2020 – Conservación Áreas Marinas Protegidas,Ministerio del Medio Ambiente (MMA),applicant,0.8,unspecified +FPA 2020 – Educación Ambiental al Aire Libre en la Región Metropolitana,Ministerio del Medio Ambiente (MMA),applicant,0.8,unspecified +FPA 2020 – Rapa Nui Sustentable,Ministerio del Medio Ambiente (MMA),applicant,0.8,unspecified +Comuna Energética,"Ministerio de Energía / Agencia de Sostenibilidad Energética (AgenciaSE, fundación de derecho privado)",applicant,0.8,municipality +Casa Solar,"Ministerio de Energía / Agencia de Sostenibilidad Energética (AgenciaSE, fundación de derecho privado)",facilitator,0.56,household (municipally facilitated) +FPA 2026 - Proyectos Sustentables Ciudadanos,Ministerio del Medio Ambiente (MMA),referrer,0.3,community/citizen org +FPA 2026 - Proyectos Sustentables en Establecimientos Educacionales,Ministerio del Medio Ambiente (MMA),referrer,0.3,community/citizen org +FPA 2026 - Proyectos Sustentables para Pueblos Indígenas,Ministerio del Medio Ambiente (MMA),referrer,0.3,indigenous community +FPA Extraordinario Rapa Nui 2026,Ministerio del Medio Ambiente (MMA),referrer,0.3,indigenous community +FPA 2025 - Alto del Carmen: Ecosistemas Altoandinos – Humedales y Criósfera,Ministerio del Medio Ambiente (MMA),referrer,0.3,research/university + ngo +FPA 2025 - Alto del Carmen: Ecosistemas Altoandinos – Biodiversidad,Ministerio del Medio Ambiente (MMA),referrer,0.3,research/university + ngo +FPA 2023 – Proyectos Sustentables para Pueblos Indígenas,Ministerio del Medio Ambiente (MMA),referrer,0.3,indigenous community +FPA 2022 – Emprendimientos Verdes para Comunidades Indígenas,Ministerio del Medio Ambiente (MMA),referrer,0.3,indigenous community +FPA 2022 – Áreas Verdes Comunitarias,Ministerio del Medio Ambiente (MMA),referrer,0.3,community/citizen org +FPA 2022 – Iniciativas Sustentables para Fundaciones y Corporaciones,Ministerio del Medio Ambiente (MMA),referrer,0.3,community/citizen org +FPA 2022 – Iniciativas Sustentables para Pueblos Indígenas,Ministerio del Medio Ambiente (MMA),referrer,0.3,indigenous community +FPA 2021 – Iniciativas Sustentables Fundaciones y Corporaciones,Ministerio del Medio Ambiente (MMA),referrer,0.3,community/citizen org +FPA 2021 – Áreas Verdes Comunitarias,Ministerio del Medio Ambiente (MMA),referrer,0.3,community/citizen org +FPA 2021 – Iniciativas Sustentables para Pueblos Indígenas,Ministerio del Medio Ambiente (MMA),referrer,0.3,indigenous community +FPA 2020 – Iniciativas en Áreas Verdes Comunitarias,Ministerio del Medio Ambiente (MMA),referrer,0.3,community/citizen org +FPA 2020 – Iniciativas Sustentables Pueblos Indígenas,Ministerio del Medio Ambiente (MMA),referrer,0.3,indigenous community +"Recambio de Calefactores (programa permanente, comunas con PDA)",Ministerio del Medio Ambiente (MMA),referrer,0.3,household +Fondo de Acceso a la Energía (FAE),"Ministerio de Energía / Agencia de Sostenibilidad Energética (AgenciaSE, fundación de derecho privado)",referrer,0.3,community/citizen org (rol público comunitario >5 yrs; not municipalities directly) +FNDR 8% — Subvención a actividades (línea Medio Ambiente y educación ambiental),Gobiernos Regionales,referrer,0.3,non-profit organisations (legal status >=2 yrs; NOT municipalities) +FRPD — Fondo Regional para la Productividad y el Desarrollo,Gobiernos Regionales,referrer,0.3,legal persons / firms / institutions (productive investment; varies by region) +Crédito Verde,Corporación de Fomento de la Producción (CORFO),referrer,0.3,private firm (any size; no annual-sales cap) +Programa Expande,Corporación de Fomento de la Producción (CORFO),referrer,0.3,private firm / growth-stage venture +Garantías / Coberturas CORFO (e.g. FOGAIN),Corporación de Fomento de la Producción (CORFO),referrer,0.3,private firm / SME +Financiamiento Hidrógeno Verde (facilidades / Fondo H2V),Corporación de Fomento de la Producción (CORFO),referrer,0.3,green-hydrogen project developers / firms +Innova Chile — I+D e innovación (clean-tech),Corporación de Fomento de la Producción (CORFO),referrer,0.3,private firm / entrepreneur diff --git a/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/next.config.mjs b/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/next.config.mjs new file mode 100644 index 0000000..e83c0b2 --- /dev/null +++ b/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/next.config.mjs @@ -0,0 +1,6 @@ +/** @type {import('next').NextConfig} */ +const nextConfig = { + reactStrictMode: true, + devIndicators: false, +}; +export default nextConfig; diff --git a/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/package-lock.json b/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/package-lock.json new file mode 100644 index 0000000..f8fd9fc --- /dev/null +++ b/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/package-lock.json @@ -0,0 +1,963 @@ +{ + "name": "city-readiness-navigator", + "version": "0.1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "city-readiness-navigator", + "version": "0.1.0", + "dependencies": { + "next": "^15", + "react": "^19", + "react-dom": "^19" + }, + "devDependencies": { + "@types/node": "^22", + "@types/react": "^19", + "@types/react-dom": "^19", + "typescript": "^5" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.0.tgz", + "integrity": "sha512-55coeOFKHv1ywEcUXJtWU5f+Jr/W5tZDvZig8DLKSwUN1JpROQ4rk/SNOQiFWmaR/VKF4zuFyW1B8JduOSv6Pg==", + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@img/colour": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.1.0.tgz", + "integrity": "sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@img/sharp-darwin-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.5.tgz", + "integrity": "sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-arm64": "1.2.4" + } + }, + "node_modules/@img/sharp-darwin-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.5.tgz", + "integrity": "sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-x64": "1.2.4" + } + }, + "node_modules/@img/sharp-libvips-darwin-arm64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.2.4.tgz", + "integrity": "sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-darwin-x64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.2.4.tgz", + "integrity": "sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.2.4.tgz", + "integrity": "sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==", + "cpu": [ + "arm" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.2.4.tgz", + "integrity": "sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-ppc64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.2.4.tgz", + "integrity": "sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==", + "cpu": [ + "ppc64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-riscv64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.2.4.tgz", + "integrity": "sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==", + "cpu": [ + "riscv64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-s390x": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.2.4.tgz", + "integrity": "sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==", + "cpu": [ + "s390x" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-x64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.2.4.tgz", + "integrity": "sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-arm64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.2.4.tgz", + "integrity": "sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-x64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.2.4.tgz", + "integrity": "sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-linux-arm": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.5.tgz", + "integrity": "sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==", + "cpu": [ + "arm" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.5.tgz", + "integrity": "sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm64": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-ppc64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.34.5.tgz", + "integrity": "sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==", + "cpu": [ + "ppc64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-ppc64": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-riscv64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.34.5.tgz", + "integrity": "sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==", + "cpu": [ + "riscv64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-riscv64": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-s390x": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.5.tgz", + "integrity": "sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==", + "cpu": [ + "s390x" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-s390x": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.5.tgz", + "integrity": "sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-x64": "1.2.4" + } + }, + "node_modules/@img/sharp-linuxmusl-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.5.tgz", + "integrity": "sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-arm64": "1.2.4" + } + }, + "node_modules/@img/sharp-linuxmusl-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.5.tgz", + "integrity": "sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-x64": "1.2.4" + } + }, + "node_modules/@img/sharp-wasm32": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.5.tgz", + "integrity": "sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==", + "cpu": [ + "wasm32" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", + "optional": true, + "dependencies": { + "@emnapi/runtime": "^1.7.0" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.34.5.tgz", + "integrity": "sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-ia32": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.5.tgz", + "integrity": "sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==", + "cpu": [ + "ia32" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.5.tgz", + "integrity": "sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@next/env": { + "version": "15.5.19", + "resolved": "https://registry.npmjs.org/@next/env/-/env-15.5.19.tgz", + "integrity": "sha512-sWWluFvcv5v3Fxznmf2ZfjyoVQt/64oCnYqS90inQWGzMPK1VjvekPiz3OPHKmFT30EnHrjlbyaHLt3M0vWabw==", + "license": "MIT" + }, + "node_modules/@next/swc-darwin-arm64": { + "version": "15.5.19", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.5.19.tgz", + "integrity": "sha512-jx9wWlTKueHKPvVOndyr7WuaevWCkuYqsQ8gC0TMPKAVWG3MhcdMrjfo9tvIZNXd0QOUYXXvAcZ325y8Uq7uzg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-darwin-x64": { + "version": "15.5.19", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.5.19.tgz", + "integrity": "sha512-291KFcsIQ3OenRdiUDFOR6W3wezzH4auENXm1gbm1Bjd4ANMMRgxPrWTUztQN43BnVoVuMnHCrLeECIMwgFKbA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-gnu": { + "version": "15.5.19", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.5.19.tgz", + "integrity": "sha512-WeH+nelQyyMeE2f8FxBRZNrGipya5zHZV2vjzfCOAYyiI6am+NbnWAAldOBFQBB2w0DjJcsvrKqoFT2b7+5YoA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-musl": { + "version": "15.5.19", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.5.19.tgz", + "integrity": "sha512-5xTOE0lDlDCSSfp+BAif7j17VRRCjWp//ZPZy6NI0QpdrhxtQnsZguSx0xAAZ0c9XZLrLLwCe/XVe5YPrRilKw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-gnu": { + "version": "15.5.19", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.5.19.tgz", + "integrity": "sha512-LTxRmMgqqMv05Had879W00Fm53quiJd3Zuz8h1JSNJ3nGSlbZ/7Tjs1tKyScgN3Au3t3MyPsjPlq60fMmSHLsg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-musl": { + "version": "15.5.19", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.5.19.tgz", + "integrity": "sha512-eoNQSpA5PQfB9wBO4RA47MTDXWz1fizy9Y3Z6e4DetYIF3dvjuu8sj7aIGn/bFCU6lnFzTK34NtCaffP4NsQ7Q==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-arm64-msvc": { + "version": "15.5.19", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.5.19.tgz", + "integrity": "sha512-6UNt2dFuCHOe446sm/Kp69nUe8/wIhnh9bm6Xcqw4qEWCOppLMOvhTBVgvM7invVUNr4SPpP6NOQsACtn2IN9Q==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-x64-msvc": { + "version": "15.5.19", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.5.19.tgz", + "integrity": "sha512-PhmojAHyqMne56HBLGu9dhDnHPuFmEjrXSQMM/nW0J6j849lk3ESrVtqNJcCk8CKOV7brpTTbaYAjwKPzKM69w==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@swc/helpers": { + "version": "0.5.15", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz", + "integrity": "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.8.0" + } + }, + "node_modules/@types/node": { + "version": "22.19.21", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.21.tgz", + "integrity": "sha512-VMeFBSCKQKmm2swI2kW51SFusDqekC6q9trBCvJ/JliDchFSuoYYKN7yVNjPthP1HKZcx3U1gI/wTcEBjEFKTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.21.0" + } + }, + "node_modules/@types/react": { + "version": "19.2.17", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.17.tgz", + "integrity": "sha512-MXfmqaVPEVgkBT/aY0aGCkRWWtByiYQXo3xdQ8r5RzuFrPiRn8Gar2tQdXSUQ2GKV3bkXckek89V8wQBY2Q/Aw==", + "dev": true, + "license": "MIT", + "dependencies": { + "csstype": "^3.2.2" + } + }, + "node_modules/@types/react-dom": { + "version": "19.2.3", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.3.tgz", + "integrity": "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@types/react": "^19.2.0" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001799", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001799.tgz", + "integrity": "sha512-hG1bReV+OUU+MOqK4t/ZWI0tZOyz3rqS9XuhOUz1cIcbwBKjOyJEJuw9ER5JuNyqxNk8u/JUVbGibBOL1yrjFw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/client-only": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", + "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==", + "license": "MIT" + }, + "node_modules/csstype": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "license": "Apache-2.0", + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/nanoid": { + "version": "3.3.12", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.12.tgz", + "integrity": "sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/next": { + "version": "15.5.19", + "resolved": "https://registry.npmjs.org/next/-/next-15.5.19.tgz", + "integrity": "sha512-xNOW6tYshGX1/Oi3F8uuk4gpDeWsSUE/1Z0G5uUMekIxaQ0xc03UXd9II0VQHYMWviMeA0OHpJFAKsHf8bTYVg==", + "license": "MIT", + "dependencies": { + "@next/env": "15.5.19", + "@swc/helpers": "0.5.15", + "caniuse-lite": "^1.0.30001579", + "postcss": "8.4.31", + "styled-jsx": "5.1.6" + }, + "bin": { + "next": "dist/bin/next" + }, + "engines": { + "node": "^18.18.0 || ^19.8.0 || >= 20.0.0" + }, + "optionalDependencies": { + "@next/swc-darwin-arm64": "15.5.19", + "@next/swc-darwin-x64": "15.5.19", + "@next/swc-linux-arm64-gnu": "15.5.19", + "@next/swc-linux-arm64-musl": "15.5.19", + "@next/swc-linux-x64-gnu": "15.5.19", + "@next/swc-linux-x64-musl": "15.5.19", + "@next/swc-win32-arm64-msvc": "15.5.19", + "@next/swc-win32-x64-msvc": "15.5.19", + "sharp": "^0.34.3" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.1.0", + "@playwright/test": "^1.51.1", + "babel-plugin-react-compiler": "*", + "react": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", + "react-dom": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", + "sass": "^1.3.0" + }, + "peerDependenciesMeta": { + "@opentelemetry/api": { + "optional": true + }, + "@playwright/test": { + "optional": true + }, + "babel-plugin-react-compiler": { + "optional": true + }, + "sass": { + "optional": true + } + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/postcss": { + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/react": { + "version": "19.2.7", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.7.tgz", + "integrity": "sha512-HNe9WslTbXmFK8o8cmwgAeJFSBvt1bPdHCVKtaaV+WlAN36mpT4hcRpwbf3fY56ar2oIXzsBpOAiIRHAdY0OlQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "19.2.7", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.7.tgz", + "integrity": "sha512-t0BRVXvbiE/o20Hfw669rLbMCDWtYZLvmJigy2f0MxsXF+71pxhR3xOkspmsO8h3ZlNzyibAmtCa3l4lYKk6gQ==", + "license": "MIT", + "dependencies": { + "scheduler": "^0.27.0" + }, + "peerDependencies": { + "react": "^19.2.7" + } + }, + "node_modules/scheduler": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz", + "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==", + "license": "MIT" + }, + "node_modules/semver": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.4.tgz", + "integrity": "sha512-rUCObTnP32Q08R2uuIrt7r9PlEonuTmtuXYcW6s5kjdlj3xbnwe+21yXptAUYcMAABLkYYTtnmzb3w3EDZfueA==", + "license": "ISC", + "optional": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/sharp": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.5.tgz", + "integrity": "sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==", + "hasInstallScript": true, + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "@img/colour": "^1.0.0", + "detect-libc": "^2.1.2", + "semver": "^7.7.3" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-darwin-arm64": "0.34.5", + "@img/sharp-darwin-x64": "0.34.5", + "@img/sharp-libvips-darwin-arm64": "1.2.4", + "@img/sharp-libvips-darwin-x64": "1.2.4", + "@img/sharp-libvips-linux-arm": "1.2.4", + "@img/sharp-libvips-linux-arm64": "1.2.4", + "@img/sharp-libvips-linux-ppc64": "1.2.4", + "@img/sharp-libvips-linux-riscv64": "1.2.4", + "@img/sharp-libvips-linux-s390x": "1.2.4", + "@img/sharp-libvips-linux-x64": "1.2.4", + "@img/sharp-libvips-linuxmusl-arm64": "1.2.4", + "@img/sharp-libvips-linuxmusl-x64": "1.2.4", + "@img/sharp-linux-arm": "0.34.5", + "@img/sharp-linux-arm64": "0.34.5", + "@img/sharp-linux-ppc64": "0.34.5", + "@img/sharp-linux-riscv64": "0.34.5", + "@img/sharp-linux-s390x": "0.34.5", + "@img/sharp-linux-x64": "0.34.5", + "@img/sharp-linuxmusl-arm64": "0.34.5", + "@img/sharp-linuxmusl-x64": "0.34.5", + "@img/sharp-wasm32": "0.34.5", + "@img/sharp-win32-arm64": "0.34.5", + "@img/sharp-win32-ia32": "0.34.5", + "@img/sharp-win32-x64": "0.34.5" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/styled-jsx": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.6.tgz", + "integrity": "sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==", + "license": "MIT", + "dependencies": { + "client-only": "0.0.1" + }, + "engines": { + "node": ">= 12.0.0" + }, + "peerDependencies": { + "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/typescript": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undici-types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "dev": true, + "license": "MIT" + } + } +} diff --git a/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/package.json b/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/package.json new file mode 100644 index 0000000..34d8176 --- /dev/null +++ b/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/package.json @@ -0,0 +1,23 @@ +{ + "name": "city-readiness-navigator", + "version": "0.1.0", + "private": true, + "scripts": { + "dev": "next dev", + "build": "next build", + "start": "next start", + "build:data": "node scripts/build-data.mjs", + "build:brazil": "node scripts/build-brazil.mjs" + }, + "dependencies": { + "next": "^15", + "react": "^19", + "react-dom": "^19" + }, + "devDependencies": { + "@types/node": "^22", + "@types/react": "^19", + "@types/react-dom": "^19", + "typescript": "^5" + } +} diff --git a/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/scripts/build-brazil.mjs b/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/scripts/build-brazil.mjs new file mode 100644 index 0000000..e59e19b --- /dev/null +++ b/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/scripts/build-brazil.mjs @@ -0,0 +1,92 @@ +// Brazil Fiscal Data Adapter — transforms CAPAG (Tesouro Nacional) into readiness +// inputs. Reads vendored RS source (data/source/), emits src/data/brazil.json: +// a state map (RS municipalities by CAPAG tier) + Canoas hero detail. +// Run: npm run build:brazil +import fs from "fs"; +import path from "path"; +import { fileURLToPath } from "url"; + +const __dirname = path.dirname(fileURLToPath(import.meta.url)); +const SRC = path.join(__dirname, "..", "data", "source"); +const OUT = path.join(__dirname, "..", "src", "data", "brazil.json"); + +const recs = JSON.parse(fs.readFileSync(path.join(SRC, "capag_rs.json"), "utf8")); +const cen = JSON.parse(fs.readFileSync(path.join(SRC, "centroids_rs.json"), "utf8")); +const r = Math.round; + +// CAPAG rating → 0-100 (A+ best). Real Treasury creditworthiness. +const CAPAG_SCORE = { "A+": 92, A: 82, "B+": 74, B: 64, C: 38, D: 18 }; +const NOTA = { A: 85, B: 60, C: 35 }; // the 3 fiscal indicators +const ICF = { Aicf: 90, Bicf: 70, Cicf: 45, Dicf: 20, Eicf: 15 }; +const BANKABLE = new Set(["A+", "A", "B+", "B"]); // eligible for Union-guaranteed credit + +function tierOf(capag) { + if (BANKABLE.has(capag)) return "bankable"; + if (capag === "C" || capag === "D") return "constrained"; + return "unrated"; // n.d. / n.e. / null +} + +// CAPAG → the four readiness pillars (the Brazil adapter). +function toReadiness(rec) { + const credit = CAPAG_SCORE[rec.capag] ?? null; + const notas = [rec.nota1, rec.nota2, rec.nota3].map((n) => NOTA[n]).filter((x) => x != null); + const fiscal = notas.length ? r(notas.reduce((a, b) => a + b, 0) / notas.length) : null; + const icf = ICF[rec.icf] ?? 40; + const transparency = rec.publicou_rgf === "Sim" && rec.publicou_rreo === "Sim" ? 5 : 0; + return { + creditworthiness: credit ?? 30, + fiscalHealth: fiscal ?? 40, + governance: Math.min(100, icf + transparency), + legalCapacity: BANKABLE.has(rec.capag) ? 75 : 38, + }; +} + +const heroName = "Canoas"; +const heroRec = recs.find((x) => x.municipio === heroName); + +// State map: every RS municipality with a centroid, by CAPAG tier. +const stateMap = recs + .filter((x) => cen[String(x.cod_ibge)]) + .map((x) => { + const [lat, lon] = cen[String(x.cod_ibge)]; + return { name: x.municipio, codIbge: String(x.cod_ibge), capag: x.capag, tier: tierOf(x.capag), lat, lon, isHero: x.municipio === heroName }; + }); + +// Hero detail (same SNG record shape the engine scores). +const readiness = toReadiness(heroRec); +const hero = { + id: `SNG-BR-${heroRec.cod_ibge}`, + name: heroName, locode: `IBGE ${heroRec.cod_ibge}`, cityId: heroRec.cod_ibge, + country: "Brazil", iso: "BR", type: "City", population: 347000, + isAnchor: false, cofinanceScore: null, anchorScore: null, + readiness, + provenance: { + creditworthiness: `real:CAPAG rating ${heroRec.capag} (Tesouro Nacional)`, + fiscalHealth: `real:CAPAG indicators (debt ${heroRec.nota1} · savings ${heroRec.nota2} · liquidity ${heroRec.nota3})`, + governance: `real:CAPAG ICF ${heroRec.icf} + transparency (RGF/RREO)`, + legalCapacity: `real:CAPAG ${heroRec.capag} — ${BANKABLE.has(heroRec.capag) ? "eligible for" : "blocked from"} Union-guaranteed credit`, + }, + signals: { + capagRating: heroRec.capag, + ownSourceRevenuePct: null, debtServiceRatioPct: null, currentBalancePct: null, + independentAudit: ["Aicf", "Bicf"].includes(heroRec.icf), + canBorrowWithoutSovereignGuarantee: BANKABLE.has(heroRec.capag), + }, + capag: { rating: heroRec.capag, ind1: heroRec.ind1_endividamento, nota1: heroRec.nota1, ind2: heroRec.ind2_poupanca, nota2: heroRec.nota2, ind3: heroRec.ind3_liquidez, nota3: heroRec.nota3, icf: heroRec.icf }, + proposal: { title: "Flood resilience & drainage program (post-2024)", sector: "water / resilience", askUSDm: 45, stage: "Readiness Review", cofinance: false }, +}; + +const out = { + generated: "2026-06-14", + source: "CAPAG — Tesouro Nacional (ODbL), via the CAPAG Funder Scan hackday team (Joaquin van Peborgh, Carole Viaene). Screening signal, not a credit decision.", + scope: { country: "Brazil", region: "Rio Grande do Sul (RS)", note: "state hit by the catastrophic 2024 floods" }, + hero, stateMap, + legend: [ + { tier: "bankable", label: "CAPAG A/B — bankable (guaranteed credit)", count: stateMap.filter((c) => c.tier === "bankable").length }, + { tier: "constrained", label: "CAPAG C/D — creditless (grants / blended)", count: stateMap.filter((c) => c.tier === "constrained").length }, + { tier: "unrated", label: "n.d. — unrated (TA first)", count: stateMap.filter((c) => c.tier === "unrated").length }, + ], +}; +fs.writeFileSync(OUT, JSON.stringify(out, null, 2)); +console.log("Wrote brazil.json — hero", heroName, JSON.stringify(readiness), "· map", stateMap.length, "munis"); +console.log("legend:", out.legend.map((l) => `${l.tier}=${l.count}`).join(" ")); diff --git a/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/scripts/build-data.mjs b/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/scripts/build-data.mjs new file mode 100644 index 0000000..f4e1006 --- /dev/null +++ b/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/scripts/build-data.mjs @@ -0,0 +1,97 @@ +// Reproducible: transforms the City-Funder Matching Engine's capacity CSVs +// (vendored under data/source/) into src/data/valdivia.json — the readiness +// inputs for the app. Run: npm run build:data +import fs from "fs"; +import path from "path"; +import { fileURLToPath } from "url"; + +const __dirname = path.dirname(fileURLToPath(import.meta.url)); +const SRC = path.join(__dirname, "..", "data", "source"); +const OUT = path.join(__dirname, "..", "src", "data", "valdivia.json"); + +const readCsv = (f) => { + const lines = fs.readFileSync(path.join(SRC, f), "utf8").trim().split("\n"); + const hdr = lines[0].split(","); + return lines.slice(1).map((l) => { + const cells = []; let cur = "", q = false; + for (const ch of l) { if (ch === '"') q = !q; else if (ch === "," && !q) { cells.push(cur); cur = ""; } else cur += ch; } + cells.push(cur); + return Object.fromEntries(hdr.map((h, i) => [h, cells[i]])); + }); +}; +const num = (v) => (v === "" || v == null ? null : Number(v)); +const r = Math.round; + +const units = readCsv("coordination_units_u11.csv"); +const cap = readCsv("comuna_capacity_scores_u11.csv"); +const capByLocode = Object.fromEntries(cap.map((c) => [c.locode, c])); + +// --- Transparent mapping: Matching Engine capacity -> 4 readiness pillars (0-100) --- +function toReadiness(u) { + const c = capByLocode[u.locode] || {}; + const capScore = num(c.composite_score); // REAL: SINIM/FCM municipal capacity composite + const prof = num(c.professionalization_pct_2023); // REAL: SINIM professionalization + const fcm = num(c.fcm_dependency_pct); // REAL: FCM transfer dependency + const isAnchor = u.is_anchor === "True"; + const fiscalAutonomy = fcm == null ? null : 100 - fcm; + const readiness = { + fiscalHealth: capScore == null ? 40 : r(capScore), + governance: prof == null || capScore == null ? 40 : r(0.5 * prof + 0.5 * capScore), + creditworthiness: capScore == null ? 35 : r(capScore * 0.95), + legalCapacity: isAnchor ? 80 : 45, + }; + return { + id: `SNG-${u.locode.replace(/\s/g, "")}`, + name: u.comuna, locode: u.locode || null, cityId: c.city_id || null, + country: "Chile", iso: "CL", type: "City", population: num(c.population), + isAnchor, cofinanceScore: num(u.cofinance_score), anchorScore: num(u.anchor_score), + readiness, + provenance: { + fiscalHealth: "real:SINIM/FCM (composite_score)", + governance: "real:SINIM (professionalization + capacity)", + creditworthiness: "estimated:capacity proxy (no CL municipal rating)", + legalCapacity: "intake:legal opinion", + }, + signals: { + capagRating: null, + ownSourceRevenuePct: fiscalAutonomy == null ? null : r(fiscalAutonomy), + debtServiceRatioPct: null, currentBalancePct: null, + independentAudit: isAnchor, canBorrowWithoutSovereignGuarantee: isAnchor, + }, + proposal: { title: "Zero-emission urban transport (e-bus + BRT)", sector: "transport", askUSDm: isAnchor ? 8 : 3, stage: "Readiness Review", cofinance: false }, + }; +} +const comunas = units.map(toReadiness); + +const fundersAll = readCsv("valdivia_funders_open.csv"); +const byRole = (role) => fundersAll.filter((f) => f.role === role); +const funders = { + counts: { applicant: byRole("applicant").length, facilitator: byRole("facilitator").length, referrer: byRole("referrer").length, total: fundersAll.length }, + sample: fundersAll.slice(0, 14).map((f) => ({ program: f.program, funder: f.funder, role: f.role, eligibleActor: f.eligible_actor })), +}; + +const actions = readCsv("valdivia_action_matches.csv"); +const transport = actions.filter((a) => (a.sector || "").toLowerCase().includes("transport")); +const transportGap = { + nActions: transport.length, + bestFit: transport[0] ? Number(transport[0].combined) : null, + bestFunder: transport[0] ? transport[0].best_funder : null, + actions: transport.map((a) => ({ id: a.action_id, action: a.action, combined: Number(a.combined), verdict: a.verdict })), +}; + +const bundles = readCsv("unit_bundle_candidates_u11.csv"); +const tb = bundles.find((b) => (b.sector || "").toLowerCase().includes("transport")) || bundles[0] || null; +const pool = { + unitId: 11, anchor: "Valdivia", anchorLocode: "CL ZAL", unitSize: 6, + members: comunas.map((c) => ({ name: c.name, locode: c.locode, cofinanceScore: c.cofinanceScore, isAnchor: c.isAnchor })), + bundle: tb ? { sector: tb.sector, coordinationTier: tb.coordination_tier, instrumentClass: tb.instrument_class, actorRoute: tb.actor_route, feasible: tb.bundle_feasible } : null, + pooledProposal: { title: "Los Ríos zero-emission transport program (6-comuna bundle)", sector: "transport", askUSDm: 30, stage: "Structuring", cofinance: true }, +}; + +const out = { + generated: "2026-06-12", + source: "City-Funder Matching Engine (Amanda/Ayinawu/Brian/Cephas) — derived/ CSVs; capacity from SINIM/FCM, locode-keyed", + heroCity: "Valdivia", heroLocode: "CL ZAL", comunas, funders, transportGap, pool, +}; +fs.writeFileSync(OUT, JSON.stringify(out, null, 2)); +console.log("Wrote", path.relative(process.cwd(), OUT), "—", comunas.length, "comunas"); diff --git a/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/src/app/api/submissions/route.ts b/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/src/app/api/submissions/route.ts new file mode 100644 index 0000000..6f66a58 --- /dev/null +++ b/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/src/app/api/submissions/route.ts @@ -0,0 +1,17 @@ +import { NextResponse } from "next/server"; +import { dossiers, type Dossier } from "@/lib/store"; + +export async function GET() { + return NextResponse.json(dossiers); +} + +export async function POST(req: Request) { + const body = await req.json(); + const rec: Dossier = { + ...body, + id: `DOS-${Math.random().toString(36).slice(2, 8).toUpperCase()}`, + submittedAt: new Date().toISOString(), + }; + dossiers.unshift(rec); + return NextResponse.json(rec); +} diff --git a/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/src/app/globals.css b/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/src/app/globals.css new file mode 100644 index 0000000..7af3ec8 --- /dev/null +++ b/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/src/app/globals.css @@ -0,0 +1,172 @@ +:root { + --cc-blue: #2351dc; /* CityCatalyst content blue */ + --cc-blue-dark: #001ea7; + --cc-blue-tint: #e8eafb; + --ink: #0f172a; + --ink-soft: #475569; + --line: #e2e8f0; + --surface: #ffffff; + --page: #f6f8fc; + --green: #2ca36a; + --amber: #d9942a; + --red: #cf4b41; + --radius: 12px; + --sans: "Open Sans", system-ui, -apple-system, Segoe UI, Roboto, sans-serif; + --display: "Poppins", var(--sans); +} + +* { box-sizing: border-box; } +html, body { margin: 0; padding: 0; } +body { + font-family: var(--sans); + color: var(--ink); + background: var(--page); + line-height: 1.5; +} +h1, h2, h3, h4 { font-family: var(--display); margin: 0; color: var(--ink); } +a { color: var(--cc-blue); } + +.wrap { max-width: 1040px; margin: 0 auto; padding: 0 24px 64px; } + +/* Top bar */ +.topbar { + background: var(--surface); + border-bottom: 1px solid var(--line); + padding: 14px 24px; + display: flex; align-items: center; gap: 14px; + position: sticky; top: 0; z-index: 10; +} +.topbar .brand { font-family: var(--display); font-weight: 600; font-size: 16px; } +.topbar .brand span { color: var(--cc-blue); } +.topbar .spacer { flex: 1; } +.topbar nav a { font-size: 14px; text-decoration: none; color: var(--ink-soft); margin-left: 18px; } +.topbar nav a.active { color: var(--cc-blue); font-weight: 600; } +.pill-tag { font-size: 11px; background: var(--cc-blue-tint); color: var(--cc-blue-dark); padding: 3px 9px; border-radius: 999px; font-weight: 600; } + +/* Hero / step header */ +.hero { padding: 28px 0 8px; } +.hero h1 { font-size: 26px; font-weight: 600; } +.hero p { color: var(--ink-soft); margin: 8px 0 0; max-width: 70ch; } + +/* Stepper */ +.stepper { display: flex; gap: 6px; margin: 22px 0 26px; flex-wrap: wrap; } +.stepper .step { + flex: 1; min-width: 110px; border: 1px solid var(--line); border-radius: 10px; + background: var(--surface); padding: 10px 12px; cursor: pointer; text-align: left; + font: inherit; color: var(--ink-soft); +} +.stepper .step b { display: block; font-family: var(--display); font-size: 12px; color: var(--ink); } +.stepper .step small { font-size: 11px; } +.stepper .step.active { border-color: var(--cc-blue); background: var(--cc-blue-tint); } +.stepper .step.done b::before { content: "✓ "; color: var(--green); } + +/* Cards */ +.card { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 20px 22px; margin-bottom: 16px; } +.card h2 { font-size: 18px; font-weight: 600; margin-bottom: 4px; } +.card .sub { color: var(--ink-soft); font-size: 14px; margin-bottom: 16px; } +.grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; } +@media (max-width: 720px) { .grid2 { grid-template-columns: 1fr; } } + +.kv { display: flex; justify-content: space-between; padding: 7px 0; border-bottom: 1px solid var(--line); font-size: 14px; } +.kv:last-child { border-bottom: none; } +.kv span:first-child { color: var(--ink-soft); } +.kv span:last-child { font-weight: 600; } + +/* Badges */ +.badge { font-size: 11px; padding: 2px 8px; border-radius: 999px; font-weight: 600; display: inline-block; } +.badge.real { background: #e6f4ec; color: #1c6b43; } +.badge.estimated { background: #fdf0dd; color: #8a5a14; } +.badge.intake { background: #eef2f7; color: #475569; } +.badge.role-applicant { background: #e6f4ec; color: #1c6b43; } +.badge.role-facilitator { background: #fdf0dd; color: #8a5a14; } +.badge.role-referrer { background: #eef2f7; color: #475569; } + +/* Tier pills */ +.tier { font-weight: 700; padding: 3px 12px; border-radius: 999px; font-size: 13px; } +.tier.Ready { background: #e6f4ec; color: #1c6b43; } +.tier.Developing { background: #fdf0dd; color: #8a5a14; } +.tier.Early { background: #fae9e7; color: #9c352c; } + +/* Pillars */ +.pillar { margin-bottom: 12px; } +.pillar .top { display: flex; justify-content: space-between; align-items: center; font-size: 14px; } +.pillar .bar { height: 8px; background: var(--cc-blue-tint); border-radius: 999px; margin-top: 6px; overflow: hidden; } +.pillar .bar > i { display: block; height: 100%; background: var(--cc-blue); border-radius: 999px; } +.pillar .meta { font-size: 12px; color: var(--ink-soft); margin-top: 3px; } + +.scorebig { font-family: var(--display); font-size: 44px; font-weight: 600; line-height: 1; } +.scorebig small { font-size: 16px; color: var(--ink-soft); font-weight: 400; } + +/* Gate / checklist */ +.gate { display: flex; align-items: center; gap: 8px; padding: 6px 0; font-size: 14px; } +.gate .dot { width: 9px; height: 9px; border-radius: 999px; flex: none; } +.gate .dot.pass { background: var(--green); } +.gate .dot.fail { background: var(--red); } + +/* Buttons */ +.btn { font: inherit; font-weight: 600; border: none; border-radius: 9px; padding: 11px 18px; cursor: pointer; background: var(--cc-blue); color: #fff; } +.btn:hover { background: var(--cc-blue-dark); } +.btn.secondary { background: var(--surface); color: var(--cc-blue); border: 1px solid var(--cc-blue); } +.btn:disabled { background: #c7cfe6; cursor: not-allowed; } +.btn-row { display: flex; gap: 10px; margin-top: 18px; align-items: center; } + +.note { background: var(--cc-blue-tint); border-radius: 10px; padding: 12px 14px; font-size: 13px; color: var(--cc-blue-dark); } +.gap-row { display: flex; justify-content: space-between; padding: 8px 0; border-bottom: 1px solid var(--line); font-size: 14px; } +.tablelike { width: 100%; border-collapse: collapse; font-size: 14px; } +.tablelike th, .tablelike td { text-align: left; padding: 8px 6px; border-bottom: 1px solid var(--line); } +.tablelike th { font-size: 12px; color: var(--ink-soft); font-weight: 600; } +.muted { color: var(--ink-soft); } +.anchor-row { background: var(--cc-blue-tint); } +.empty { color: var(--ink-soft); padding: 40px; text-align: center; } + +/* ---- v2.1 shell: left process menu + main ---- */ +.app-shell { display: flex; min-height: 100vh; } +.sidebar { width: 248px; flex: none; background: var(--surface); border-right: 1px solid var(--line); padding: 18px 14px; position: sticky; top: 0; height: 100vh; overflow-y: auto; } +.sidebar .logo { font-family: var(--display); font-weight: 600; font-size: 15px; margin-bottom: 2px; } +.sidebar .logo span { color: var(--cc-blue); } +.sidebar .tagline { font-size: 11px; color: var(--ink-soft); margin-bottom: 18px; } +.sidebar .menu-label { font-size: 10px; letter-spacing: .08em; text-transform: uppercase; color: #94a3b8; margin: 16px 6px 8px; } +.navitem { display: flex; gap: 10px; align-items: flex-start; width: 100%; text-align: left; font: inherit; background: none; border: none; cursor: pointer; padding: 9px 10px; border-radius: 9px; color: var(--ink); position: relative; } +.navitem:hover { background: #f1f5f9; } +.navitem.active { background: var(--cc-blue-tint); } +.navitem.active .ni-num { background: var(--cc-blue); color: #fff; border-color: var(--cc-blue); } +.navitem:disabled { opacity: .45; cursor: not-allowed; } +.ni-num { flex: none; width: 22px; height: 22px; border-radius: 50%; border: 1.5px solid var(--line); display: grid; place-items: center; font-size: 11px; font-weight: 700; color: var(--ink-soft); margin-top: 1px; } +.navitem.done .ni-num { background: #e6f4ec; color: #1c6b43; border-color: #bfe3cd; } +.ni-text b { display: block; font-size: 13px; font-weight: 600; font-family: var(--display); } +.ni-text small { font-size: 11px; color: var(--ink-soft); } +.sidebar .rail { position: absolute; left: 31px; top: 0; bottom: 0; width: 1.5px; background: var(--line); z-index: 0; } + +.main { flex: 1; min-width: 0; padding: 26px 34px 64px; max-width: 920px; } +.crumbs { font-size: 12px; color: var(--ink-soft); margin-bottom: 4px; } +.h-stage { font-family: var(--display); font-size: 23px; font-weight: 600; margin-bottom: 4px; } +.h-sub { color: var(--ink-soft); font-size: 14px; margin-bottom: 20px; max-width: 64ch; } + +.scopebar { display: flex; gap: 8px; margin-bottom: 16px; } +.scopebtn { font: inherit; font-size: 13px; border: 1px solid var(--line); background: var(--surface); border-radius: 999px; padding: 7px 14px; cursor: pointer; } +.scopebtn.active { border-color: var(--cc-blue); background: var(--cc-blue-tint); color: var(--cc-blue-dark); font-weight: 600; } + +#map { height: 380px; border-radius: 12px; border: 1px solid var(--line); z-index: 0; } +.maplegend { display: flex; gap: 14px; flex-wrap: wrap; margin-top: 10px; font-size: 12px; color: var(--ink-soft); } +.maplegend i { display: inline-block; width: 11px; height: 11px; border-radius: 3px; margin-right: 5px; vertical-align: -1px; } +.dot-Ready, .dot-bankable { background: #2ca36a; } +.dot-Developing, .dot-constrained { background: #d9942a; } +.dot-Early { background: #cf4b41; } +.dot-unrated { background: #9aa5b1; } + +.pathcard { border-left: 4px solid var(--cc-blue); } +.pathcard.ok { border-left-color: var(--green); } +.pathcard.warn { border-left-color: var(--amber); } +.pathcard.block { border-left-color: var(--red); } + +.entrytoggle { display: inline-flex; border: 1px solid var(--line); border-radius: 8px; overflow: hidden; margin-bottom: 14px; } +.entrytoggle button { font: inherit; font-size: 12px; padding: 7px 12px; background: var(--surface); border: none; cursor: pointer; color: var(--ink-soft); } +.entrytoggle button.active { background: var(--cc-blue); color: #fff; } +.agent { background: #f1f5f9; border: 1px solid var(--line); border-radius: 10px; padding: 12px 14px; margin-top: 14px; font-size: 13px; } +.agent .who { font-weight: 600; font-size: 12px; color: var(--cc-blue-dark); display: flex; align-items: center; gap: 6px; margin-bottom: 5px; } +.agent .sim { font-size: 10px; background: #e2e8f0; color: #475569; padding: 1px 6px; border-radius: 999px; font-weight: 600; } +.actionrow { display: flex; justify-content: space-between; padding: 7px 0; border-bottom: 1px solid var(--line); font-size: 14px; } +.actionrow:last-child { border-bottom: none; } +.atype { font-size: 10px; padding: 1px 7px; border-radius: 999px; font-weight: 600; } +.atype.mitigation { background: #e8eafb; color: #2351dc; } +.atype.adaptation { background: #e6f4ec; color: #1c6b43; } diff --git a/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/src/app/layout.tsx b/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/src/app/layout.tsx new file mode 100644 index 0000000..03feb9d --- /dev/null +++ b/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/src/app/layout.tsx @@ -0,0 +1,27 @@ +import type { Metadata } from "next"; +import "./globals.css"; + +export const metadata: Metadata = { + title: "Climate-Finance Readiness Navigator — CityCatalyst × IDB", + description: + "Get cities & regions ready to access climate finance: find a financing line, assess readiness, and submit when ready.", +}; + +export default function RootLayout({ children }: { children: React.ReactNode }) { + return ( + + + + + + {/* Leaflet (loaded at runtime; map degrades gracefully if offline) */} + + + + {children} + + ); +} diff --git a/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/src/app/page.tsx b/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/src/app/page.tsx new file mode 100644 index 0000000..5d00fb1 --- /dev/null +++ b/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/src/app/page.tsx @@ -0,0 +1,409 @@ +"use client"; + +import { useMemo, useState } from "react"; +import Link from "next/link"; +import Sidebar, { type StageDef } from "@/components/Sidebar"; +import MapView from "@/components/MapView"; +import { SCOPES, mapPoints, scopeLegend, journeyCity, DATA } from "@/lib/adapters"; +import { SM, provenanceKind, type Scored, type Comuna } from "@/lib/engine"; +import { getCityContext, agentAssist } from "@/lib/context"; +import { assembleDossier } from "@/lib/dossier"; +import { FUNDERS, getFunder } from "@/lib/funders"; + +const STAGES: StageDef[] = [ + { key: "explore", title: "Explore", sub: "Region & data" }, + { key: "context", title: "City context", sub: "From CityCatalyst" }, + { key: "instrument", title: "Find financing", sub: "Funder · program · instrument" }, + { key: "readiness", title: "Readiness pathways", sub: "Assess & route" }, + { key: "portfolio", title: "Portfolio", sub: "Reach the ticket" }, + { key: "intake", title: "Funder intake", sub: "Dossier & submit" }, +]; + +function ProvBadge({ prov }: { prov: string }) { + const kind = provenanceKind(prov); + return {kind}; +} + +function Pillars({ city }: { city: Comuna }) { + const expl = SM.explainScore(city.readiness); + return ( +
+ {expl.map((e) => ( +
+
+ {e.label} + {city.readiness[e.key as keyof typeof city.readiness]} +
+
+
{e.points} pts · {Math.round(e.weight * 100)}% weight
+
+ ))} +
+ ); +} + +function pathwayOf(s: Scored): "instrument" | "pool" | "capacity-building" { + if (!s.canEnterProjectReview) return "capacity-building"; + if (s.eligibility.eligible) return "instrument"; + return "pool"; +} + +export default function Page() { + const [scopeId, setScopeId] = useState("cl-losrios"); + const [viewLevel, setViewLevel] = useState<"cities" | "state">("cities"); + const [cityId, setCityId] = useState(null); + const [entry, setEntry] = useState<"entity" | "project">("entity"); + const [selFunderId, setSelFunderId] = useState(null); + const [selProgramId, setSelProgramId] = useState(null); + const [selInstrumentId, setSelInstrumentId] = useState(null); + const [portfolioMode, setPortfolioMode] = useState<"intra" | "cross">("intra"); + const [stage, setStage] = useState(0); + const [maxReached, setMaxReached] = useState(0); + const [submitState, setSubmitState] = useState<{ id: string } | null>(null); + const [submitting, setSubmitting] = useState(false); + + const scope = SCOPES.find((s) => s.id === scopeId)!; + const points = useMemo(() => mapPoints(scopeId), [scopeId]); + const legend = scopeLegend(scopeId); + + const scored = cityId ? journeyCity(cityId) : null; + const ctx = cityId ? getCityContext(cityId) : null; + const pathway = scored ? pathwayOf(scored) : null; + + const selFunder = getFunder(selFunderId); + const selProgram = selFunder?.programs.find((p) => p.id === selProgramId) || null; + const selInstrument = selProgram?.instruments.find((i) => i.id === selInstrumentId) || null; + const instrLabel = selProgram && selInstrument ? `${selProgram.name} · ${selInstrument.name}` : SM.activeProfile().instrument; + + // Cross-city pool (Chile) and intra-city portfolio (the city's own projects). + const pool = scopeId === "cl-losrios" ? DATA.cl.pool : null; + const poolScored = scored && pool ? SM.scoreSNG({ ...(scored as any), proposal: pool.pooledProposal }) : null; + const intraTotal = ctx ? ctx.projects.reduce((a, p) => a + p.askUSDm, 0) : 0; + const intraScored = scored && ctx ? SM.scoreSNG({ ...(scored as any), proposal: { title: `${scored.name} climate portfolio`, sector: "multi-sector", askUSDm: intraTotal, stage: "Structuring", cofinance: true } }) : null; + + function goto(i: number) { setStage(i); setMaxReached((m) => Math.max(m, i)); } + function pickCity(id: string) { setCityId(id); setSubmitState(null); setSelFunderId(null); setSelProgramId(null); setSelInstrumentId(null); goto(1); } + + // Region-level summary (the "state layer"). + const regionSummary = useMemo(() => { + const counts: Record = {}; + for (const p of points) counts[p.tier] = (counts[p.tier] || 0) + 1; + return counts; + }, [points]); + + async function submit() { + if (!scored || !pathway) return; + setSubmitting(true); + let opts: any; + if (pathway === "capacity-building") { + opts = { scored, kind: "city", pathway: "capacity-building", instrumentName: "Capacity-building / PPF + blended finance", pool: null, proposal: scored.proposal }; + } else if (portfolioMode === "cross" && pool) { + opts = { scored: poolScored, kind: "pool", pathway: "pool", instrumentName: instrLabel, + pool: { anchor: scored.name, members: pool.members.map((m: any) => ({ name: m.name, role: m.isAnchor ? "anchor" : "member", cofinance: m.cofinanceScore })) }, + proposal: pool.pooledProposal }; + } else { + opts = { scored: intraScored, kind: "city", pathway: "instrument", pool: null, instrumentName: instrLabel, + proposal: { title: `${scored.name} climate portfolio (${ctx!.projects.length} projects)`, sector: "multi-sector", askUSDm: intraTotal, cofinance: true } }; + } + const dossier = assembleDossier(opts); + const res = await fetch("/api/submissions", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify(dossier) }); + const rec = await res.json(); + setSubmitState({ id: rec.id }); + setSubmitting(false); + } + + return ( +
+ +
+
{scope.country} · {scope.region} · adapter: {scope.adapter}{scored ? ` · ${scored.name}` : ""}
+ + {/* 0 — EXPLORE */} + {stage === 0 && ( + <> +
Explore financial readiness
+

Identity & context for a city come from CityCatalyst (inventory, CCRA, HIAP, plan). Here — for the demo — pick a region and a city to open its readiness journey.

+ +
+ {SCOPES.map((s) => ( + + ))} +
+ +
+
+ + +
+ +
+ + +
+ {legend.map((l) => {l.label})} +
+ + {viewLevel === "state" ? ( +
+

{scope.region} — region readiness summary

+

Aggregate across the region (from {scope.adapter}). Useful for a GORE / state / development bank scanning where to act.

+ {Object.entries(regionSummary).map(([t, n]) => ( +
{t}{n} {n === 1 ? "city" : "cities"}
+ ))} +
Switch to Cities to open an individual city's readiness journey.
+
+ ) : ( +
+

Open a city

+

Cities with a full readiness profile in this region:

+ {points.filter((p) => p.journeyable).map((p) => ( +
+ {p.name} · {p.capag ? `CAPAG ${p.capag}` : p.tier} + +
+ ))} +
+ )} + + )} + + {/* 1 — CITY CONTEXT */} + {stage === 1 && scored && ctx && ( + <> +
{scored.name}
+

Loaded from {scored.name}'s CityCatalyst context. (Live CityCatalyst MCP wiring is the seam; here it's simulated.)

+
+ + +
+
+
+

GHG inventory

+

{ctx.inventory.source} · {ctx.inventory.year}

+ {ctx.inventory.topSectors.map((s) =>
{s.sector}{s.sharePct}%
)} +
+
+

CCRA — climate risk

+

{ctx.ccra.source}

+ {ctx.ccra.hazards.map((h) =>
{h.hazard}{h.risk}
)} +
+
+

HIAP priorities

+

Top prioritized climate actions

+ {ctx.hiap.map((a) =>
{a.rank}. {a.name}{a.type}
)} +
+
+

Climate plan

+

{ctx.plan.status}

+
Plan{ctx.plan.name}
+
Actions{ctx.plan.actionsCount}
+
Own project pipeline{ctx.projects.length} projects
+
+
+ {entry === "project" && ( +
Project-first: import a prepared project (a Concept Note from the Project Preparator) — it enters at the Portfolio step.
+ )} +
+ + )} + + {/* 2 — FIND FINANCING (funder navigator: funder → program → instrument) */} + {stage === 2 && scored && ( + <> +
Find a financing line
+

Readiness is specific to the product. Drill down funder → program → instrument. {entry === "entity" ? "Entity-first: a direct line for the city." : "Project-first: also surfaces grants & PPFs via the matching service / Preparator."}

+ +
+ {selFunder ? {selFunder.short} : "Funder"} › {selProgram ? {selProgram.name} : "Program"} › {selInstrument ? {selInstrument.name} : "Instrument"} +
+ +
+

1 · Funder

+ {FUNDERS.map((f) => ( +
+ {f.name} {f.template && template} + +
+ ))} +
+ + {selFunder && ( +
+

2 · Program within {selFunder.short}

+ {selFunder.programs.map((p) => ( +
{ setSelProgramId(p.id); setSelInstrumentId(null); SM.setActiveProfile(p.profileId); }}> +

{p.name}

{selProgramId === p.id && selected}
+

{p.summary}

+ {p.eligibilityNote && selProgramId === p.id &&
{p.eligibilityNote}
} +
+ ))} +
+ )} + + {selProgram && ( +
+

3 · Instrument within {selProgram.name}

+ {selProgram.instruments.map((i) => ( +
+ {i.name} {i.note && · {i.note}} + +
+ ))} +
+ )} + +
Fed by the funder sourcing service — a converged catalog (today fragmented across CityCatalyst + the hackday apps). Mock for the demo.
+
+ + )} + + {/* 3 — READINESS PATHWAYS */} + {stage === 3 && scored && ( + <> +
Readiness pathways
+

The early creditworthiness assessment for the {SM.activeProfile().instrument}, scored on real fiscal data. The diagnosis routes the next step.

+
+
+
+ {scored.compositeReadiness}/100 + {scored.tier} +
+ +
+
+
+

Eligibility gate

+ {Object.entries(scored.eligibility).filter(([k]) => k !== "eligible").map(([k, v]) => { + const lbl = (SM.activeProfile().projectEligibility.find((c: any) => c.key === k) || {}).label || k; + return
{lbl}
; + })} +
+
+

Recommended pathway

+ {pathway === "instrument" &&

Ready and eligible — proceed to the instrument.

} + {pathway === "pool" &&

Ready, but a single project is sub-scale. Reach the ticket size via a portfolio — the city's own projects, or pooling with neighbours.

} + {pathway === "capacity-building" &&

Not yet eligible. Route → capacity-building before the instrument. Not a debt problem — see the signals.

} +
+
+
+ {(() => { const a = agentAssist({ cityName: scored.name, tier: scored.tier, cleared: scored.canEnterProjectReview, pathway: pathway! }); + return
CityCatalyst agent simulated
{a.text}
; })()} +
+ + )} + + {/* 4 — PORTFOLIO / CAPACITY */} + {stage === 4 && scored && ctx && ( + <> + {pathway === "capacity-building" ? ( + <> +
Capacity-building track
+

{scored.name} routes here instead of the loan instrument — what to fix to become eligible, and the funded routes to do it.

+ {(scored as any).capag && ( +
+

Why — the CAPAG signals

+

Real Tesouro Nacional indicators. The gap is not debt.

+
Debt / RCL (endividamento)grade {(scored as any).capag.nota1} ✓
+
Current savings (poupança)grade {(scored as any).capag.nota2}
+
Liquidity (liquidez)grade {(scored as any).capag.nota3}
+
Accounting quality (ICF){(scored as any).capag.icf}
+
+ )} +
+

Funded routes to readiness

+
Accounting / fiscal management TA → lift the ICF ratingPPF · regular TC
+
Build cash reserves & current savingsreform + TC
+
Grant / blended finance for adaptation nowCCFLA / blended
+
+
Once the city re-rates (CAPAG B/A), it re-enters the instrument path. Submitting here registers a capacity-building referral, not a loan.
+
+ + ) : ( + <> +
Build a financeable portfolio
+

A single project is below the {SM.activeProfile().funder} ticket size. Two ways to reach it:

+
+ + +
+ + {portfolioMode === "intra" ? ( +
+

{scored.name}'s own projects

+

Bundle the city's own pipeline into one financeable portfolio — a single creditworthy borrower.

+ + + {ctx.projects.map((p) => )} +
ProjectSectorAsk
{p.title}{p.sector}US${p.askUSDm}M
+
+
Portfolio askUS${intraTotal}M
+
Readiness{intraScored!.tier} · {intraScored!.eligibility.eligible ? "eligible ✓" : "not eligible"}
+
+
+ ) : ( +
+

Pool with neighbouring cities

+

Pool credit lines across cities — {scored.name} anchors; small comunas ride the anchor. Other cities' readiness shown.

+ + + {(DATA.cl.comunas as Comuna[]).map((c) => { const cs = SM.scoreSNG(c); return ; })} +
CityCo-financeReadinessRole
{c.name}{c.cofinanceScore ?? "—"} /100{cs.tier}{c.isAnchor ? Anchor : Member}
+
+
Pooled askUS${pool!.pooledProposal.askUSDm}M
+
Pool readiness{poolScored!.tier} · {poolScored!.eligibility.eligible ? "eligible ✓" : "not eligible"}
+
+
+ )} +
{portfolioMode === "intra" ? "Intra-city: one ready city, its own projects — cleanest path to the ticket." : "Cross-city: a pooled pipeline for a region / development bank — the deal that no single small city could reach alone."}
+
+ + )} + + )} + + {/* 5 — FUNDER INTAKE */} + {stage === 5 && scored && pathway && ( + <> +
Funder intake
+ {!submitState ? ( + <> +

Assemble the machine-readable candidate dossier (Concept Note + creditworthiness + portfolio) and submit it to the funder's pipeline.

+
+
Candidate{pathway === "capacity-building" ? scored.name : portfolioMode === "cross" ? `${scored.name} pool (6 cities)` : `${scored.name} portfolio (${ctx!.projects.length} projects)`}
+
Pathway{pathway === "capacity-building" ? "capacity-building" : portfolioMode === "cross" ? "cross-city pool" : "intra-city portfolio"}
+
Target{pathway === "capacity-building" ? "Capacity-building / PPF" : SM.activeProfile().instrument}
+
AskUS${pathway === "capacity-building" ? scored.proposal.askUSDm : portfolioMode === "cross" ? pool!.pooledProposal.askUSDm : intraTotal}M
+
+
+ +
+ + ) : ( + <> +

Submitted — the dossier is now on the funder's side of the screen.

+
{submitState.id} — {scored.name} is in the funder pipeline.
+
See it in the funder pipeline →
+ + )} + + )} + + {stage > 0 && ( +
+ +
+ )} +
+
+ ); +} diff --git a/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/src/app/pipeline/page.tsx b/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/src/app/pipeline/page.tsx new file mode 100644 index 0000000..9882b6f --- /dev/null +++ b/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/src/app/pipeline/page.tsx @@ -0,0 +1,91 @@ +"use client"; + +import { useEffect, useState } from "react"; +import Link from "next/link"; +import type { Dossier } from "@/lib/dossier"; + +export default function PipelinePage() { + const [subs, setSubs] = useState([]); + const [loading, setLoading] = useState(true); + const [open, setOpen] = useState(null); + + async function load() { + const res = await fetch("/api/submissions", { cache: "no-store" }); + setSubs(await res.json()); + setLoading(false); + } + useEffect(() => { load(); }, []); + + return ( +
+
+
IDB · Control Tower — Intake & Triage
+ funder side +
+ +
+ +
+

Incoming candidate dossiers

+

The funder side of the screen. Pre-scored candidates submitted from CityCatalyst arrive here as machine-readable dossiers, ready for the IDB Sub-Sovereign Finance Program (SFP) review. (Stands in for the justagiraffe Control Tower receiving the handoff.)

+
+ +
+ + {subs.length} dossier{subs.length === 1 ? "" : "s"} +
+ + {loading ? ( +
Loading…
+ ) : subs.length === 0 ? ( +
No dossiers yet. Submit one from the city journey.
+ ) : ( + subs.map((d) => ( +
+
+

{d.name} {d.country} {d.pathway}

+ {d.readiness.tier} · {d.readiness.composite} +
+

{d.conceptNote.title} — {d.instrument.name} ({d.instrument.funder})

+
+
+
Dossier{d.id}
+
AskUS${d.financials.askUSDm}M
+
Clearance{d.readiness.cleared ? "Passed ✓" : "Capacity-building"}
+ {d.pool &&
Pool{d.pool.members.length} members · anchor {d.pool.anchor}
} +
+
+
Sector{d.conceptNote.sector}
+
City id{d.locode}
+
Received{new Date(d.submittedAt).toLocaleTimeString()}
+
+
+
+ +
+ {open === d.id && ( +
+

Concept note — plan

+

{d.conceptNote.summary}

+ {d.conceptNote.actions.map((a, i) => ( +
{a.name}{a.type}
+ ))} +

Readiness — early creditworthiness assessment

+ {d.readiness.pillars.map((p) => ( +
{p.label} ({p.provenance}){p.score}
+ ))} +

Documentary due diligence

+ {d.dueDiligence.map((c, i) => ( +
{c.label}
+ ))} +
{d.provenanceNote}
+
+ )} +
+ )) + )} +
+ ); +} diff --git a/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/src/components/MapView.tsx b/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/src/components/MapView.tsx new file mode 100644 index 0000000..2c14b81 --- /dev/null +++ b/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/src/components/MapView.tsx @@ -0,0 +1,65 @@ +"use client"; + +import { useEffect, useRef } from "react"; +import type { MapPoint } from "@/lib/adapters"; + +const COLOR: Record = { + Ready: "#2ca36a", bankable: "#2ca36a", + Developing: "#d9942a", constrained: "#d9942a", + Early: "#cf4b41", unrated: "#9aa5b1", +}; + +export default function MapView({ + scopeId, points, center, zoom, onSelect, +}: { + scopeId: string; + points: MapPoint[]; + center: [number, number]; + zoom: number; + onSelect: (id: string) => void; +}) { + const elRef = useRef(null); + const mapRef = useRef(null); + const layerRef = useRef(null); + + useEffect(() => { + let cancelled = false; + function init() { + const L = (window as any).L; + if (!L) { setTimeout(init, 150); return; } + if (cancelled) return; + if (!mapRef.current && elRef.current) { + mapRef.current = L.map(elRef.current, { scrollWheelZoom: false }).setView(center, zoom); + L.tileLayer("https://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}{r}.png", { + attribution: "© OpenStreetMap © CARTO", maxZoom: 19, + }).addTo(mapRef.current); + } + const map = mapRef.current; + map.setView(center, zoom); + if (layerRef.current) { map.removeLayer(layerRef.current); } + const group = L.layerGroup(); + for (const p of points) { + const m = L.circleMarker([p.lat, p.lon], { + radius: p.isHero ? 9 : 5, + color: p.isHero ? "#0f172a" : "#ffffff", + weight: p.isHero ? 2 : 1, + fillColor: COLOR[p.tierClass] || "#9aa5b1", + fillOpacity: 0.9, + }); + const tag = p.capag ? `CAPAG ${p.capag}` : p.tier; + m.bindTooltip(`${p.name}
${tag}${p.journeyable ? " · click to open" : ""}`, { direction: "top" }); + if (p.journeyable) m.on("click", () => onSelect(p.id)); + group.addLayer(m); + } + group.addTo(map); + layerRef.current = group; + } + init(); + return () => { cancelled = true; }; + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [scopeId, points]); + + useEffect(() => () => { if (mapRef.current) { mapRef.current.remove(); mapRef.current = null; } }, []); + + return
; +} diff --git a/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/src/components/Sidebar.tsx b/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/src/components/Sidebar.tsx new file mode 100644 index 0000000..43a1e05 --- /dev/null +++ b/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/src/components/Sidebar.tsx @@ -0,0 +1,43 @@ +"use client"; + +import Link from "next/link"; + +export interface StageDef { key: string; title: string; sub: string } + +export default function Sidebar({ + stages, active, maxReached, onSelect, +}: { + stages: StageDef[]; + active: number; + maxReached: number; + onSelect: (i: number) => void; +}) { + return ( + + ); +} diff --git a/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/src/data/brazil.json b/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/src/data/brazil.json new file mode 100644 index 0000000..e0cc41d --- /dev/null +++ b/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/src/data/brazil.json @@ -0,0 +1,4551 @@ +{ + "generated": "2026-06-14", + "source": "CAPAG — Tesouro Nacional (ODbL), via the CAPAG Funder Scan hackday team (Joaquin van Peborgh, Carole Viaene). Screening signal, not a credit decision.", + "scope": { + "country": "Brazil", + "region": "Rio Grande do Sul (RS)", + "note": "state hit by the catastrophic 2024 floods" + }, + "hero": { + "id": "SNG-BR-4304606", + "name": "Canoas", + "locode": "IBGE 4304606", + "cityId": "4304606", + "country": "Brazil", + "iso": "BR", + "type": "City", + "population": 347000, + "isAnchor": false, + "cofinanceScore": null, + "anchorScore": null, + "readiness": { + "creditworthiness": 38, + "fiscalHealth": 52, + "governance": 50, + "legalCapacity": 38 + }, + "provenance": { + "creditworthiness": "real:CAPAG rating C (Tesouro Nacional)", + "fiscalHealth": "real:CAPAG indicators (debt A · savings C · liquidity C)", + "governance": "real:CAPAG ICF Cicf + transparency (RGF/RREO)", + "legalCapacity": "real:CAPAG C — blocked from Union-guaranteed credit" + }, + "signals": { + "capagRating": "C", + "ownSourceRevenuePct": null, + "debtServiceRatioPct": null, + "currentBalancePct": null, + "independentAudit": false, + "canBorrowWithoutSovereignGuarantee": false + }, + "capag": { + "rating": "C", + "ind1": 0.1932645582, + "nota1": "A", + "ind2": 0.9855266178, + "nota2": "C", + "ind3": -0.0234503149, + "nota3": "C", + "icf": "Cicf" + }, + "proposal": { + "title": "Flood resilience & drainage program (post-2024)", + "sector": "water / resilience", + "askUSDm": 45, + "stage": "Readiness Review", + "cofinance": false + } + }, + "stateMap": [ + { + "name": "Aceguá", + "codIbge": "4300034", + "capag": "C", + "tier": "constrained", + "lat": -31.8665, + "lon": -54.1615, + "isHero": false + }, + { + "name": "Água Santa", + "codIbge": "4300059", + "capag": "B", + "tier": "bankable", + "lat": -28.1672, + "lon": -52.031, + "isHero": false + }, + { + "name": "Agudo", + "codIbge": "4300109", + "capag": "A+", + "tier": "bankable", + "lat": -29.6447, + "lon": -53.2515, + "isHero": false + }, + { + "name": "Ajuricaba", + "codIbge": "4300208", + "capag": "B", + "tier": "bankable", + "lat": -28.2342, + "lon": -53.7757, + "isHero": false + }, + { + "name": "Alecrim", + "codIbge": "4300307", + "capag": "C", + "tier": "constrained", + "lat": -27.6579, + "lon": -54.7649, + "isHero": false + }, + { + "name": "Alegrete", + "codIbge": "4300406", + "capag": "A", + "tier": "bankable", + "lat": -29.7902, + "lon": -55.7949, + "isHero": false + }, + { + "name": "Alegria", + "codIbge": "4300455", + "capag": "A", + "tier": "bankable", + "lat": -27.8345, + "lon": -54.0557, + "isHero": false + }, + { + "name": "Almirante Tamandaré do Sul", + "codIbge": "4300471", + "capag": "A+", + "tier": "bankable", + "lat": -28.1149, + "lon": -52.9142, + "isHero": false + }, + { + "name": "Alpestre", + "codIbge": "4300505", + "capag": "A", + "tier": "bankable", + "lat": -27.2502, + "lon": -53.0341, + "isHero": false + }, + { + "name": "Alto Alegre", + "codIbge": "4300554", + "capag": "A", + "tier": "bankable", + "lat": -28.7769, + "lon": -52.9893, + "isHero": false + }, + { + "name": "Alto Feliz", + "codIbge": "4300570", + "capag": "A", + "tier": "bankable", + "lat": -29.3919, + "lon": -51.3123, + "isHero": false + }, + { + "name": "Alvorada", + "codIbge": "4300604", + "capag": "A", + "tier": "bankable", + "lat": -29.9914, + "lon": -51.0809, + "isHero": false + }, + { + "name": "Amaral Ferrador", + "codIbge": "4300638", + "capag": "B+", + "tier": "bankable", + "lat": -30.8756, + "lon": -52.2509, + "isHero": false + }, + { + "name": "Ametista do Sul", + "codIbge": "4300646", + "capag": "C", + "tier": "constrained", + "lat": -27.3607, + "lon": -53.183, + "isHero": false + }, + { + "name": "André da Rocha", + "codIbge": "4300661", + "capag": "A", + "tier": "bankable", + "lat": -28.6283, + "lon": -51.5797, + "isHero": false + }, + { + "name": "Anta Gorda", + "codIbge": "4300703", + "capag": "A", + "tier": "bankable", + "lat": -28.9698, + "lon": -52.0102, + "isHero": false + }, + { + "name": "Antônio Prado", + "codIbge": "4300802", + "capag": "A+", + "tier": "bankable", + "lat": -28.8565, + "lon": -51.2883, + "isHero": false + }, + { + "name": "Arambaré", + "codIbge": "4300851", + "capag": "A", + "tier": "bankable", + "lat": -30.9092, + "lon": -51.5046, + "isHero": false + }, + { + "name": "Araricá", + "codIbge": "4300877", + "capag": "C", + "tier": "constrained", + "lat": -29.6168, + "lon": -50.9291, + "isHero": false + }, + { + "name": "Aratiba", + "codIbge": "4300901", + "capag": "A+", + "tier": "bankable", + "lat": -27.3978, + "lon": -52.2975, + "isHero": false + }, + { + "name": "Arroio do Meio", + "codIbge": "4301008", + "capag": "C", + "tier": "constrained", + "lat": -29.4014, + "lon": -51.9557, + "isHero": false + }, + { + "name": "Arroio do Sal", + "codIbge": "4301057", + "capag": "B+", + "tier": "bankable", + "lat": -29.5439, + "lon": -49.8895, + "isHero": false + }, + { + "name": "Arroio do Padre", + "codIbge": "4301073", + "capag": "A", + "tier": "bankable", + "lat": -31.4389, + "lon": -52.4246, + "isHero": false + }, + { + "name": "Arroio dos Ratos", + "codIbge": "4301107", + "capag": "C", + "tier": "constrained", + "lat": -30.0875, + "lon": -51.7275, + "isHero": false + }, + { + "name": "Arroio do Tigre", + "codIbge": "4301206", + "capag": "B", + "tier": "bankable", + "lat": -29.3348, + "lon": -53.0966, + "isHero": false + }, + { + "name": "Arroio Grande", + "codIbge": "4301305", + "capag": "B", + "tier": "bankable", + "lat": -32.2327, + "lon": -53.0862, + "isHero": false + }, + { + "name": "Arvorezinha", + "codIbge": "4301404", + "capag": "B+", + "tier": "bankable", + "lat": -28.8737, + "lon": -52.1781, + "isHero": false + }, + { + "name": "Augusto Pestana", + "codIbge": "4301503", + "capag": "A+", + "tier": "bankable", + "lat": -28.5172, + "lon": -53.9883, + "isHero": false + }, + { + "name": "Áurea", + "codIbge": "4301552", + "capag": "B", + "tier": "bankable", + "lat": -27.6936, + "lon": -52.0505, + "isHero": false + }, + { + "name": "Bagé", + "codIbge": "4301602", + "capag": "C", + "tier": "constrained", + "lat": -31.3297, + "lon": -54.0999, + "isHero": false + }, + { + "name": "Balneário Pinhal", + "codIbge": "4301636", + "capag": "C", + "tier": "constrained", + "lat": -30.2419, + "lon": -50.2337, + "isHero": false + }, + { + "name": "Barão", + "codIbge": "4301651", + "capag": "A", + "tier": "bankable", + "lat": -29.3725, + "lon": -51.4949, + "isHero": false + }, + { + "name": "Barão de Cotegipe", + "codIbge": "4301701", + "capag": "A", + "tier": "bankable", + "lat": -27.6208, + "lon": -52.3798, + "isHero": false + }, + { + "name": "Barão do Triunfo", + "codIbge": "4301750", + "capag": "n.d.", + "tier": "unrated", + "lat": -30.3891, + "lon": -51.7384, + "isHero": false + }, + { + "name": "Barracão", + "codIbge": "4301800", + "capag": "B", + "tier": "bankable", + "lat": -27.6739, + "lon": -51.4585, + "isHero": false + }, + { + "name": "Barra do Guarita", + "codIbge": "4301859", + "capag": "A", + "tier": "bankable", + "lat": -27.1927, + "lon": -53.7109, + "isHero": false + }, + { + "name": "Barra do Quaraí", + "codIbge": "4301875", + "capag": "A", + "tier": "bankable", + "lat": -30.2029, + "lon": -57.5497, + "isHero": false + }, + { + "name": "Barra do Ribeiro", + "codIbge": "4301909", + "capag": "B", + "tier": "bankable", + "lat": -30.2939, + "lon": -51.3014, + "isHero": false + }, + { + "name": "Barra do Rio Azul", + "codIbge": "4301925", + "capag": "A", + "tier": "bankable", + "lat": -27.4069, + "lon": -52.4084, + "isHero": false + }, + { + "name": "Barra Funda", + "codIbge": "4301958", + "capag": "A", + "tier": "bankable", + "lat": -27.9205, + "lon": -53.0391, + "isHero": false + }, + { + "name": "Barros Cassal", + "codIbge": "4302006", + "capag": "C", + "tier": "constrained", + "lat": -29.0947, + "lon": -52.5836, + "isHero": false + }, + { + "name": "Benjamin Constant do Sul", + "codIbge": "4302055", + "capag": "A", + "tier": "bankable", + "lat": -27.5086, + "lon": -52.5995, + "isHero": false + }, + { + "name": "Bento Gonçalves", + "codIbge": "4302105", + "capag": "C", + "tier": "constrained", + "lat": -29.1662, + "lon": -51.5165, + "isHero": false + }, + { + "name": "Boa Vista das Missões", + "codIbge": "4302154", + "capag": "A", + "tier": "bankable", + "lat": -27.6671, + "lon": -53.3102, + "isHero": false + }, + { + "name": "Boa Vista do Buricá", + "codIbge": "4302204", + "capag": "A", + "tier": "bankable", + "lat": -27.6693, + "lon": -54.1082, + "isHero": false + }, + { + "name": "Boa Vista do Cadeado", + "codIbge": "4302220", + "capag": "A", + "tier": "bankable", + "lat": -28.5791, + "lon": -53.8108, + "isHero": false + }, + { + "name": "Boa Vista do Incra", + "codIbge": "4302238", + "capag": "A", + "tier": "bankable", + "lat": -28.8185, + "lon": -53.391, + "isHero": false + }, + { + "name": "Boa Vista do Sul", + "codIbge": "4302253", + "capag": "A+", + "tier": "bankable", + "lat": -29.3544, + "lon": -51.6687, + "isHero": false + }, + { + "name": "Bom Jesus", + "codIbge": "4302303", + "capag": "B", + "tier": "bankable", + "lat": -28.6697, + "lon": -50.4295, + "isHero": false + }, + { + "name": "Bom Princípio", + "codIbge": "4302352", + "capag": "A+", + "tier": "bankable", + "lat": -29.4856, + "lon": -51.3548, + "isHero": false + }, + { + "name": "Bom Progresso", + "codIbge": "4302378", + "capag": "C", + "tier": "constrained", + "lat": -27.5399, + "lon": -53.8716, + "isHero": false + }, + { + "name": "Bom Retiro do Sul", + "codIbge": "4302402", + "capag": "A", + "tier": "bankable", + "lat": -29.6071, + "lon": -51.9456, + "isHero": false + }, + { + "name": "Boqueirão do Leão", + "codIbge": "4302451", + "capag": "C", + "tier": "constrained", + "lat": -29.3046, + "lon": -52.4284, + "isHero": false + }, + { + "name": "Bossoroca", + "codIbge": "4302501", + "capag": "A", + "tier": "bankable", + "lat": -28.7291, + "lon": -54.9035, + "isHero": false + }, + { + "name": "Bozano", + "codIbge": "4302584", + "capag": "A+", + "tier": "bankable", + "lat": -28.3659, + "lon": -53.772, + "isHero": false + }, + { + "name": "Braga", + "codIbge": "4302600", + "capag": "A", + "tier": "bankable", + "lat": -27.6173, + "lon": -53.7405, + "isHero": false + }, + { + "name": "Brochier", + "codIbge": "4302659", + "capag": "A", + "tier": "bankable", + "lat": -29.5501, + "lon": -51.5945, + "isHero": false + }, + { + "name": "Butiá", + "codIbge": "4302709", + "capag": "C", + "tier": "constrained", + "lat": -30.1179, + "lon": -51.9601, + "isHero": false + }, + { + "name": "Caçapava do Sul", + "codIbge": "4302808", + "capag": "C", + "tier": "constrained", + "lat": -30.5144, + "lon": -53.4827, + "isHero": false + }, + { + "name": "Cacequi", + "codIbge": "4302907", + "capag": "C", + "tier": "constrained", + "lat": -29.8883, + "lon": -54.822, + "isHero": false + }, + { + "name": "Cachoeira do Sul", + "codIbge": "4303004", + "capag": "A+", + "tier": "bankable", + "lat": -30.033, + "lon": -52.8928, + "isHero": false + }, + { + "name": "Cachoeirinha", + "codIbge": "4303103", + "capag": "A", + "tier": "bankable", + "lat": -29.9472, + "lon": -51.1016, + "isHero": false + }, + { + "name": "Cacique Doble", + "codIbge": "4303202", + "capag": "A", + "tier": "bankable", + "lat": -27.767, + "lon": -51.6597, + "isHero": false + }, + { + "name": "Caibaté", + "codIbge": "4303301", + "capag": "C", + "tier": "constrained", + "lat": -28.2905, + "lon": -54.6454, + "isHero": false + }, + { + "name": "Caiçara", + "codIbge": "4303400", + "capag": "B", + "tier": "bankable", + "lat": -27.2791, + "lon": -53.4257, + "isHero": false + }, + { + "name": "Camaquã", + "codIbge": "4303509", + "capag": "A", + "tier": "bankable", + "lat": -30.8489, + "lon": -51.8043, + "isHero": false + }, + { + "name": "Camargo", + "codIbge": "4303558", + "capag": "A", + "tier": "bankable", + "lat": -28.588, + "lon": -52.2003, + "isHero": false + }, + { + "name": "Cambará do Sul", + "codIbge": "4303608", + "capag": "C", + "tier": "constrained", + "lat": -29.0474, + "lon": -50.1465, + "isHero": false + }, + { + "name": "Campestre da Serra", + "codIbge": "4303673", + "capag": "A", + "tier": "bankable", + "lat": -28.7926, + "lon": -51.0941, + "isHero": false + }, + { + "name": "Campina das Missões", + "codIbge": "4303707", + "capag": "A+", + "tier": "bankable", + "lat": -27.9888, + "lon": -54.8416, + "isHero": false + }, + { + "name": "Campinas do Sul", + "codIbge": "4303806", + "capag": "B", + "tier": "bankable", + "lat": -27.7174, + "lon": -52.6248, + "isHero": false + }, + { + "name": "Campo Bom", + "codIbge": "4303905", + "capag": "B", + "tier": "bankable", + "lat": -29.6747, + "lon": -51.0606, + "isHero": false + }, + { + "name": "Campo Novo", + "codIbge": "4304002", + "capag": "A+", + "tier": "bankable", + "lat": -27.6792, + "lon": -53.8052, + "isHero": false + }, + { + "name": "Campos Borges", + "codIbge": "4304101", + "capag": "A", + "tier": "bankable", + "lat": -28.8871, + "lon": -53.0008, + "isHero": false + }, + { + "name": "Candelária", + "codIbge": "4304200", + "capag": "B", + "tier": "bankable", + "lat": -29.6684, + "lon": -52.7895, + "isHero": false + }, + { + "name": "Cândido Godói", + "codIbge": "4304309", + "capag": "A", + "tier": "bankable", + "lat": -27.9515, + "lon": -54.7517, + "isHero": false + }, + { + "name": "Candiota", + "codIbge": "4304358", + "capag": "n.d.", + "tier": "unrated", + "lat": -31.5516, + "lon": -53.6773, + "isHero": false + }, + { + "name": "Canela", + "codIbge": "4304408", + "capag": "C", + "tier": "constrained", + "lat": -29.356, + "lon": -50.8119, + "isHero": false + }, + { + "name": "Canguçu", + "codIbge": "4304507", + "capag": "A+", + "tier": "bankable", + "lat": -31.396, + "lon": -52.6783, + "isHero": false + }, + { + "name": "Canoas", + "codIbge": "4304606", + "capag": "C", + "tier": "constrained", + "lat": -29.9128, + "lon": -51.1857, + "isHero": true + }, + { + "name": "Canudos do Vale", + "codIbge": "4304614", + "capag": "A", + "tier": "bankable", + "lat": -29.3271, + "lon": -52.2374, + "isHero": false + }, + { + "name": "Capão Bonito do Sul", + "codIbge": "4304622", + "capag": "A", + "tier": "bankable", + "lat": -28.1254, + "lon": -51.3961, + "isHero": false + }, + { + "name": "Capão da Canoa", + "codIbge": "4304630", + "capag": "A", + "tier": "bankable", + "lat": -29.7642, + "lon": -50.0282, + "isHero": false + }, + { + "name": "Capão do Cipó", + "codIbge": "4304655", + "capag": "B", + "tier": "bankable", + "lat": -28.9312, + "lon": -54.5558, + "isHero": false + }, + { + "name": "Capão do Leão", + "codIbge": "4304663", + "capag": "C", + "tier": "constrained", + "lat": -31.7565, + "lon": -52.4889, + "isHero": false + }, + { + "name": "Capivari do Sul", + "codIbge": "4304671", + "capag": "A+", + "tier": "bankable", + "lat": -30.1383, + "lon": -50.5152, + "isHero": false + }, + { + "name": "Capela de Santana", + "codIbge": "4304689", + "capag": "C", + "tier": "constrained", + "lat": -29.6961, + "lon": -51.328, + "isHero": false + }, + { + "name": "Capitão", + "codIbge": "4304697", + "capag": "A+", + "tier": "bankable", + "lat": -29.2674, + "lon": -51.9853, + "isHero": false + }, + { + "name": "Carazinho", + "codIbge": "4304705", + "capag": "A", + "tier": "bankable", + "lat": -28.2958, + "lon": -52.7933, + "isHero": false + }, + { + "name": "Caraá", + "codIbge": "4304713", + "capag": "C", + "tier": "constrained", + "lat": -29.7869, + "lon": -50.4316, + "isHero": false + }, + { + "name": "Carlos Barbosa", + "codIbge": "4304804", + "capag": "A", + "tier": "bankable", + "lat": -29.2969, + "lon": -51.5028, + "isHero": false + }, + { + "name": "Carlos Gomes", + "codIbge": "4304853", + "capag": "A", + "tier": "bankable", + "lat": -27.7167, + "lon": -51.9121, + "isHero": false + }, + { + "name": "Casca", + "codIbge": "4304903", + "capag": "A+", + "tier": "bankable", + "lat": -28.5605, + "lon": -51.9815, + "isHero": false + }, + { + "name": "Caseiros", + "codIbge": "4304952", + "capag": "A", + "tier": "bankable", + "lat": -28.2582, + "lon": -51.6861, + "isHero": false + }, + { + "name": "Catuípe", + "codIbge": "4305009", + "capag": "B", + "tier": "bankable", + "lat": -28.2554, + "lon": -54.0132, + "isHero": false + }, + { + "name": "Caxias do Sul", + "codIbge": "4305108", + "capag": "A+", + "tier": "bankable", + "lat": -29.1629, + "lon": -51.1792, + "isHero": false + }, + { + "name": "Centenário", + "codIbge": "4305116", + "capag": "A", + "tier": "bankable", + "lat": -27.7615, + "lon": -51.9984, + "isHero": false + }, + { + "name": "Cerrito", + "codIbge": "4305124", + "capag": "B+", + "tier": "bankable", + "lat": -31.8419, + "lon": -52.8004, + "isHero": false + }, + { + "name": "Cerro Branco", + "codIbge": "4305132", + "capag": "A+", + "tier": "bankable", + "lat": -29.657, + "lon": -52.9406, + "isHero": false + }, + { + "name": "Cerro Grande", + "codIbge": "4305157", + "capag": "B", + "tier": "bankable", + "lat": -27.6106, + "lon": -53.1672, + "isHero": false + }, + { + "name": "Cerro Grande do Sul", + "codIbge": "4305173", + "capag": "C", + "tier": "constrained", + "lat": -30.5905, + "lon": -51.7418, + "isHero": false + }, + { + "name": "Cerro Largo", + "codIbge": "4305207", + "capag": "C", + "tier": "constrained", + "lat": -28.1463, + "lon": -54.7428, + "isHero": false + }, + { + "name": "Chapada", + "codIbge": "4305306", + "capag": "A", + "tier": "bankable", + "lat": -28.0559, + "lon": -53.0665, + "isHero": false + }, + { + "name": "Charqueadas", + "codIbge": "4305355", + "capag": "n.d.", + "tier": "unrated", + "lat": -29.9625, + "lon": -51.6289, + "isHero": false + }, + { + "name": "Charrua", + "codIbge": "4305371", + "capag": "A+", + "tier": "bankable", + "lat": -27.9493, + "lon": -52.015, + "isHero": false + }, + { + "name": "Chiapetta", + "codIbge": "4305405", + "capag": "B", + "tier": "bankable", + "lat": -27.923, + "lon": -53.9419, + "isHero": false + }, + { + "name": "Chuí", + "codIbge": "4305439", + "capag": "C", + "tier": "constrained", + "lat": -33.6866, + "lon": -53.4594, + "isHero": false + }, + { + "name": "Chuvisca", + "codIbge": "4305447", + "capag": "A", + "tier": "bankable", + "lat": -30.7504, + "lon": -51.9737, + "isHero": false + }, + { + "name": "Cidreira", + "codIbge": "4305454", + "capag": "C", + "tier": "constrained", + "lat": -30.1604, + "lon": -50.2337, + "isHero": false + }, + { + "name": "Ciríaco", + "codIbge": "4305504", + "capag": "B", + "tier": "bankable", + "lat": -28.3419, + "lon": -51.8741, + "isHero": false + }, + { + "name": "Colinas", + "codIbge": "4305587", + "capag": "A", + "tier": "bankable", + "lat": -29.3948, + "lon": -51.8556, + "isHero": false + }, + { + "name": "Colorado", + "codIbge": "4305603", + "capag": "B", + "tier": "bankable", + "lat": -28.5258, + "lon": -52.9928, + "isHero": false + }, + { + "name": "Condor", + "codIbge": "4305702", + "capag": "B+", + "tier": "bankable", + "lat": -28.2075, + "lon": -53.4905, + "isHero": false + }, + { + "name": "Constantina", + "codIbge": "4305801", + "capag": "A", + "tier": "bankable", + "lat": -27.732, + "lon": -52.9938, + "isHero": false + }, + { + "name": "Coqueiro Baixo", + "codIbge": "4305835", + "capag": "A", + "tier": "bankable", + "lat": -29.1802, + "lon": -52.0942, + "isHero": false + }, + { + "name": "Coqueiros do Sul", + "codIbge": "4305850", + "capag": "A", + "tier": "bankable", + "lat": -28.1194, + "lon": -52.7842, + "isHero": false + }, + { + "name": "Coronel Barros", + "codIbge": "4305871", + "capag": "A+", + "tier": "bankable", + "lat": -28.3921, + "lon": -54.0686, + "isHero": false + }, + { + "name": "Coronel Bicaco", + "codIbge": "4305900", + "capag": "C", + "tier": "constrained", + "lat": -27.7197, + "lon": -53.7022, + "isHero": false + }, + { + "name": "Coronel Pilar", + "codIbge": "4305934", + "capag": "A", + "tier": "bankable", + "lat": -29.2695, + "lon": -51.6847, + "isHero": false + }, + { + "name": "Cotiporã", + "codIbge": "4305959", + "capag": "A", + "tier": "bankable", + "lat": -28.9891, + "lon": -51.6971, + "isHero": false + }, + { + "name": "Coxilha", + "codIbge": "4305975", + "capag": "A", + "tier": "bankable", + "lat": -28.128, + "lon": -52.3023, + "isHero": false + }, + { + "name": "Crissiumal", + "codIbge": "4306007", + "capag": "A+", + "tier": "bankable", + "lat": -27.4999, + "lon": -54.0994, + "isHero": false + }, + { + "name": "Cristal", + "codIbge": "4306056", + "capag": "B+", + "tier": "bankable", + "lat": -31.0046, + "lon": -52.0436, + "isHero": false + }, + { + "name": "Cristal do Sul", + "codIbge": "4306072", + "capag": "A", + "tier": "bankable", + "lat": -27.452, + "lon": -53.2422, + "isHero": false + }, + { + "name": "Cruz Alta", + "codIbge": "4306106", + "capag": "B+", + "tier": "bankable", + "lat": -28.645, + "lon": -53.6048, + "isHero": false + }, + { + "name": "Cruzaltense", + "codIbge": "4306130", + "capag": "A", + "tier": "bankable", + "lat": -27.6672, + "lon": -52.6522, + "isHero": false + }, + { + "name": "Cruzeiro do Sul", + "codIbge": "4306205", + "capag": "B", + "tier": "bankable", + "lat": -29.5148, + "lon": -51.9928, + "isHero": false + }, + { + "name": "David Canabarro", + "codIbge": "4306304", + "capag": "B+", + "tier": "bankable", + "lat": -28.3849, + "lon": -51.8482, + "isHero": false + }, + { + "name": "Derrubadas", + "codIbge": "4306320", + "capag": "A", + "tier": "bankable", + "lat": -27.2642, + "lon": -53.8645, + "isHero": false + }, + { + "name": "Dezesseis de Novembro", + "codIbge": "4306353", + "capag": "n.e.", + "tier": "unrated", + "lat": -28.219, + "lon": -55.0617, + "isHero": false + }, + { + "name": "Dilermando de Aguiar", + "codIbge": "4306379", + "capag": "A", + "tier": "bankable", + "lat": -29.7054, + "lon": -54.2122, + "isHero": false + }, + { + "name": "Dois Irmãos", + "codIbge": "4306403", + "capag": "A+", + "tier": "bankable", + "lat": -29.5836, + "lon": -51.0898, + "isHero": false + }, + { + "name": "Dois Irmãos das Missões", + "codIbge": "4306429", + "capag": "A", + "tier": "bankable", + "lat": -27.6621, + "lon": -53.5304, + "isHero": false + }, + { + "name": "Dois Lajeados", + "codIbge": "4306452", + "capag": "A", + "tier": "bankable", + "lat": -28.983, + "lon": -51.8396, + "isHero": false + }, + { + "name": "Dom Feliciano", + "codIbge": "4306502", + "capag": "C", + "tier": "constrained", + "lat": -30.7004, + "lon": -52.1026, + "isHero": false + }, + { + "name": "Dom Pedro de Alcântara", + "codIbge": "4306551", + "capag": "A+", + "tier": "bankable", + "lat": -29.3639, + "lon": -49.853, + "isHero": false + }, + { + "name": "Dom Pedrito", + "codIbge": "4306601", + "capag": "A+", + "tier": "bankable", + "lat": -30.9756, + "lon": -54.6694, + "isHero": false + }, + { + "name": "Dona Francisca", + "codIbge": "4306700", + "capag": "A+", + "tier": "bankable", + "lat": -29.6195, + "lon": -53.3617, + "isHero": false + }, + { + "name": "Doutor Maurício Cardoso", + "codIbge": "4306734", + "capag": "A", + "tier": "bankable", + "lat": -27.5103, + "lon": -54.3577, + "isHero": false + }, + { + "name": "Doutor Ricardo", + "codIbge": "4306759", + "capag": "C", + "tier": "constrained", + "lat": -29.084, + "lon": -51.9972, + "isHero": false + }, + { + "name": "Eldorado do Sul", + "codIbge": "4306767", + "capag": "A+", + "tier": "bankable", + "lat": -30.0847, + "lon": -51.6187, + "isHero": false + }, + { + "name": "Encantado", + "codIbge": "4306809", + "capag": "B", + "tier": "bankable", + "lat": -29.2351, + "lon": -51.8703, + "isHero": false + }, + { + "name": "Encruzilhada do Sul", + "codIbge": "4306908", + "capag": "A", + "tier": "bankable", + "lat": -30.543, + "lon": -52.5204, + "isHero": false + }, + { + "name": "Engenho Velho", + "codIbge": "4306924", + "capag": "A", + "tier": "bankable", + "lat": -27.706, + "lon": -52.9145, + "isHero": false + }, + { + "name": "Entre-Ijuís", + "codIbge": "4306932", + "capag": "B+", + "tier": "bankable", + "lat": -28.3686, + "lon": -54.2686, + "isHero": false + }, + { + "name": "Entre Rios do Sul", + "codIbge": "4306957", + "capag": "C", + "tier": "constrained", + "lat": -27.5298, + "lon": -52.7347, + "isHero": false + }, + { + "name": "Erebango", + "codIbge": "4306973", + "capag": "n.e.", + "tier": "unrated", + "lat": -27.8544, + "lon": -52.3005, + "isHero": false + }, + { + "name": "Erechim", + "codIbge": "4307005", + "capag": "A+", + "tier": "bankable", + "lat": -27.6364, + "lon": -52.2697, + "isHero": false + }, + { + "name": "Ernestina", + "codIbge": "4307054", + "capag": "A", + "tier": "bankable", + "lat": -28.4977, + "lon": -52.5836, + "isHero": false + }, + { + "name": "Herval", + "codIbge": "4307104", + "capag": "A", + "tier": "bankable", + "lat": -32.024, + "lon": -53.3944, + "isHero": false + }, + { + "name": "Erval Grande", + "codIbge": "4307203", + "capag": "C", + "tier": "constrained", + "lat": -27.3926, + "lon": -52.574, + "isHero": false + }, + { + "name": "Erval Seco", + "codIbge": "4307302", + "capag": "C", + "tier": "constrained", + "lat": -27.5443, + "lon": -53.5005, + "isHero": false + }, + { + "name": "Esmeralda", + "codIbge": "4307401", + "capag": "B", + "tier": "bankable", + "lat": -28.0518, + "lon": -51.1933, + "isHero": false + }, + { + "name": "Esperança do Sul", + "codIbge": "4307450", + "capag": "n.d.", + "tier": "unrated", + "lat": -27.3603, + "lon": -53.9891, + "isHero": false + }, + { + "name": "Espumoso", + "codIbge": "4307500", + "capag": "B", + "tier": "bankable", + "lat": -28.7286, + "lon": -52.8461, + "isHero": false + }, + { + "name": "Estação", + "codIbge": "4307559", + "capag": "B", + "tier": "bankable", + "lat": -27.9135, + "lon": -52.2635, + "isHero": false + }, + { + "name": "Estância Velha", + "codIbge": "4307609", + "capag": "B", + "tier": "bankable", + "lat": -29.6535, + "lon": -51.1843, + "isHero": false + }, + { + "name": "Esteio", + "codIbge": "4307708", + "capag": "C", + "tier": "constrained", + "lat": -29.852, + "lon": -51.1841, + "isHero": false + }, + { + "name": "Estrela", + "codIbge": "4307807", + "capag": "A", + "tier": "bankable", + "lat": -29.5002, + "lon": -51.9495, + "isHero": false + }, + { + "name": "Estrela Velha", + "codIbge": "4307815", + "capag": "A", + "tier": "bankable", + "lat": -29.1713, + "lon": -53.1639, + "isHero": false + }, + { + "name": "Eugênio de Castro", + "codIbge": "4307831", + "capag": "A+", + "tier": "bankable", + "lat": -28.5315, + "lon": -54.1506, + "isHero": false + }, + { + "name": "Fagundes Varela", + "codIbge": "4307864", + "capag": "A+", + "tier": "bankable", + "lat": -28.8794, + "lon": -51.7014, + "isHero": false + }, + { + "name": "Farroupilha", + "codIbge": "4307906", + "capag": "A", + "tier": "bankable", + "lat": -29.2227, + "lon": -51.3419, + "isHero": false + }, + { + "name": "Faxinal do Soturno", + "codIbge": "4308003", + "capag": "A+", + "tier": "bankable", + "lat": -29.5788, + "lon": -53.4484, + "isHero": false + }, + { + "name": "Faxinalzinho", + "codIbge": "4308052", + "capag": "C", + "tier": "constrained", + "lat": -27.4238, + "lon": -52.6789, + "isHero": false + }, + { + "name": "Fazenda Vilanova", + "codIbge": "4308078", + "capag": "A", + "tier": "bankable", + "lat": -29.5885, + "lon": -51.8217, + "isHero": false + }, + { + "name": "Feliz", + "codIbge": "4308102", + "capag": "A+", + "tier": "bankable", + "lat": -29.4527, + "lon": -51.3032, + "isHero": false + }, + { + "name": "Flores da Cunha", + "codIbge": "4308201", + "capag": "A", + "tier": "bankable", + "lat": -29.0261, + "lon": -51.1875, + "isHero": false + }, + { + "name": "Floriano Peixoto", + "codIbge": "4308250", + "capag": "A", + "tier": "bankable", + "lat": -27.8614, + "lon": -52.0838, + "isHero": false + }, + { + "name": "Fontoura Xavier", + "codIbge": "4308300", + "capag": "B", + "tier": "bankable", + "lat": -28.9817, + "lon": -52.3445, + "isHero": false + }, + { + "name": "Formigueiro", + "codIbge": "4308409", + "capag": "A", + "tier": "bankable", + "lat": -30.0035, + "lon": -53.4959, + "isHero": false + }, + { + "name": "Forquetinha", + "codIbge": "4308433", + "capag": "A", + "tier": "bankable", + "lat": -29.3828, + "lon": -52.0981, + "isHero": false + }, + { + "name": "Fortaleza dos Valos", + "codIbge": "4308458", + "capag": "A+", + "tier": "bankable", + "lat": -28.7986, + "lon": -53.2249, + "isHero": false + }, + { + "name": "Frederico Westphalen", + "codIbge": "4308508", + "capag": "B", + "tier": "bankable", + "lat": -27.3586, + "lon": -53.3958, + "isHero": false + }, + { + "name": "Garibaldi", + "codIbge": "4308607", + "capag": "A", + "tier": "bankable", + "lat": -29.259, + "lon": -51.5352, + "isHero": false + }, + { + "name": "Garruchos", + "codIbge": "4308656", + "capag": "A+", + "tier": "bankable", + "lat": -28.1944, + "lon": -55.6383, + "isHero": false + }, + { + "name": "Gaurama", + "codIbge": "4308706", + "capag": "A", + "tier": "bankable", + "lat": -27.5856, + "lon": -52.0915, + "isHero": false + }, + { + "name": "General Câmara", + "codIbge": "4308805", + "capag": "C", + "tier": "constrained", + "lat": -29.9032, + "lon": -51.7612, + "isHero": false + }, + { + "name": "Gentil", + "codIbge": "4308854", + "capag": "B", + "tier": "bankable", + "lat": -28.4316, + "lon": -52.0337, + "isHero": false + }, + { + "name": "Getúlio Vargas", + "codIbge": "4308904", + "capag": "A", + "tier": "bankable", + "lat": -27.8911, + "lon": -52.2294, + "isHero": false + }, + { + "name": "Giruá", + "codIbge": "4309001", + "capag": "A", + "tier": "bankable", + "lat": -28.0297, + "lon": -54.3517, + "isHero": false + }, + { + "name": "Glorinha", + "codIbge": "4309050", + "capag": "C", + "tier": "constrained", + "lat": -29.8798, + "lon": -50.7734, + "isHero": false + }, + { + "name": "Gramado", + "codIbge": "4309100", + "capag": "B", + "tier": "bankable", + "lat": -29.3734, + "lon": -50.8762, + "isHero": false + }, + { + "name": "Gramado dos Loureiros", + "codIbge": "4309126", + "capag": "B", + "tier": "bankable", + "lat": -27.4429, + "lon": -52.9149, + "isHero": false + }, + { + "name": "Gramado Xavier", + "codIbge": "4309159", + "capag": "B+", + "tier": "bankable", + "lat": -29.2706, + "lon": -52.5795, + "isHero": false + }, + { + "name": "Gravataí", + "codIbge": "4309209", + "capag": "C", + "tier": "constrained", + "lat": -29.9413, + "lon": -50.9869, + "isHero": false + }, + { + "name": "Guabiju", + "codIbge": "4309258", + "capag": "A", + "tier": "bankable", + "lat": -28.5421, + "lon": -51.6948, + "isHero": false + }, + { + "name": "Guaíba", + "codIbge": "4309308", + "capag": "A", + "tier": "bankable", + "lat": -30.1086, + "lon": -51.3233, + "isHero": false + }, + { + "name": "Guaporé", + "codIbge": "4309407", + "capag": "A", + "tier": "bankable", + "lat": -28.8399, + "lon": -51.8895, + "isHero": false + }, + { + "name": "Guarani das Missões", + "codIbge": "4309506", + "capag": "B", + "tier": "bankable", + "lat": -28.1491, + "lon": -54.5629, + "isHero": false + }, + { + "name": "Harmonia", + "codIbge": "4309555", + "capag": "A", + "tier": "bankable", + "lat": -29.5456, + "lon": -51.4185, + "isHero": false + }, + { + "name": "Herveiras", + "codIbge": "4309571", + "capag": "A", + "tier": "bankable", + "lat": -29.4552, + "lon": -52.6553, + "isHero": false + }, + { + "name": "Horizontina", + "codIbge": "4309605", + "capag": "A", + "tier": "bankable", + "lat": -27.6282, + "lon": -54.3053, + "isHero": false + }, + { + "name": "Hulha Negra", + "codIbge": "4309654", + "capag": "A", + "tier": "bankable", + "lat": -31.4067, + "lon": -53.8667, + "isHero": false + }, + { + "name": "Humaitá", + "codIbge": "4309704", + "capag": "B", + "tier": "bankable", + "lat": -27.5691, + "lon": -53.9695, + "isHero": false + }, + { + "name": "Ibarama", + "codIbge": "4309753", + "capag": "A", + "tier": "bankable", + "lat": -29.4203, + "lon": -53.1295, + "isHero": false + }, + { + "name": "Ibiaçá", + "codIbge": "4309803", + "capag": "C", + "tier": "constrained", + "lat": -28.0566, + "lon": -51.8599, + "isHero": false + }, + { + "name": "Ibiraiaras", + "codIbge": "4309902", + "capag": "A+", + "tier": "bankable", + "lat": -28.3741, + "lon": -51.6377, + "isHero": false + }, + { + "name": "Ibirapuitã", + "codIbge": "4309951", + "capag": "B", + "tier": "bankable", + "lat": -28.6247, + "lon": -52.5158, + "isHero": false + }, + { + "name": "Ibirubá", + "codIbge": "4310009", + "capag": "B+", + "tier": "bankable", + "lat": -28.6302, + "lon": -53.0961, + "isHero": false + }, + { + "name": "Igrejinha", + "codIbge": "4310108", + "capag": "B", + "tier": "bankable", + "lat": -29.5693, + "lon": -50.7919, + "isHero": false + }, + { + "name": "Ijuí", + "codIbge": "4310207", + "capag": "B+", + "tier": "bankable", + "lat": -28.388, + "lon": -53.92, + "isHero": false + }, + { + "name": "Ilópolis", + "codIbge": "4310306", + "capag": "A", + "tier": "bankable", + "lat": -28.9282, + "lon": -52.1258, + "isHero": false + }, + { + "name": "Imbé", + "codIbge": "4310330", + "capag": "B+", + "tier": "bankable", + "lat": -29.9753, + "lon": -50.1281, + "isHero": false + }, + { + "name": "Imigrante", + "codIbge": "4310363", + "capag": "A+", + "tier": "bankable", + "lat": -29.3508, + "lon": -51.7748, + "isHero": false + }, + { + "name": "Independência", + "codIbge": "4310405", + "capag": "A+", + "tier": "bankable", + "lat": -27.8354, + "lon": -54.1886, + "isHero": false + }, + { + "name": "Inhacorá", + "codIbge": "4310413", + "capag": "B", + "tier": "bankable", + "lat": -27.8752, + "lon": -54.015, + "isHero": false + }, + { + "name": "Ipê", + "codIbge": "4310439", + "capag": "A+", + "tier": "bankable", + "lat": -28.8171, + "lon": -51.2859, + "isHero": false + }, + { + "name": "Ipiranga do Sul", + "codIbge": "4310462", + "capag": "A", + "tier": "bankable", + "lat": -27.9404, + "lon": -52.4271, + "isHero": false + }, + { + "name": "Iraí", + "codIbge": "4310504", + "capag": "A+", + "tier": "bankable", + "lat": -27.1951, + "lon": -53.2543, + "isHero": false + }, + { + "name": "Itaara", + "codIbge": "4310538", + "capag": "A+", + "tier": "bankable", + "lat": -29.6013, + "lon": -53.7725, + "isHero": false + }, + { + "name": "Itacurubi", + "codIbge": "4310553", + "capag": "A", + "tier": "bankable", + "lat": -28.7913, + "lon": -55.2447, + "isHero": false + }, + { + "name": "Itapuca", + "codIbge": "4310579", + "capag": "A+", + "tier": "bankable", + "lat": -28.7768, + "lon": -52.1693, + "isHero": false + }, + { + "name": "Itaqui", + "codIbge": "4310603", + "capag": "A", + "tier": "bankable", + "lat": -29.1311, + "lon": -56.5515, + "isHero": false + }, + { + "name": "Itati", + "codIbge": "4310652", + "capag": "B", + "tier": "bankable", + "lat": -29.4974, + "lon": -50.1016, + "isHero": false + }, + { + "name": "Itatiba do Sul", + "codIbge": "4310702", + "capag": "A", + "tier": "bankable", + "lat": -27.3846, + "lon": -52.4538, + "isHero": false + }, + { + "name": "Ivorá", + "codIbge": "4310751", + "capag": "n.d.", + "tier": "unrated", + "lat": -29.5232, + "lon": -53.5842, + "isHero": false + }, + { + "name": "Ivoti", + "codIbge": "4310801", + "capag": "A", + "tier": "bankable", + "lat": -29.5995, + "lon": -51.1533, + "isHero": false + }, + { + "name": "Jaboticaba", + "codIbge": "4310850", + "capag": "A", + "tier": "bankable", + "lat": -27.6347, + "lon": -53.2762, + "isHero": false + }, + { + "name": "Jacuizinho", + "codIbge": "4310876", + "capag": "A+", + "tier": "bankable", + "lat": -29.0401, + "lon": -53.0657, + "isHero": false + }, + { + "name": "Jacutinga", + "codIbge": "4310900", + "capag": "B", + "tier": "bankable", + "lat": -27.7291, + "lon": -52.5372, + "isHero": false + }, + { + "name": "Jaguarão", + "codIbge": "4311007", + "capag": "B+", + "tier": "bankable", + "lat": -32.5604, + "lon": -53.377, + "isHero": false + }, + { + "name": "Jaguari", + "codIbge": "4311106", + "capag": "C", + "tier": "constrained", + "lat": -29.4936, + "lon": -54.703, + "isHero": false + }, + { + "name": "Jaquirana", + "codIbge": "4311122", + "capag": "A", + "tier": "bankable", + "lat": -28.8811, + "lon": -50.3637, + "isHero": false + }, + { + "name": "Jari", + "codIbge": "4311130", + "capag": "A", + "tier": "bankable", + "lat": -29.2922, + "lon": -54.2237, + "isHero": false + }, + { + "name": "Jóia", + "codIbge": "4311155", + "capag": "A+", + "tier": "bankable", + "lat": -28.6435, + "lon": -54.1141, + "isHero": false + }, + { + "name": "Júlio de Castilhos", + "codIbge": "4311205", + "capag": "C", + "tier": "constrained", + "lat": -29.2299, + "lon": -53.6772, + "isHero": false + }, + { + "name": "Lagoa Bonita do Sul", + "codIbge": "4311239", + "capag": "A", + "tier": "bankable", + "lat": -29.4939, + "lon": -53.017, + "isHero": false + }, + { + "name": "Lagoão", + "codIbge": "4311254", + "capag": "C", + "tier": "constrained", + "lat": -29.2348, + "lon": -52.7997, + "isHero": false + }, + { + "name": "Lagoa dos Três Cantos", + "codIbge": "4311270", + "capag": "A+", + "tier": "bankable", + "lat": -28.5676, + "lon": -52.8618, + "isHero": false + }, + { + "name": "Lagoa Vermelha", + "codIbge": "4311304", + "capag": "A", + "tier": "bankable", + "lat": -28.2093, + "lon": -51.5248, + "isHero": false + }, + { + "name": "Lajeado", + "codIbge": "4311403", + "capag": "A+", + "tier": "bankable", + "lat": -29.4591, + "lon": -51.9644, + "isHero": false + }, + { + "name": "Lajeado do Bugre", + "codIbge": "4311429", + "capag": "B", + "tier": "bankable", + "lat": -27.6913, + "lon": -53.1818, + "isHero": false + }, + { + "name": "Lavras do Sul", + "codIbge": "4311502", + "capag": "A", + "tier": "bankable", + "lat": -30.8071, + "lon": -53.8931, + "isHero": false + }, + { + "name": "Liberato Salzano", + "codIbge": "4311601", + "capag": "B", + "tier": "bankable", + "lat": -27.601, + "lon": -53.0753, + "isHero": false + }, + { + "name": "Lindolfo Collor", + "codIbge": "4311627", + "capag": "A", + "tier": "bankable", + "lat": -29.5859, + "lon": -51.2141, + "isHero": false + }, + { + "name": "Linha Nova", + "codIbge": "4311643", + "capag": "A", + "tier": "bankable", + "lat": -29.4679, + "lon": -51.2003, + "isHero": false + }, + { + "name": "Machadinho", + "codIbge": "4311700", + "capag": "B", + "tier": "bankable", + "lat": -27.5667, + "lon": -51.6668, + "isHero": false + }, + { + "name": "Maçambará", + "codIbge": "4311718", + "capag": "A", + "tier": "bankable", + "lat": -29.1445, + "lon": -56.0674, + "isHero": false + }, + { + "name": "Mampituba", + "codIbge": "4311734", + "capag": "A", + "tier": "bankable", + "lat": -29.2136, + "lon": -49.9311, + "isHero": false + }, + { + "name": "Manoel Viana", + "codIbge": "4311759", + "capag": "A", + "tier": "bankable", + "lat": -29.5859, + "lon": -55.4841, + "isHero": false + }, + { + "name": "Maquiné", + "codIbge": "4311775", + "capag": "B", + "tier": "bankable", + "lat": -29.6798, + "lon": -50.2079, + "isHero": false + }, + { + "name": "Maratá", + "codIbge": "4311791", + "capag": "A+", + "tier": "bankable", + "lat": -29.5457, + "lon": -51.5573, + "isHero": false + }, + { + "name": "Marau", + "codIbge": "4311809", + "capag": "A+", + "tier": "bankable", + "lat": -28.4498, + "lon": -52.1986, + "isHero": false + }, + { + "name": "Marcelino Ramos", + "codIbge": "4311908", + "capag": "A", + "tier": "bankable", + "lat": -27.4676, + "lon": -51.9095, + "isHero": false + }, + { + "name": "Mariana Pimentel", + "codIbge": "4311981", + "capag": "B", + "tier": "bankable", + "lat": -30.353, + "lon": -51.5803, + "isHero": false + }, + { + "name": "Mariano Moro", + "codIbge": "4312005", + "capag": "A+", + "tier": "bankable", + "lat": -27.3568, + "lon": -52.1467, + "isHero": false + }, + { + "name": "Marques de Souza", + "codIbge": "4312054", + "capag": "A+", + "tier": "bankable", + "lat": -29.3311, + "lon": -52.0973, + "isHero": false + }, + { + "name": "Mata", + "codIbge": "4312104", + "capag": "B", + "tier": "bankable", + "lat": -29.5649, + "lon": -54.4641, + "isHero": false + }, + { + "name": "Mato Castelhano", + "codIbge": "4312138", + "capag": "C", + "tier": "constrained", + "lat": -28.28, + "lon": -52.1932, + "isHero": false + }, + { + "name": "Mato Leitão", + "codIbge": "4312153", + "capag": "A", + "tier": "bankable", + "lat": -29.5285, + "lon": -52.1278, + "isHero": false + }, + { + "name": "Mato Queimado", + "codIbge": "4312179", + "capag": "A", + "tier": "bankable", + "lat": -28.252, + "lon": -54.6159, + "isHero": false + }, + { + "name": "Maximiliano de Almeida", + "codIbge": "4312203", + "capag": "n.d.", + "tier": "unrated", + "lat": -27.6325, + "lon": -51.802, + "isHero": false + }, + { + "name": "Minas do Leão", + "codIbge": "4312252", + "capag": "A", + "tier": "bankable", + "lat": -30.1346, + "lon": -52.0423, + "isHero": false + }, + { + "name": "Miraguaí", + "codIbge": "4312302", + "capag": "C", + "tier": "constrained", + "lat": -27.497, + "lon": -53.6891, + "isHero": false + }, + { + "name": "Montauri", + "codIbge": "4312351", + "capag": "A+", + "tier": "bankable", + "lat": -28.6462, + "lon": -52.0767, + "isHero": false + }, + { + "name": "Monte Alegre dos Campos", + "codIbge": "4312377", + "capag": "A", + "tier": "bankable", + "lat": -28.6805, + "lon": -50.7834, + "isHero": false + }, + { + "name": "Monte Belo do Sul", + "codIbge": "4312385", + "capag": "B", + "tier": "bankable", + "lat": -29.1607, + "lon": -51.6333, + "isHero": false + }, + { + "name": "Montenegro", + "codIbge": "4312401", + "capag": "A", + "tier": "bankable", + "lat": -29.6824, + "lon": -51.4679, + "isHero": false + }, + { + "name": "Mormaço", + "codIbge": "4312427", + "capag": "A", + "tier": "bankable", + "lat": -28.6968, + "lon": -52.6999, + "isHero": false + }, + { + "name": "Morrinhos do Sul", + "codIbge": "4312443", + "capag": "C", + "tier": "constrained", + "lat": -29.3578, + "lon": -49.9328, + "isHero": false + }, + { + "name": "Morro Redondo", + "codIbge": "4312450", + "capag": "A", + "tier": "bankable", + "lat": -31.5887, + "lon": -52.6261, + "isHero": false + }, + { + "name": "Morro Reuter", + "codIbge": "4312476", + "capag": "A+", + "tier": "bankable", + "lat": -29.5379, + "lon": -51.0811, + "isHero": false + }, + { + "name": "Mostardas", + "codIbge": "4312500", + "capag": "B+", + "tier": "bankable", + "lat": -31.1054, + "lon": -50.9167, + "isHero": false + }, + { + "name": "Muçum", + "codIbge": "4312609", + "capag": "n.d.", + "tier": "unrated", + "lat": -29.163, + "lon": -51.8714, + "isHero": false + }, + { + "name": "Muitos Capões", + "codIbge": "4312617", + "capag": "n.d.", + "tier": "unrated", + "lat": -28.3132, + "lon": -51.1836, + "isHero": false + }, + { + "name": "Muliterno", + "codIbge": "4312625", + "capag": "A", + "tier": "bankable", + "lat": -28.3253, + "lon": -51.7697, + "isHero": false + }, + { + "name": "Não-Me-Toque", + "codIbge": "4312658", + "capag": "A", + "tier": "bankable", + "lat": -28.4548, + "lon": -52.8182, + "isHero": false + }, + { + "name": "Nicolau Vergueiro", + "codIbge": "4312674", + "capag": "A", + "tier": "bankable", + "lat": -28.5298, + "lon": -52.4676, + "isHero": false + }, + { + "name": "Nonoai", + "codIbge": "4312708", + "capag": "B", + "tier": "bankable", + "lat": -27.3689, + "lon": -52.7756, + "isHero": false + }, + { + "name": "Nova Alvorada", + "codIbge": "4312757", + "capag": "A+", + "tier": "bankable", + "lat": -28.6822, + "lon": -52.1631, + "isHero": false + }, + { + "name": "Nova Araçá", + "codIbge": "4312807", + "capag": "A", + "tier": "bankable", + "lat": -28.6537, + "lon": -51.7458, + "isHero": false + }, + { + "name": "Nova Bassano", + "codIbge": "4312906", + "capag": "A", + "tier": "bankable", + "lat": -28.7291, + "lon": -51.7072, + "isHero": false + }, + { + "name": "Nova Boa Vista", + "codIbge": "4312955", + "capag": "A+", + "tier": "bankable", + "lat": -27.9926, + "lon": -52.9784, + "isHero": false + }, + { + "name": "Nova Bréscia", + "codIbge": "4313003", + "capag": "A", + "tier": "bankable", + "lat": -29.2182, + "lon": -52.0319, + "isHero": false + }, + { + "name": "Nova Candelária", + "codIbge": "4313011", + "capag": "A+", + "tier": "bankable", + "lat": -27.6137, + "lon": -54.1074, + "isHero": false + }, + { + "name": "Nova Esperança do Sul", + "codIbge": "4313037", + "capag": "A", + "tier": "bankable", + "lat": -29.4066, + "lon": -54.8293, + "isHero": false + }, + { + "name": "Nova Hartz", + "codIbge": "4313060", + "capag": "A", + "tier": "bankable", + "lat": -29.5808, + "lon": -50.9051, + "isHero": false + }, + { + "name": "Nova Pádua", + "codIbge": "4313086", + "capag": "A", + "tier": "bankable", + "lat": -29.0275, + "lon": -51.3098, + "isHero": false + }, + { + "name": "Nova Palma", + "codIbge": "4313102", + "capag": "A+", + "tier": "bankable", + "lat": -29.471, + "lon": -53.4689, + "isHero": false + }, + { + "name": "Nova Petrópolis", + "codIbge": "4313201", + "capag": "A", + "tier": "bankable", + "lat": -29.3741, + "lon": -51.1136, + "isHero": false + }, + { + "name": "Nova Prata", + "codIbge": "4313300", + "capag": "C", + "tier": "constrained", + "lat": -28.7799, + "lon": -51.6113, + "isHero": false + }, + { + "name": "Nova Ramada", + "codIbge": "4313334", + "capag": "A+", + "tier": "bankable", + "lat": -28.0667, + "lon": -53.6992, + "isHero": false + }, + { + "name": "Nova Roma do Sul", + "codIbge": "4313359", + "capag": "A", + "tier": "bankable", + "lat": -28.9882, + "lon": -51.4095, + "isHero": false + }, + { + "name": "Nova Santa Rita", + "codIbge": "4313375", + "capag": "A", + "tier": "bankable", + "lat": -29.8525, + "lon": -51.2837, + "isHero": false + }, + { + "name": "Novo Cabrais", + "codIbge": "4313391", + "capag": "A+", + "tier": "bankable", + "lat": -29.7338, + "lon": -52.9489, + "isHero": false + }, + { + "name": "Novo Hamburgo", + "codIbge": "4313409", + "capag": "B", + "tier": "bankable", + "lat": -29.6875, + "lon": -51.1328, + "isHero": false + }, + { + "name": "Novo Machado", + "codIbge": "4313425", + "capag": "n.d.", + "tier": "unrated", + "lat": -27.5765, + "lon": -54.5036, + "isHero": false + }, + { + "name": "Novo Tiradentes", + "codIbge": "4313441", + "capag": "B", + "tier": "bankable", + "lat": -27.5649, + "lon": -53.1837, + "isHero": false + }, + { + "name": "Novo Xingu", + "codIbge": "4313466", + "capag": "A", + "tier": "bankable", + "lat": -27.749, + "lon": -53.0639, + "isHero": false + }, + { + "name": "Novo Barreiro", + "codIbge": "4313490", + "capag": "A", + "tier": "bankable", + "lat": -27.9077, + "lon": -53.1103, + "isHero": false + }, + { + "name": "Osório", + "codIbge": "4313508", + "capag": "B", + "tier": "bankable", + "lat": -29.8881, + "lon": -50.2667, + "isHero": false + }, + { + "name": "Paim Filho", + "codIbge": "4313607", + "capag": "B", + "tier": "bankable", + "lat": -27.7075, + "lon": -51.763, + "isHero": false + }, + { + "name": "Palmares do Sul", + "codIbge": "4313656", + "capag": "A+", + "tier": "bankable", + "lat": -30.2535, + "lon": -50.5103, + "isHero": false + }, + { + "name": "Palmeira das Missões", + "codIbge": "4313706", + "capag": "A", + "tier": "bankable", + "lat": -27.9007, + "lon": -53.3134, + "isHero": false + }, + { + "name": "Palmitinho", + "codIbge": "4313805", + "capag": "B", + "tier": "bankable", + "lat": -27.3596, + "lon": -53.558, + "isHero": false + }, + { + "name": "Panambi", + "codIbge": "4313904", + "capag": "A", + "tier": "bankable", + "lat": -28.2833, + "lon": -53.5023, + "isHero": false + }, + { + "name": "Pantano Grande", + "codIbge": "4313953", + "capag": "C", + "tier": "constrained", + "lat": -30.1902, + "lon": -52.3729, + "isHero": false + }, + { + "name": "Paraí", + "codIbge": "4314001", + "capag": "A", + "tier": "bankable", + "lat": -28.5964, + "lon": -51.7896, + "isHero": false + }, + { + "name": "Paraíso do Sul", + "codIbge": "4314027", + "capag": "A+", + "tier": "bankable", + "lat": -29.6717, + "lon": -53.144, + "isHero": false + }, + { + "name": "Pareci Novo", + "codIbge": "4314035", + "capag": "C", + "tier": "constrained", + "lat": -29.6365, + "lon": -51.3974, + "isHero": false + }, + { + "name": "Parobé", + "codIbge": "4314050", + "capag": "B", + "tier": "bankable", + "lat": -29.6243, + "lon": -50.8312, + "isHero": false + }, + { + "name": "Passa Sete", + "codIbge": "4314068", + "capag": "A", + "tier": "bankable", + "lat": -29.4577, + "lon": -52.9599, + "isHero": false + }, + { + "name": "Passo do Sobrado", + "codIbge": "4314076", + "capag": "B", + "tier": "bankable", + "lat": -29.748, + "lon": -52.2748, + "isHero": false + }, + { + "name": "Passo Fundo", + "codIbge": "4314100", + "capag": "A", + "tier": "bankable", + "lat": -28.2576, + "lon": -52.4091, + "isHero": false + }, + { + "name": "Paulo Bento", + "codIbge": "4314134", + "capag": "B", + "tier": "bankable", + "lat": -27.7051, + "lon": -52.4169, + "isHero": false + }, + { + "name": "Paverama", + "codIbge": "4314159", + "capag": "B", + "tier": "bankable", + "lat": -29.5486, + "lon": -51.7339, + "isHero": false + }, + { + "name": "Pedras Altas", + "codIbge": "4314175", + "capag": "A+", + "tier": "bankable", + "lat": -31.7365, + "lon": -53.5814, + "isHero": false + }, + { + "name": "Pedro Osório", + "codIbge": "4314209", + "capag": "n.d.", + "tier": "unrated", + "lat": -31.8642, + "lon": -52.8184, + "isHero": false + }, + { + "name": "Pejuçara", + "codIbge": "4314308", + "capag": "B+", + "tier": "bankable", + "lat": -28.4283, + "lon": -53.6579, + "isHero": false + }, + { + "name": "Pelotas", + "codIbge": "4314407", + "capag": "C", + "tier": "constrained", + "lat": -31.7649, + "lon": -52.3371, + "isHero": false + }, + { + "name": "Picada Café", + "codIbge": "4314423", + "capag": "A+", + "tier": "bankable", + "lat": -29.4464, + "lon": -51.1367, + "isHero": false + }, + { + "name": "Pinhal", + "codIbge": "4314456", + "capag": "A+", + "tier": "bankable", + "lat": -27.508, + "lon": -53.2082, + "isHero": false + }, + { + "name": "Pinhal da Serra", + "codIbge": "4314464", + "capag": "n.d.", + "tier": "unrated", + "lat": -27.8751, + "lon": -51.1673, + "isHero": false + }, + { + "name": "Pinhal Grande", + "codIbge": "4314472", + "capag": "B", + "tier": "bankable", + "lat": -29.345, + "lon": -53.3206, + "isHero": false + }, + { + "name": "Pinheirinho do Vale", + "codIbge": "4314498", + "capag": "C", + "tier": "constrained", + "lat": -27.2109, + "lon": -53.608, + "isHero": false + }, + { + "name": "Pinheiro Machado", + "codIbge": "4314506", + "capag": "A", + "tier": "bankable", + "lat": -31.5794, + "lon": -53.3798, + "isHero": false + }, + { + "name": "Pinto Bandeira", + "codIbge": "4314548", + "capag": "C", + "tier": "constrained", + "lat": -29.0975, + "lon": -51.4503, + "isHero": false + }, + { + "name": "Pirapó", + "codIbge": "4314555", + "capag": "A", + "tier": "bankable", + "lat": -28.0439, + "lon": -55.2001, + "isHero": false + }, + { + "name": "Piratini", + "codIbge": "4314605", + "capag": "B", + "tier": "bankable", + "lat": -31.4473, + "lon": -53.0973, + "isHero": false + }, + { + "name": "Planalto", + "codIbge": "4314704", + "capag": "B", + "tier": "bankable", + "lat": -27.3297, + "lon": -53.0575, + "isHero": false + }, + { + "name": "Poço das Antas", + "codIbge": "4314753", + "capag": "A+", + "tier": "bankable", + "lat": -29.4481, + "lon": -51.6719, + "isHero": false + }, + { + "name": "Pontão", + "codIbge": "4314779", + "capag": "B", + "tier": "bankable", + "lat": -28.0585, + "lon": -52.6791, + "isHero": false + }, + { + "name": "Ponte Preta", + "codIbge": "4314787", + "capag": "A", + "tier": "bankable", + "lat": -27.6587, + "lon": -52.4848, + "isHero": false + }, + { + "name": "Portão", + "codIbge": "4314803", + "capag": "A", + "tier": "bankable", + "lat": -29.7015, + "lon": -51.2429, + "isHero": false + }, + { + "name": "Porto Alegre", + "codIbge": "4314902", + "capag": "A+", + "tier": "bankable", + "lat": -30.0318, + "lon": -51.2065, + "isHero": false + }, + { + "name": "Porto Lucena", + "codIbge": "4315008", + "capag": "B", + "tier": "bankable", + "lat": -27.8569, + "lon": -55.01, + "isHero": false + }, + { + "name": "Porto Mauá", + "codIbge": "4315057", + "capag": "A", + "tier": "bankable", + "lat": -27.5796, + "lon": -54.6657, + "isHero": false + }, + { + "name": "Porto Vera Cruz", + "codIbge": "4315073", + "capag": "A", + "tier": "bankable", + "lat": -27.7405, + "lon": -54.8994, + "isHero": false + }, + { + "name": "Porto Xavier", + "codIbge": "4315107", + "capag": "B", + "tier": "bankable", + "lat": -27.9082, + "lon": -55.1379, + "isHero": false + }, + { + "name": "Pouso Novo", + "codIbge": "4315131", + "capag": "B+", + "tier": "bankable", + "lat": -29.1738, + "lon": -52.2136, + "isHero": false + }, + { + "name": "Presidente Lucena", + "codIbge": "4315149", + "capag": "A+", + "tier": "bankable", + "lat": -29.5175, + "lon": -51.1798, + "isHero": false + }, + { + "name": "Progresso", + "codIbge": "4315156", + "capag": "C", + "tier": "constrained", + "lat": -29.2441, + "lon": -52.3197, + "isHero": false + }, + { + "name": "Protásio Alves", + "codIbge": "4315172", + "capag": "A", + "tier": "bankable", + "lat": -28.7572, + "lon": -51.4757, + "isHero": false + }, + { + "name": "Putinga", + "codIbge": "4315206", + "capag": "A+", + "tier": "bankable", + "lat": -29.0045, + "lon": -52.1569, + "isHero": false + }, + { + "name": "Quaraí", + "codIbge": "4315305", + "capag": "C", + "tier": "constrained", + "lat": -30.384, + "lon": -56.4483, + "isHero": false + }, + { + "name": "Quatro Irmãos", + "codIbge": "4315313", + "capag": "A+", + "tier": "bankable", + "lat": -27.8257, + "lon": -52.4424, + "isHero": false + }, + { + "name": "Quevedos", + "codIbge": "4315321", + "capag": "n.d.", + "tier": "unrated", + "lat": -29.3504, + "lon": -54.0789, + "isHero": false + }, + { + "name": "Quinze de Novembro", + "codIbge": "4315354", + "capag": "B+", + "tier": "bankable", + "lat": -28.7466, + "lon": -53.1011, + "isHero": false + }, + { + "name": "Redentora", + "codIbge": "4315404", + "capag": "A", + "tier": "bankable", + "lat": -27.664, + "lon": -53.6407, + "isHero": false + }, + { + "name": "Relvado", + "codIbge": "4315453", + "capag": "A", + "tier": "bankable", + "lat": -29.1164, + "lon": -52.0778, + "isHero": false + }, + { + "name": "Restinga Sêca", + "codIbge": "4315503", + "capag": "B", + "tier": "bankable", + "lat": -29.8188, + "lon": -53.3807, + "isHero": false + }, + { + "name": "Rio dos Índios", + "codIbge": "4315552", + "capag": "A", + "tier": "bankable", + "lat": -27.2973, + "lon": -52.8417, + "isHero": false + }, + { + "name": "Rio Grande", + "codIbge": "4315602", + "capag": "A+", + "tier": "bankable", + "lat": -32.0349, + "lon": -52.1071, + "isHero": false + }, + { + "name": "Rio Pardo", + "codIbge": "4315701", + "capag": "B+", + "tier": "bankable", + "lat": -29.988, + "lon": -52.3711, + "isHero": false + }, + { + "name": "Riozinho", + "codIbge": "4315750", + "capag": "A", + "tier": "bankable", + "lat": -29.639, + "lon": -50.4488, + "isHero": false + }, + { + "name": "Roca Sales", + "codIbge": "4315800", + "capag": "C", + "tier": "constrained", + "lat": -29.2884, + "lon": -51.8658, + "isHero": false + }, + { + "name": "Rodeio Bonito", + "codIbge": "4315909", + "capag": "A", + "tier": "bankable", + "lat": -27.4742, + "lon": -53.1706, + "isHero": false + }, + { + "name": "Rolador", + "codIbge": "4315958", + "capag": "B", + "tier": "bankable", + "lat": -28.2566, + "lon": -54.8186, + "isHero": false + }, + { + "name": "Rolante", + "codIbge": "4316006", + "capag": "B", + "tier": "bankable", + "lat": -29.6462, + "lon": -50.5819, + "isHero": false + }, + { + "name": "Ronda Alta", + "codIbge": "4316105", + "capag": "A", + "tier": "bankable", + "lat": -27.7758, + "lon": -52.8056, + "isHero": false + }, + { + "name": "Rondinha", + "codIbge": "4316204", + "capag": "A", + "tier": "bankable", + "lat": -27.8315, + "lon": -52.9081, + "isHero": false + }, + { + "name": "Roque Gonzales", + "codIbge": "4316303", + "capag": "B", + "tier": "bankable", + "lat": -28.1297, + "lon": -55.0266, + "isHero": false + }, + { + "name": "Rosário do Sul", + "codIbge": "4316402", + "capag": "C", + "tier": "constrained", + "lat": -30.2515, + "lon": -54.9221, + "isHero": false + }, + { + "name": "Sagrada Família", + "codIbge": "4316428", + "capag": "A", + "tier": "bankable", + "lat": -27.7085, + "lon": -53.1351, + "isHero": false + }, + { + "name": "Saldanha Marinho", + "codIbge": "4316436", + "capag": "C", + "tier": "constrained", + "lat": -28.3941, + "lon": -53.097, + "isHero": false + }, + { + "name": "Salto do Jacuí", + "codIbge": "4316451", + "capag": "B", + "tier": "bankable", + "lat": -29.0951, + "lon": -53.2133, + "isHero": false + }, + { + "name": "Salvador das Missões", + "codIbge": "4316477", + "capag": "A", + "tier": "bankable", + "lat": -28.1233, + "lon": -54.8373, + "isHero": false + }, + { + "name": "Salvador do Sul", + "codIbge": "4316501", + "capag": "A", + "tier": "bankable", + "lat": -29.4386, + "lon": -51.5077, + "isHero": false + }, + { + "name": "Sananduva", + "codIbge": "4316600", + "capag": "B", + "tier": "bankable", + "lat": -27.947, + "lon": -51.8079, + "isHero": false + }, + { + "name": "Santa Bárbara do Sul", + "codIbge": "4316709", + "capag": "A", + "tier": "bankable", + "lat": -28.3653, + "lon": -53.251, + "isHero": false + }, + { + "name": "Santa Cecília do Sul", + "codIbge": "4316733", + "capag": "B", + "tier": "bankable", + "lat": -28.1609, + "lon": -51.9279, + "isHero": false + }, + { + "name": "Santa Clara do Sul", + "codIbge": "4316758", + "capag": "A+", + "tier": "bankable", + "lat": -29.4747, + "lon": -52.0843, + "isHero": false + }, + { + "name": "Santa Cruz do Sul", + "codIbge": "4316808", + "capag": "C", + "tier": "constrained", + "lat": -29.722, + "lon": -52.4343, + "isHero": false + }, + { + "name": "Santa Maria", + "codIbge": "4316907", + "capag": "C", + "tier": "constrained", + "lat": -29.6868, + "lon": -53.8149, + "isHero": false + }, + { + "name": "Santa Maria do Herval", + "codIbge": "4316956", + "capag": "A", + "tier": "bankable", + "lat": -29.4902, + "lon": -50.9919, + "isHero": false + }, + { + "name": "Santa Margarida do Sul", + "codIbge": "4316972", + "capag": "A", + "tier": "bankable", + "lat": -30.3393, + "lon": -54.0817, + "isHero": false + }, + { + "name": "Santana da Boa Vista", + "codIbge": "4317004", + "capag": "A+", + "tier": "bankable", + "lat": -30.8697, + "lon": -53.11, + "isHero": false + }, + { + "name": "Sant'Ana do Livramento", + "codIbge": "4317103", + "capag": "B", + "tier": "bankable", + "lat": -30.8773, + "lon": -55.5392, + "isHero": false + }, + { + "name": "Santa Rosa", + "codIbge": "4317202", + "capag": "A+", + "tier": "bankable", + "lat": -27.8702, + "lon": -54.4796, + "isHero": false + }, + { + "name": "Santa Tereza", + "codIbge": "4317251", + "capag": "A", + "tier": "bankable", + "lat": -29.1655, + "lon": -51.7351, + "isHero": false + }, + { + "name": "Santa Vitória do Palmar", + "codIbge": "4317301", + "capag": "A+", + "tier": "bankable", + "lat": -33.525, + "lon": -53.3717, + "isHero": false + }, + { + "name": "Santiago", + "codIbge": "4317400", + "capag": "A", + "tier": "bankable", + "lat": -29.1897, + "lon": -54.8666, + "isHero": false + }, + { + "name": "Santo Ângelo", + "codIbge": "4317509", + "capag": "C", + "tier": "constrained", + "lat": -28.3001, + "lon": -54.2668, + "isHero": false + }, + { + "name": "Santo Antônio do Palma", + "codIbge": "4317558", + "capag": "C", + "tier": "constrained", + "lat": -28.4956, + "lon": -52.0267, + "isHero": false + }, + { + "name": "Santo Antônio da Patrulha", + "codIbge": "4317608", + "capag": "B+", + "tier": "bankable", + "lat": -29.8268, + "lon": -50.5175, + "isHero": false + }, + { + "name": "Santo Antônio das Missões", + "codIbge": "4317707", + "capag": "B", + "tier": "bankable", + "lat": -28.514, + "lon": -55.2251, + "isHero": false + }, + { + "name": "Santo Antônio do Planalto", + "codIbge": "4317756", + "capag": "A", + "tier": "bankable", + "lat": -28.403, + "lon": -52.6992, + "isHero": false + }, + { + "name": "Santo Augusto", + "codIbge": "4317806", + "capag": "A", + "tier": "bankable", + "lat": -27.8526, + "lon": -53.7776, + "isHero": false + }, + { + "name": "Santo Cristo", + "codIbge": "4317905", + "capag": "A", + "tier": "bankable", + "lat": -27.8263, + "lon": -54.662, + "isHero": false + }, + { + "name": "Santo Expedito do Sul", + "codIbge": "4317954", + "capag": "B", + "tier": "bankable", + "lat": -27.9074, + "lon": -51.6434, + "isHero": false + }, + { + "name": "São Borja", + "codIbge": "4318002", + "capag": "B+", + "tier": "bankable", + "lat": -28.6578, + "lon": -56.0036, + "isHero": false + }, + { + "name": "São Domingos do Sul", + "codIbge": "4318051", + "capag": "B", + "tier": "bankable", + "lat": -28.5312, + "lon": -51.886, + "isHero": false + }, + { + "name": "São Francisco de Assis", + "codIbge": "4318101", + "capag": "B+", + "tier": "bankable", + "lat": -29.5547, + "lon": -55.1253, + "isHero": false + }, + { + "name": "São Francisco de Paula", + "codIbge": "4318200", + "capag": "n.d.", + "tier": "unrated", + "lat": -29.4404, + "lon": -50.5828, + "isHero": false + }, + { + "name": "São Gabriel", + "codIbge": "4318309", + "capag": "C", + "tier": "constrained", + "lat": -30.3337, + "lon": -54.3217, + "isHero": false + }, + { + "name": "São Jerônimo", + "codIbge": "4318408", + "capag": "A", + "tier": "bankable", + "lat": -29.9716, + "lon": -51.7251, + "isHero": false + }, + { + "name": "São João da Urtiga", + "codIbge": "4318424", + "capag": "B", + "tier": "bankable", + "lat": -27.8195, + "lon": -51.8257, + "isHero": false + }, + { + "name": "São João do Polêsine", + "codIbge": "4318432", + "capag": "A", + "tier": "bankable", + "lat": -29.6194, + "lon": -53.4439, + "isHero": false + }, + { + "name": "São Jorge", + "codIbge": "4318440", + "capag": "A+", + "tier": "bankable", + "lat": -28.4984, + "lon": -51.7064, + "isHero": false + }, + { + "name": "São José das Missões", + "codIbge": "4318457", + "capag": "B", + "tier": "bankable", + "lat": -27.7789, + "lon": -53.1226, + "isHero": false + }, + { + "name": "São José do Herval", + "codIbge": "4318465", + "capag": "A+", + "tier": "bankable", + "lat": -29.052, + "lon": -52.295, + "isHero": false + }, + { + "name": "São José do Hortêncio", + "codIbge": "4318481", + "capag": "A", + "tier": "bankable", + "lat": -29.528, + "lon": -51.245, + "isHero": false + }, + { + "name": "São José do Inhacorá", + "codIbge": "4318499", + "capag": "A", + "tier": "bankable", + "lat": -27.7251, + "lon": -54.1275, + "isHero": false + }, + { + "name": "São José do Norte", + "codIbge": "4318507", + "capag": "A+", + "tier": "bankable", + "lat": -32.0151, + "lon": -52.0331, + "isHero": false + }, + { + "name": "São José do Ouro", + "codIbge": "4318606", + "capag": "C", + "tier": "constrained", + "lat": -27.7707, + "lon": -51.5966, + "isHero": false + }, + { + "name": "São José do Sul", + "codIbge": "4318614", + "capag": "A", + "tier": "bankable", + "lat": -29.5448, + "lon": -51.4821, + "isHero": false + }, + { + "name": "São José dos Ausentes", + "codIbge": "4318622", + "capag": "n.d.", + "tier": "unrated", + "lat": -28.7476, + "lon": -50.0677, + "isHero": false + }, + { + "name": "São Leopoldo", + "codIbge": "4318705", + "capag": "C", + "tier": "constrained", + "lat": -29.7545, + "lon": -51.1498, + "isHero": false + }, + { + "name": "São Lourenço do Sul", + "codIbge": "4318804", + "capag": "B", + "tier": "bankable", + "lat": -31.3564, + "lon": -51.9715, + "isHero": false + }, + { + "name": "São Luiz Gonzaga", + "codIbge": "4318903", + "capag": "A", + "tier": "bankable", + "lat": -28.412, + "lon": -54.9559, + "isHero": false + }, + { + "name": "São Marcos", + "codIbge": "4319000", + "capag": "A", + "tier": "bankable", + "lat": -28.9677, + "lon": -51.0696, + "isHero": false + }, + { + "name": "São Martinho", + "codIbge": "4319109", + "capag": "A", + "tier": "bankable", + "lat": -27.7112, + "lon": -53.9699, + "isHero": false + }, + { + "name": "São Martinho da Serra", + "codIbge": "4319125", + "capag": "A", + "tier": "bankable", + "lat": -29.5397, + "lon": -53.859, + "isHero": false + }, + { + "name": "São Miguel das Missões", + "codIbge": "4319158", + "capag": "A", + "tier": "bankable", + "lat": -28.556, + "lon": -54.5559, + "isHero": false + }, + { + "name": "São Nicolau", + "codIbge": "4319208", + "capag": "B", + "tier": "bankable", + "lat": -28.1834, + "lon": -55.2654, + "isHero": false + }, + { + "name": "São Paulo das Missões", + "codIbge": "4319307", + "capag": "B", + "tier": "bankable", + "lat": -28.0195, + "lon": -54.9404, + "isHero": false + }, + { + "name": "São Pedro da Serra", + "codIbge": "4319356", + "capag": "A", + "tier": "bankable", + "lat": -29.4193, + "lon": -51.5134, + "isHero": false + }, + { + "name": "São Pedro das Missões", + "codIbge": "4319364", + "capag": "A", + "tier": "bankable", + "lat": -27.7706, + "lon": -53.2513, + "isHero": false + }, + { + "name": "São Pedro do Butiá", + "codIbge": "4319372", + "capag": "A", + "tier": "bankable", + "lat": -28.1243, + "lon": -54.8926, + "isHero": false + }, + { + "name": "São Pedro do Sul", + "codIbge": "4319406", + "capag": "C", + "tier": "constrained", + "lat": -29.6202, + "lon": -54.1855, + "isHero": false + }, + { + "name": "São Sebastião do Caí", + "codIbge": "4319505", + "capag": "A", + "tier": "bankable", + "lat": -29.5885, + "lon": -51.3749, + "isHero": false + }, + { + "name": "São Sepé", + "codIbge": "4319604", + "capag": "C", + "tier": "constrained", + "lat": -30.1643, + "lon": -53.5603, + "isHero": false + }, + { + "name": "São Valentim", + "codIbge": "4319703", + "capag": "A", + "tier": "bankable", + "lat": -27.5583, + "lon": -52.5237, + "isHero": false + }, + { + "name": "São Valentim do Sul", + "codIbge": "4319711", + "capag": "A+", + "tier": "bankable", + "lat": -29.0451, + "lon": -51.7684, + "isHero": false + }, + { + "name": "São Valério do Sul", + "codIbge": "4319737", + "capag": "A", + "tier": "bankable", + "lat": -27.7906, + "lon": -53.9368, + "isHero": false + }, + { + "name": "São Vendelino", + "codIbge": "4319752", + "capag": "A", + "tier": "bankable", + "lat": -29.3729, + "lon": -51.3675, + "isHero": false + }, + { + "name": "São Vicente do Sul", + "codIbge": "4319802", + "capag": "A", + "tier": "bankable", + "lat": -29.6882, + "lon": -54.6826, + "isHero": false + }, + { + "name": "Sapiranga", + "codIbge": "4319901", + "capag": "A", + "tier": "bankable", + "lat": -29.6349, + "lon": -51.0064, + "isHero": false + }, + { + "name": "Sapucaia do Sul", + "codIbge": "4320008", + "capag": "B", + "tier": "bankable", + "lat": -29.8276, + "lon": -51.145, + "isHero": false + }, + { + "name": "Sarandi", + "codIbge": "4320107", + "capag": "B+", + "tier": "bankable", + "lat": -27.942, + "lon": -52.9231, + "isHero": false + }, + { + "name": "Seberi", + "codIbge": "4320206", + "capag": "C", + "tier": "constrained", + "lat": -27.4829, + "lon": -53.4026, + "isHero": false + }, + { + "name": "Sede Nova", + "codIbge": "4320230", + "capag": "A+", + "tier": "bankable", + "lat": -27.6367, + "lon": -53.9493, + "isHero": false + }, + { + "name": "Segredo", + "codIbge": "4320263", + "capag": "B", + "tier": "bankable", + "lat": -29.3523, + "lon": -52.9767, + "isHero": false + }, + { + "name": "Selbach", + "codIbge": "4320305", + "capag": "A+", + "tier": "bankable", + "lat": -28.6294, + "lon": -52.9498, + "isHero": false + }, + { + "name": "Senador Salgado Filho", + "codIbge": "4320321", + "capag": "A+", + "tier": "bankable", + "lat": -28.025, + "lon": -54.5507, + "isHero": false + }, + { + "name": "Sentinela do Sul", + "codIbge": "4320354", + "capag": "A+", + "tier": "bankable", + "lat": -30.6107, + "lon": -51.5862, + "isHero": false + }, + { + "name": "Serafina Corrêa", + "codIbge": "4320404", + "capag": "A", + "tier": "bankable", + "lat": -28.7126, + "lon": -51.9352, + "isHero": false + }, + { + "name": "Sério", + "codIbge": "4320453", + "capag": "A", + "tier": "bankable", + "lat": -29.3904, + "lon": -52.2685, + "isHero": false + }, + { + "name": "Sertão", + "codIbge": "4320503", + "capag": "B", + "tier": "bankable", + "lat": -27.9798, + "lon": -52.2588, + "isHero": false + }, + { + "name": "Sertão Santana", + "codIbge": "4320552", + "capag": "A", + "tier": "bankable", + "lat": -30.4562, + "lon": -51.6017, + "isHero": false + }, + { + "name": "Sete de Setembro", + "codIbge": "4320578", + "capag": "A", + "tier": "bankable", + "lat": -28.1362, + "lon": -54.4637, + "isHero": false + }, + { + "name": "Severiano de Almeida", + "codIbge": "4320602", + "capag": "A+", + "tier": "bankable", + "lat": -27.4362, + "lon": -52.1217, + "isHero": false + }, + { + "name": "Silveira Martins", + "codIbge": "4320651", + "capag": "A+", + "tier": "bankable", + "lat": -29.6467, + "lon": -53.591, + "isHero": false + }, + { + "name": "Sinimbu", + "codIbge": "4320677", + "capag": "A+", + "tier": "bankable", + "lat": -29.5357, + "lon": -52.5304, + "isHero": false + }, + { + "name": "Sobradinho", + "codIbge": "4320701", + "capag": "C", + "tier": "constrained", + "lat": -29.4194, + "lon": -53.0326, + "isHero": false + }, + { + "name": "Soledade", + "codIbge": "4320800", + "capag": "A", + "tier": "bankable", + "lat": -28.8306, + "lon": -52.5131, + "isHero": false + }, + { + "name": "Tabaí", + "codIbge": "4320859", + "capag": "B", + "tier": "bankable", + "lat": -29.643, + "lon": -51.6823, + "isHero": false + }, + { + "name": "Tapejara", + "codIbge": "4320909", + "capag": "A", + "tier": "bankable", + "lat": -28.0652, + "lon": -52.0097, + "isHero": false + }, + { + "name": "Tapera", + "codIbge": "4321006", + "capag": "A", + "tier": "bankable", + "lat": -28.6277, + "lon": -52.8613, + "isHero": false + }, + { + "name": "Tapes", + "codIbge": "4321105", + "capag": "A+", + "tier": "bankable", + "lat": -30.6683, + "lon": -51.3991, + "isHero": false + }, + { + "name": "Taquara", + "codIbge": "4321204", + "capag": "B", + "tier": "bankable", + "lat": -29.6505, + "lon": -50.7753, + "isHero": false + }, + { + "name": "Taquari", + "codIbge": "4321303", + "capag": "B", + "tier": "bankable", + "lat": -29.7943, + "lon": -51.8653, + "isHero": false + }, + { + "name": "Taquaruçu do Sul", + "codIbge": "4321329", + "capag": "A", + "tier": "bankable", + "lat": -27.4005, + "lon": -53.4702, + "isHero": false + }, + { + "name": "Tavares", + "codIbge": "4321352", + "capag": "A+", + "tier": "bankable", + "lat": -31.2843, + "lon": -51.088, + "isHero": false + }, + { + "name": "Tenente Portela", + "codIbge": "4321402", + "capag": "n.d.", + "tier": "unrated", + "lat": -27.3711, + "lon": -53.7585, + "isHero": false + }, + { + "name": "Terra de Areia", + "codIbge": "4321436", + "capag": "A", + "tier": "bankable", + "lat": -29.5782, + "lon": -50.0644, + "isHero": false + }, + { + "name": "Teutônia", + "codIbge": "4321451", + "capag": "B", + "tier": "bankable", + "lat": -29.4482, + "lon": -51.8044, + "isHero": false + }, + { + "name": "Tio Hugo", + "codIbge": "4321469", + "capag": "A", + "tier": "bankable", + "lat": -28.5712, + "lon": -52.5955, + "isHero": false + }, + { + "name": "Tiradentes do Sul", + "codIbge": "4321477", + "capag": "A", + "tier": "bankable", + "lat": -27.4022, + "lon": -54.0814, + "isHero": false + }, + { + "name": "Toropi", + "codIbge": "4321493", + "capag": "B", + "tier": "bankable", + "lat": -29.4782, + "lon": -54.2244, + "isHero": false + }, + { + "name": "Torres", + "codIbge": "4321501", + "capag": "A+", + "tier": "bankable", + "lat": -29.3334, + "lon": -49.7333, + "isHero": false + }, + { + "name": "Tramandaí", + "codIbge": "4321600", + "capag": "A", + "tier": "bankable", + "lat": -29.9841, + "lon": -50.1322, + "isHero": false + }, + { + "name": "Travesseiro", + "codIbge": "4321626", + "capag": "C", + "tier": "constrained", + "lat": -29.2977, + "lon": -52.0532, + "isHero": false + }, + { + "name": "Três Arroios", + "codIbge": "4321634", + "capag": "A", + "tier": "bankable", + "lat": -27.5003, + "lon": -52.1448, + "isHero": false + }, + { + "name": "Três Cachoeiras", + "codIbge": "4321667", + "capag": "B", + "tier": "bankable", + "lat": -29.4487, + "lon": -49.9275, + "isHero": false + }, + { + "name": "Três Coroas", + "codIbge": "4321709", + "capag": "B+", + "tier": "bankable", + "lat": -29.5137, + "lon": -50.7739, + "isHero": false + }, + { + "name": "Três de Maio", + "codIbge": "4321808", + "capag": "A", + "tier": "bankable", + "lat": -27.78, + "lon": -54.2357, + "isHero": false + }, + { + "name": "Três Forquilhas", + "codIbge": "4321832", + "capag": "C", + "tier": "constrained", + "lat": -29.5384, + "lon": -50.0708, + "isHero": false + }, + { + "name": "Três Palmeiras", + "codIbge": "4321857", + "capag": "B", + "tier": "bankable", + "lat": -27.6139, + "lon": -52.8437, + "isHero": false + }, + { + "name": "Três Passos", + "codIbge": "4321907", + "capag": "A", + "tier": "bankable", + "lat": -27.4555, + "lon": -53.9296, + "isHero": false + }, + { + "name": "Trindade do Sul", + "codIbge": "4321956", + "capag": "A", + "tier": "bankable", + "lat": -27.5239, + "lon": -52.8956, + "isHero": false + }, + { + "name": "Triunfo", + "codIbge": "4322004", + "capag": "C", + "tier": "constrained", + "lat": -29.9291, + "lon": -51.7075, + "isHero": false + }, + { + "name": "Tucunduva", + "codIbge": "4322103", + "capag": "B", + "tier": "bankable", + "lat": -27.6573, + "lon": -54.4439, + "isHero": false + }, + { + "name": "Tunas", + "codIbge": "4322152", + "capag": "C", + "tier": "constrained", + "lat": -29.1039, + "lon": -52.9538, + "isHero": false + }, + { + "name": "Tupanci do Sul", + "codIbge": "4322186", + "capag": "B", + "tier": "bankable", + "lat": -27.9241, + "lon": -51.5383, + "isHero": false + }, + { + "name": "Tupanciretã", + "codIbge": "4322202", + "capag": "A+", + "tier": "bankable", + "lat": -29.0858, + "lon": -53.8445, + "isHero": false + }, + { + "name": "Tupandi", + "codIbge": "4322251", + "capag": "A", + "tier": "bankable", + "lat": -29.4772, + "lon": -51.4174, + "isHero": false + }, + { + "name": "Tuparendi", + "codIbge": "4322301", + "capag": "A", + "tier": "bankable", + "lat": -27.7598, + "lon": -54.4814, + "isHero": false + }, + { + "name": "Turuçu", + "codIbge": "4322327", + "capag": "C", + "tier": "constrained", + "lat": -31.4173, + "lon": -52.1706, + "isHero": false + }, + { + "name": "Ubiretama", + "codIbge": "4322343", + "capag": "A", + "tier": "bankable", + "lat": -28.0404, + "lon": -54.686, + "isHero": false + }, + { + "name": "União da Serra", + "codIbge": "4322350", + "capag": "A+", + "tier": "bankable", + "lat": -28.7833, + "lon": -52.0238, + "isHero": false + }, + { + "name": "Unistalda", + "codIbge": "4322376", + "capag": "A", + "tier": "bankable", + "lat": -29.04, + "lon": -55.1517, + "isHero": false + }, + { + "name": "Uruguaiana", + "codIbge": "4322400", + "capag": "B+", + "tier": "bankable", + "lat": -29.7614, + "lon": -57.0853, + "isHero": false + }, + { + "name": "Vacaria", + "codIbge": "4322509", + "capag": "C", + "tier": "constrained", + "lat": -28.5079, + "lon": -50.9418, + "isHero": false + }, + { + "name": "Vale Verde", + "codIbge": "4322525", + "capag": "A", + "tier": "bankable", + "lat": -29.7864, + "lon": -52.1857, + "isHero": false + }, + { + "name": "Vale do Sol", + "codIbge": "4322533", + "capag": "B+", + "tier": "bankable", + "lat": -29.5967, + "lon": -52.6839, + "isHero": false + }, + { + "name": "Vale Real", + "codIbge": "4322541", + "capag": "B", + "tier": "bankable", + "lat": -29.3919, + "lon": -51.2559, + "isHero": false + }, + { + "name": "Vanini", + "codIbge": "4322558", + "capag": "A+", + "tier": "bankable", + "lat": -28.4758, + "lon": -51.8447, + "isHero": false + }, + { + "name": "Venâncio Aires", + "codIbge": "4322608", + "capag": "A+", + "tier": "bankable", + "lat": -29.6143, + "lon": -52.1932, + "isHero": false + }, + { + "name": "Vera Cruz", + "codIbge": "4322707", + "capag": "A+", + "tier": "bankable", + "lat": -29.7184, + "lon": -52.5152, + "isHero": false + }, + { + "name": "Veranópolis", + "codIbge": "4322806", + "capag": "A", + "tier": "bankable", + "lat": -28.9312, + "lon": -51.5516, + "isHero": false + }, + { + "name": "Vespasiano Corrêa", + "codIbge": "4322855", + "capag": "C", + "tier": "constrained", + "lat": -29.0655, + "lon": -51.8625, + "isHero": false + }, + { + "name": "Viadutos", + "codIbge": "4322905", + "capag": "A+", + "tier": "bankable", + "lat": -27.5716, + "lon": -52.0211, + "isHero": false + }, + { + "name": "Viamão", + "codIbge": "4323002", + "capag": "C", + "tier": "constrained", + "lat": -30.0819, + "lon": -51.0194, + "isHero": false + }, + { + "name": "Vicente Dutra", + "codIbge": "4323101", + "capag": "A", + "tier": "bankable", + "lat": -27.1607, + "lon": -53.4022, + "isHero": false + }, + { + "name": "Victor Graeff", + "codIbge": "4323200", + "capag": "A", + "tier": "bankable", + "lat": -28.5632, + "lon": -52.7495, + "isHero": false + }, + { + "name": "Vila Flores", + "codIbge": "4323309", + "capag": "C", + "tier": "constrained", + "lat": -28.8598, + "lon": -51.5504, + "isHero": false + }, + { + "name": "Vila Lângaro", + "codIbge": "4323358", + "capag": "A", + "tier": "bankable", + "lat": -28.1062, + "lon": -52.1438, + "isHero": false + }, + { + "name": "Vila Maria", + "codIbge": "4323408", + "capag": "A+", + "tier": "bankable", + "lat": -28.5359, + "lon": -52.1486, + "isHero": false + }, + { + "name": "Vila Nova do Sul", + "codIbge": "4323457", + "capag": "A+", + "tier": "bankable", + "lat": -30.3461, + "lon": -53.876, + "isHero": false + }, + { + "name": "Vista Alegre", + "codIbge": "4323507", + "capag": "A", + "tier": "bankable", + "lat": -27.3686, + "lon": -53.4919, + "isHero": false + }, + { + "name": "Vista Alegre do Prata", + "codIbge": "4323606", + "capag": "A", + "tier": "bankable", + "lat": -28.8052, + "lon": -51.7947, + "isHero": false + }, + { + "name": "Vista Gaúcha", + "codIbge": "4323705", + "capag": "A", + "tier": "bankable", + "lat": -27.2902, + "lon": -53.6974, + "isHero": false + }, + { + "name": "Vitória das Missões", + "codIbge": "4323754", + "capag": "C", + "tier": "constrained", + "lat": -28.3516, + "lon": -54.504, + "isHero": false + }, + { + "name": "Westfália", + "codIbge": "4323770", + "capag": "A", + "tier": "bankable", + "lat": -29.4263, + "lon": -51.7645, + "isHero": false + }, + { + "name": "Xangri-lá", + "codIbge": "4323804", + "capag": "B", + "tier": "bankable", + "lat": -29.8065, + "lon": -50.0519, + "isHero": false + } + ], + "legend": [ + { + "tier": "bankable", + "label": "CAPAG A/B — bankable (guaranteed credit)", + "count": 404 + }, + { + "tier": "constrained", + "label": "CAPAG C/D — creditless (grants / blended)", + "count": 76 + }, + { + "tier": "unrated", + "label": "n.d. — unrated (TA first)", + "count": 17 + } + ] +} \ No newline at end of file diff --git a/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/src/data/valdivia.json b/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/src/data/valdivia.json new file mode 100644 index 0000000..3eb2bc7 --- /dev/null +++ b/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/src/data/valdivia.json @@ -0,0 +1,433 @@ +{ + "generated": "2026-06-12", + "source": "City-Funder Matching Engine (Amanda/Ayinawu/Brian/Cephas) — derived/ CSVs; capacity from SINIM/FCM, locode-keyed", + "heroCity": "Valdivia", + "heroLocode": "CL ZAL", + "comunas": [ + { + "id": "SNG-CLZAL", + "name": "Valdivia", + "locode": "CL ZAL", + "cityId": "62gvqzr8df70vknj13re", + "country": "Chile", + "iso": "CL", + "type": "City", + "population": 166958, + "isAnchor": true, + "cofinanceScore": 65.7, + "anchorScore": 82.2, + "readiness": { + "fiscalHealth": 74, + "governance": 58, + "creditworthiness": 70, + "legalCapacity": 80 + }, + "provenance": { + "fiscalHealth": "real:SINIM/FCM (composite_score)", + "governance": "real:SINIM (professionalization + capacity)", + "creditworthiness": "estimated:capacity proxy (no CL municipal rating)", + "legalCapacity": "intake:legal opinion" + }, + "signals": { + "capagRating": null, + "ownSourceRevenuePct": 43, + "debtServiceRatioPct": null, + "currentBalancePct": null, + "independentAudit": true, + "canBorrowWithoutSovereignGuarantee": true + }, + "proposal": { + "title": "Zero-emission urban transport (e-bus + BRT)", + "sector": "transport", + "askUSDm": 8, + "stage": "Readiness Review", + "cofinance": false + } + }, + { + "id": "SNG-CLPAO", + "name": "Paillaco", + "locode": "CL PAO", + "cityId": "62uhn2tnhkg18mgfe4pe", + "country": "Chile", + "iso": "CL", + "type": "City", + "population": 19719, + "isAnchor": false, + "cofinanceScore": 43.5, + "anchorScore": 63.6, + "readiness": { + "fiscalHealth": 54, + "governance": 55, + "creditworthiness": 51, + "legalCapacity": 45 + }, + "provenance": { + "fiscalHealth": "real:SINIM/FCM (composite_score)", + "governance": "real:SINIM (professionalization + capacity)", + "creditworthiness": "estimated:capacity proxy (no CL municipal rating)", + "legalCapacity": "intake:legal opinion" + }, + "signals": { + "capagRating": null, + "ownSourceRevenuePct": 33, + "debtServiceRatioPct": null, + "currentBalancePct": null, + "independentAudit": false, + "canBorrowWithoutSovereignGuarantee": false + }, + "proposal": { + "title": "Zero-emission urban transport (e-bus + BRT)", + "sector": "transport", + "askUSDm": 3, + "stage": "Readiness Review", + "cofinance": false + } + }, + { + "id": "SNG-CLLLG", + "name": "Los Lagos", + "locode": "CL LLG", + "cityId": "62umhur7qh5p808vkbem", + "country": "Chile", + "iso": "CL", + "type": "City", + "population": 21421, + "isAnchor": false, + "cofinanceScore": 42.8, + "anchorScore": 45.2, + "readiness": { + "fiscalHealth": 44, + "governance": 41, + "creditworthiness": 42, + "legalCapacity": 45 + }, + "provenance": { + "fiscalHealth": "real:SINIM/FCM (composite_score)", + "governance": "real:SINIM (professionalization + capacity)", + "creditworthiness": "estimated:capacity proxy (no CL municipal rating)", + "legalCapacity": "intake:legal opinion" + }, + "signals": { + "capagRating": null, + "ownSourceRevenuePct": 32, + "debtServiceRatioPct": null, + "currentBalancePct": null, + "independentAudit": false, + "canBorrowWithoutSovereignGuarantee": false + }, + "proposal": { + "title": "Zero-emission urban transport (e-bus + BRT)", + "sector": "transport", + "askUSDm": 3, + "stage": "Readiness Review", + "cofinance": false + } + }, + { + "id": "SNG-CLCRR", + "name": "Corral", + "locode": "CL CRR", + "cityId": "62gud2hq4rrsvur4btdn", + "country": "Chile", + "iso": "CL", + "type": "City", + "population": 5493, + "isAnchor": false, + "cofinanceScore": 10.7, + "anchorScore": 27.9, + "readiness": { + "fiscalHealth": 19, + "governance": 32, + "creditworthiness": 18, + "legalCapacity": 45 + }, + "provenance": { + "fiscalHealth": "real:SINIM/FCM (composite_score)", + "governance": "real:SINIM (professionalization + capacity)", + "creditworthiness": "estimated:capacity proxy (no CL municipal rating)", + "legalCapacity": "intake:legal opinion" + }, + "signals": { + "capagRating": null, + "ownSourceRevenuePct": 12, + "debtServiceRatioPct": null, + "currentBalancePct": null, + "independentAudit": false, + "canBorrowWithoutSovereignGuarantee": false + }, + "proposal": { + "title": "Zero-emission urban transport (e-bus + BRT)", + "sector": "transport", + "askUSDm": 3, + "stage": "Readiness Review", + "cofinance": false + } + }, + { + "id": "SNG-CLMAF", + "name": "Máfil", + "locode": "CL MAF", + "cityId": "62unjyq2bu87wkf13yp2", + "country": "Chile", + "iso": "CL", + "type": "City", + "population": 8036, + "isAnchor": false, + "cofinanceScore": 25.5, + "anchorScore": 22.5, + "readiness": { + "fiscalHealth": 24, + "governance": 31, + "creditworthiness": 23, + "legalCapacity": 45 + }, + "provenance": { + "fiscalHealth": "real:SINIM/FCM (composite_score)", + "governance": "real:SINIM (professionalization + capacity)", + "creditworthiness": "estimated:capacity proxy (no CL municipal rating)", + "legalCapacity": "intake:legal opinion" + }, + "signals": { + "capagRating": null, + "ownSourceRevenuePct": 20, + "debtServiceRatioPct": null, + "currentBalancePct": null, + "independentAudit": false, + "canBorrowWithoutSovereignGuarantee": false + }, + "proposal": { + "title": "Zero-emission urban transport (e-bus + BRT)", + "sector": "transport", + "askUSDm": 3, + "stage": "Readiness Review", + "cofinance": false + } + }, + { + "id": "SNG-", + "name": "Mariquina", + "locode": null, + "cityId": null, + "country": "Chile", + "iso": "CL", + "type": "City", + "population": null, + "isAnchor": false, + "cofinanceScore": null, + "anchorScore": null, + "readiness": { + "fiscalHealth": 40, + "governance": 40, + "creditworthiness": 35, + "legalCapacity": 45 + }, + "provenance": { + "fiscalHealth": "real:SINIM/FCM (composite_score)", + "governance": "real:SINIM (professionalization + capacity)", + "creditworthiness": "estimated:capacity proxy (no CL municipal rating)", + "legalCapacity": "intake:legal opinion" + }, + "signals": { + "capagRating": null, + "ownSourceRevenuePct": null, + "debtServiceRatioPct": null, + "currentBalancePct": null, + "independentAudit": false, + "canBorrowWithoutSovereignGuarantee": false + }, + "proposal": { + "title": "Zero-emission urban transport (e-bus + BRT)", + "sector": "transport", + "askUSDm": 3, + "stage": "Readiness Review", + "cofinance": false + } + } + ], + "funders": { + "counts": { + "applicant": 52, + "facilitator": 1, + "referrer": 25, + "total": 78 + }, + "sample": [ + { + "program": "FPR 2026 - Fondo para el Reciclaje", + "funder": "Ministerio del Medio Ambiente (MMA)", + "role": "applicant" + }, + { + "program": "FPR 2025 – Fondo para el Reciclaje 2025", + "funder": "Ministerio del Medio Ambiente (MMA)", + "role": "applicant" + }, + { + "program": "FPR 2024 – Fondo para el Reciclaje 2024", + "funder": "Ministerio del Medio Ambiente (MMA)", + "role": "applicant" + }, + { + "program": "FPR 2023 – Fondo para el Reciclaje", + "funder": "Ministerio del Medio Ambiente (MMA)", + "role": "applicant" + }, + { + "program": "FPR 2022 Exequiel Estay – Recicladores de Base", + "funder": "Ministerio del Medio Ambiente (MMA)", + "role": "applicant" + }, + { + "program": "FPR 2021 Exequiel Estay – Recicladores de Base", + "funder": "Ministerio del Medio Ambiente (MMA)", + "role": "applicant" + }, + { + "program": "FPR 2020 – Promoviendo la economía circular en municipios a través del reciclaje", + "funder": "Ministerio del Medio Ambiente (MMA)", + "role": "applicant" + }, + { + "program": "FPR 2020 Exequiel Estay – Recicladores de Base", + "funder": "Ministerio del Medio Ambiente (MMA)", + "role": "applicant" + }, + { + "program": "FPR 2020 – Fondo para el Reciclaje Chiloé 2020", + "funder": "Ministerio del Medio Ambiente (MMA)", + "role": "applicant" + }, + { + "program": "Asistencia Técnica para Municipios en Gestión Energética Local", + "funder": "Ministerio de Energía / Agencia de Sostenibilidad Energética (AgenciaSE, fundación de derecho privado)", + "role": "applicant" + }, + { + "program": "Parque Solar Comunitario", + "funder": "Ministerio de Energía / Agencia de Sostenibilidad Energética (AgenciaSE, fundación de derecho privado)", + "role": "applicant" + }, + { + "program": "Mejor Escuela (energías renovables / acond. térmico escuelas)", + "funder": "Ministerio de Energía / Agencia de Sostenibilidad Energética (AgenciaSE, fundación de derecho privado)", + "role": "applicant" + }, + { + "program": "Programa de Mejoramiento Urbano y Equipamiento Comunal (PMU)", + "funder": "SUBDERE (Subsecretaría de Desarrollo Regional y Administrativo)", + "role": "applicant" + }, + { + "program": "Programa de Mejoramiento de Barrios (PMB)", + "funder": "SUBDERE", + "role": "applicant" + } + ] + }, + "transportGap": { + "nActions": 8, + "bestFit": 0.61, + "bestFunder": "Programa de Prevención y Mitigación de Riesgos (PMR)", + "actions": [ + { + "id": "icare_0117", + "action": "Improve public transport systems to promote modal shift", + "combined": 0.61 + }, + { + "id": "icare_0121", + "action": "Incentive to create bike-sharing programs in urban areas, wi", + "combined": 0.61 + }, + { + "id": "icare_0139", + "action": "Implement congestion pricing and restrictions on high-pollut", + "combined": 0.61 + }, + { + "id": "c40_0023", + "action": "Adopt zero-emission bus fleets for public transport", + "combined": 0.61 + }, + { + "id": "c40_0025", + "action": "Promote deployment of zero-emission freight fleets (trucks)", + "combined": 0.61 + }, + { + "id": "c40_0029", + "action": "Electrify municipal vehicle fleets", + "combined": 0.61 + }, + { + "id": "ipcc_0001", + "action": "Promote compact urban form and transit-oriented development", + "combined": 0.61 + }, + { + "id": "ipcc_0105", + "action": "Promote active mobility through road space reallocation", + "combined": 0.61 + } + ] + }, + "pool": { + "unitId": 11, + "anchor": "Valdivia", + "anchorLocode": "CL ZAL", + "unitSize": 6, + "members": [ + { + "name": "Valdivia", + "locode": "CL ZAL", + "cofinanceScore": 65.7, + "isAnchor": true + }, + { + "name": "Paillaco", + "locode": "CL PAO", + "cofinanceScore": 43.5, + "isAnchor": false + }, + { + "name": "Los Lagos", + "locode": "CL LLG", + "cofinanceScore": 42.8, + "isAnchor": false + }, + { + "name": "Corral", + "locode": "CL CRR", + "cofinanceScore": 10.7, + "isAnchor": false + }, + { + "name": "Máfil", + "locode": "CL MAF", + "cofinanceScore": 25.5, + "isAnchor": false + }, + { + "name": "Mariquina", + "locode": null, + "cofinanceScore": null, + "isAnchor": false + } + ], + "bundle": { + "sector": "Transportation", + "coordinationTier": "highly_coordinated", + "instrumentClass": "pooled grant/loan · ESCO · debt", + "actorRoute": "municipal applicant", + "feasible": "True" + }, + "pooledProposal": { + "title": "Los Ríos zero-emission transport program (6-comuna bundle)", + "sector": "transport", + "askUSDm": 30, + "stage": "Structuring", + "cofinance": true + } + } +} \ No newline at end of file diff --git a/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/src/lib/adapters.ts b/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/src/lib/adapters.ts new file mode 100644 index 0000000..1442f46 --- /dev/null +++ b/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/src/lib/adapters.ts @@ -0,0 +1,89 @@ +// Fiscal Data Adapter layer — normalizes country-specific fiscal sources into the +// readiness model, keyed by city id (locode / IBGE). Chile = SINIM/FCM (via the +// City-Funder Matching Engine); Brazil = CAPAG (Tesouro Nacional). New countries +// add an adapter without touching the rest of the app. +import { SM, type Comuna, type Scored } from "./engine"; +import clData from "@/data/valdivia.json"; +import brData from "@/data/brazil.json"; + +export interface Scope { + id: string; + country: string; + region: string; + adapter: string; // the fiscal data source + center: [number, number]; + zoom: number; + tierKind: "readiness" | "capag"; +} + +export const SCOPES: Scope[] = [ + { id: "cl-losrios", country: "Chile", region: "Los Ríos", adapter: "SINIM / FCM", center: [-39.85, -72.9], zoom: 8, tierKind: "readiness" }, + { id: "br-rs", country: "Brazil", region: "Rio Grande do Sul", adapter: "CAPAG (Tesouro Nacional)", center: [-29.7, -53.2], zoom: 6, tierKind: "capag" }, +]; + +// Approx coordinates for the Chilean unit-11 comunas (by locode, name fallback). +const CL_COORDS: Record = { + "CL ZAL": [-39.814, -73.246], "CL PAO": [-40.069, -72.872], "CL LLG": [-39.851, -72.831], + "CL CRR": [-39.887, -73.43], "CL MAF": [-39.665, -72.949], Mariquina: [-39.526, -72.969], +}; + +export interface MapPoint { + id: string; + name: string; + lat: number; + lon: number; + tier: string; // readiness tier OR capag tier + tierClass: string; // css class for color + isHero: boolean; + capag?: string | null; + journeyable: boolean; // can you enter the journey for this city? +} + +const clComunas = (clData as any).comunas as Comuna[]; +const brHero = (brData as any).hero as Comuna; +const brStateMap = (brData as any).stateMap as any[]; + +function readinessTierClass(t: string) { + return t; // "Ready" | "Developing" | "Early" map to css .tier. +} + +export function mapPoints(scopeId: string): MapPoint[] { + if (scopeId === "cl-losrios") { + return clComunas + .map((c) => { + const co = CL_COORDS[c.locode || ""] || CL_COORDS[c.name]; + if (!co) return null; + const s = SM.scoreSNG(c); + return { id: c.id, name: c.name, lat: co[0], lon: co[1], tier: s.tier, tierClass: readinessTierClass(s.tier), isHero: c.isAnchor, journeyable: c.isAnchor }; + }) + .filter(Boolean) as MapPoint[]; + } + // Brazil — CAPAG tiers across RS (cheap; uses precomputed tier, only hero is journeyable) + return brStateMap.map((m) => ({ + id: `SNG-BR-${m.codIbge}`, name: m.name, lat: m.lat, lon: m.lon, + tier: m.tier, tierClass: m.tier, isHero: m.isHero, capag: m.capag, journeyable: m.isHero, + })); +} + +export function scopeLegend(scopeId: string): { cls: string; label: string }[] { + if (scopeId === "cl-losrios") + return [ + { cls: "Ready", label: "Ready" }, + { cls: "Developing", label: "Developing" }, + { cls: "Early", label: "Early" }, + ]; + const lg = (brData as any).legend as any[]; + return lg.map((l) => ({ cls: l.tier, label: l.label })); +} + +// The cities you can actually run the journey for (have full readiness detail). +export function journeyCity(cityId: string): Scored | null { + const c = clComunas.find((x) => x.id === cityId) || (brHero.id === cityId ? brHero : null); + return c ? SM.scoreSNG(c) : null; +} + +export function heroFor(scopeId: string): Scored { + return scopeId === "br-rs" ? SM.scoreSNG(brHero) : SM.scoreSNG(clComunas.find((c) => c.isAnchor)!); +} + +export const DATA = { cl: clData as any, br: brData as any }; diff --git a/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/src/lib/context.ts b/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/src/lib/context.ts new file mode 100644 index 0000000..1b751e6 --- /dev/null +++ b/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/src/lib/context.ts @@ -0,0 +1,81 @@ +// CityCatalyst context provider — the AI-agent / shared-context SEAM. +// Today this returns simulated context (identity + inventory + CCRA + HIAP + plan) +// and a canned "agent assist". In production these calls go to CityCatalyst's MCP / +// agent layer so context is shared across modules. Keep this interface stable. + +export interface CityContext { + cityId: string; + inventory: { topSectors: { sector: string; sharePct: number }[]; year: number; source: string }; + ccra: { hazards: { hazard: string; risk: "high" | "medium" | "low" }[]; source: string }; + hiap: { actionId: string; name: string; sector: string; type: "mitigation" | "adaptation"; rank: number }[]; + plan: { name: string; status: string; actionsCount: number }; + // the city's own project pipeline — for an INTRA-city portfolio + projects: { title: string; sector: string; askUSDm: number }[]; + source: "simulated" | "citycatalyst-mcp"; +} + +const CONTEXT: Record = { + // Valdivia (Chile) + "SNG-CLZAL": { + cityId: "SNG-CLZAL", + inventory: { year: 2022, source: "CityCatalyst GHGI (simulated)", topSectors: [ + { sector: "Transportation", sharePct: 38 }, { sector: "Stationary energy", sharePct: 31 }, { sector: "Waste", sharePct: 19 }, + ] }, + ccra: { source: "CityCatalyst CCRA (simulated)", hazards: [ + { hazard: "River / coastal flooding", risk: "high" }, { hazard: "Wildfire", risk: "medium" }, { hazard: "Water scarcity", risk: "medium" }, + ] }, + hiap: [ + { actionId: "c40_0023", name: "Adopt zero-emission bus fleets", sector: "transportation", type: "mitigation", rank: 1 }, + { actionId: "ipcc_0001", name: "Transit-oriented development", sector: "transportation", type: "mitigation", rank: 2 }, + { actionId: "ipcc_0105", name: "Active mobility / road space reallocation", sector: "transportation", type: "mitigation", rank: 3 }, + ], + plan: { name: "Valdivia Climate Action Plan", status: "Adopted 2023", actionsCount: 102 }, + projects: [ + { title: "Zero-emission transport (e-bus + BRT)", sector: "transport", askUSDm: 8 }, + { title: "Organic waste & biogas", sector: "waste", askUSDm: 6 }, + { title: "Riverfront flood resilience", sector: "water", askUSDm: 9 }, + { title: "Municipal building energy retrofit", sector: "energy", askUSDm: 5 }, + ], + source: "simulated", + }, + // Canoas (Brazil) + "SNG-BR-4304606": { + cityId: "SNG-BR-4304606", + inventory: { year: 2022, source: "CityCatalyst GHGI (simulated)", topSectors: [ + { sector: "Stationary energy", sharePct: 41 }, { sector: "Transportation", sharePct: 27 }, { sector: "Waste", sharePct: 21 }, + ] }, + ccra: { source: "CityCatalyst CCRA (simulated)", hazards: [ + { hazard: "River flooding (Guaíba basin)", risk: "high" }, { hazard: "Extreme rainfall", risk: "high" }, { hazard: "Heat stress", risk: "medium" }, + ] }, + hiap: [ + { actionId: "ipcc_0210", name: "Urban drainage & flood defences", sector: "water", type: "adaptation", rank: 1 }, + { actionId: "ipcc_0233", name: "Nature-based riverine buffers", sector: "afolu", type: "adaptation", rank: 2 }, + { actionId: "c40_0061", name: "Early-warning & resilient infrastructure", sector: "water", type: "adaptation", rank: 3 }, + ], + plan: { name: "Canoas Resilience & Adaptation Plan", status: "Draft 2025", actionsCount: 64 }, + projects: [ + { title: "Flood drainage & defences (post-2024)", sector: "water", askUSDm: 45 }, + ], + source: "simulated", + }, +}; + +export function getCityContext(cityId: string): CityContext | null { + return CONTEXT[cityId] || null; +} + +export function agentAssist(opts: { cityName: string; tier: string; cleared: boolean; pathway: string }): { + simulated: true; + text: string; +} { + const { cityName, tier, cleared, pathway } = opts; + let text: string; + if (tier === "Ready" && cleared) { + text = `${cityName} clears the early creditworthiness assessment. A single project may be below the instrument's ticket size — you can either bundle ${cityName}'s own projects into an intra-city portfolio, or pool credit lines with neighbouring cities. Then assemble the dossier.`; + } else if (pathway === "capacity-building") { + text = `${cityName} isn't yet eligible. The gap is not debt — it's liquidity, savings and accounting quality. I'd recommend a capacity-building track (fix accounting to lift the ICF rating, build cash reserves) plus grant / blended finance for adaptation now, rather than a guaranteed-credit application.`; + } else { + text = `${cityName} is on the readiness path. Close the named gaps via targeted TC, then re-assess for the instrument.`; + } + return { simulated: true, text }; +} diff --git a/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/src/lib/dossier.ts b/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/src/lib/dossier.ts new file mode 100644 index 0000000..c28e45b --- /dev/null +++ b/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/src/lib/dossier.ts @@ -0,0 +1,64 @@ +// Candidate dossier = the machine-readable handoff into a funder's intake. +// It extends the project Concept Note (plan + actions) with the entity +// creditworthiness, the instrument, the pool, and the due-diligence checklist — +// one document a funder (IDB Control Tower) can intake. +import { SM, PILLAR_ORDER, type Scored } from "./engine"; +import { getCityContext } from "./context"; + +export interface Dossier { + id: string; + submittedAt: string; + candidateId: string; + kind: "city" | "pool"; + name: string; + locode: string | null; + cityId: string | null; + country: string; + pathway: "instrument" | "pool" | "capacity-building"; + targetProfileId: string; + instrument: { funder: string; name: string }; + conceptNote: { title: string; sector: string; askUSDm: number; actions: { name: string; type: string }[]; summary: string }; + readiness: { composite: number; tier: string; cleared: boolean; pillars: { key: string; label: string; score: number; provenance: string }[] }; + pool: { anchor: string; members: { name: string; role: string; cofinance: number | null }[] } | null; + dueDiligence: { label: string; done: boolean }[]; + financials: { askUSDm: number; cofinance: boolean }; + provenanceNote: string; +} + +export interface AssembleOpts { + scored: Scored; + kind: "city" | "pool"; + pathway: "instrument" | "pool" | "capacity-building"; + instrumentName?: string; + pool?: { anchor: string; members: { name: string; role: string; cofinance: number | null }[] } | null; + proposal: { title: string; sector: string; askUSDm: number; cofinance: boolean }; +} + +export function assembleDossier(o: AssembleOpts): Omit { + const s = o.scored; + const profile = SM.activeProfile(); + const ctx = getCityContext(s.id); + const pillars = SM.explainScore(s.readiness).map((e) => ({ + key: e.key, label: e.label, score: s.readiness[e.key], provenance: (s.provenance as any)[e.key], + })); + void PILLAR_ORDER; + return { + candidateId: o.kind === "pool" ? `POOL-${s.id}` : s.id, + kind: o.kind, + name: o.kind === "pool" ? `${s.name} pool (anchor)` : s.name, + locode: s.locode, cityId: s.cityId, country: s.country, + pathway: o.pathway, + targetProfileId: profile.id, + instrument: { funder: profile.funder, name: o.instrumentName || profile.instrument }, + conceptNote: { + title: o.proposal.title, sector: o.proposal.sector, askUSDm: o.proposal.askUSDm, + actions: (ctx?.hiap || []).map((a) => ({ name: a.name, type: a.type })), + summary: `Plan derived from ${s.name}'s CityCatalyst HIAP priorities; ${ctx?.hiap.length || 0} prioritized actions.`, + }, + readiness: { composite: s.compositeReadiness, tier: s.tier, cleared: s.canEnterProjectReview, pillars }, + pool: o.pool || null, + dueDiligence: SM.intakeChecklist(s), + financials: { askUSDm: o.proposal.askUSDm, cofinance: o.proposal.cofinance }, + provenanceNote: "Fiscal pillars from real national data (CAPAG · SINIM/FCM), locode-keyed. Screening signal, not a credit decision.", + }; +} diff --git a/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/src/lib/engine.ts b/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/src/lib/engine.ts new file mode 100644 index 0000000..1d64a59 --- /dev/null +++ b/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/src/lib/engine.ts @@ -0,0 +1,69 @@ +// Thin typed wrapper around the vendored Readiness Engine (control-tower). +// Importing readiness-profiles first registers the profile registry; scoring.js +// reads it. The engine is the SAME code as justagiraffe/control-tower — vendored +// here for the standalone app; the eventual home is a shared package. +import "./readiness/readiness-profiles.js"; +import ScoringModel from "./readiness/scoring.js"; +import ProfilesMod from "./readiness/readiness-profiles.js"; + +export const SM = ScoringModel as ScoringModelType; +export const Profiles = ProfilesMod as ProfilesType; + +export type Pillar = "creditworthiness" | "fiscalHealth" | "legalCapacity" | "governance"; + +export interface Comuna { + id: string; + name: string; + locode: string | null; + cityId: string | null; + country: string; + iso: string; + type: string; + population: number | null; + isAnchor: boolean; + cofinanceScore: number | null; + anchorScore: number | null; + readiness: Record; + provenance: Record; + signals: { + capagRating: string | null; + ownSourceRevenuePct: number | null; + debtServiceRatioPct: number | null; + currentBalancePct: number | null; + independentAudit: boolean; + canBorrowWithoutSovereignGuarantee: boolean; + }; + proposal: { title: string; sector: string; askUSDm: number; stage: string; cofinance: boolean }; +} + +export interface Scored extends Comuna { + compositeReadiness: number; + tier: "Ready" | "Developing" | "Early"; + readinessAction: string; + eligibility: Record & { eligible: boolean }; + canEnterProjectReview: boolean; +} + +interface ScoringModelType { + scoreSNG: (c: any) => Scored; + explainScore: (r: any) => { key: Pillar; label: string; score: number; weight: number; points: number }[]; + intakeChecklist: (c: any) => { key: string; label: string; done: boolean }[]; + readinessClearanceBlockers: (c: any) => string[]; + eligibilityCheck: (c: any) => Record & { eligible: boolean }; + activeProfile: () => any; + setActiveProfile: (id: string) => any; + PILLAR_LABELS: Record; + READINESS_WEIGHTS: Record; +} +interface ProfilesType { + listProfiles: () => { id: string; funder: string; instrument: string; illustrative: boolean }[]; + getProfile: (id: string) => any; +} + +export const PILLAR_ORDER: Pillar[] = ["creditworthiness", "fiscalHealth", "legalCapacity", "governance"]; + +export function provenanceKind(p: string): "real" | "estimated" | "intake" { + if (p.startsWith("real")) return "real"; + if (p.startsWith("intake")) return "intake"; + return "estimated"; +} diff --git a/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/src/lib/funders.ts b/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/src/lib/funders.ts new file mode 100644 index 0000000..ea034bf --- /dev/null +++ b/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/src/lib/funders.ts @@ -0,0 +1,48 @@ +// Funder sourcing catalog — the 3-level hierarchy a city drills through to find a +// financing line: FUNDER (bank) → PROGRAM → INSTRUMENT. Readiness is assessed at the +// program level (it carries the readiness profile); the instrument is the specific +// product. In the integrated architecture this becomes a converged "funder sourcing +// service" (today fragmented across CityCatalyst + the hackday apps). Mock for now. + +export interface Instrument { id: string; name: string; kind: "loan" | "guarantee" | "TC" | "grant"; note?: string } +export interface Program { + id: string; + name: string; + summary: string; + profileId: string; // → readiness profile in readiness-profiles.js + eligibilityNote?: string; + instruments: Instrument[]; +} +export interface Funder { id: string; name: string; short: string; template?: boolean; programs: Program[] } + +export const FUNDERS: Funder[] = [ + { + id: "idb", name: "Inter-American Development Bank", short: "IDB", + programs: [ + { + id: "idb-sfp", name: "Sub-Sovereign Finance Program (SFP)", profileId: "idb-sfp", + summary: "A 5-year program lending directly to subnational governments without a sovereign guarantee.", + eligibilityNote: "You may be eligible for a direct line from the IDB. Assess readiness against this program's instruments.", + instruments: [ + { id: "sfp-loan", name: "Investment loan · Subprogram 1", kind: "loan", note: "no sovereign guarantee · market-based pricing" }, + { id: "sfp-guarantee", name: "Investment guarantee · Subprogram 1", kind: "guarantee", note: "credit enhancement, no sovereign counter-guarantee" }, + { id: "sfp-tc", name: "Technical cooperation · Subprogram 2", kind: "TC", note: "readiness support (~US$13M envelope)" }, + ], + }, + ], + }, + { + id: "caf", name: "CAF — Development Bank of Latin America & the Caribbean", short: "CAF", template: true, + programs: [{ id: "caf-sub", name: "Subnational lending (template)", profileId: "generic-mdb-template", summary: "Illustrative — plug in CAF's real program & criteria.", instruments: [{ id: "caf-loan", name: "Sub-national loan", kind: "loan" }] }], + }, + { + id: "wb", name: "World Bank", short: "World Bank", template: true, + programs: [{ id: "wb-sub", name: "Subnational program (template)", profileId: "generic-mdb-template", summary: "Illustrative.", instruments: [{ id: "wb-loan", name: "Sub-national loan", kind: "loan" }] }], + }, + { + id: "gcf", name: "Green Climate Fund", short: "GCF", template: true, + programs: [{ id: "gcf-da", name: "Direct access (template)", profileId: "generic-mdb-template", summary: "Illustrative.", instruments: [{ id: "gcf-grant", name: "Grant / concessional", kind: "grant" }] }], + }, +]; + +export function getFunder(id: string | null) { return FUNDERS.find((f) => f.id === id) || null; } diff --git a/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/src/lib/readiness/readiness-profiles.d.ts b/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/src/lib/readiness/readiness-profiles.d.ts new file mode 100644 index 0000000..8b3f8d8 --- /dev/null +++ b/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/src/lib/readiness/readiness-profiles.d.ts @@ -0,0 +1,2 @@ +declare const ReadinessProfiles: any; +export default ReadinessProfiles; diff --git a/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/src/lib/readiness/readiness-profiles.js b/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/src/lib/readiness/readiness-profiles.js new file mode 100644 index 0000000..07d7a0a --- /dev/null +++ b/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/src/lib/readiness/readiness-profiles.js @@ -0,0 +1,189 @@ +// Readiness Profiles — the pluggable contract behind the Readiness Engine +// ============================================================================= +// A *readiness profile* parameterizes the Readiness Engine for ONE financing +// target (an MDB instrument). You are never "ready" in the abstract — you are +// ready *for a specific funder's criteria*. Swap the profile and the same engine +// (scoring.js) assesses a city's readiness for a different funder. +// +// IDB Sub-Sovereign Finance Program -> profile "idb-sfp" (the canonical #1) +// CAF / World Bank / EIB / GCF / ... -> add their own profile object +// +// This is what turns justagiraffe from "an IDB tool" into "the readiness layer +// for any MDB" — and it is the join point with the City-Funder Matching Engine: +// the Matching Engine narrows a city's plan to a few *candidate targets*; for the +// chosen target, the Readiness Engine loads that target's profile and produces a +// score + gap + preparation track. See READINESS-PROFILES.md. +// +// A profile is plain data + tiny pure predicates. scoring.js derives its weights, +// tiers, eligibility gate and checklists from the ACTIVE profile, so the existing +// dashboard and its live re-score keep working unchanged when "idb-sfp" is active. +// ----------------------------------------------------------------------------- + +// --- Profile schema (informal) ---------------------------------------------- +// { +// id, funder, instrument, version, source, summary, +// pillars: [{ key, label, weight, basis, source }], // weights sum to 1 +// tiers: { thresholds:{ready,developing}, labels, actions:{Ready,Developing,Early} }, +// clearanceBlockers: [{ key, label, test(signals)->bool }], // hard gates +// projectEligibility: [{ key, label, test(sng)->bool, note? }],// the funder's project gate +// documentaryChecklist:[{ key, label, test(sng)->bool }], // intake documents +// preparation: { Developing:{track,funding}, Early:{track,funding} }, // the TC route +// // optional: how external datasets feed the pillar inputs (provenance + mapping) +// signalSources?: [{ pillar, dataset, field, note }], +// } +// ----------------------------------------------------------------------------- + +// IDB Sub-Sovereign Finance Program — profile #1. Encodes exactly the eligibility +// logic from the June 2025 proposal that scoring.js previously hardcoded, so +// behavior is identical when this profile is active. +const IDB_SFP = { + id: "idb-sfp", + funder: "Inter-American Development Bank", + instrument: "Sub-Sovereign Finance Program (SFP)", + version: "2025-06", + source: "IDB SFP proposal (June 2025) — §4.2, §4.3, §4.13, §4.18, OP-301", + summary: "Direct investment lending to subnational governments without a sovereign guarantee.", + + // Weighted sub-scores → composite 0–100. weights MUST sum to 1. + pillars: [ + { key: "creditworthiness", label: "Creditworthiness", weight: 0.30, + basis: "credit rating, debt service, market access", source: "§4.13" }, + { key: "fiscalHealth", label: "Fiscal health", weight: 0.30, + basis: "own-source revenue, operating balance, solvency", source: "§4.13" }, + { key: "legalCapacity", label: "Legal capacity", weight: 0.20, + basis: "can contract & borrow without sovereign guarantee", source: "§4.2 / OP-301" }, + { key: "governance", label: "Governance", weight: 0.20, + basis: "managerial capacity, planning, fiscal controls, audit", source: "§4.2" }, + ], + + tiers: { + thresholds: { ready: 70, developing: 45 }, // >=70 Ready, 45-69 Developing, <45 Early + labels: { ready: "Ready", developing: "Developing", early: "Early" }, + actions: { + Ready: "Move to Project Review", + Developing: "Targeted TC / readiness acceleration", + Early: "Foundational readiness support", + }, + }, + + // Hard gates (§4.2 / §4.13 / OP-301): a city can score "Ready" and still be + // blocked from clearance until these documentary/legal conditions are met. + clearanceBlockers: [ + { key: "legal", label: "Legal capacity to borrow w/o sovereign guarantee", + test: sig => !!sig.canBorrowWithoutSovereignGuarantee }, + { key: "audit", label: "Independent audit on file", + test: sig => !!sig.independentAudit }, + ], + + // Project-eligibility gate: 3 simultaneous criteria (§4.3) + non-accrual (§4.2). + // Keys are preserved so the dashboard's eligibility object shape is unchanged. + projectEligibility: [ + { key: "highDevImpact", label: "High developmental impact", + test: sng => sng.proposal.askUSDm > 15, note: "material, transformational scale (Impact+)" }, + { key: "noCrowdingOut", label: "Prevents private-sector crowding-out", + test: () => true, note: "screened at intake against §4.5 criteria" }, + { key: "improvesSNGEfficiency", label: "Improves SNG efficiency & effectiveness", + test: sng => sng.readiness.governance >= 40, note: "capacity-building angle (§4.6)" }, + { key: "centralGovNotInNonAccrual", label: "SNG + central gov not in non-accrual", + test: () => true, note: "country-level gate (§4.2)" }, + ], + + // Documentary intake checklist (§4.13 / §4.18 / OP-301) — drives pipeline state. + documentaryChecklist: [ + { key: "legal", label: "Legal capacity to borrow w/o sovereign guarantee (OP-301)", + test: sng => !!sng.signals.canBorrowWithoutSovereignGuarantee }, + { key: "audit", label: "Independent audit / audited financial statements", + test: sng => !!sng.signals.independentAudit }, + { key: "fiscal", label: "Fiscal indicators on file (own-source rev, debt service, balance)", + test: sng => typeof sng.signals.ownSourceRevenuePct === "number" }, + { key: "accrual", label: "Non-accrual confirmation (SNG + central government)", + test: () => true }, + { key: "crowd", label: "Crowding-out screen vs. §4.5 criteria", + test: sng => !!sng.proposal && sng.proposal.stage !== "Proposal Intake" }, + ], + + // The preparation/readiness track a non-Ready city is routed to — the "get help + // to become ready" path (IDB Subprogram 2 TC, ~US$13M envelope). + preparation: { + Developing: { track: "Targeted TC / readiness acceleration", + funding: "IDB SFP Subprogram 2 — regular TC" }, + Early: { track: "Foundational readiness support", + funding: "IDB SFP Subprogram 2 — regular + contingent-recovery TC" }, + }, + + // How the four pillar inputs (readiness.*) can be sourced from real datasets + // instead of mock values. This is the contract the Matching Engine + CityCatalyst + // feed into. All join on UN/LOCODE (locode) and CityCatalyst city_id. + signalSources: [ + { pillar: "fiscalHealth", dataset: "City-Funder Matching Engine — comuna_capacity_scores.csv", + field: "fcm_dependency_pct / cofinance_score", note: "real Chilean fiscal autonomy (SINIM/FCM), locode-keyed" }, + { pillar: "creditworthiness", dataset: "Brazil CAPAG (Treasury)", + field: "A/B/C rating + indicators", note: "real ~5,570 municipalities" }, + { pillar: "governance", dataset: "City-Funder Matching Engine — comuna_capacity_scores.csv", + field: "professionalization_pct / staff_per_1000", note: "managerial capacity proxy" }, + { pillar: "legalCapacity", dataset: "manual / intake form", + field: "canBorrowWithoutSovereignGuarantee", note: "legal opinion, not a dataset" }, + ], +}; + +// ILLUSTRATIVE TEMPLATE — shows the shape another MDB fills in. The criteria below +// are PLACEHOLDERS, not any real bank's published rules. Do not present as fact; +// replace every field with the target MDB's actual eligibility before using. +const GENERIC_MDB_TEMPLATE = { + id: "generic-mdb-template", + funder: "", + instrument: "", + version: "template", + source: "ILLUSTRATIVE — replace with the MDB's published eligibility criteria", + summary: "Template profile demonstrating how a new MDB plugs into the engine.", + illustrative: true, + pillars: [ + { key: "creditworthiness", label: "Creditworthiness", weight: 0.25, basis: "", source: "" }, + { key: "fiscalHealth", label: "Fiscal health", weight: 0.25, basis: "", source: "" }, + { key: "legalCapacity", label: "Legal capacity", weight: 0.25, basis: "", source: "" }, + { key: "governance", label: "Governance", weight: 0.25, basis: "", source: "" }, + ], + tiers: { + thresholds: { ready: 65, developing: 40 }, + labels: { ready: "Ready", developing: "Developing", early: "Early" }, + actions: { Ready: "Advance", Developing: "Prepare", Early: "Foundational support" }, + }, + clearanceBlockers: [ + { key: "legal", label: "", test: () => true }, + ], + projectEligibility: [ + { key: "impact", label: "", test: () => true }, + ], + documentaryChecklist: [ + { key: "audit", label: "", test: () => true }, + ], + preparation: { + Developing: { track: "", funding: "" }, + Early: { track: "", funding: "" }, + }, +}; + +// --- Registry ---------------------------------------------------------------- +const READINESS_PROFILES = { + "idb-sfp": IDB_SFP, + "generic-mdb-template": GENERIC_MDB_TEMPLATE, +}; + +const DEFAULT_PROFILE_ID = "idb-sfp"; + +function getProfile(id) { + return READINESS_PROFILES[id] || READINESS_PROFILES[DEFAULT_PROFILE_ID]; +} +function listProfiles() { + return Object.values(READINESS_PROFILES).map(p => ({ + id: p.id, funder: p.funder, instrument: p.instrument, illustrative: !!p.illustrative, + })); +} + +const ReadinessProfiles = { + READINESS_PROFILES, DEFAULT_PROFILE_ID, getProfile, listProfiles, + IDB_SFP, GENERIC_MDB_TEMPLATE, +}; + +if (typeof window !== "undefined") window.ReadinessProfiles = ReadinessProfiles; +if (typeof module !== "undefined") module.exports = ReadinessProfiles; diff --git a/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/src/lib/readiness/scoring.d.ts b/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/src/lib/readiness/scoring.d.ts new file mode 100644 index 0000000..268f9c2 --- /dev/null +++ b/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/src/lib/readiness/scoring.d.ts @@ -0,0 +1,2 @@ +declare const ScoringModel: any; +export default ScoringModel; diff --git a/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/src/lib/readiness/scoring.js b/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/src/lib/readiness/scoring.js new file mode 100644 index 0000000..56cda05 --- /dev/null +++ b/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/src/lib/readiness/scoring.js @@ -0,0 +1,178 @@ +// Readiness scoring model — Sub-Sovereign Finance Program (SFP) Control Tower +// ----------------------------------------------------------------------------- +// The Readiness Engine. It is now PROFILE-DRIVEN: weights, tiers, the eligibility +// gate and the documentary checklist are read from the ACTIVE readiness profile +// (see readiness-profiles.js), not hardcoded. The default profile "idb-sfp" +// reproduces the IDB Sub-Sovereign Finance Program eligibility logic exactly +// (GN-xxxx proposal §4.2/§4.3/§4.13/OP-301), so the dashboard and its live +// re-score behave identically — but swapping the active profile re-points the +// whole engine at a different MDB's criteria. That pluggability is the point. +// +// Owner: Sean (Finance) tunes the active profile's weights & thresholds; Mirco +// (AI) feeds the sub-scores from CityCatalyst + open fiscal data. Profiles are +// the contract the City-Funder Matching Engine and other MDBs plug into. +// ----------------------------------------------------------------------------- + +// Resolve the profile registry in both browser (window) and Node (require). +const Profiles = + (typeof window !== "undefined" && window.ReadinessProfiles) || + (typeof require !== "undefined" ? require("./readiness-profiles.js") : null); + +let ACTIVE_PROFILE = Profiles ? Profiles.getProfile(Profiles.DEFAULT_PROFILE_ID) : null; + +// Live, mutable views derived from the active profile. These objects keep the +// SAME identity/shape the dashboard already binds to (sliders mutate +// READINESS_WEIGHTS in place; PILLAR_LABELS[key] is read for labels). +const READINESS_WEIGHTS = {}; +const PILLAR_LABELS = {}; +const TIER_THRESHOLDS = { ready: 70, developing: 45 }; + +// Rebuild the derived views from a profile (mutating in place to preserve identity). +function applyProfile(profile) { + ACTIVE_PROFILE = profile; + for (const k of Object.keys(READINESS_WEIGHTS)) delete READINESS_WEIGHTS[k]; + for (const k of Object.keys(PILLAR_LABELS)) delete PILLAR_LABELS[k]; + for (const p of profile.pillars) { + READINESS_WEIGHTS[p.key] = p.weight; + PILLAR_LABELS[p.key] = p.label; + } + TIER_THRESHOLDS.ready = profile.tiers.thresholds.ready; + TIER_THRESHOLDS.developing = profile.tiers.thresholds.developing; + return ACTIVE_PROFILE; +} +if (ACTIVE_PROFILE) applyProfile(ACTIVE_PROFILE); + +// Switch the engine to another MDB's profile (e.g. "idb-sfp" → "caf-..."). +function setActiveProfile(id) { + if (!Profiles) return ACTIVE_PROFILE; + return applyProfile(Profiles.getProfile(id)); +} +function activeProfile() { return ACTIVE_PROFILE; } + +// Replace weights (partial ok) and renormalize to sum 1 so the composite stays 0-100. +// Used by resetWeights(); sliders use setWeightShare() so the handle tracks the label. +function setWeights(partial) { + Object.assign(READINESS_WEIGHTS, partial); + const total = Object.values(READINESS_WEIGHTS).reduce((a, b) => a + b, 0) || 1; + for (const k of Object.keys(READINESS_WEIGHTS)) READINESS_WEIGHTS[k] /= total; + return { ...READINESS_WEIGHTS }; +} + +// Set one pillar to targetPct (0–100) of the composite; scale the others proportionally. +function setWeightShare(key, targetPct) { + const target = Math.max(0, Math.min(100, targetPct)) / 100; + const others = Object.keys(READINESS_WEIGHTS).filter(k => k !== key); + const otherSum = others.reduce((s, k) => s + READINESS_WEIGHTS[k], 0); + READINESS_WEIGHTS[key] = target; + if (target >= 1) { + others.forEach(k => { READINESS_WEIGHTS[k] = 0; }); + } else if (otherSum > 0) { + const scale = (1 - target) / otherSum; + others.forEach(k => { READINESS_WEIGHTS[k] *= scale; }); + } else { + const each = (1 - target) / others.length; + others.forEach(k => { READINESS_WEIGHTS[k] = each; }); + } + return { ...READINESS_WEIGHTS }; +} + +function compositeReadiness(readiness, weights = READINESS_WEIGHTS) { + return Math.round( + Object.entries(weights).reduce((sum, [k, w]) => sum + (readiness[k] || 0) * w, 0) + ); +} + +// "Why this score": per-pillar point contribution to the composite, so the +// dashboard can defend the number when a funder challenges it. +function explainScore(readiness, weights = READINESS_WEIGHTS) { + return Object.keys(weights).map(k => ({ + key: k, + label: PILLAR_LABELS[k] || k, + score: readiness[k] || 0, + weight: weights[k], + points: Math.round((readiness[k] || 0) * weights[k] * 10) / 10, + })); +} + +function tierFor(score) { + if (score >= TIER_THRESHOLDS.ready) return "Ready"; + if (score >= TIER_THRESHOLDS.developing) return "Developing"; + return "Early"; +} + +function readinessActionFor(tier) { + const actions = (ACTIVE_PROFILE && ACTIVE_PROFILE.tiers.actions) || {}; + return actions[tier] || tier; +} + +// Step 2 after the early creditworthiness assessment (Step 1): the active +// profile's hard clearance gates (for IDB SFP: legal capacity to borrow w/o +// sovereign guarantee §4.2, independent audit §4.13/OP-301). Analytic pillar +// scores do not replace these checks. +function readinessClearanceBlockers(sng) { + const sig = sng.signals || {}; + const gates = (ACTIVE_PROFILE && ACTIVE_PROFILE.clearanceBlockers) || []; + return gates.filter(g => !g.test(sig)).map(g => g.label); +} + +function readinessActionForSng(sng) { + const tier = tierFor(compositeReadiness(sng.readiness)); + if (tier !== "Ready") { + return readinessActionFor(tier); + } + if (canEnterProjectReview(sng)) { + return "Cleared for Project Review"; + } + return "Ready score · clearance blocked"; +} + +// The active profile's project-eligibility gate (for IDB SFP: 3 simultaneous +// criteria §4.3 + the non-accrual condition §4.2). Returns which criteria pass +// (keyed object) plus `eligible`, so the dashboard can show *why*. +function eligibilityCheck(sng) { + const criteria = (ACTIVE_PROFILE && ACTIVE_PROFILE.projectEligibility) || []; + const checks = {}; + for (const c of criteria) checks[c.key] = !!c.test(sng); + checks.eligible = Object.values(checks).every(Boolean); + return checks; +} + +// Step 2 after the composite score: binary clearance before active project review. +function canEnterProjectReview(sng) { + return tierFor(compositeReadiness(sng.readiness)) === "Ready" && + readinessClearanceBlockers(sng).length === 0; +} + +// Documentary intake checklist from the active profile (for IDB SFP: §4.13 +// readiness assessment, §4.18 legal frameworks, OP-301). Drives the pipeline +// view's workflow state — what is missing before the next gate. +function intakeChecklist(sng) { + const items = (ACTIVE_PROFILE && ACTIVE_PROFILE.documentaryChecklist) || []; + return items.map(it => ({ key: it.key, label: it.label, done: !!it.test(sng) })); +} + +// One call to (re)score a candidate end-to-end against the active profile. +function scoreSNG(sng) { + const score = compositeReadiness(sng.readiness); + const tier = tierFor(score); + return { + ...sng, + compositeReadiness: score, + tier, + readinessAction: readinessActionForSng(sng), + eligibility: eligibilityCheck(sng), + canEnterProjectReview: canEnterProjectReview(sng), + }; +} + +const ScoringModel = { + READINESS_WEIGHTS, TIER_THRESHOLDS, PILLAR_LABELS, + setWeights, setWeightShare, compositeReadiness, explainScore, tierFor, + readinessActionFor, readinessActionForSng, readinessClearanceBlockers, + eligibilityCheck, canEnterProjectReview, intakeChecklist, scoreSNG, + // profile controls (new) + setActiveProfile, activeProfile, applyProfile, +}; + +if (typeof window !== "undefined") window.ScoringModel = ScoringModel; +if (typeof module !== "undefined") module.exports = ScoringModel; diff --git a/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/src/lib/store.ts b/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/src/lib/store.ts new file mode 100644 index 0000000..15ed6e5 --- /dev/null +++ b/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/src/lib/store.ts @@ -0,0 +1,9 @@ +// In-memory dossier store (demo only — resets when the dev server restarts). +// Stands in for the IDB-side Control Tower receiving the candidate dossier. +import type { Dossier } from "./dossier"; + +export type { Dossier }; + +const g = globalThis as unknown as { __CRN_DOSSIERS__?: Dossier[] }; +if (!g.__CRN_DOSSIERS__) g.__CRN_DOSSIERS__ = []; +export const dossiers: Dossier[] = g.__CRN_DOSSIERS__; diff --git a/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/tsconfig.json b/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/tsconfig.json new file mode 100644 index 0000000..c6450a9 --- /dev/null +++ b/events/2026-06-11-unlock-the-money/justagiraffe/city-readiness-navigator/tsconfig.json @@ -0,0 +1,22 @@ +{ + "compilerOptions": { + "target": "ES2020", + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "checkJs": false, + "skipLibCheck": true, + "strict": true, + "noEmit": true, + "esModuleInterop": true, + "module": "esnext", + "moduleResolution": "bundler", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "incremental": true, + "plugins": [{ "name": "next" }], + "paths": { "@/*": ["./src/*"] } + }, + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], + "exclude": ["node_modules"] +} diff --git a/events/2026-06-11-unlock-the-money/justagiraffe/IMPLEMENTATION_PLAN.md b/events/2026-06-11-unlock-the-money/justagiraffe/control-tower/IMPLEMENTATION_PLAN.md similarity index 99% rename from events/2026-06-11-unlock-the-money/justagiraffe/IMPLEMENTATION_PLAN.md rename to events/2026-06-11-unlock-the-money/justagiraffe/control-tower/IMPLEMENTATION_PLAN.md index b85de6b..e28867d 100644 --- a/events/2026-06-11-unlock-the-money/justagiraffe/IMPLEMENTATION_PLAN.md +++ b/events/2026-06-11-unlock-the-money/justagiraffe/control-tower/IMPLEMENTATION_PLAN.md @@ -15,7 +15,7 @@ This turns readiness into the first filter and moves project-level proposal deta ### Current Issue -Today, `control-tower/index.html` defines proposal stages as: +Today, `index.html` defines proposal stages as: ```js const STAGES = ["Intake","Screening","Readiness Review","Structuring","Board Pipeline"]; @@ -164,7 +164,7 @@ Future production model should support multiple proposals per SNG, because one c ### 1. Make Readiness Scoring the First Tab -Change navigation order in `control-tower/index.html`: +Change navigation order in `index.html`: Current: @@ -406,7 +406,7 @@ This makes the Board story clearer: the pilot is not only tracking projects, it ### Phase 4: Demo Story and Docs - Update `SPEC.md` to reflect the two-stage model. -- Update `ROADMAP.md` demo script: +- Update `../archive/ROADMAP.md` demo script: 1. Readiness Scoring: "Which cities are ready?" 2. Project Review: "For ready cities, which projects advance?" 3. M&E & Board: "Is the pilot proving itself?" diff --git a/events/2026-06-11-unlock-the-money/justagiraffe/control-tower/MandE-questions.md b/events/2026-06-11-unlock-the-money/justagiraffe/control-tower/MandE-questions.md new file mode 100644 index 0000000..ef9a37e --- /dev/null +++ b/events/2026-06-11-unlock-the-money/justagiraffe/control-tower/MandE-questions.md @@ -0,0 +1,36 @@ +# M&E Questions (for Prototype Scoring) + +## Pillar 1 — Fiscal & Financial Management +1. Does the SNG have an updated Public Financial Management (PFM) system? +2. Are budget execution reports published on time? +3. Is there an updated debt management strategy? +4. Has revenue autonomy improved in the last 3 years? +5. Does the SNG have a credit rating or shadow rating? + +## Pillar 2 — Project Pipeline & Technical Capacity +1. Are ex-ante evaluations conducted for major projects? +2. Are projects screened for regulatory compliance? +3. Does the SNG maintain a risk management framework? +4. Are land-use and sectoral plans up to date? +5. Is there an annual capital budget for infrastructure? + +## Pillar 3 — Service Delivery & Infrastructure Outcomes +1. Have service quality indicators improved? +2. Has service coverage increased? +3. Have emissions or pollution levels decreased? +4. Has disaster vulnerability been reduced? +5. Is quality-of-work monitored during implementation? + +## Pillar 4 — Private Sector & Market Readiness +1. Does the SNG have a PPP framework? +2. Has the SNG conducted investor consultations? +3. Does the SNG have tariff-setting capacity? +4. Are procurement systems modernized and transparent? +5. Has the SNG conducted market sounding for major projects? + +## Pillar 5 — Sustainability & Long-Term Viability +1. Is there an O&M plan for major assets? +2. Are institutional roles and responsibilities clearly defined? +3. Is the financial sustainability of services monitored? +4. Are climate resilience measures integrated into planning? +5. Are monitoring systems in place to track project outcomes? diff --git a/events/2026-06-11-unlock-the-money/justagiraffe/control-tower/Monitoring_Evaluation.md b/events/2026-06-11-unlock-the-money/justagiraffe/control-tower/Monitoring_Evaluation.md new file mode 100644 index 0000000..f977e89 --- /dev/null +++ b/events/2026-06-11-unlock-the-money/justagiraffe/control-tower/Monitoring_Evaluation.md @@ -0,0 +1,206 @@ +# Monitoring & Evaluation (M&E) Module – Sub‑Sovereign Pilot Control Tower + +## 1. Purpose + +The M&E module provides a unified framework to track: + +1. **Pilot‑level early outcomes** required for IDB Board reporting (Annex IV). +2. **City‑level readiness progress** over time, aligned with the SFP Theory of Change. +3. **Program‑wide performance signals** that demonstrate whether the Sub‑Sovereign Finance Program (SFP) is feasible, scalable, and delivering value. + +This module integrates Annex IV with a forward‑looking readiness approach to support SNGs in accessing finance and to give the IDB team a real‑time view of the pilot’s performance. + +--- + +## 2. M&E Architecture + +The M&E module is built around **two complementary layers**: + +### **A. Pilot‑Level Early Outcome Tracking (Annex IV)** +Tracks indicators required to evaluate the pilot’s feasibility, operational efficiency, and early outcomes across participating SNGs. + +### **B. City‑Level Readiness Progress (Forward‑Looking)** +Tracks how each SNG is progressing toward investment readiness using a simple, digital‑tool‑friendly scoring model. + +Together, these layers form the **Control Tower** view of the pilot. + +--- + +## 3. Pilot‑Level Early Outcome Indicators (Annex IV) + +These indicators come directly from Annex IV and are grouped into four domains. + +### **3.1 Fiscal & Financial Management** +- Revenue autonomy +- Fiscal transparency (timely and complete reporting) +- Updated debt management strategy +- Credit rating or shadow rating improvements + +### **3.2 Project Pipeline & Technical Capacity** +- Ex‑ante project evaluations +- Regulatory compliance screening +- Risk management systems +- Updated land‑use and sectoral plans +- Capital budgeting for infrastructure + +### **3.3 Service Delivery & Infrastructure** +- Improved service quality +- Increased service coverage +- Reduced emissions or pollution +- Reduced disaster vulnerability +- Quality‑of‑work monitoring + +### **3.4 Private Sector Engagement** +- PPP readiness +- Investor consultations / market sounding +- Tariff‑setting capacity +- Private sector participation in capital plans + +These indicators are aggregated across all SNGs to show the pilot’s overall performance. + +--- + +## 4. City‑Level Readiness Journey (Forward‑Looking) + +To complement Annex IV, the Control Tower includes a readiness journey that helps SNGs understand where they stand and what they need to improve to access financing. + +### **4.1 Readiness Ladder** +Cities are classified into four levels: + +1. **Foundational** – basic governance, limited data +2. **Emerging** – some plans, weak financials +3. **Capable** – strong financials, pipeline exists +4. **Investment‑ready** – bankable projects, strong systems + +### **4.2 Readiness Pillars (5‑Pillar Model)** + +Each SNG is assessed across **five forward‑looking pillars**: + +#### **Pillar 1 — Fiscal & Financial Management** +- Updated PFM system +- Revenue autonomy +- Debt management strategy +- Fiscal transparency +- Credit rating or shadow rating + +#### **Pillar 2 — Project Pipeline & Technical Capacity** +- Ex‑ante project evaluation +- Regulatory compliance +- Risk management +- Land‑use and sectoral plans +- Capital budgeting + +#### **Pillar 3 — Service Delivery & Infrastructure Outcomes** +- Service quality +- Service coverage +- Emissions reduction +- Disaster resilience +- Quality of work + +#### **Pillar 4 — Private Sector & Market Readiness** +- PPP framework +- Investor engagement +- Tariff‑setting capacity +- Procurement systems +- Market sounding + +#### **Pillar 5 — Sustainability & Long‑Term Viability** +- O&M planning +- Institutional continuity +- Financial sustainability +- Climate resilience +- Monitoring systems + +--- + +## 5. Scoring Model + +Each question is scored: + +- **0** = No progress +- **1** = Partial progress +- **2** = Achieved / Implemented + +Pillar scores are normalized and aggregated into a **0–100 readiness score**. + +### **Readiness Levels** +- **0–25** → Foundational +- **26–50** → Emerging +- **51–75** → Capable +- **76–100** → Investment‑ready + +--- + +## 6. M&E Outputs + +The M&E module generates four types of outputs for the Control Tower dashboard. + +### **6.1 Readiness Score** +A composite 0–100 score showing where the SNG stands on its readiness journey. + +### **6.2 Pillar Dashboard** +A radar or bar chart visualizing strengths and weaknesses across the five pillars. + +### **6.3 Narrative Summary** +Automatically generated text explaining: +- what is strong +- what is weak +- what is blocking readiness +- how the SNG compares to peers + +Examples: +- “Fiscal transparency is strong, but project pipeline evaluation is weak.” +- “You are close to investment‑ready but need stronger risk management systems.” + +### **6.4 Recommended Actions** +Tailored next steps based on low‑scoring pillars, such as: +- Update debt management strategy +- Conduct feasibility studies +- Strengthen procurement systems +- Engage private investors +- Improve safeguards and risk management + +--- + +## 7. Integration with Intake & Readiness Modules + +The M&E module integrates with the other components of the Control Tower: + +### **7.1 Intake & Triage** +- Pulls project information from the intake form +- Uses legal and fiscal signals to populate early‑outcome indicators + +### **7.2 Readiness Scoring** +- Shares data with the readiness engine (creditworthiness, fiscal health, governance) +- Tracks improvements over time + +### **7.3 Program‑Level Monitoring** +- Aggregates early outcomes across all SNGs +- Supports IDB Board reporting +- Provides evidence on pilot feasibility and scalability + +--- + +## 8. Data Sources + +The M&E module can ingest data from: +- CityCatalyst (land use, emissions, service coverage, risk exposure) +- SNG financial statements +- IDB internal systems +- Intake forms and readiness assessments +- Surveys and interviews (as needed) + +--- + +## 9. Summary + +This M&E module: + +- Aligns with Annex IV +- Supports the Control Tower’s real‑time monitoring vision +- Helps SNGs understand and improve their readiness +- Provides IDB with the evidence needed to evaluate the pilot +- Integrates cleanly with intake and readiness scoring +- Is simple enough to implement in a hackday prototype + +It is both **rigorous** (for IDB) and **practical** (for cities). diff --git a/events/2026-06-11-unlock-the-money/justagiraffe/control-tower/READINESS-PROFILES.md b/events/2026-06-11-unlock-the-money/justagiraffe/control-tower/READINESS-PROFILES.md new file mode 100644 index 0000000..9f204bd --- /dev/null +++ b/events/2026-06-11-unlock-the-money/justagiraffe/control-tower/READINESS-PROFILES.md @@ -0,0 +1,110 @@ +# Readiness Profiles — the pluggable contract behind the Readiness Engine + +> **TL;DR** You are never "ready" in the abstract — you are ready *for a specific +> funder's criteria*. A **readiness profile** packages one MDB instrument's +> criteria (pillars, weights, tiers, eligibility gate, documentary checklist, +> preparation track) as a plug-in. The Readiness Engine (`scoring.js`) runs +> whatever profile is active. **IDB SFP is profile #1**; CAF / World Bank / EIB / +> GCF add their own. This is what turns justagiraffe from *an IDB tool* into +> *the readiness layer for any MDB.* + +## Why this exists + +The original `scoring.js` hardcoded the IDB Sub-Sovereign Finance Program: the +four pillars, their weights, the tier thresholds, the §4.3 project-eligibility +gate, and the OP-301 documentary checklist. That made the engine IDB-only. + +Two things in this repo wanted it to be more than that: + +1. **The platform vision** — the same engine should serve every MDB running a + sub-sovereign / urban-finance pilot (the SPEC's "repeatable to any MDB" + revenue framing). Each MDB has *different* criteria. +2. **The City-Funder Matching Engine** — it narrows a city's plan to a few + *candidate funding targets*. For a chosen target, *someone* has to answer "is + this city ready **for that target**?" That someone is the Readiness Engine, + parameterized by the target's profile. + +So readiness is the **bridge** between matching ("where could this city go?") and +submission ("can it actually get there, and how does it prepare?"). + +## Files + +| File | What it is | +|---|---| +| `readiness-profiles.js` | The profile registry + schema. `window.ReadinessProfiles` (browser) / `module.exports` (Node). Holds `idb-sfp` (canonical) + `generic-mdb-template` (illustrative). | +| `scoring.js` | The Readiness Engine. Now **profile-driven** — derives weights/tiers/gates/checklist from the *active* profile. Default `idb-sfp` reproduces the prior behavior exactly. | +| `index.html` | Loads `readiness-profiles.js` **before** `scoring.js`. Otherwise unchanged. | + +## The profile schema + +```js +{ + id, funder, instrument, version, source, summary, + pillars: [{ key, label, weight, basis, source }], // weights sum to 1 → composite 0–100 + tiers: { + thresholds: { ready, developing }, // >=ready Ready, >=developing Developing, else Early + labels: { ready, developing, early }, + actions: { Ready, Developing, Early }, // recommended next action per tier + }, + clearanceBlockers: [{ key, label, test(signals) -> bool }], // hard gates (block even a Ready score) + projectEligibility: [{ key, label, test(sng) -> bool, note? }],// the funder's project gate + documentaryChecklist:[{ key, label, test(sng) -> bool }], // intake documents → pipeline state + preparation: { Developing: {track, funding}, Early: {track, funding} }, // the TC / readiness route + signalSources?: [{ pillar, dataset, field, note }], // provenance: where real pillar inputs come from +} +``` + +`test(...)` predicates are tiny and pure. `clearanceBlockers`/`documentaryChecklist` +receive different inputs (`signals` vs the whole `sng`) to match the existing +`scoring.js` call sites — see those functions for the exact shapes returned. + +## How the engine consumes it + +`scoring.js` keeps every previous export and return shape, so `index.html` is +untouched apart from the one extra ` + + + diff --git a/events/2026-06-11-unlock-the-money/justagiraffe/diagrams/5a-integrated-architecture.svg b/events/2026-06-11-unlock-the-money/justagiraffe/diagrams/5a-integrated-architecture.svg new file mode 100644 index 0000000..0be3918 --- /dev/null +++ b/events/2026-06-11-unlock-the-money/justagiraffe/diagrams/5a-integrated-architecture.svg @@ -0,0 +1,66 @@ + +Revised 5a integrated architecture +CityCatalyst as host infrastructure; Project Preparator and City Readiness Navigator as peer modules; the Navigator is a three-step vertical (entity creditworthiness, readiness pathways/coaching, portfolio and pooling); capacity building is a standalone support track; funder pipelines at the bottom. + + + + +Integrated architecture — 5a (City Readiness Navigator) + + +CityCatalyst — host & shared context (infrastructure) +HIAP prioritized actions +GHG inventory · CCRA risk +AI agents · MCP (shared) + + +Project Preparator — module on CityCatalyst + +Project bankability (Tech/Fin/Pol) +→ Concept Note + +Fiscal Data Adapters · CAPAG / SINIM + map +Matching & Pooling — core service + + +Capacity building / PPF +standalone support · entity or project + + +City Readiness Navigator — entity / portfolio (one vertical) + +① Entity creditworthiness +diagnose for chosen instrument + +② Readiness pathways +close the gap · coach to funder reqs +(IDB SFP first) + +③ Portfolio & pooling → submit +pool only if sub-scale +→ dossier + + + + +Funder pipelines +IDB Control Tower · Intake & Triage · Readiness Scoring · M&E & Board +Other funders · BNDES / CCFLA + + + +Concept Note · Path A + +Path B · entity-first + + +not ready → gap + +dossier + + +CityCatalyst (host) +Preparator +Navigator +services / funders + diff --git a/events/2026-06-11-unlock-the-money/justagiraffe/diagrams/README.md b/events/2026-06-11-unlock-the-money/justagiraffe/diagrams/README.md new file mode 100644 index 0000000..80eda4f --- /dev/null +++ b/events/2026-06-11-unlock-the-money/justagiraffe/diagrams/README.md @@ -0,0 +1,16 @@ +# Diagrams — integrated architecture (hack-day visuals) + +Standalone SVGs (open in a browser, screenshot for slides). The mermaid in +[`../INTEGRATED-ARCHITECTURE.md`](../INTEGRATED-ARCHITECTURE.md) §5a is the canonical, +GitHub-rendering source of truth; these are the polished versions for presenting. + +| File | What it shows | Pairs with | +|---|---|---| +| [`5a-integrated-architecture.svg`](5a-integrated-architecture.svg) | Module-boundary view: CityCatalyst host, **Preparator & Navigator as peer modules**, the Navigator's **three-step vertical** (① creditworthiness → ② readiness pathways/coaching → ③ portfolio & pooling), **standalone** capacity building, funder pipelines. | `INTEGRATED-ARCHITECTURE.md` §5a | +| [`process-timeline.svg`](process-timeline.svg) | Pipeline view: the top-to-bottom process (Source → Readiness pathways → Portfolio → Funder intake) with Path A / Path B and the shared-services rail (AI agents, Matching+Pooling, Fiscal adapters). | `ITERATION-2.1-PLAN.md` §F-7, §F-1, §G | + +> The `process-timeline` SVG is a rebuild of a diagram that previously existed only as an +> in-session rendered artifact (never committed) — now persisted so it survives. + +Colors are consistent across both: **CityCatalyst** (purple/indigo) · **Preparator** (blue) · +**Navigator** (teal/green) · **services & funders** (gray). diff --git a/events/2026-06-11-unlock-the-money/justagiraffe/diagrams/process-timeline.svg b/events/2026-06-11-unlock-the-money/justagiraffe/diagrams/process-timeline.svg new file mode 100644 index 0000000..d6a9080 --- /dev/null +++ b/events/2026-06-11-unlock-the-money/justagiraffe/diagrams/process-timeline.svg @@ -0,0 +1,65 @@ + +Process timeline — readiness pipeline and shared services +A top-to-bottom process (Source, Readiness pathways, Portfolio, Funder intake) running through CityCatalyst, the Navigator's readiness pathways with Path A (Preparator) and Path B (entity creditworthiness), portfolio and pooling, and the IDB Control Tower — with AI agents, Matching+Pooling, and Fiscal adapters as shared services on the right. + + + + + +PROCESS +SHARED SERVICES + + + +Source +Readiness pathways +Portfolio +Funder intake + + + +CityCatalyst +GHG inventory · HIAP actions · CCRA risk + + +Readiness pathways +assess, then route → ready · capacity-building · pool +Project bankability · Preparator → Portfolio · Path A +① Entity creditworthiness · CAPAG · SINIM · map · Path B + + +② Portfolio & pooling → submit +pool to reach the instrument's ticket size + + +IDB Control Tower +Intake & Triage · Readiness Scoring · M&E & Board + + + +AI agents +shared context (MCP) + +Matching + Pooling +core service + +Fiscal adapters +CAPAG · SINIM · map + + + + + +dossier + + + + + + + +CityCatalyst +Preparator +Navigator +funders / services + diff --git a/events/2026-06-11-unlock-the-money/justagiraffe/IDB cities regions - Document proposal - Public.pdf b/events/2026-06-11-unlock-the-money/justagiraffe/reference/IDB cities regions - Document proposal - Public.pdf similarity index 100% rename from events/2026-06-11-unlock-the-money/justagiraffe/IDB cities regions - Document proposal - Public.pdf rename to events/2026-06-11-unlock-the-money/justagiraffe/reference/IDB cities regions - Document proposal - Public.pdf diff --git a/events/2026-06-11-unlock-the-money/justagiraffe/idb.txt b/events/2026-06-11-unlock-the-money/justagiraffe/reference/idb.txt similarity index 100% rename from events/2026-06-11-unlock-the-money/justagiraffe/idb.txt rename to events/2026-06-11-unlock-the-money/justagiraffe/reference/idb.txt diff --git a/events/2026-06-11-unlock-the-money/justagiraffe/teammembers.md b/events/2026-06-11-unlock-the-money/justagiraffe/reference/teammembers.md similarity index 100% rename from events/2026-06-11-unlock-the-money/justagiraffe/teammembers.md rename to events/2026-06-11-unlock-the-money/justagiraffe/reference/teammembers.md