Skip to content

10b5 Plan Disclosures Feed

General Information

10b5-1 Plans are pre-arranged trading plans that allow insiders to execute open market purchases, sales and exercise-and-sales regardless of whether a trading window is open. The VerityData 10b5-1 Plan Disclosure database contains over 20 years of 10b5-1 plan information with daily point-in-time files available starting in 2013.

The SEC made significant changes to Rule 10b5-1 in 2023. These rule changes have had a meaningful impact on the level of disclosure around 10b5-1 plans and transactions giving investors important new insights into insider behavior and management’s valuation views.

Additional Point-in-time notes

  • Updates to company-related fields (ticker, cusip, company_name, etc.) do not trigger updates in the feed, only updates to plan specific fields trigger an update.
  • Company-related fields are as of the asof field, not the original insert, meaning values such as ticker, cusip, etc. may change when comparing an initial insert to a later update for the same plan_id. (e.g. a transaction with ticker "FOO" at insert will show as "BAR" on subsequent updates if the company's ticker changed between the two asof dates. The original insert will always show "FOO", however.)
  • Not all fields are available with point-in-time accuracy. Please see the Data Dictionary for more information.

Track Plan Activity via the Insider Transaction Feed

Our Insider Transaction feed has a number of detailed columns related to 10b5-1 transaction activity. Join the plan_id field to the associated_plan field in the Insider Transaction feed to create additional analytics. Some example joins fields are suggested at the end of this page, below the Data Dictionary.

Data Dictionary

Heading JSON Subfield Description
ticker Ticker of the company. Tickers in [square brackets] indicate de-listed or inactive companies.
cusip CUSIP identifier of the company.
class_status Denotes the status of the company at the time of last_update. Useful to exclude posthumous edits to inactive companies from your modeling / testing.
company_name Name of the company.
sector Sector of the company
mcap [Not Point In Time Data] Market Cap of the company as of the filing date.
insider_name Name of the insider.
rptcik SEC assigned unique identifier of the Insider.
age Age of the insider.
gender Gender of the insider.
disclosure_date The date that the filing was filed at the SEC.
filed_time The exact date and time in YYYY-MM-DD hh:mm:ss the filing was filed at the SEC.
received_time The exact time in YYYY-MM-DD hh:mm:ss.ssssss that we received the filing, usually within seconds after the File_time above. The date and time listed is generated by our internal servers. This field is NULL for all transactions prior to 2008. NOTE: This field may read earlier than the File_Time field as our server time and the SEC's server time are not synced.
form_type Form-type of the source filing.
plan_id Verity's unique numerical id given to each 10b5-1 plan, this should be considered your Primary Key. This plan_id maps to the associated_plan field in the Insider Transaction feed.
status Open, Closed
plan_type “Buy”, “Sell”, "ExSell", "Both", "Gift", "Tax", "Other", “Unknown”
adoption_date The date the plan was adopted
is_initiation Boolean TRUE if this is a plan initiation disclosure.
start_date Plan start date
end_date Plan end date
max_shares Maximum shares to be transacted under the plan
min_shares Minimum shares to be transacted under the plan
max_value Maximum value for transactions under the plan
min_price_threshold Boolean TRUE if the plan has minimum price threshholds. This field is only populated since April 2024. It will always be FALSE prior to that.
min_price Boolean TRUE if the plan has minimum price threshholds. This field is only populated since April 2024.
max_price Maximum price for transactions under the plan
price_thresholds [JSON Data] Nested fields for price thresholds associated with the plan. A plan may have multiple price thresholds.
threshold_id Unique ID provided by VerityData for the price threshold
low Minimum price for the threshold
high Maximum price for the threshold
start_date Threshold start date
end_date Threshold end date
last_update_threshold The date of the last update for this threshold.
notes Notes disclosed about the plan
current_amendment_id Unique ID provided by VerityData for the most recent Amendment
current_amendment_disclosure_date The date that the most recent amendment filing was filed at the SEC.
current_amendment_start_date Plan start_date as amended
current_amendment_end_date Plan end_date as amended
current_amendment_shares Plan max_shares as amended
current_amendment_notes Plan notes as amended
amendments [JSON Data] Nested fields for amendments associated with the plan. A plan may have multiple amendments.
amendment_id Unique ID provided by VerityData for the Amendment
amendment_disclosure_date The date that the amendment filing was filed at the SEC.
amendment_start_date Plan start_date as amended
amendment_end_date Plan end_date as amended
amendment_shares Plan max_shares as amended
amendment_notes Plan notes as amended
last_update_amendment The date of the last update for this amendment.
terminated_type Completed, Expired, Terminated, Closed (Est). Closed (Est) is used for plans with adoption dates prior to January 1, 2023 that have no transactions over the last 400 days AND plans with adoption dates post January 1, 2023 that were disclosed on Form 4 prior to the current open plan.
terminated_date The date the plan was terminated. NULL for Closed (Est) plans.
terminated_notes Notes disclosed about the termination. NULL for Closed (Est) plans.
last_update The date of the last update for this entry.
edit_action "U" for update, "D" for delete and "I" for new insert.
split_edit Returns TRUE if the edit was due to a split.
asof The date the record appeared in the feed

Insider Transaction Feed Join Examples

Heading Description Logic
shares_transacted Actual shares transacted under the plan. Join 10b5_plans.plan_id to insider_txns.associated_plan and sum insider_txns.shares
shares_remaining Maximum shares to be transacted minus actual shares transacted under the plan. 10b5_plans.max_shares - shares_transacted
average_price Average price of shares transacted under the plan Join 10b5_plans.plan_id to insider_txns.associated_plan and calculate the wtd avg: (insider_txns.shares * insider_txns.avg_pps)/sum insider_txns.shares
trigger_price A trigger price is defined as follows: 1) For a New 10b5-1 Plan Initiation where the first sale is the highest price for the stock since the adoption date or the highest price since the adoption date +30 days. Only plans that have explicit adoption dates are eligible to have this type of trigger price. 2) when a sale that occurs at the highest stock price for the company over at least the prior three months; 3) when a sale that occurs at the highest price since the prior 10b5-1 sale where the sales are not associated with specific 10b5-1 plans; 4) sale that occurs at the highest price since the prior 10b5-1 sale where both transactions are associated with the same 10b5-1 plan. Join 10b5_plans.plan_id to insider_txns.associated_plan and take the min, max or average insider_txns.trigger_price
first_trade Date of first trade under the plan. Join 10b5_plan.plan_id to insider_txns.associated_plan and take min insider_txns.txn_date
days_to_trade Days between the first trade and the plan adoption date 10b5_plans.adoption_date - first_trade