Skip to content

Feature: lookthrough-concentration skill — single-name exposure through funds, aggregated across accounts #366

Description

@sbhavani

Summary

New skill lookthrough-concentration: computes true single-name exposure by looking through funds (ETFs, TDFs, index funds) and aggregating the same company across accounts, share classes, and listings. It produces the number a concentration policy is actually enforced against: lookthrough exposure ÷ total book.

Gap

No current vertical computes name-level exposure through funds. The canonical advisor case: employer stock held directly + ESPP/RSU lots + a broad index fund + a target-date fund — every account-level view says "diversified," while the household owns one company four ways. Rebalance review is blind to this.

What the skill does

  • Aggregates by company, not ticker (share classes like GOOG/GOOGL; cross-venue pairs like SAP vs SAP.DE), aliases resolved on both sides so drill-downs match the aggregate
  • Country-guards aliases (ROG in a US fund is Rogers Corp, not Roche); ambiguous tickers stay un-merged
  • Normalizes provider weights summing >100%; attributes <100% remainders instead of dropping them
  • Uses lookthrough ÷ total book as the cap metric with explicit denominators; flag-vs-gate semantics — an over-benchmark weight points at the name-level breach, never auto-recommends selling a sector or fund
  • Per-name drill-down by channel with synthetic shares (position qty × holding weight)

Plus portability guardrails: holdings-file staleness stamps, one-level-only expansion for fund-of-funds, non-equity sleeves excluded from the equity view.

Provenance / fit

Distilled from a production family-office portfolio system I run — method and failure modes only, provider-neutral, markdown-only, styled after thesis-tracker. A complete SKILL.md is drafted and ready. Fits plugins/vertical-plugins/financial-analysis/skills/ (shared core) or the advisors vertical alongside rebalance review.

Next step

Repo forked (sbhavani/financial-services). Happy to open the PR once placement is confirmed — or iterate on scope here first.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions