Skip to the record
RVB Partners

Public record · current to 08 Oct 2026 · 209 chained entries

Methodology

How every number here is produced. The full version, kept beside the data, is in METHODOLOGY.md.

Where the numbers come from

The daily cycle, and who writes the public files.

Each Alpaca paper account runs a fixed daily cycle:

  1. 1After the close, the desk computes signals and nets them into an order plan.
  2. 2At the next open it submits that plan.
  3. 3After that close it sweeps late fills, marks positions and snapshots account equity.
  4. 4It then archives the session with an internal hash chain.
  5. 5A separate publisher reads that archive and writes the public repository. That publisher never reads the live database.

Which portfolios exist, and how many, is published in index.json.

One portfolio on this site trades the firm’s own capital, on two venues and a calendar of its own. Where its conventions differ from the paper accounts’ (the calendar, the grid the cash line accrues on, and the unit annualised statistics are counted in), they are published with the portfolio: RVB-MAKER-01 (methodology note).

For the paper accounts, each session’s net asset value is the broker’s own account equity taken at the after-close mark. It is not modelled or reconstructed from the desk’s fill records.

What each step writes

  1. 1The order plan, netted from that close’s signals
  2. 2The orders as they were submitted
  3. 3The fills as they came back, the marked positions, the equity snapshot
  4. 4That session’s record, hashed into the chain
  5. 5The public repository, written from the archive alone
Records in the chain
209
Published in CHAIN.jsonl

Returns

How a daily return is defined.

Daily return is NAV today ÷ (NAV yesterday + flow today) − 1, where flow is any declared external capital movement on that date. Returns are time-weighted: a movement of money that is not a trade is excluded from the return and kept in the balance, so the curve measures the return on the capital actually managed rather than on the size of the account.

Capital events are carried in four columns of each portfolio’s nav.csv: equity as reported, flow, adj_factor and equity_adj. A portfolio that has never had a movement has an adj_factor of 1 and identical equity columns. Where a portfolio has had a movement, its page lists each event with its date and amount, and the full evidence sits in the write-once snapshot for that session.

The curve starts at funded capital. The first equity snapshot is taken after the first trading day’s close and already contains that day’s result, so each portfolio is anchored instead to a broker equity reading taken before it traded, with the account funded and fully in cash. That date is the portfolio’s published inception. The anchor is a starting point, not a marked session.

This presentation is GIPS-informed, not GIPS-compliant. Compliance requires third-party verification, which has not been performed.

What nav.csv carries

Columns
equity, flow, adj_factor, equity_adj. The last is the series every published metric is computed on and every curve is drawn from.

Metrics

How they are computed, and when they are published.

Every metric is computed by one function in the firm’s metrics module, with standard definitions. The input is published in full: nav.csv is the entire equity curve, and every figure is published beside the convention and the risk-free rate it used, so any number here can be recomputed independently.

Sharpe, Sortino and Calmar are measured in excess of the risk-free rate: the 3-month Treasury constant-maturity yield, averaged over the window each ratio covers.

Annualised statistics are published once a portfolio has 60 marked sessions. Cumulative return, daily returns and the drawdown path are published from the first session.

Annualised statistics from
60 sessions

The rate behind every ratio

Series
3-month Treasury constant-maturity yield.
Window
Averaged over the window the ratio covers, not today’s print.
Where it is published
Beside every number it produced, in each portfolio’s metrics.json.

Account level and per strategy

Reported figures, and attributed ones.

Account-level figures are exact: broker equity and broker fills. Per-strategy figures are an attributed model: the broker nets the desk’s orders, so each net fill is attributed back to the strategies that contributed to it, pro-rata by requested size.

The per-category contributions in attributed.csv are weighted per-strategy returns, so they do not sum exactly to the account’s daily return. They show where a result came from; the account-level figures are read from the broker and do not depend on them.

Two kinds of figure

Account level
Broker equity and broker fills, as reported.
Per strategy
Each net fill attributed back pro-rata by requested size.

The benchmark

What is drawn beside a portfolio.

The daily benchmark (benchmark.csv) is split- and dividend-adjusted SPY total return, on the same dates as the portfolio. The line on an intraday chart is SPY’s 5-minute price, the last bar at or before each instant, with no dividend adjustment and nothing interpolated between bars. Both are measured from SPY’s level when the account was funded, so every portfolio funded on the same day shows the same SPY line. The two series can differ by a few basis points.

Beside them runs a cash line accrued at the risk-free rate on the portfolio’s own calendar; the rate is published in its metrics.json.

The portfolios carry short positions and several asset classes, so the index is shown for context rather than as a like-for-like comparison.

A portfolio whose benchmark file carries no index data is compared with cash alone, and its chart draws no index line.

The lines beside a portfolio

Daily
benchmark.csv. Split- and dividend-adjusted SPY total return, on the same dates as the portfolio.
Intraday
The last 5-minute price bar at or before each instant. No dividend adjustment, nothing interpolated between bars.
Cash
Accrued at the risk-free rate, on the portfolio’s own calendar.

Costs and fills

How fills are priced, and how research was costed.

A paper account is a real broker account quoting live market prices, and the desk sends it real orders. The broker fills them from its paper simulator rather than routing them to a venue. Each released session publishes the orders as submitted (symbol, side, quantity, filled quantity, average fill price, submission time, status) and the fills as they came back (symbol, quantity, price, timestamp), along with the market data each fill was priced against: IEX (~2-3% of consolidated volume).

Published equity is the broker’s own account equity, so any charge the broker applied is already inside the published curve. The order and fill records carry no separate commission or fee line.

Research is costed differently. Every strategy is measured by one accounting engine that turns target weights into returns, with each charge applied to the weight actually held, the weight decided one bar earlier, including the first move from flat. The charges are a commission in basis points of turnover, declared per strategy; a half-spread on turnover; and borrow on short positions, at an annual rate. Spread and borrow default by asset class, as shown in the margin, and a strategy may override them. Square-root market impact is available but was not applied, as it requires volume data no strategy supplies.

No backtested return series is published on this site. Every curve and figure for a portfolio is computed from that account’s own published record.

Research cost model, defaults

Asset classHalf-spreadBorrow a year
US equities and ETFs2.5 bp50 bp
Crypto8 bp300 bp
Spot FX majors1 bpNone

Borrow accrues on the short leg only. Spot FX financing sits in the swap points rather than in a borrow rate.

Known limits

What to bear in mind when reading the figures.

Simulated fills are priced against the market data feed shown in the margin. A feed covering part of consolidated volume shows fewer quotes, at wider spreads, than the full tape a live order meets, so a simulated fill is not identical to a live one.

Alpaca’s account equity, the published NAV, and its daily portfolio-history series are timed differently and can differ on a given session. Each snapshot publishes both and the difference in basis points.

If a session was not recorded, the series has a gap: nothing is interpolated or carried forward, and the chart line breaks.

Feed behind the fills

Paper accounts
IEX (~2-3% of consolidated volume)

Publication timing

What is released, and when.

Net asset value, daily returns, metrics and benchmarks are published with no lag. Orders, fills and positions are published as soon as the cycle that produced them has executed.

Release follows execution rather than the calendar: the desk stages a plan after the close for the next open, and that plan is published only once it has been sent. A detail file is keyed by the cycle that staged it, so the positions inside it are those held from the following open, and a portfolio page labels them that way.

Release

NAV, returns, metrics, benchmarks
No lag.
Orders, fills, positions
No lag
Condition
A cycle’s detail is released once that cycle has executed.