US Equity OTC Market Compliance Data
US Equity OTC Market Compliance Data
Version 1.0.0 (Dec 2024)
We are here to help you do great things with our market and reference data. For questions, feedback, and other concerns, you may reach our team of experts using the following contact information:
algoseek customer support
support@algoseek.com
(+1) 646 583 1832
algoseek sales
sales@algoseek.com
(+1) 646 583 1832
DATA ORGANIZATION AND FILE FORMAT 5
APPENDIX. Reason Code Mapping Table 12
Effective Date | Version | Revision Type | Description |
Dec 6, 2024 | 1.0.0 | Release | An initial version of the dataset |
This guide describes the US Equity OTC Market Compliance Data dataset, an extension of the OTC Compliance Data File provided by OTC Markets.
The dataset covers the full universe of the OTC securities in the US Equity market (~22k), providing basic data fields such as ticker and security name; describing ‘penny stock’ status, and noting applicable OTC recommendation rule exemptions. It also offers other key OTC compliance fields such as OTC marketplaces, OTC Tier, Caveat Emptor, Company Reporting Standard, Shell Status, Shares Outstanding, and Number of Market Participants. The dataset is supplemented by the global and country-level FIGI codes for convenient securities identification.
algoseek provides US Equity OTC Market Compliance Data in plain-text gzip-compressed CSV files. The first row of the CSV file is a fixed header, followed by rows corresponding to individual securities data (see Table 1). The dataset is organized into two data files per trading day representing data prior to market open and after market close.
The data file name schema is yyyymmdd_pp.csv.gz, where yyyy is year, mm is month, dd is day, and pp is period: AM or PM.
Table 1 below summarizes the name, description, and data type for each data field (column).
Table 1: Data File Fields Schema
Field | Type (Format) | Missing | Description |
TradeDate | string (yyyymmdd) | Never | File creation date |
SecId | integer | Never | OTC Markets Group unique identifier for security |
CompId | integer | Never | OTC Markets Group unique company identifier for security |
Ticker | string | Blank | US markets symbol |
FIGI | string | Blank | The current FIGI code of the security |
ShareClassFIGI | string | Blank | The current global FIGI code of the security |
CompanyName | string | Never | Company Name |
SecurityName | string | Never | Security Name |
Venue | string | Never | US trading venue |
SecurityType | string | Blank | Security Type (e.g. common, unit, warrant ) |
SecurityClass | string | Blank | Security Class |
CaveatEmptor | string | Never | Caveat Emptor (Buyer Beware) Flag (Y/N) |
OTCTier | string | Never | OTC Market Tier – tier details outlined in appendix |
OTCTierId | integer | Never | OTC Tier identifier |
ReportingStandard | string | Never | Company reporting standard |
SecurityStatus | string | Never | Security Status |
ProprietaryQuoteEligible | string | Blank | Security is eligible for proprietary quoting under SEC Rule 15c2-11 |
PennyStockExempt | string | Never | Notes whether the security is exempt from being classified as a penny stock under SEC Rule 3a51-1 Y = Penny Stock exempt N = Does not qualify for any of the exemptions under Rule 3a51-1 |
PSPriceExemption | string | Never | If the security has a closing inside bid price of >= $5 then the security is exempt from being classified as a penny stock. Inside bid price requires 2 priced quotes to be valid. Y = Price Exemption N = Does not qualify for Price Exemption If security type = Unit then the closing inside bid divided by the number of common stock within the unit must be >= $5. In addition, any warrants or rights within the unit must have an exercise price >= $5 If security type = ADR, GDR or NYRS then the inside bid divided by the DR: Ordinary ratio must be > = $ 5 |
PreviousClosingInsideBid | decimal | Blank | Closing Inside Bid on previous trading day. 2 priced quotes required for a closing bid |
PreviousLastTrade | decimal | Blank | Previous Last Sale for security |
InvestmentCompanyExemption | string | Blank | If the issuer (company) is an investment company registered under the Investment Company Act of 1940 then the security is automatically exempt from being classified as a penny stock. Y = Investment Company Exemption N = Does not qualify for Investment Company Exemption |
PSQualifiedFinancials | string | Blank | IF OTC Markets does not have access to the required financials data in order to properly note the Net Tangible Asset or Average Revenue exemptions then value = N Y = Required Financial Data Available N = Required Financial Data Not Available |
NetTangibleAssetsExemption | string | Blank | If the issuer has been in continuous operation for at least 3 years and has Net tangible assets (i.e., total assets less intangible assets and liabilities) in excess of $2,000,000, or if the issuer has been in continuous operation for less than 3 years and has Net Tangible Assets of $5,000,000 the associated securities are exempt from being classified as a penny stock. Y = Net Tangible Assets Exemption N = Does not qualify for Net Tangible Assets Exemption Note: Above logic depends on qualified financial data being available. See Qualified Financial Data Available Field. |
NetTangibleAssets | integer | Blank | $ value of most recent annual Net Tangible Assets |
NetTangibleAssetsPED | string (yyyymmdd) | Blank | Period End Date of NTA value |
AverageRevenueExemption | string | Never | If the issuer’s mean revenue for the trailing 3 years >= $6 Million then the associated securities are exempt from being classified as a penny stock. Y = Average Revenue Exemption N = Does not qualify for Average Revenue Exemption Note: Above logic depends on qualified financial data being available. See Qualified Financial Data Available Field. |
AverageRevenue | integer | Blank | $ value of Average Revenue for past 3 years |
OTCRecRuleExempt | string | Never | If any of the OTC Recommendation Rule exemption = Y then value = Y ELSE value = N. Note: The exemption flag only applies to the exemptions noted below. It is possible that other exemptions noted in FINRA Rule 2114 apply (e.g. transaction level exemptions). |
OTCRecRulePriceExemption | string | Never | If the security has a closing inside bid price of > = $50 then the security is exempt from the OTC Recommendation Rule. Inside bid prices requires 2 priced quotes to be valid. Y = Price Exemption N = Does not qualify for Price Exemption If security type = Unit then the closing inside bid divided by the number of common stock within the unit must be > = $50. If security type = ADR, GDR or NYRS then the closing last trade or inside bid divided by the DR: Ordinary ratio must be > = $ 50 Previous Day Closing Bid Price noted above. |
OTCRecRuleQualifiedFinancials | string | Never | IF OTC Markets does not have access to the required financials data in order to properly note Asset/Shareholder Equity exemption then value = N Y = Required Financial Data Available N = Required Financial Data Not Available |
OTCRecRuleAssetExemption | string | Never | If the issuer has > = $50 Million in Total Assets AND > = 10 Million in Shareholder Equity for the most recent financial statements then the associated securities are exempt from the OTC recommendation rule. Y = Asset/Shareholder Equity Exemption N = Does not qualify for Asset/Shareholder Equity Exemption |
TotalAssets | integer | Blank | $ Value of Total Assets for most recent annual financial statement |
ShareholderEquity | integer | Blank | $ Value of Shareholder Equity most recent annual financial statement |
LastBalanceSheetPED | string (yyyymmdd) | Blank | Date of most recent annual Balance Sheet |
LastIncomeStatementPED | string (yyyymmdd) | Blank | Date of most recent annual Income Statement |
OTCRecRuleBankExemption | string | Never | If the issuer is a bank or insurance company, then the associated securities are exempt from the OTC recommendation rule. Y = Bank/Insurance Exemption N = Does not qualify for Bank/Insurance Exemption |
144AInformationAvailable | string | Never | If Issuer is exempt from reporting under Rule 12g3-2b or if current financial information is available for the issuer then value = Y else value = N. Y = Exempt or Required Financial Data Available N = Required Financial Data Not Available |
144A12g32bExemption | string | Never | Y = Exempt under Rule 12g3-2b N = Not Exempt under Rule 12g3-2b |
144AFinancialDataExemption | string | Never | If current Financial information is available then value = Y else value = N Y = Current Financial Information Available N = Current Financial Information Not Available |
LastAnnualBalanceSheetPED | string (yyyymmdd) | Blank | Date of most recent annual Balance Sheet |
FiscalYearEnd | string (ddmm) | Blank | Fiscal year end data in format of ddmm |
FilingCycle | string | Blank | Filing cycle of company |
LastReportDate | string (yyyymmdd) | Blank | Date of last 10K, Q, 8K or Alternative Report |
LastReportType | string | Blank | Type of last report |
12g32bExemptStatus | string | Never | Flag noting whether company is exempt from SEC Reporting under Rule 12g3-2b |
Bankruptcy | string | Never | Flag noting whether company is in bankruptcy |
Shell | string | Never | Flag noting whether the company is a shell company |
BankThrift | string | Never | Flag noting whether the company is either a bank/thrift or non-bank regulated company (e.g. insurance) |
AuditedFinancials | string | Never | Flag noting whether the company’s financials are Audited |
MarketParticipants | integer | Blank | Number of broker-dealers quoting the security |
20DayAvgVolume | integer | Blank | Mean share volume for past 20 trading days |
30DayAvgVolume | integer | Blank | Mean share volume for past 30 trading days |
LastSplitDate | string (yyyymmdd) | Blank | Last date of forward or reverse share dividend (split) |
LastSplitRatio | decimal | Blank | Share amount per 1 share of stock pre-split. Numbers > 1 = forward split. Number < 1 = reverse split. |
LastSplitComments | string | Blank | Text comments relating to respective split |
PreviousSplitDate | string (yyyymmdd) | Blank | Previous date of forward or reverse share dividend (split) |
PreviousSplitRatio | decimal | Blank | Share amount per 1 share of stock pre-split. Numbers > 1 = forward split. Number < 1 = reverse split. |
PreviousSplitComments | string | Blank | Text comments relating to previous split |
HomeMarketTradingTicker | string | Blank | Home market symbol for foreign securities (e.g. F shares, ADRs) |
HomeMarketTradingVenue | string | Blank | Home market trading venue for foreign securities |
HomeMarketTradingVenueTier | string | Blank | Home market trading venue tier. A venue tier is a subset of the main venue. For example the LSE AIM market. |
SharesOutstanding | integer | Blank | Shares outstanding for respective security |
SharesOutstandingAsOfDate | string (yyyymmdd) | Blank | Shares outstanding as of date |
TransferAgentVerified | string | Never | Flag noting if company profile data (e.g. description, officers, directors etc) is verified by the issuer. Verified data may not be more than six months old. See Company Profile Verified as of date field. |
CompanyProfileVerified | string | Never | Flag noting if company profile data (e.g. description, officers, directors etc) is verified by the issuer. Verified data may not be more than six months old. See Company Profile Verified as of date field. |
CompanyProfileVerifiedAsOfDate | string (yyyymmdd) | Blank | Profile verification as of date |
TransferAgent | string | Blank | Transfer Agent(s) associated with security. If multiple transfer agents are associated with security they will be separated by a semi-colon. |
TierAbbreviation | string | Never | The tier abbreviation field supplies the 2 letter abbreviation associated with respective security’s OTC Tier |
UNSQuoteOnly | string | Never | Notes whether the security may only be quoted Unsolicited on OTC Link ATS (Y/N Flag) |
OTCLinkECNEligibleFlag | string | Blank | Notes whether the security is eligible for OTC Link ECN (Y/N) |
DisclosureStatus | string | Blank | Issuer Disclosure Status |
ProprietaryQuoteEligibleEntryReasonCodes | string | Blank | Notes 15c-211 compliance basis for Proprietary Quote Eligibility. Multiple reason codes (integer(s)) are possible and will be delimited with a semi-colon (;). See Table 6 for Reason Code mapping and descriptions and applicable rule sections. |
DeterminationDates | string (yyyymmdd;yyyymmdd;...) | Blank | Notes determination date(s) for Proprietary Quote Eligibility Reason Code(s). Multiple dates are possible and will be delimited with a semi-colon(;). Dates will correlate to order of PQE Reason Codes. |
GracePeriod | string | Blank | Notes if security is in Grace Period for Rule 15c-211 compliance |
GracePeriodAnticipatedEndDate | string (yyyymmdd) | Blank | Notes anticipated final date of Grace Period for Rule 15c-211. If no change to 15c-211 compliance status prior to end date the security will lose Proprietary Quote Eligible status on following trading day. |
211ShellFlag | string | Blank | Notes if issuer is a shell company under rule 15c2-11 |
211ShellAsOfDate | string (yyyymmdd) | Blank | Date of initial proprietary quote for security (regardless of shell status). As of date is basis for 18 month limited application of piggyback exemption. Post 18 month timeframe (and continued 211 Shell flag = Y) the security will not qualify for piggyback exemption and may lose proprietary quote eligibility. |
211ShellDaysRemaining | integer | Blank | Number of days remaining on 18 month shell timeframe for piggyback exemption. If 18 month shell timeframe for piggyback exemption has expired, then value will be null. |
The Financial Instrument Global Identifier (FIGI) (formerly Bloomberg Global Identifier (BBGID)) is an open standard, unique identifier of financial instruments that can be assigned to instruments including common stock, options, derivatives, futures, corporate and government bonds, municipals, currencies, and mortgage products.
To get the available FIGIs for each OTC market securities, OpenFIGI API is used: OpenFIGI API
For the dataset, country-level FIGI (“compositeFIGI”) is used for the value of the “FIGI” field, and the global-level FIGI (“shareClassFIGI”) for the value of the “ShareClassFIGI”.
Reason Code ID | Reason Code Description | Rule Section |
1 | 211 Cleared by FINRA | (a)(1) |
2 | OTC Link Initial Information Review - SEC Reporting (Registration Statement) | (a)(2) - (b)(1) |
3 | OTC Link Initial Information Review - SEC Reporting (Reg A Offering) | (a)(2) - (b)(2) |
4 | OTC Link Initial Information Review - SEC Reporting | (a)(2) - (b)(3)(i) |
5 | OTC Link Initial Information Review - SEC Reporting (Reg A) | (a)(2) - (b)(3)(ii) |
6 | OTC Link Initial Information Review - SEC Reporting (Reg CF) | (a)(2) - (b)(3)(iii) |
7 | OTC Link Initial Information Review - SEC Reporting (Insurance Company) | (a)(2) - (b)(3)(iv) |
8 | OTC Link Initial Information Review - Insurance Company | (a)(2) - (b)(3)(v) |
9 | OTC Link Initial Information Review - 12g3-2(b) | (a)(2) - (b)(4) |
10 | OTC Link Initial Information Review - Catch-All | (a)(2) - (b)(5) |
11 | Exchange Delist | (f)(1) |
12 | Piggyback Qualified – SEC Reporting (Registration Statement) | (f)(3) - (b)(1) |
13 | Piggyback Qualified – SEC Reporting (Reg A Offering) | (f)(3) - (b)(2) |
14 | Piggyback Qualified – SEC Reporting | (f)(3) - (b)(3)(i) |
15 | Piggyback Qualified – SEC Reporting (Reg A) | (f)(3) - (b)(3)(ii) |
16 | Piggyback Qualified – SEC Reporting (Reg CF) | (f)(3) - (b)(3)(iii) |
17 | Piggyback Qualified – SEC Reporting (Insurance Company) | (f)(3) - (b)(3)(iv) |
18 | Piggyback Qualified – Insurance Company | (f)(3) - (b)(3)(v) |
19 | Piggyback Qualified – 12g3-2(b) | (f)(3) - (b)(4) |
20 | Piggyback Qualified – Catch-All | (f)(3) - (b)(5) |
21 | Municipal Security | (f)(4) |
22 | ADTV, Assets, Shareholder Equity | (f)(5) |
23 | Underwriter Quote | (f)(6) |
24 | Piggyback Qualified – Grace Period | (f)(3) - (ii)(c) |