Flowty loan data is ingested directly from Flow mainnet chain events emitted by the Flowty contract at A.5c57f79c6694797f.Flowty. Each loan begins life as a LoanListed event and progresses through LoanFunded, LoanRepaid, LoanSettled, or LoanCancelled events. We materialize one row per loan in flowty_loans, plus a chronological audit trail in flowty_loan_events. Aggregate metrics are computed by canonical Postgres RPCs — flowty_analytics_summary, flowty_analytics_timeseries, flowty_analytics_leaderboard, flowty_analytics_new_wallets, flowty_analytics_cohorts, flowty_analytics_limbo_summary, flowty_analytics_wallet_detail, and flowty_analytics_wallet_directory — backed by three views (flowty_funded_loans, flowty_limbo_loans, flowty_open_listings) so every chart and KPI in the dashboard agrees on a single source of truth. The analytics surface now includes a Sales section as a sibling — see /analytics/methodology/sales for the parallel sales pipeline.
Coverage starts at approximately Dec 29 2025, when the Flow exploit recovery spork created the earliest accessible blocks for the rebuilt Flowty contract. Pre-Dec 28 2025 history lives in pre-spork blocks and would require a custom spork-proxy backfill (planned as V2). "Pre-window loan closures" represent loans whose origination events predate our scan window — we only see their terminal events: repaid, settled, or canceled. The official Flowty Limbo Loan repayment grace period (Jan 30 – Feb 13 2026) accounts for 348 of the 1,679 pre-window terminations: 118 settlements (the actual platform-recovery number) plus 230 grace-period repayments. The rest were normal repayments during the settlement-pause window (1,127 in the pre-reopen period) or post-grace tails. 98% of pre-window activity is concentrated in 3 power-user wallets, so the cohort isn't broadly representative — it's a power-user story, not a community recovery.
principal_usd is normalized only for stablecoin loans (USDCf, USDC, FUSD, TUSDT and Dapper's dollar token, all 1:1 with USD). The 2 FLOW-denominated loans currently in our data are excluded from USD aggregates pending oracle integration. Avg APR is annualized as term_rate × (365 / term_days), not the raw rate-over-term — a 23% rate on a 77-day loan is ~110% APR, which is the more honest comparison metric. The dashboard shows both. Default rate is calculated as settled / (repaid + settled), excluding active and listed loans (they haven't had the chance to settle yet). Lifetime is currently around 4.6%; the L30 window typically reads 0% because most recent loans are still active.
lender_at_settlement tracks position transfers via HybridCustody (mostly main-wallet → child-wallet patterns) and currently flags about 23 loans, but is not surfaced in the dashboard. New-wallet acquisition compares the address sets per role per period — a wallet is counted as new in a window if its earliest funded_at across the entire history falls inside that window. Cohorts are monthly and assigned by earliest activity month; cohort cells show the % of that cohort active in month N (not strict retention — wallets can come back after a gap). Cohorts switched from quarterly to monthly because our backfill window is only ~120 days, which would otherwise collapse all activity into a single quarterly bucket.