Oracle3
Oracle3: 예측시장 거래 엔진·MCP 서버
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Drop your rent roll. See the rent you're leaving on the table — HUD FMR + Zillow ZORI benchmarks, lease timing, renewal letters. VentureFix 2026.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Drop your rent roll. Five seconds later: how much rent you're under the HUD benchmark, which leases end in the wrong month, and the renewal letters — written.
Built solo by Rishik Rontala for VentureFix 2026 (Venture Build track). Live: https://leaseleak.vercel.app/ (mirror: https://rishikrrontala-bot.github.io/leaseleak/)README 전문 보기 ↗Drop your rent roll. Five seconds later: how much rent you're under the HUD benchmark, which leases end in the wrong month, and the renewal letters — written.
Built solo by Rishik Rontala for VentureFix 2026 (Venture Build track). Live: https://leaseleak.vercel.app/ (mirror: https://rishikrrontala-bot.github.io/leaseleak/)
gap = max(0, SAFMR − rent) × 12, summed across the portfolio. FMR is the 40th percentile of local gross rents, so the number is a conservative floor.timing = rent × (idx_peak ÷ idx_lease_end − 1) × 12. The renewal term (6–18 months) is chosen so the next lease ends at the seasonal peak.new rent = min(SAFMR, rent × (1 + cap)), the term, notice language. Download all as PDF.value = Σ gap ÷ cap rate. On the sample portfolio $29,280/yr is ~$488,000 of value at a 6% cap. Cap rate is adjustable (4–10%).FMR × 90–110%, set per housing authority) would earn max(0, standard − rent) × 12 more from a voucher household — a way to close the gap at turnover without raising rent on a sitting tenant.gap ÷ gross rent (A < 2%, B < 5%, C < 9%, D < 14%), sorted worst-first with $/door and a one-line diagnosis.$95 / 120 / 150 / 180 / 210) before comparing.increase × 12; leave = (benchmark − rent) × 12 − (rent × months vacant + make-ready); expected gain at an adjustable leave rate, payback months per unit, and the break-even leave rate.Everything runs in the browser. No upload, no account.
Every dollar figure on the page is computed in the browser by a deterministic engine from public data. The model does two things code can't:
POST /api/plan sends the engine's full output (unit figures only — tenant names are stripped client-side) to Gemini with a JSON schema and gets back a headline, 3–5 prioritised actions with the units and figures behind each, a "skip" list, and one caution. POST /api/ask answers free-text questions the same way. The prompt forbids new numbers; a client-side check (verify() in src/lib/ai.ts) then extracts every $/%/month figure from the reply and matches it against the engine's numbers, so the UI can say "23 of 24 figures trace to the engine" and flag the one that doesn't.POST /api/map maps headers to the schema from six sample rows. Missing ZIPs are looked up from street addresses with the U.S. Census geocoder (exact, keyless); only addresses it can't match go to the model, and those are marked "?" in the UI.The key lives in a Vercel function (api/_gemini.ts): origin allow-list, per-IP rate limit, 200 KB body cap, retries on 429/503, model gemini-3.6-flash with a small thinking budget for the plan and none for the fast paths. The GitHub Pages mirror calls the same functions cross-origin.
npm install
npm run dev
public/data/safmr.json and public/data/zori.json are built from the raw HUD and Zillow files with scripts/build-data.py.
public/photos/ATTRIBUTION.md.Not legal or financial advice. Check your state's notice and rent-increase rules before sending letters.