RMFU Desk

Workflow · not a task manager

The loop serious funds rehearse

No infinite checklist — four phases with clear hand-offs. RMFU holds the spine; your process owns the deadlines.

01 · Anchor

Brief + pulse

What matters before models spin. Same surface for PM, risk, and sector — atlas.

  • Time-box the read
  • One escalation path if data is stale
02 · Sharpen

Library + drills

Language everyone retrieves under stress — library + drills.

  • Tag discipline
  • Spaced reps weekly, not hero sessions
03 · Stress

Risk + macro

Scenarios at thesis breakpoints — risk, macro.

  • Name the break
  • Record assumptions next to outputs
04 · Ship

Decide + export

Evidence leaves the desk with trace — what you believed, when, and why it still holds.

  • PDFs are snapshots
  • Desk remains source of truth

Who owns what

PM anchors narrative and thesis versions. Risk owns scenario libraries and breach language. Sector owns library taxonomy for their vertical. If those three names are not on the wiki, the loop will not survive the first busy week.

Guides · Tour · Sign in

Three-minute mental model

RMFU is one surface for reading (brief + pulse), remembering (library + drills), and stress-testing (risk, macro, scenarios). Sign in to reach your tenant desk; this public site is the story, not the datastore.

Open the full guided tour → (recommended instead of this short blurb).

Use Open desk when you already have access — you will authenticate at the gate like any other protected route.

Sign in

Live calculators vs. marketing

After sign-in, /tools hosts shareable one-page calculators (NPV, payback, Kelly, and more). This public tools hub explains what exists for crawlers and prospects.

Open desk

Why drills matter

Bookmarks decay. RMFU uses short, spaced repetitions so vocabulary and frameworks stay retrievable when you are in front of a committee or a live tape — not only when you are reading alone.

Nudge inputs

Edit fields, then Apply & refresh (or use on the card). Same payload as the public demo API.

Last response JSON

app/engines/tools/service.py

Leading lines of the real module (marketing excerpt).

"""Operator pocket tools — small pure functions used by /tools.

Each function returns a dict with the inputs echoed back, the result, and a
short interpretation sentence (in casual exec tone).
"""
from __future__ import annotations

from dataclasses import dataclass
import math
from typing import Iterable


# -------- IRR / NPV ---------------------------------------------------------

def npv(rate: float, cashflows: list[float]) -> float:
    return sum(cf / ((1 + rate) ** t) for t, cf in enumerate(cashflows))


def npv_rate_sensitivity(rate: float, cashflows: list[float], bump: float = 0.01) -> dict:
    """±bump hurdle NPV and approximate $ / 1% change in NPV (last period scale)."""
    base = npv(rate, cashflows)
    up = npv(rate + bump, cashflows)