---
title: "Approximate weighted-average entry price for a CUSIP across 13F holders"
method: GET
path: "/api/v1/sec/13f/consensus/{cusip}/avg-entry-price"
tags: ["Hedge Fund Intelligence"]
---

# Approximate weighted-average entry price for a CUSIP across 13F holders

`GET /api/v1/sec/13f/consensus/{cusip}/avg-entry-price`

Derived cost-basis approximation per fund and portfolio-wide. 13F filings disclose position SIZE per quarter-end, NOT transaction-level cost basis. This endpoint reconstructs an estimate by multiplying each fund's positive quarterly Δshares by that quarter's average daily close (Sugra Finance equity price feed). Sales are EXCLUDED - their basis cannot be unambiguously attributed without transaction-level disclosure. `ticker` query param is REQUIRED in v1 (CUSIP -> ticker resolver is a follow-up item). Each response carries an explicit `methodology` string and a per-fund + portfolio `confidence` tag - consumers must surface those to end users; the number is an estimate, not a tax cost basis.

## Path parameters

- `cusip` string, required — 9-character canonical CUSIP.

## Query parameters

- `ticker` string, required — Ticker symbol used to fetch per-quarter average daily close (required in v1; CUSIP->ticker resolver is B1.1 backlog).
- `from_quarter` string, nullable — Oldest stem in window. Default: oldest stem in retention manifest.
- `to_quarter` string, nullable — Newest stem in window. Default: newest stem in retention manifest.

## Response `200`

Per-fund + portfolio weighted-avg entry price for one CUSIP.

- EnvelopeSec13fAvgEntryPrice
  - `data` Sec13fAvgEntryPrice, required — Approximate cost basis for one CUSIP across all 13F holders. Reconstructed from quarter-to-quarter position deltas multiplied by the quarter's average daily close. The cost basis is NOT disclosed in 13F filings; this is a derived approximation with explicit methodology and confidence cues attached. Sales (negative deltas) are excluded - they cannot be unambiguously attributed under FIFO vs LIFO without transaction-level disclosure.
    - `cusip` string, required
    - `ticker` string, required — Caller-supplied symbol used for quarter price lookup.
    - `issuer` string, required — Issuer name from the 13F filing (first seen in window).
    - `from_quarter` string, required — Oldest stem effectively used.
    - `to_quarter` string, required — Newest stem effectively used.
    - `quarters` Sec13fQuarterAvgPrice[], required — Per-quarter price snapshots used in the weighted-basis calculation, oldest -> newest.
      - `stem` string, required — 13F quarter stem (e.g. `2025q4` or `01dec2025-28feb2026`).
      - `quarter_start` string, required — Inferred quarter start (ISO YYYY-MM-DD).
      - `quarter_end` string, required — Period-end date from the manifest (ISO YYYY-MM-DD).
      - `avg_close_usd` number, nullable — Arithmetic mean of daily closes in the quarter range; null if upstream returned no bars.
      - `sample_days` integer — Daily bars used to compute the mean. 0 when upstream returned no candles.
      - `available` boolean, required — Whether the price was usable for weighted-basis aggregation.
    - `methodology` string, required — Plain-English description of the cost-basis approximation: 'Σ(Δshares × quarter_avg_close) for positive deltas only; sales excluded; daily close arithmetic mean per quarter range'.
    - `portfolio` Sec13fAvgEntryPortfolio, required — Portfolio-wide weighted aggregation across all funds in the window.
      - `total_acquired_shares` integer, required
      - `weighted_avg_entry_price_usd` number, nullable — Aggregate weighted basis across all funds. Null when no acquisitions priced.
      - `confidence` string, required — `high|medium|low|none` per same heuristic as per-fund confidence.
    - `funds` Sec13fAvgEntryFund[], required — Per-fund breakdown sorted by total_acquired_shares descending.
      - `cik` string, required — 10-digit zero-padded SEC EDGAR CIK.
      - `manager_name` string, required
      - `current_shares` integer, required — Holder's share count at `to_quarter`. 0 if the fund exited the position by `to_quarter`.
      - `total_acquired_shares` integer, required — Sum of positive quarterly position deltas (acquisitions only) across the window.
      - `quarters_acquired` integer, required — Number of quarters with a positive Δshares contribution. 0 when no acquisitions in window.
      - `weighted_avg_entry_price_usd` number, nullable — Σ(Δshares × quarter_avg_close) / Σ(Δshares). Null when no acquisitions in the window, or when every acquisition quarter had no available price.
      - `confidence` string, required — Heuristic quality tag: `high` (>=3 priced acquisition quarters), `medium` (2 quarters), `low` (1 quarter), `none` (0 quarters with usable price).
  - `meta` SugraMeta, required — Metadata attached to every /api/v1/* response envelope.
    - `endpoint` string, required — Requested endpoint path.
    - `data_time` string, required — ISO 8601 UTC timestamp of the source data, not of the request.
    - `response_time` string, required — ISO 8601 UTC timestamp when this response was produced.
    - `provider` string, required — API name and version.
    - `source` string, nullable — Identifier of the primary upstream source used for this response.
    - `attribution` string, nullable — Human-readable attribution mandated by an upstream source (e.g. a securities regulator or self-regulatory organization). Present only on responses whose source requires the owner and source to be clearly identified. Do not remove or alter it when using the response.
    - `fallback_used` boolean, nullable — True when the primary source failed and a fallback produced the data.
    - `fallback_chain` string[], nullable — Ordered list of sources attempted, in the order they were tried.
    - `cached` boolean, nullable — True when this response was served from the internal cache.
    - `stale` boolean, nullable — True when the cached response was returned after the upstream rate-limited or errored. Clients can use this to detect degraded data.

## Other responses

- `401` — Missing or invalid `x-api-key` header.
- `422` — Validation Error
- `429` — Daily rate limit exceeded. Check `X-RateLimit-Reset` for the next window.
- `503` — Upstream source is temporarily unavailable. Retry after a short delay.

---

[API](https://skmtc.net/sugra/apis/sugra-api.md) · [All operations](https://skmtc.net/sugra/apis/sugra-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/sugra/sugra-api/revisions/4e2740743eb4/schema)
