Help · Concept

Model versions: an allocation with a history

From RangefinderInvest's built-in help · applies to version 0.49.3

A target model isn't a single set of weights. It is a series of dated versions, each effective from its date until the next one. The version effective today is the latest one on or before today, and it is the dated allocation the app treats as in force.

Versions exist so a model can change honestly. When you shift from 70/30 to 60/40, add a new version instead of editing the old one. The Model Backtest replays the whole series, switching weights on each effective date.

The version pull-down

In a model's builder, the header's middle zone is one control naming the version your edits save into: its date, its label if it has one, and what it is.

  • ✓ Effective today: the one your assigned accounts are following now.
  • Scheduled: starts on date; not in force yet.
  • Historical (read-only): a past version that is no longer in force.
  • Historical (correcting): a past version you have deliberately unlocked.

Open it and the model's whole history is a list, newest first: scheduled versions, then the one in force, then a History divider and every past version. Each row states its own timing in words, and the check marks the version you are editing, not the effective one. After you pick a historical row the check moves with you. Picking a row is how you change which version you are editing, and this control is the only place that choice is made. It does not change which version is effective: choosing a historical or scheduled version to edit leaves today's in force, and the builder says so.

With unsaved changes, switching versions asks first, in the same bar that is counting them.

A past version opens read-only

Selecting a historical version opens the builder read-only: percentages, tickers, Add fund, Add slice and saving all refuse. Nothing is hidden. The whole point of opening a past version is to read it, and Details… still shows a slice's category and reference symbol.

The reason is on screen: editing this rewrites what backtests replay. Those weights are what the Model Backtest uses from that version's date forward, so changing them changes recorded history rather than recording a change.

If correcting a typo in a weight you entered last year is genuinely what you want, Correct this version unlocks that one version. The notice switches from explaining the lock to stating the consequence, and the control stops calling itself read-only and starts calling itself correcting. The unlock lasts as long as you stay on that version; selecting another one and coming back locks it again.

Scheduled versions open editable straight away: they haven't happened, so there is nothing to rewrite. The effective version is always editable.

Adding a version

+ Add version, beside the pull-down, asks two things:

  • Start from. Copy, the default, carries over the most recent version's slices and funds and says how many before you commit, so a new version is an edit rather than a rebuild. Start blank gives an empty allocation.
  • Effective date. Today by default; a future date is perfectly legal.

The new version becomes the one you are editing, with a clean draft.

Practical notes

  • A future-dated version is legal: the effective version stays in force until the scheduled date arrives.
  • If a model has only future-dated versions, there is no version in force. The builder can show the first scheduled allocation so the model is not blank, but labels it scheduled rather than effective.
  • The beside the pull-down carries Edit date and label, including its notes, and Delete version, both acting on the version currently shown.
  • Deleting a version deletes its slices; other versions are untouched. Every model keeps at least one version.
  • Versions accumulate: a quarterly cadence reaches eight inside two years, and a decade of them is forty. They all live in the pull-down, which scrolls; the page never widens to hold them.

If you only ever want "the latest", one version is fine. The series only matters when the allocation changes.