Skip to main content

DATACLOUD

DataCloud SQL

Read-only SQL over the public HMDA and Ginnie Mae aggregate tables · add-on

Sign in to use DataCloud

Write your own SQL against nine public HMDA and Ginnie Mae aggregate tables — lender-year, lender-state-year, national/state/county markets, Ginnie issuer monthly and speeds, pool monthly, and servicing transfers — and pull the result straight into your model. It is enabled per account on request.

WHAT EACH PLAN CARRIES

AGGREGATE

Company search + profiles (HMDA summary)Market benchmarks (HMDA/Ginnie-derived)Ginnie issuer aggregate view (headline UPB/DQ per issuer)AI assistant surfaces (NL query → terminal, conversational dossier Q&A, platform semantic search) — the FREE HOOK: on for every tier including aggregate/free. NOT a legal gate; gated by budget + grounding in the AI gateway, not by counsel. (intelligence_layer.md §5.3)

SOLO

Vintage/geo/product drill-downs + peer comparison; Market Explorer / Compare tools; full historical depth (all years)Ginnie issuer intelligence detail (roster timeline, portfolio + DQ trends, buyouts)Ginnie pool explorer (ginnie_pool_monthly screens + issuer-to-pool drill-down) — BUILD-READY 2.9; Drill-down surfaceFHA compare-ratio scorecardExports (CSV/XLSX) — capped rows for drill_down, uncapped for loan_level (cap enforced in API, not here)GSE aggregate views (repurchase bps, everD90, credit profile) — ON for drill_down+ per owner directive 2026-07-22 (risk-accepted pending counsel sign-off; licensing caveat surfaced); Drill-down surfaceFair Lending analysis — ON for paid tiers (drill_down+) per OWNER DIRECTIVE 2026-07-24 ('drop the fair lending counsel and just do that'); counsel review waived under owner risk-acceptance. Public HMDA+Census only; every surface carries the 'statistical observation on public data, NOT a legal determination of discrimination' caveat. Free (aggregate) tier stays off — premium analytical feature.Watched-entity alerts + digests (FEAT-074): alert definitions, in-app inbox, alerts-scoped company lists, and Resend digests — first granted at the Solo rung (public HMDA/Ginnie/roster data only). R3-L16-D4: 'watchlists' was REMOVED from this description on 2026-08-03. W36 decoupled the watchlist to the free tier — /api/v1/watchlists calls requireEntitlement(null) (auth only) on GET/POST/DELETE and the landing page, /desk and the capability board all sell it as free — so this flag does NOT gate having a watchlist. It gates the SIZE of one and the alert machinery around it: alerts/limits.ts WATCHLIST_LIMIT is { aggregate: 1, solo: 50, drill_down: 50, loan_level: 250 }, enforced with a 403 LIMIT_EXCEEDED at POST. The stale wording here was faithfully transcribed onto the /alerts upgrade wall, which is why it is fixed at the source and not only in the copy.AI insight narratives (dossier outlier + peer-comparison prose, watchlist briefings, market commentary, anomaly explanation, plain-English alert authoring + smart digests) — paid: gated from drill_down up. NOT a legal gate.Advanced AI tooling (corporate-hierarchy enrichment, pattern-anomaly triage, prompt → target list, similar-entity/pool, prepay-speed + DQ early-warning captions) — paid: gated from drill_down up. NOT a legal gate.AI export generation (auto-generated dossier decks, report-from-prompt) — paid: gated from drill_down up, mirroring the exports ladder. NOT a legal gate.

LOAN-LEVEL

HMDA loan-level explorer — public data, sellable nowGinnie loan-level explorer (latest-month llmon snapshot, ~12.3M loans) — BUILD-READY 2.10; public disclosure data, sellable (unlike gse_loan_level; ToU review 0.3); required-filter no-scan rule enforced in APIGSE loan-level explorer — ON for loan_level tier per owner directive 2026-07-22 (risk-accepted pending counsel sign-off; licensing caveat surfaced); still excluded from API-key scopes (sessionOnly)

RULES

  • One statement per run: a single SELECT, or WITH … SELECT. No semicolons beyond a trailing one.
  • Only the nine tables above, by bare name — no schema qualifiers, no catalog tables.
  • No writes, no DDL, no SQL comments, no server-side functions (pg_sleep, dblink, pg_read_*, …).
  • Rows are capped at 1,000 by default and 5,000 at most; statements are cut off at 8 seconds and 4,000 characters. A capped result says so.
  • Public data only — HMDA (CFPB/FFIEC) and Ginnie Mae disclosure. No account, billing or loan-level personal data is in this schema at all, so no query can reach it.

Readable tables

These nine views are the whole surface — a query may name them, and only them, by their bare name. Everything else in the database is unreachable: the guard rejects schema-qualified references and any table outside this list, and the executor runs each statement in a read-only transaction as a least-privilege role. The same catalog is available as JSON at GET /api/v1/datacloud/catalog.

lender_annual_summarylei × activity_year · 34 columns

Per-lender HMDA annual aggregates: originations, volume, denial rate, purpose mix. Source: HMDA (public, CFPB/FFIEC).

lei, activity_year, respondent_name, total_applications, total_originations, total_purchased, total_denials, total_withdrawn, total_incomplete, total_approved_not_accepted, origination_volume_dollars, avg_loan_amount, median_loan_amount, avg_interest_rate, denial_rate, approval_rate, conventional_count, fha_count, va_count, usda_count, purchase_count, refinance_count, cashout_refi_count, home_improvement_count, first_lien_count, states_active, msas_active, sold_to_fannie, sold_to_ginnie, sold_to_freddie, agency_code, other_lender_code, parent_name, top_holder_name

lender_state_yearlei × state_code × activity_year · 9 columns

Per-lender state footprint: origination count/volume + applications by state and year. Source: HMDA (public, CFPB/FFIEC).

lei, activity_year, state_code, application_count, origination_count, denial_count, origination_volume_dollars, purchase_count, refinance_count

market_state_yearstate_code × activity_year · 18 columns

State-level HMDA market benchmarks: volume, originations, denial rate by year. Source: HMDA (public, CFPB/FFIEC).

activity_year, state_code, lender_count, total_applications, total_originations, total_purchased, total_denials, denial_rate, origination_volume_dollars, median_loan_amount, avg_interest_rate, purchase_count, refinance_count, cashout_refi_count, conventional_count, fha_count, va_count, usda_count

market_national_yearactivity_year · 19 columns

National HMDA market benchmarks by year. Source: HMDA (public, CFPB/FFIEC).

activity_year, lar_record_count, lender_count, total_applications, total_originations, total_purchased, total_denials, denial_rate, origination_volume_dollars, median_loan_amount, avg_interest_rate, purchase_count, refinance_count, cashout_refi_count, conventional_count, fha_count, va_count, usda_count, first_lien_origination_volume_dollars

market_county_yearcounty_fips × activity_year · 13 columns

County-level HMDA market aggregates by year. Source: HMDA (public, CFPB/FFIEC).

activity_year, county_fips, state_code, total_applications, total_originations, total_denials, denial_rate, origination_volume_dollars, purchase_count, refinance_count, lender_count, hhi, top5_share

ginnie_issuer_monthlyissuer_id × report_period · 24 columns

Ginnie Mae issuer monthly headline: active UPB, loan counts, delinquency buckets. Source: Ginnie Mae disclosure (public).

issuer_id, report_period, program, loan_count, active_loan_count, upb_known, upb_est, upb_missing_loans, dq30, dq60, dq90p, dq30_rate, dq60_rate, dq90p_rate, wac, avg_age, wa_age, liq_payoff_count, liq_buyout_count, liq_foreclosure_count, liq_lossmit_count, liq_substitution_count, liq_other_count, liq_upb_known

ginnie_issuer_speedsissuer_id × report_period · 30 columns

Ginnie issuer prepayment speeds (CPR) and gross/voluntary/involuntary decomposition. Source: Ginnie Mae disclosure (public).

issuer_id, report_period, beginning_upb, beginning_loan_count, scheduled_principal, payoff_upb, payoff_count, buyout_upb, buyout_count, default_upb, default_count, other_upb, other_count, smm, cpr, cbr, cpr_3m, cpr_6m, cpr_12m, cbr_3m, cbr_6m, cbr_12m, wac, wala, cohort_bucket, cohort_n, z_cpr, z_cpr_3m, z_cbr, z_cbr_3m

ginnie_pool_monthlycusip × report_period · 31 columns

Ginnie pool monthly factors, WAC/WAM, and speed inputs (large — always filter/limit). Source: Ginnie Mae disclosure (public).

report_period, cusip, pool_id, issuer_id, multi_issuer, pool_indicator, pool_type, issue_date, maturity_date, coupon, original_aggregate_amount, rpb, rpb_factor, pool_upb, loan_count, wac, wala, wam, wa_original_loan_term, wa_ltv, wa_credit_score, wa_dti, wac_at_issuance, active_loan_count, dq30, dq60, dq90p, liq_payoff_count, liq_buyout_count, smm_approx, cpr_approx

ginnie_servicing_transferstransfer event · 10 columns

Ginnie servicing-transfer events between issuers. Source: Ginnie Mae disclosure (public).

report_period, prev_period, cusip, pool_id, from_issuer, to_issuer, pool_type, coupon, pool_upb, loan_count

Prefer to drive it from your own code? The same surface is a JSON API — POST /api/v1/datacloud/query with an API key. See plans and add-ons.