Skip to content

v0.7.2

Latest

Choose a tag to compare

@ptu-gh ptu-gh released this 30 Oct 10:31
· 11 commits to main since this release

v0.7.2 ties up the loose ends of v0.7 and polishes the surface. Cash
accounts read the rates the banks state. Private-market quarterly
reports feed the exposure look-through. The Income dashboard counts
every income line, and every dashboard's pickers reach every card they
can. The MCP tools and the agent skill say less and answer in one
call. Logs carry no identifiers.

Upgrading

  1. make all. Gold migrations 0159 to 0171 apply on the first
    read-write open.
  2. schwab-web load, firstcitizens load, ubs-web load: each
    re-reads what it already kept. UBS's own rates need one ubs-web download --only rates (a live session).
  3. wealthdb reload schwab fidelity svb ubs firstcitizens, plus each
    Plaid source.
  4. wealthdb web refresh, wealthdb mcp restart.
  5. make demo, make demo-web.

Breaking

  • Dashboards need gold schema 0171.
  • yield.withholding: a country may name accounts (source, account
    id, rate); account wins over wrapper over default. A bad value
    names its place.
  • account_overrides takes account_kind and tax_wrapper_from.
  • A schwab source may name schwab-web alone; accounts are then
    keyed by full number.
  • Collectors state a cash rate under the canonical keys
    interest_rate, interest_tiers, interest_valid_from,
    interest_side, interest_conditions.
  • Columns: fund_compositions.origin, .valid_until,
    fund_lines.region, report_cashflow_plan.silver_source_id,
    .account_external_id; web_gains reads a missing class as
    unknown; serving_cash_history keeps each account's cash per day
    and currency.
  • Income cards renamed: "Income in the window", "Income received",
    "Income expected", "Monthly average income"; the twin's yield figure
    is "Holdings' income yield". Old names retire at the next provision.
  • A missing or broken --env-file stops a collector run; viac exits 1.
  • First Citizens login --check signs in: ask first.
  • Playwright 1.64.1 (Chromium 156); make update moves the pin, the
    pip pins and the user agents together.
  • A Metabase bump sets MB_SHA256 in web/Dockerfile.

Yield

  • Stated cash rates on the balance: Schwab's sweep, First Citizens'
    statement-day rate, Fidelity's core-fund SEC yield, UBS's credit
    conditions with tiers. A later-dated rate leaves the one in force.
  • A card account takes no rate; a liability's rate stays in its terms.
  • A per-account withholding rate for a holder whose treaty status
    differs from the wrapper's.
  • Yield inputs read a fund once per instant, not per currency; DV01
    sums in a fixed order. The yield pass is about a tenth faster.

Exposure

  • ubs-web parses each private-markets quarterly report. A reconciled
    report is the fund's region split and its composition until the next
    report; before the first, and in an unreconciled quarter, the
    declaration applies. A ledger record of the same or a later day wins;
    the legal situs follows the same precedence.
  • Weights above 100 read the excess as cash in the fund's currency,
    like a leveraged proxy's leg.
  • The situs reads a private holding's declared country on every day no
    composition of its own is in force.
  • Exposure ranks every security the look-through reaches in "Top
    securities".

Income, spending, cash flow

  • A reimbursement nets against the spending it repays: a reimburse
    ledger line, else the latest outflow to the payee within a year, else
    the payee's merchant category. One no road links leaves both bases.
  • A deposit on a private-market custody account is capital going in.
  • Cross-currency own-account moves pair when a narrative names the
    other account and the amounts agree at the day's rate within 1%.
  • Corporate-action cash carries its stated sign at Fidelity, SVB and
    Schwab.
  • Fidelity: a tax payment is a withdrawal, a tax-prep fee a fee.
  • A deposit stated as a holding reads at its balance in the memo and
    the coverage report.
  • reload -a carries the cash-flow boundary across the rebuild.
  • SVB's month-end workbook reaches returns stated as stated periods.
  • Plaid: a loosely typed municipal bond reads as a bond; an investment
    account with no holding counts at its balance.

Dashboards

  • Income counts every income line unless the Type picker leaves it
    out, under a new Tax wrapper picker; the expected half adds the cash
    flow projection's run-rate for what the holdings do not pay; income
    after withholding is every line less the tax.
  • Gains takes an Asset class picker; unclassed sales count under
    unknown, so the classes add up.
  • Wealth Overview: the headline figures read the latest snapshot
    whatever the Time range; a click on the asset class mix opens
    Allocation at that day.
  • Allocation counts cash as a position in every breakdown: the
    currency card includes each cash balance in its own currency, and
    Top 100 positions lists each account's cash as Cash <CCY>.
  • Allocation reads a day after the history as its last day.
  • Every card description is one sentence, at most one caveat, and
    names the pickers that do not reach it.

Collectors and tooling

  • Logs show an id's last four, no cookie, no raw browser error.
  • prune keeps a run folder with no status.
  • ubs-web reads interest conditions from what the browser renders,
    under a route guard; a details redirect is checked against the
    allow-list.
  • One run-selection helper for the loaders; one bad folder no longer
    aborts an equityzen load.
  • make lint follows the ruff pin; make update stops on a pip error;
    make test writes nothing into the data root; images carry no tests.
  • MCP returns view=stated sorts by value.
  • One legal-form list for the exposure matcher, the bond reader and the
    spending fence.
  • The MCP tool texts are an eighth shorter and name their columns;
    the instructions say one call answers, no re-run to confirm, no
    hand totals over a calendar or transactions view.
  • The wealthdb-ro skill is a third shorter.

Docs

  • Plan notes read as present limits; the custody kind, what
    report_yield_received holds and the override ledger match the
    code; exposure precedence is stated once (EXPOSURE.md §9).