RMFU Desk

Insights

Research for people who run research

Long-form notes on reproducibility, brief discipline, scenario libraries, liquidity ladders, data lineage, MNPI, export controls, vendor SLAs, desk mergers, AI-aided workflow, and public vs tenant surfaces— the kind of operational depth you expect from a professional desk vendor, not a landing-page blurb.

15 research notes 15 topic lenses

  • AI & workflow
  • Change management
  • Compliance & MNPI
  • Compliance & export
  • Compliance & records
  • Data & lineage
  • Investor relations
  • M&A & integration
  • Macro & markets
  • Platform & security
  • Portfolio & liquidity
  • Research operations
  • Research quality
  • Risk & scenarios
  • Vendor management

Latest notes

Each piece includes operator toolkits and links to public desk routes. Sorted newest first. For composite deployment stories, see case studies.

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)