---
title: "Methods and test vectors"
method: GET
path: "/methods.json"
---

# Methods and test vectors

`GET /methods.json`

## Request

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

Each method a published figure names in its method field, with its version, formula, rules and test vectors: inputs with the output the method gives, to check an implementation against. It holds ti-ownership/1, the ETF ownership ledger, ti-ownership-index/1 and ti-overlap/1. A change to what a method computes from inputs it already accepted is a new version, never an edit of the one published. A rule for an input it did not accept before is added to the version with its own test vector, and changes gives the day it was first published.

## Response `200`

The file. The example is a real answer, shortened: long lists and maps keep their first entries.

- Methods
  - `note` string, nullable, required: How methods are named and versioned.
  - `methods` object[], required: One entry per method; its fields are described below.
    - `id` string, nullable, required: The name and version a published figure gives in its method field.
    - `name` string, nullable, required: The method in words.
    - `version` number, nullable, required: The version number. Fields are added; a change to what the method computes from inputs it already accepted is a new id, and a rule for an input it did not accept before is listed under changes.
    - `since` string, nullable, required: The first day figures were published under this version.
    - `changes` object[], nullable, required: The rules added to this version for an input it did not accept before, each with since, the first day it was published, rule, its code under not_counted, and what, the change in words. Every earlier test vector keeps its output.
      - `since` string, nullable
      - `rule` string, nullable
      - `what` string, nullable
    - `measures` string, nullable, required: What the figure is, in one sentence.
    - `formula` string, nullable, required: The figure as a formula.
    - `definitions` object, required: What each term of the formula is.
      - `shares_held` string, nullable
      - `shares_outstanding` string, nullable
      - `lower_bound` string, nullable
    - `rules` string[], nullable, required: The rules of the method, in words.
    - `not_counted` object, required: Each reason an input is left out, as a code and in words.
      - `no_share_count` string, nullable
      - `through_fund` string, nullable
      - `preferred_fund` string, nullable
      - `preferred_row` string, nullable
      - `price_mismatch` string, nullable
      - `value_mismatch` string, nullable
      - `no_value_check` string, nullable
      - `no_class_size` string, nullable
      - `whole_series` string, nullable
      - `before_split` string, nullable
      - `before_first_close` string, nullable
      - `single_issuer_file` string, nullable
    - `refusals` object, required: Each reason no figure is given, as a code and in words.
      - `no_sec_count` string, nullable
      - `class_unknown` string, nullable
      - `count_too_old` string, nullable
      - `count_date_invalid` string, nullable
      - `no_independent_count` string, nullable
      - `split_between_dates` string, nullable
      - `count_below_independent` string, nullable
      - `count_mismatch` string, nullable
      - `no_fund_counted` string, nullable
      - `under_0_01_pct` string, nullable
      - `above_100` string, nullable
      - `held_back` string, nullable
    - `vector_format` string, nullable, required: The shape of a test vector's input and output.
    - `vectors` object[], nullable, required: Inputs with the output the method gives for them, to check an implementation against.
      - `name` string, nullable
      - `input` object
        - `ticker` string, nullable
        - `shares_outstanding` object
          - `as_of` string, nullable
          - `classes` object[], nullable
            - `class` unknown
            - `tickers` string[], nullable
            - `shares` number, nullable
        - `independent` object, nullable
        - `funds` object[], nullable
          - `fund` string, nullable
          - `layer` string, nullable
          - `as_of` string, nullable
          - `shares` object, nullable
      - `output` object
        - `pct_lower_bound` number, nullable
        - `basis` string, nullable
        - `shares_held` number, nullable
        - `shares_outstanding` number, nullable
        - `funds_counted` object
          - `issuer_files` number, nullable
          - `sec_nport` number, nullable
        - `not_counted` object
  - `docs` string, nullable, required: Where this file is documented.
  - `license` string, nullable, required: The licence the data is published under.
  - `attribution` string, nullable, required: How to credit the data: a link to this file where the medium allows one, the name where it does not.

## Other responses

- `304`: Not modified: the ETag of your copy, sent in If-None-Match, is still current. Files are cached five minutes.
- `503`: The file could not be served just then: retry after a minute. uptime says whether the site fails its own checks.

---

[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)
