---
title: "Overlap of funds, computed"
method: GET
path: "/overlap"
---

# Overlap of funds, computed

`GET /overlap`

## Request

- Base URL: `https://tickerinside.com/api/v1`
- URL: `https://tickerinside.com/api/v1/overlap`
- Auth: none required

Two funds give the pair answer of the MCP tool compare_etfs (kind pair), three or more the ranked pairs of get_etf_overlap_matrix (kind matrix). 2 to 10 funds. The files read weigh at most 64 KB for two funds and 58 KB for three or more, a file of the other layers a third of its size, and the pairs compare at most 2,600 holdings, each pair the holdings of the fund that holds fewer.

## Query parameters

- `funds` string, required
- `format` 'json' | 'csv'

## Response `200`

The answer, computed when asked and kept in the edge cache for up to a day. The example is a real answer, shortened.

- union
  - OverlapPair
    - `kind` 'pair', required: pair for two funds, matrix for three or more: which of the two shapes the answer has.
    - `page_url` string, nullable: The web page whose HTML, as the server sends it, prints the answer's figure, so that it reads without JavaScript: for a pair, its written comparison when there is one, else its "Does it diversify me?" answer within that answer's limits; for three funds or more, the x-ray the site wrote of the same funds; for a look-through, the x-ray the site wrote of the portfolio at the same weights (listed under pages in /og/answers.json), or for one fund, its page. Null where no page prints the figure yet: any other overlap of three funds or more or look-through of two funds or more, a pair past those limits, a pair of bond funds.
    - `share_url` string: The address whose HTML reproduces the whole answer on the site: for a pair, its "Does it diversify me?" answer within that answer's limits; for three funds or more and for a portfolio, the x-ray the site wrote of the same funds (listed under pages in /og/answers.json), each weight in percent to 0.01 point and never an amount, in the order of the funds the site wrote it in. Absent where no page prints the answer.
    - `pair` string[], required: The two funds, upper case, in the order asked.
    - `prices_as_of` string, nullable: The price date of the figures read from weekly returns. Null when no fund has prices.
    - `holdings_as_of` object, required: Each fund's holdings date, by ticker: the date of its issuer file, or the quarter end its SEC filing describes.
    - `holdings_source` object, required: Each fund's source, by ticker: issuer file, SEC Form N-PORT, trust's own SEC filing, sponsor's own holdings file, or prospectus, no holdings yet.
    - `overlap` object: For two funds holding shares, in percent: by_weight, the sum over the companies both hold of the smaller of their two weights; share_of_a and share_of_b, the part of each fund in companies the other holds too; companies_in_both, the holdings both have, counted by ticker (GOOGL and GOOG count as two), positions_a and positions_b; and largest_shared, the 15 largest shared holdings with each weight and the smaller one counted. A ticker the two hold for two different companies is left out of every figure and listed in same_ticker_two_companies, with same_ticker_note.
      - `by_weight` number, nullable, required
      - `share_of_a` number, nullable, required
      - `share_of_b` number, nullable, required
      - `companies_in_both` integer, nullable, required
      - `positions_a` integer, nullable
      - `positions_b` integer, nullable
      - `largest_shared` object[], required
        - `ticker` string
        - `in_a` number, nullable
        - `in_b` number, nullable
        - `counted` number, nullable
      - `same_ticker_two_companies` string[]
      - `same_ticker_note` string
    - `overlap_kind` 'issuer': issuer when the figures are an overlap by issuer, of fixed income funds. Absent otherwise.
    - `issuer_overlap` object: For two fixed income funds: the overlap by issuer, the smaller weight of each issuer both hold summed (by_weight), the share of each, issuers_in_both, the issuers compared and the largest shared and unshared ones. Never mixed with the overlap by shares.
      - `by_weight` number, nullable, required
      - `share_of_a` number, nullable
      - `share_of_b` number, nullable
      - `issuers_in_both` integer, nullable, required
      - `issuers_compared` object
      - `weight_compared_pct` object
      - `top_shared_issuers` object[]
      - `largest_only_in_a` object[]
      - `largest_only_in_b` object[]
    - `correlation_3y` number, nullable: The correlation of the two funds' weekly returns over up to three years, on the weeks both have. Null under 52 such weeks.
    - `covariance_annualised_pct2` number, nullable: The annualised covariance of the same returns, in percent squared. Null with correlation_3y.
    - `weeks_used` integer, nullable: How many weeks the two figures above read. Null when they are.
    - `funds` object: Each fund by ticker: name, expense_ratio_pct, return_3y_pct, volatility_pct, worst_fall_3y_pct, beta_vs_sp500 (three years, from its file), beta_vs_sp500_1y (the last 52 weeks against SPY's) and positions; a fixed income fund's average coupon, maturity and duration. Null where the data has no figure.
    - `how_to_quote` string: How to quote the figures: which measure, with the holdings dates.
    - `covered` boolean: true when the funds are covered but the answer has no figures (see comparable or computed).
    - `comparable` boolean: false when a fund of the two holds no shares that can be overlapped (see not_comparable). Absent when the figures are given.
    - `not_comparable` object[]: The funds set aside, each with why and the address of its file (fund_file): a leveraged, inverse or other derivative-based fund, a trust or pool, a multi-asset, sponsor-file or prospectus-only fund, or a bond fund beside a stock fund.
      - `ticker` string, required
      - `why` string, required
      - `fund_file` string
    - `renamed` object: Each ticker asked that a fund had before it was renamed, with its ticker now, under which the answer reads and names it. Absent when there is none.
    - `source` object, required: The files the answer is computed from: each fund's page_url, null without a page, api_url, holdings_source and, for a fund from a filing, filing_url; benchmark_url, SPY's file, when a one-year beta is computed; license; and cite_as, the line to print under a figure.
      - `provider` string, required
      - `license` string, required
      - `cite_as` string, required
      - `benchmark_url` string
      - `links` object[], required
        - `ticker` string, required
        - `page_url` string, nullable, required
        - `api_url` string, required
        - `holdings_source` string, required
        - `filing_url` string
        - `sponsor_page` string
    - `note` string, required: Measurement, not investment advice.
    - `license` string, required: The licence the data is published under.
    - `attribution` string, required: How to credit the data: a link to the page of a fund the figure comes from, or to this address, where the medium allows one, the name where it does not.
    - `docs` string, required: The reference of this endpoint.
  - OverlapMatrix
    - `kind` 'matrix', required: pair for two funds, matrix for three or more: which of the two shapes the answer has.
    - `page_url` string, nullable: The web page whose HTML, as the server sends it, prints the answer's figure, so that it reads without JavaScript: for a pair, its written comparison when there is one, else its "Does it diversify me?" answer within that answer's limits; for three funds or more, the x-ray the site wrote of the same funds; for a look-through, the x-ray the site wrote of the portfolio at the same weights (listed under pages in /og/answers.json), or for one fund, its page. Null where no page prints the figure yet: any other overlap of three funds or more or look-through of two funds or more, a pair past those limits, a pair of bond funds.
    - `share_url` string: The address whose HTML reproduces the whole answer on the site: for a pair, its "Does it diversify me?" answer within that answer's limits; for three funds or more and for a portfolio, the x-ray the site wrote of the same funds (listed under pages in /og/answers.json), each weight in percent to 0.01 point and never an amount, in the order of the funds the site wrote it in. Absent where no page prints the answer.
    - `covered` boolean: true when the funds are covered but the answer has no figures (see comparable or computed).
    - `computed` boolean: false when fewer than two of the funds hold shares that can be overlapped (see reason).
    - `reason` string: Why nothing is computed, when computed is false.
    - `overlap_kind` 'issuer': issuer when the figures are an overlap by issuer, of fixed income funds. Absent otherwise.
    - `prices_as_of` string, nullable: The price date of the figures read from weekly returns. Null when no fund has prices.
    - `holdings_as_of` object: Each fund's holdings date, by ticker: the date of its issuer file, or the quarter end its SEC filing describes.
    - `holdings_source` object: Each fund's source, by ticker: issuer file, SEC Form N-PORT, trust's own SEC filing, sponsor's own holdings file, or prospectus, no holdings yet.
    - `skipped` object: The tickers not covered, under not_covered, with what is covered (covered_issuers, also_covered and hint). Absent when every ticker is covered.
      - `covered` boolean
      - `not_covered` string[], required
      - `covered_issuers` string[]
      - `also_covered` string
      - `hint` string
    - `not_comparable` object[]: The funds set aside, each with why and the address of its file (fund_file): a leveraged, inverse or other derivative-based fund, a trust or pool, a multi-asset, sponsor-file or prospectus-only fund, or a bond fund beside a stock fund.
      - `ticker` string, required
      - `why` string, required
      - `fund_file` string
    - `pairs` object[]: Every pair of the funds holding shares, the largest overlap by weight first: pair, by_weight, share_of_first, share_of_second and companies_in_both, as overlap gives them for two funds, and same_ticker_two_companies when a ticker stands for two companies.
      - `pair` string[], required
      - `by_weight` number, nullable, required
      - `share_of_first` number, nullable
      - `share_of_second` number, nullable
      - `companies_in_both` integer, nullable
      - `issuers_in_both` integer, nullable
      - `same_ticker_two_companies` string[]
    - `same_ticker_note` string: What same_ticker_two_companies means, when a pair has it.
    - `issuer_overlap_pairs` object[]: Every pair of the fixed income funds by issuer overlap, largest first: pair, by_weight, share_of_first, share_of_second, issuers_in_both. Never mixed with pairs.
      - `pair` string[], required
      - `by_weight` number, nullable, required
      - `share_of_first` number, nullable
      - `share_of_second` number, nullable
      - `companies_in_both` integer, nullable
      - `issuers_in_both` integer, nullable
      - `same_ticker_two_companies` string[]
    - `issuer_overlap_note` string: How to read issuer_overlap_pairs, when there are some.
    - `how_to_quote` string: How to quote the figures: which measure, with the holdings dates.
    - `renamed` object: Each ticker asked that a fund had before it was renamed, with its ticker now, under which the answer reads and names it. Absent when there is none.
    - `source` object: The files the answer is computed from: each fund's page_url, null without a page, api_url, holdings_source and, for a fund from a filing, filing_url; benchmark_url, SPY's file, when a one-year beta is computed; license; and cite_as, the line to print under a figure.
      - `provider` string, required
      - `license` string, required
      - `cite_as` string, required
      - `benchmark_url` string
      - `links` object[], required
        - `ticker` string, required
        - `page_url` string, nullable, required
        - `api_url` string, required
        - `holdings_source` string, required
        - `filing_url` string
        - `sponsor_page` string
    - `note` string, required: Measurement, not investment advice.
    - `license` string, required: The licence the data is published under.
    - `attribution` string, required: How to credit the data: a link to the page of a fund the figure comes from, or to this address, where the medium allows one, the name where it does not.
    - `docs` string, required: The reference of this endpoint.

## Other responses

- `304`: Not modified: the ETag of your copy, sent in If-None-Match, is still current.
- `400`: The query was refused: reason and parameter say what to fix, and limit and asked give the figures of a call past the limits.
- `404`: A fund the answer needs is not covered: not_covered lists the tickers, with the reason in message, and reason has_security_file the stock file of one that has one (security).
- `405`: Another method than GET or HEAD.
- `503`: The answer could not be computed just then: retry after a minute.

---

[API](https://skmtc.dev/tickerinside/apis/tickerinside-api.md) · [All operations](https://skmtc.dev/tickerinside/apis/tickerinside-api/llms.txt) · [OpenAPI document](https://skmtc.dev/tickerinside/apis/tickerinside-api/revisions/4dae3d8c4119?raw)
