Free Float Events Methodology (v 1.0)
This page summarises how free float, excluded shares, and event-level changes are derived from public filings. It is based on the internal methodology document for the Free Float Events dataset. See the methodology applied to current securities on the free public data pages.
1. Conceptual Overview
Free float represents the portion of a company's shares that is freely tradable on the open market. Operationally, we treat it as total shares outstanding minus shares that are excluded from the public float (for example insiders, large beneficial owners, and certain structured holdings).
freeFloatShares = sharesOutstanding - excludedSharesfreeFloatFactor = freeFloatShares / sharesOutstanding
Excluded shares aggregate positions held by officers, directors, ≥10% beneficial owners, and holdings routed through vehicles such as trusts, foundations, LLCs, LPs, and subsidiaries. The goal is to capture the economic position of each owner, while avoiding double-counting across cross-holdings.
A single insider can control shares through multiple routes: direct personal holdings, revocable or irrevocable trusts, family LLCs, foundations, partnerships, and subsidiaries or affiliates they manage. The methodology reconciles these routes into a single economic owner so that cross-holdings are not double-counted, indirect holdings are not missed, and transfers between controlled entities do not artificially change excluded shares.
2. Filings and Daily Flow
On each processing day, the pipeline ingests relevant SEC filings (Form 3, 4, 5, DEF 14A, 13D/G and related documents), resolves legal entities and individuals, reconciles their direct and indirect holdings, and determines which positions are treated as excluded from the float. These are then rolled up to a per-security, per-date snapshot.
On a typical processing day the system:
- Ingests relevant SEC filings (Form 3, 4, 5, DEF 14A, 13D/G and related documents).
- Resolves owners (individuals, organisations, trusts, LPs, subsidiaries, foundations, and similar entities).
- Reconciles direct and indirect holdings into unified economic owners.
- Determines which holdings are treated as excluded from the public float.
- Aggregates excluded holdings to the security level for each as-of date.
- Produces a daily as-of snapshot that is exposed via the API.
The asOf date in the feed reflects the economic holdings we are representing, not the filing timestamp. Filings such as Form 3–5 are typically processed on the day they appear, while DEF 14A and 13D/G provide baseline and large-holder context. This makes it easier to align the data with index rebalances and daily rebalance workflows.
3. Top-level Fields
Each top-level record in the Free Float Events feed represents a per-security snapshot on a given asOf date. Key fields include:
- asOf - economic holdings date represented by the snapshot.
- sharesOutstanding - fully adjusted shares outstanding.
- excludedShares - total shares classified as excluded from the float.
- excludedSharesDelta - change in excluded shares vs previous snapshot.
- freeFloatFactor - float factor implied by the snapshot.
- freeFloatDelta - change in float factor vs previous snapshot.
- excludedDelta[] - owners whose excluded holdings changed on this date.
- events[] - the most recent event for each owner contributing to today's total.
In practice, excludedDelta[] tells you what moved on a given date, while events[] lets you reconstruct the full ownership state and component-level breakdowns.
Each entry in excludedDelta[]also carries a delta type, indicating whether the owner is new, changed, or has dropped out (for example, because a position has been sold or become stale). This makes it straightforward to focus on what actually moved on a given date.
In contrast, events[]always contains the latest event for every owner that contributes to today's excludedShares total, even if their last change was months ago. Together, the two structures let you separate attribution (what changed today) from state reconstruction (what is currently held and how).
4. Owner- and Component-level Events
Each owner event carries both filing-level information (for example Form 4 transaction codes) and a component breakdown of where the shares sit (direct, trust, LLC, foundation, subsidiary, etc.). This allows you to see both the reconciled economic position and how it is structured.
- explicitSharesDelta - change reported in the filing.
- sharesOwnedPost - reported shares owned after the transaction.
- components[] - per-vehicle breakdown (direct, trust, LLC, etc.).
- restrictions[] - information about RSUs, restricted stock, and lockups.
In many cases the economic change we infer can differ from the raw transaction amount in the filing due to DRIP, small adjustments, or transfers between controlled entities. The methodology reconciles these so that the float impact matches the economic reality rather than just the single line item in the form.
Events also carry classification and source metadata such as:
- eventMask / eventMaskName - encoding whether an event is a baseline, a delta, or a derived cross-holding adjustment.
- formType - the underlying source form (for example form_4, DEF14A, or 13D).
- transactionCode and transactionShares - where applicable, the Form 4 transaction code and share amount.
- notes and restrictions[] - resolved footnotes and structured constraints (for example RSUs, performance shares, lockups).
Within components[] we distinguish different relationship types (direct, trust, LLC, foundation, partner, subsidiary, and so on) and can flag components that represent cross-holdings into other tracked entities. This makes it possible to understand both the total excluded position and how it is distributed across vehicles.
5. Using the Feed in Quant & Index Workflows
- Monitor freeFloatDelta to detect large moves in float factor between days.
- Use excludedDelta[] to attribute changes to specific owners and events.
- Combine ownership events with index methodology to anticipate weight changes or liquidity shifts around rebalances.
The full PDF methodology document provides additional worked examples, field-by-field tables, and sample data extracts for backtesting.
6. Reconciliation Checkpoints: is_rebal
The high-level event summary DataFrame includes is_rebal (from the API's isRebalanced). Our pipeline is event-sourced: we ingest and process changes continuously from daily/near-daily filings such as Forms 3/4/5 (and related corporate-action signals), so most dates reflect incremental updates.
When is_rebal is True, that date is a scheduled reconciliation checkpoint — typically the annual DEF 14A proxy refresh where beneficial ownership is re-stated in one place. We use it to “rebalance” the running history (i.e. validate that the accumulated daily events still reconcile to the ownership snapshot implied by the proxy).
In an ideal world, if every prior event has been captured and processed correctly, the is_rebal date would introduce no material change (delta) because the series is already consistent. In practice this is not always possible: filings can be late, amended, ambiguous, missing for edge cases, or require manual interpretation; and some ownership changes are only clearly disclosed when the proxy is published.
Our goal is that any reconciliation adjustment is small — typically we aim for <50 bps deviation in free-float factor on the rebalance date. In early coverage, the distribution is usually much tighter; for example, a practical target is that the p90 rebalance adjustment stays well below that 50 bps budget.
OLP: near-zero reconciliation delta
The rebalance checkpoint below shows −0.027 bps (effectively zero), meaning the daily event stream had already “predicted” the proxy snapshot.
=== Free Float Events (event summary) ===as_of delta_fff_bps is_rebal ff_factor0 2026-01-14 -86.222216 False 0.7259151 2025-09-09 2.526722 False 0.7321742 2025-09-05 3.032832 False 0.7319893 2025-09-04 1.175239 False 0.7317664 2025-09-03 2.706101 False 0.731680...13 2025-03-19 -0.027326 True 0.731905
import pandas as pdTICKER = "OLP"df_events = client.free_float_events(TICKER).to_event_summary_dataframe()# Show latest rows plus the reconciliation checkpoint(s)cols = ["as_of", "delta_fff_bps", "is_rebal", "ff_factor"]latest = df_events.sort_values("as_of", ascending=False).head(5)rebal = df_events[df_events["is_rebal"]]print(pd.concat([latest, rebal]).sort_values("as_of", ascending=False)[cols].to_string(index=False))
7. Private Holders and Proxy Reconciliation (AMZN)
A useful real-world edge case is a private holder whose position only becomes visible at proxy time (i.e. no Forms 3/4/5 trail). For example, Amazon's proxy disclosures can surface shares held by Mr. Bezos' ex-wife, MacKenzie Scott, via a footnote that effectively splits voting vs investment power (“Includes XXX shares as to which Mr. Bezos has sole voting power and no investment power”).
As a private citizen who is not an officer or director (and is below the Section 16 10% threshold), she has no ongoing obligation to file Forms 3/4/5, so day-to-day sells will not be visible in insider filings. Despite that, these shares are typically treated as excluded from free-float because the proxy footnote ties the voting power to Mr. Bezos — i.e. the position is economically separate but remains linked to insider control.
In our event stream this appears as a larger annual proxy reconciliation — here ~75.8 bps on the rebalance date — but the drill-down shows exactly which owner moved, by how much, and why it is expected that the change is only observable at proxy time.
as_of excluded_shares ff_factor delta_shares delta_ff_factor delta_fff_bps is_rebal shares_out49 2025-03-03 1024907994.996 0.903290 -242343.004 0.000023 0.254625 False 10597729352.050 2025-02-24 1025150338.000 0.903267 -72560497.901 0.006847 75.802614 True 10597729352.051 2025-02-21 1097869736.901 0.896405 23942.946 -0.000002 -0.022311 False 10597729352.0
# Drill-down: identify the owner by name and inspect the delta sourceev = client.free_float_events_detail("AMZN")[0] # FreeFloatEventDetailowner = ev.owner_from_name("MacKenzie Scott")oid = owner.idprint(f"{owner.name:35s} shares={owner.shares:>12,.2f} "f"components={len(owner.components)} "f"delta={ev.owner_delta(oid)}")
MacKenzie Scott shares=112,032,131.00 components=1 delta={'diff': -72250000.0, 'src': 'proxystatement|2024-04-11|AMZ3JVbI_rq|AMZ3JVbI_rq->proxystatement|2025-04-10|AMZ3JB_Pkym|AMZ3JB_Pkym'}
This kind of attribution (owner-level delta + provenance across specific source filings) is what makes the event stream auditable — even when the underlying disclosure only appears in an annual proxy footnote.
8. Restricted Stock Awards and Large Free-Float Moves (TSLA)
Large delta_fff_bps values usually indicate a discrete ownership change that materially affects the excluded-share numerator.
Example: restricted stock award (2025-08-03)
The snippet below finds dates where the free-float factor moved by more than 10 bps, then inspects the largest move. In this example the free-float factor drops by ~3.5% (−354 bps) on 2025-08-03.
# Find large moves and inspect the largest oneTICKER = "TSLA"df_events = client.free_float_events(TICKER).to_event_summary_dataframe()large = df_events[df_events["delta_fff_bps"].abs() > 10]print(df_events.loc[[n + i for n in large.index for i in (0, 1)]].to_string())
as_of excluded_shares ff_factor delta_shares delta_ff_factor delta_fff_bps is_rebal shares_out11 2025-08-03 510618229.0 0.841691 96000000.0 -0.029763 -353.609579 False 3225448889.012 2025-07-11 414618229.0 0.871275 90000.0 -0.000028 -0.321368 False 3220956211.0
Drilling into the delta payload shows the change is attributable to a single owner and a single filing-to-filing provenance chain:
# Drill down the largest movedetail = client.free_float_events_detail(TICKER)ev = detail.by_date('2025-08-03')print(ev.delta)
{'diff': {'TSLATgVaxgiMn': 96000000.0}, 'src': {'TSLATgVaxgiMn': 'form4|2024-12-31|1318605/0000950170-24-141705|TSLbIK5y4Jh->form4|2025-08-04|1318605/0001104659-25-073753|TSLbIcl17Ko'}}
If you drill into that owner for the event date, the extracted event_details explains why the position is treated as excluded:
owner = ev.owner("TSLATgVaxgiMn")print(owner.event_details.instrument_subtype)print(owner.event_details.notes)
restricted_stockinstrument_subtype set to 'restricted_stock' based on footnotes describing a restricted stock award to be deliveredupon vesting; EXPORTED_TRANSACTION_CONTEXT.sec_type='Common Stock'. | settlement_type left null because delivery isdeferred and not explicitly settled in the filing. | shares granted (delta) not provided in the exported context;vesting_schedule includes the known vesting date but delta_shares omitted. | ownership_nature not specified infiling; defaulted to 'unknown' per resolution guidelines.
Example: CEO Performance Award (2025-11-06)
A second TSLA example shows why an event-sourced stream can be predictive. On 2025-11-06, a restricted stock issuance increases excluded shares by ~423.7M and reduces the free-float factor by ~17.7% (a huge −1772 bps) on that date:
as_of excluded_shares ff_factor delta_shares delta_ff_factor delta_fff_bps is_rebal shares_out5 2025-11-06 935050609.0 0.718851 4.237439e+08 -0.127410 -1772.411807 False 3.325819e+096 2025-09-15 511306705.0 0.841477 -5.606775e+04 0.000017 0.202026 True 3.225449e+09
At time of writing, it is too soon to know how every downstream vendor will classify and incorporate this award. The earliest we would typically expect reconciliation is around March 2026, but for many methodologies the more meaningful “catch-up” may only appear in the larger semi-annual rebalance windows (more likely May/June). Some vendors may include restricted stock (keeping free-float closer to the pre-event level), while others exclude it. The key point is that the event stream captures the change immediately from the underlying filing(s), so when vendors reconcile at their next methodology checkpoint / rebalance cycle, it provides a clear, auditable prediction of the direction and magnitude they may converge toward.
Speculative assessment: based on how vendors often handle judgment calls, S&P is unlikely to treat these shares as excluded (not impacting the free-float factor), whereas FTSE, which tends to apply more systematic rule-based treatment, may be more likely to exclude them (impacting free-float factor) — though the final outcome depends on each vendor's specific interpretation of “investable” and the exact mechanics disclosed in the filings.
# Drill-down for the 2025-11-06 eventev = detail.by_date('2025-11-06')owner = ev.owner("TSLATgVaxgiMn")print(owner.event_details.instrument_subtype)print(owner.event_details.notes)
9. Pledged founder collateral and float treatment (ORCL)
A useful contrast to TSLA is Oracle (ORCL), where the proxy discloses that founder Larry Ellison has pledged a large block of shares as collateral for personal indebtedness. The beneficial ownership table reports Ellison's total holdings and notes the pledged portion in a footnote. The key methodological question is whether those pledged shares should be considered part of free-float.
Our methodology focuses first on whether a holder represents founder or strategic control. When a founder holds a large controlling block, we treat the entire position as excluded from free-float regardless of whether some shares are pledged as collateral. Under this policy, Ellison's holdings in ORCL are treated as a strategic founder block and therefore excluded in full; the pledge disclosure is informative but does not change the float classification.
For comparison, Tesla (TSLA) includes proxy footnotes describing pledged collateral for Elon Musk. In our dataset those disclosures appear in the extracted component notesattached to the relevant owner components. The important distinction is that TSLA does not present a single controlling founder block in the same way as ORCL, so the treatment depends on the specific ownership mechanics disclosed in the filings rather than on a blanket founder-control rule.
Our approach therefore applies the same policy consistently: where a holder represents founder or strategic control (as with Ellison in ORCL) the entire block is excluded, whereas other insider-linked positions (such as those visible in TSLA filings) are evaluated based on the legal and economic characteristics described in the underlying disclosures. This framework also happens to produce results broadly consistent with how many major market data vendors classify ORCL versus TSLA.
TICKER = "ORCL"# Fetch event summarysummary = client.free_float_events(TICKER).to_event_summary_dataframe()print(summary.head())# Inspect detailed eventsfor ev in client.free_float_events_detail(TICKER)[:3]:print(ev.as_of, ev.delta)
In the ORCL case, changes in the excluded-share numerator are more likely to come from ownership updates visible in proxy disclosures than from collateral status itself. This illustrates an important methodological distinction: pledging may be visible in proxy footnotes, but float treatment often depends more on whether the holder is classified as a strategic founder or controlling insider.
10. Passive institutional blocks and methodology divergence (AXP)
American Express (AXP) is a useful example of a large external holder that sits in a methodological grey area. In the proxy, Berkshire Hathaway is disclosed as a 21.6% holder, but under our current methodology this position is classified as a PASSIVE_INSTITUTIONAL_BLOCKand therefore remains included in free-float. This treatment is more in-line with data vendors such as NYSE, which generally do not exclude Berkshire in AXP.
The example below shows how to retrieve the detailed event and inspect Berkshire directly by name. The extracted owner record makes the current classification explicit.
TICKER = "AXP"# Load detailed event history and inspect the Berkshire holderaxp_detail = client.free_float_events_detail(TICKER)ev = axp_detail[0] # latest FreeFloatEventDetail snapshotowner = ev.owner_from_name("Warren Buffett Berkshire Hathaway Inc. and subsidiaries")print(f"{owner.name:55s} shares={owner.shares:>14,.0f} "f"relType={owner.event_details.rel_type} ext={owner.event_details.ext}")print(owner.source_event)print(owner.filing_date)
Warren Buffett Berkshire Hathaway Inc. and subsidiaries shares= 151,610,700 relType=PASSIVE_INSTITUTIONAL_BLOCK ext=Trueproxystatement|2024-03-15|AXP_C7SdTsN|AXP_C7SdTsN2024-03-15
This matters because Berkshire's block is large enough to move the free-float factor materially. As of early 2026, our free-float factor for AXP is approximately 0.998 under the current methodology, because Berkshire is treated as an external but investable holder. Under an alternative methodology that excludes Berkshire from free-float, the factor would fall to roughly0.785. In other words, a single classification decision around Berkshire changes AXP from an almost fully investable name to one with a very substantial float haircut.
See Section 12for the planned addition of 13D/Gfilings. For AXP, that will add important source context around Berkshire's passivity commitments and large-holder disclosures, making it easier to compare our current NYSE-like treatment with stricter methodologies that may choose to exclude the stake from free-float.
11. Methodology Note: RSUs vs Restricted Stock
Classification is inherently subjective and index vendors differ on what counts as investable. Our treatment is systematic:
- When a filing indicates legally issued stock (e.g. restricted stock issued as Common Stock) and voting rights or voting control exist (including via voting agreements / proxies), we treat those shares as excluded from free-float because they represent insider-controlled equity that is not freely investable.
- By contrast, RSUs (Restricted Stock Units) are typically not counted as excluded until they are settled or otherwise impact shares outstanding.
Because vendor rules vary, you may see some vendors keep free-float closer to the pre-event level (effectively including restricted stock) while others exclude it (aligning with our lower free-float).
Coming soon: our Shares Outstanding Events product will make these cases easier to interpret by explicitly event-sourcing the denominator as well, so you can see whether an equity award affected the numerator, the denominator, or both.
12. Forthcoming Features
The Free Float Events dataset will continue to evolve. Planned enhancements include:
- Filtering by filing date as well as economic as-of date.
- Integration of 13D/G filings to enrich large-holder classification, passivity context, and methodology comparisons.
- Integration of 8-K disclosures that affect the share count or ownership structure.
- Support for additional document types such as 6-K and 20-F for foreign issuers.
- Improved treatment of ADR ratios and depositary share structures.
13. The 'Magnificent 7+1'
The Magnificent 7 is a commonly used market term for a small group of U.S. mega-cap technology companies that have dominated equity market performance in recent years. Together, they account for a disproportionate share of index returns, market capitalisation, and investor attention.
- Apple Inc. (AAPL)
- Microsoft Corporation (MSFT)
- NVIDIA Corporation (NVDA)
- Alphabet Inc. (GOOGL / GOOG *)
- Amazon.com, Inc. (AMZN)
- Meta Platforms, Inc. (META)
- Tesla, Inc. (TSLA)
* GOOG is the ticker for Alphabet Inc. Class C shares and it is not included within the Magnificent 7+1 free tier
We use the Magnificent 7 as an entry-level coverage universe because they are highly liquid, widely held, and heavily analysed-yet still exposed to subtle data issues around share counts, buybacks, stock-based compensation, and ownership classification.
The +1: One Liberty Properties (OLP)
Our Magnificent 7+1 tier extends beyond mega-cap technology into carefully chosen real-world edge cases that stress-test ownership and free-float methodologies in ways large-cap stocks often do not.
To demonstrate this, we include One Liberty Properties (OLP), a small U.S. REIT that provides a textbook example of why beneficial ownership data is hard to interpret correctly from filings alone.
In OLP's case, ownership and control are distributed across a dense web of relationships. Several directors hold shares not only directly, but also through trusts, foundations, and affiliated entities, some of which are shared between directors. While this type of structure is not uncommon in U.S. governance, OLP exhibits an unusually high concentration of overlapping vehicles, making naive aggregation especially error-prone.
Compounding this, two directors share voting and dispositive power over an investment fund that is itself disclosed as a ≥10% beneficial owner. In practice, this type of position would typically be disclosed in a Schedule 13D or 13G for the fund itself, while also appearing indirectly within DEF 14A footnotes for directors who share voting or dispositive power. That same fund therefore appears multiple times across different filings and disclosure contexts. Without careful reconciliation, this structure can easily be misread as duplicated ownership or multiple independent 10% holders, when in reality it reflects a single economically controlled position disclosed through multiple reporting paths.
OLP highlights the core problems this dataset is designed to solve: resolving shared voting power, avoiding double-counting across related persons, preserving auditability back to the original filings, and producing clean, event-driven free-float outputs that reflect the true economic reality.