EDGAR Dilution Metrics
Share-issuance headroom and overhang metrics built from companies' XBRL filings: authorized versus outstanding shares, and how much stock could still be issued.
edgar_dilution_metrics — the dataset name to pass to the Obscura API.
What one row means
One XBRL share-count metric value for a single company for a single reporting period — long/EAV format. The metric is one of four dilution-capacity concepts (shares_authorized, shares_issued, weighted_basic, weighted_diluted) pulled from the SEC us-gaap XBRL frames API. Metric keys come from `DilutionMetric::as_str`.
One row per (cik, period_end, metric).
Point-in-time availability
Every Obscura dataset carries available_date: the calendar day the publisher made the row
available, day-of, with no session rounding. It is the one column a backtest filters on, and it means the
same thing on every dataset in the catalog.
For edgar_dilution_metrics: published: available_date is recovered via accn -> edgar_filings (join on accession number), the SEC filing/dissemination date the fact's 10-Q/10-K became publicly retrievable; period_end is the XBRL reporting-period end (the accounting instant), NOT the availability anchor.
Refresh cadence
Obscura refreshes edgar_dilution_metrics every weekday — the most frequent scheduled job that re-collects or re-exports it. This is Obscura's own pipeline cadence, not the upstream publisher's release schedule; when a row became public is recorded per row in available_date.
Schema — 10 columns
The full public column list for edgar_dilution_metrics, with the meaning of every field. The same
schema is served unauthenticated at https://api.obscura.trade/v1/catalog/edgar_dilution_metrics.
| Column | Type | Description |
|---|---|---|
| cik | bigint · not null | SEC Central Index Key of the filing company; part of the primary key. |
| period_end | date · not null | Reporting-period end (part of the grain — one value per company/period/metric). |
| metric | text · not null | Metric concept key, one of shares_authorized | shares_issued | weighted_basic | weighted_diluted (`DilutionMetric::as_str`); identifies which us-gaap XBRL tag the value came from; part of the primary key. |
| available_date | date | Public availability date: the SEC dissemination date of the filing that reported this fact, recovered from `edgar_filings` via `accn`. NULL until the accession is captured. This is the point-in-time column to filter/join on — never `period_end`. |
| accn | text | Accession of the source filing (from the frames API) — join key to `edgar_filings` for the public date. |
| value | bigint · not null | The share-count value for this company/period/metric (shares authorized, shares issued, or weighted-average basic/diluted share count). |
| entity_name | text | Company name as reported in the XBRL frame (entityName). |
| frame | text | XBRL calendar frame identifier the value was pulled from, e.g. CY2026Q1I (instant) or CY2026Q1 (duration); encodes the source frame and drives the incremental-skip logic. |
| loc | text | Filer location code as reported in the XBRL frame (`data[].loc`), e.g. `US-IL`, `US-MA`, or a non-US country code — the reporting entity's ISO-3166 state-or-country of record. NULL when the frame omits it. |
| start | date | Period-begin date of the averaging window (`data[].start`), present only on the duration (weighted-average) metrics; with `period_end` it bounds the exact reported window (e.g. a non-calendar fiscal quarter). NULL on the instant (balance-sheet) metrics, which carry no `start`. |
Access edgar_dilution_metrics
Two delivery paths, one identifier. Both require an Obscura account and an active subscription; the catalog entry and the schema above are public.
import obscura
client = obscura.Client("obs_live_…")
df = client.query(
dataset="edgar_dilution_metrics",
symbols=["NVDA", "AAPL"],
start="2024-01-01",
)
Create a free account Browse all 95 datasets
Frequently asked questions
What is in the edgar_dilution_metrics dataset?
Share-issuance headroom and overhang metrics built from companies' XBRL filings: authorized versus outstanding shares, and how much stock could still be issued. One XBRL share-count metric value for a single company for a single reporting period — long/EAV format. The metric is one of four dilution-capacity concepts (shares_authorized, shares_issued, weighted_basic, weighted_diluted) pulled from the SEC us-gaap XBRL frames API. Metric keys come from `DilutionMetric::as_str`.
How do I avoid look-ahead bias with edgar_dilution_metrics?
Filter on edgar_dilution_metrics.available_date, the day the publisher made the row public. For this dataset that date is derived as follows — published: available_date is recovered via accn -> edgar_filings (join on accession number), the SEC filing/dissemination date the fact's 10-Q/10-K became publicly retrievable; period_end is the XBRL reporting-period end (the accounting instant), NOT the availability anchor. A query of the form WHERE available_date <= '<as-of date>' never sees a row before it existed.
In what formats can I get edgar_dilution_metrics?
As a Parquet bulk export (POST https://api.obscura.trade/v1/download) or as JSON from the typed query API (POST https://api.obscura.trade/v1/query), both with dataset="edgar_dilution_metrics". The column schema is public at https://api.obscura.trade/v1/catalog/edgar_dilution_metrics.
Can I filter edgar_dilution_metrics by company or symbol?
Yes. edgar_dilution_metrics carries cik, the column the API's symbols filter resolves against.
How often is edgar_dilution_metrics updated?
Obscura refreshes edgar_dilution_metrics on a every weekday schedule — that is the most frequent scheduled job that re-collects or re-exports the table. It is Obscura's own pipeline cadence, not the upstream publisher's release schedule; when the publisher makes a row available is described by the availability rule above, and is recorded per row in available_date.