Ask the data

Plain-English questions, answered from the same database the dashboards read
model: claude-opus-5
Read-only. The model writes one SQL query, it runs inside a read-only transaction, and the answer is written from the rows that came back — both are shown. Figures as of 2026-09-05.
Show me residents with balances over 90 days.
One resident has a balance aged over 90 days: Susan Medina, unit 7207 at Palmetto Crossing (property 1020), as of 2026-08-31. Her 90+ day bucket is $2,628.66, plus $1,765.00 in each of the 61–90, 31–60, and 0–30 day buckets, for an unpaid total of $7,923.66. No prepayments, so the net balance is also $7,923.66.
Query and result — 1 row
SELECT p.code AS property_code,
       p.name AS property_name,
       a.resident_name,
       a.unit_no,
       a.as_of,
       a.b90p AS over_90_days,
       a.b61_90,
       a.b31_60,
       a.b0_30,
       a.unpaid_total,
       a.prepays,
       a.balance
FROM v_ar_open a
JOIN property p ON p.id = a.property_id
WHERE a.b90p > 0
ORDER BY a.b90p DESC, p.code, a.unit_no
LIMIT 400
[
 {
  "property_code": "1020",
  "property_name": "Palmetto Crossing",
  "resident_name": "Susan Medina",
  "unit_no": "7207",
  "as_of": "2026-08-31",
  "over_90_days": 2628.66,
  "b61_90": 1765,
  "b31_60": 1765,
  "b0_30": 1765,
  "unpaid_total": 7923.66,
  "prepays": 0,
  "balance": 7923.66
 }
]

Try one of these

each runs one query