The clean database has five tables in data/. The first
table gives the row count, date range and number of distinct tickers of
each table. The tables after it give the percent of missing values in
every column.
| table | rows | distinct tickers | date range |
|---|---|---|---|
| company | 139 | 139 | list_date: 1962-02-09 to 2025-11-27; delist_date: Inf to -Inf |
| universe_q | 2,000 | 139 | quarter_end: 2020-12-31 to 2025-09-30 |
| price_daily | 165,930 | 139 | date: 2021-01-04 to 2025-12-31 |
| financials_q | 3,559 | 139 | period_end: 2019-09-30 to 2025-12-31; public_date: 2019-11-14 to 2026-03-31 |
| index_daily | 1,459 | NA | date: 2020-01-02 to 2025-12-31 |
company
| column | percent missing |
|---|---|
| ticker | 0.00 |
| name | 0.72 |
| industry | 0.00 |
| list_date | 0.00 |
| delist_date | 100.00 |
universe_q
| column | percent missing |
|---|---|
| ticker | 0 |
| quarter_end | 0 |
| mktcap | 0 |
| rank | 0 |
price_daily
| column | percent missing |
|---|---|
| ticker | 0 |
| date | 0 |
| adj_close | 0 |
| close_unadj | 0 |
| volume | 0 |
| shares | 0 |
| mktcap | 0 |
financials_q
| column | percent missing |
|---|---|
| ticker | 0 |
| period_end | 0 |
| assets | 0 |
| liabilities | 0 |
| equity | 0 |
| ni_parent | 0 |
| revenue | 100 |
| public_date | 0 |
index_daily
| column | percent missing |
|---|---|
| date | 0 |
| taiex_close | 0 |
Comment. All key columns are complete (no missing tickers or dates), and every table has one row per primary key. The column company.delist_date, financials_q.revenue is entirely missing because it was not part of the TEJ download. Among the other columns the highest share of missing values is 0.72% in company.name.
| industry | n_stocks_total | n_stocks_12m |
|---|---|---|
| M2324 | 23 | 23 |
| M2800 | 16 | 16 |
| M2325 | 15 | 15 |
| M2328 | 15 | 15 |
| M2600 | 8 | 8 |
| M2331 | 7 | 7 |
| M1500 | 6 | 6 |
| M1722 | 5 | 5 |
| M2326 | 4 | 4 |
| M2327 | 4 | 4 |
| M3700 | 4 | 4 |
| M1200 | 3 | 3 |
| M1300 | 3 | 3 |
| M2000 | 3 | 3 |
| M2200 | 3 | 3 |
| M2329 | 3 | 3 |
| M9900 | 3 | 3 |
| M1100 | 2 | 2 |
| M1400 | 2 | 2 |
| M2900 | 2 | 2 |
| M1600 | 1 | 1 |
| M1800 | 1 | 1 |
| M1900 | 1 | 1 |
| M2100 | 1 | 1 |
| M2500 | 1 | 1 |
| M3600 | 1 | 1 |
| M3800 | 1 | 1 |
| M9700 | 1 | 1 |
Comment. 139 of the 139 companies have at least 12 months of prices; the largest industry group is M2324 with 23 stocks. Every company has a full year or more of prices.
| quarter_end | prev_quarter_end | n_stocks | entered | left | turnover_pct |
|---|---|---|---|---|---|
| 2020-12-31 | NA | 100 | NA | NA | NA |
| 2021-03-31 | 2020-12-31 | 100 | 4 | 4 | 4 |
| 2021-06-30 | 2021-03-31 | 100 | 10 | 10 | 10 |
| 2021-09-30 | 2021-06-30 | 100 | 6 | 6 | 6 |
| 2021-12-31 | 2021-09-30 | 100 | 4 | 4 | 4 |
| 2022-03-31 | 2021-12-31 | 100 | 6 | 6 | 6 |
| 2022-06-30 | 2022-03-31 | 100 | 7 | 7 | 7 |
| 2022-09-30 | 2022-06-30 | 100 | 7 | 7 | 7 |
| 2022-12-31 | 2022-09-30 | 100 | 3 | 3 | 3 |
| 2023-03-31 | 2022-12-31 | 100 | 5 | 5 | 5 |
| 2023-06-30 | 2023-03-31 | 100 | 5 | 5 | 5 |
| 2023-09-30 | 2023-06-30 | 100 | 6 | 6 | 6 |
| 2023-12-31 | 2023-09-30 | 100 | 3 | 3 | 3 |
| 2024-03-31 | 2023-12-31 | 100 | 5 | 5 | 5 |
| 2024-06-30 | 2024-03-31 | 100 | 3 | 3 | 3 |
| 2024-09-30 | 2024-06-30 | 100 | 3 | 3 | 3 |
| 2024-12-31 | 2024-09-30 | 100 | 5 | 5 | 5 |
| 2025-03-31 | 2024-12-31 | 100 | 4 | 4 | 4 |
| 2025-06-30 | 2025-03-31 | 100 | 4 | 4 | 4 |
| 2025-09-30 | 2025-06-30 | 100 | 4 | 4 | 4 |
Comment. On average 4.9 stocks entered and 4.9 left the top 100 each quarter, so about 4.9% of the list changes per quarter. Turnover was highest at 2021-06-30 with 10 entrants; the first quarter-end has no previous quarter to compare with.
| ticker | month | month_end | px_date | adj_close | ret |
|---|---|---|---|---|---|
| 1101 | 2021-01-01 | 2021-01-31 | 2021-01-29 | 29.6251 | NA |
| 1101 | 2021-02-01 | 2021-02-28 | 2021-02-26 | 30.9902 | 0.0461 |
| 1101 | 2021-03-01 | 2021-03-31 | 2021-03-31 | 34.5319 | 0.1143 |
| 1101 | 2021-04-01 | 2021-04-30 | 2021-04-29 | 38.4426 | 0.1132 |
| 1101 | 2021-05-01 | 2021-05-31 | 2021-05-31 | 38.0736 | -0.0096 |
| 1101 | 2021-06-01 | 2021-06-30 | 2021-06-30 | 37.6309 | -0.0116 |
| 1101 | 2021-07-01 | 2021-07-31 | 2021-07-30 | 38.8115 | 0.0314 |
| 1101 | 2021-08-01 | 2021-08-31 | 2021-08-31 | 38.2735 | -0.0139 |
| 1101 | 2021-09-01 | 2021-09-30 | 2021-09-30 | 40.2879 | 0.0526 |
| 1101 | 2021-10-01 | 2021-10-31 | 2021-10-29 | 38.1155 | -0.0539 |
| 1101 | 2021-11-01 | 2021-11-30 | 2021-11-30 | 36.3381 | -0.0466 |
| 1101 | 2021-12-01 | 2021-12-31 | 2021-12-30 | 37.9180 | 0.0435 |
| 1101 | 2022-01-01 | 2022-01-31 | 2022-01-26 | 37.0095 | -0.0240 |
| 1101 | 2022-02-01 | 2022-02-28 | 2022-02-25 | 37.4045 | 0.0107 |
| 1101 | 2022-03-01 | 2022-03-31 | 2022-03-31 | 39.4189 | 0.0539 |
(first 15 of 8,203 rows; the full table is
output/q3_monthly_returns.csv)
Comment. There are 8,203 stock-months, of which 8,064 have a return; the others are the first month of each stock’s history (including January 2021, because prices start in January 2021) or months after a missing month. The mean monthly return is 1.75%, the median is 0.70%, and 5 returns exceed +100%.
| industry | n_stocks | n_stock_months | mean_monthly_ret | sd_monthly_ret |
|---|---|---|---|---|
| M1722 | 5 | 226 | 0.0543 | 0.2325 |
| M2600 | 8 | 472 | 0.0316 | 0.1737 |
| M2328 | 15 | 883 | 0.0265 | 0.1257 |
| M1800 | 1 | 59 | 0.0254 | 0.1594 |
| M1500 | 6 | 354 | 0.0234 | 0.1288 |
| M2325 | 15 | 885 | 0.0227 | 0.1082 |
| M1600 | 1 | 59 | 0.0223 | 0.1382 |
| M2331 | 7 | 413 | 0.0200 | 0.1063 |
| M2329 | 3 | 177 | 0.0183 | 0.0883 |
| M2324 | 23 | 1,291 | 0.0181 | 0.1334 |
| M2800 | 16 | 944 | 0.0153 | 0.0486 |
| M2327 | 4 | 236 | 0.0139 | 0.0581 |
| M2000 | 3 | 177 | 0.0138 | 0.1436 |
| M2500 | 1 | 59 | 0.0101 | 0.0644 |
| M9900 | 3 | 177 | 0.0092 | 0.0900 |
| M1900 | 1 | 59 | 0.0086 | 0.0860 |
| M2326 | 4 | 236 | 0.0080 | 0.1157 |
| M3800 | 1 | 59 | 0.0058 | 0.0846 |
| M1400 | 2 | 118 | 0.0053 | 0.0627 |
| M2900 | 2 | 118 | 0.0049 | 0.0712 |
| M1200 | 3 | 177 | 0.0039 | 0.0443 |
| M1100 | 2 | 118 | 0.0013 | 0.0576 |
| M2100 | 1 | 59 | 0.0011 | 0.0790 |
| M3600 | 1 | 59 | -0.0013 | 0.1340 |
| M1300 | 3 | 177 | -0.0037 | 0.0842 |
| M2200 | 3 | 177 | -0.0037 | 0.0779 |
| M3700 | 4 | 236 | -0.0048 | 0.0780 |
| M9700 | 1 | 59 | -0.0063 | 0.0693 |
Comment. Average monthly returns by industry range from -0.63% to 5.43%, with the highest in M1722. The most volatile industry is M1722 (standard deviation 23.25%); returns are not winsorized, so extreme months are included.
## No stock has a gap of more than 10 trading days.
Comment. No stock has a gap longer than 10 trading
days inside its price history. Another 139 stocks start late or end
early in the sample because they listed or were delisted
(output/q5_late_start_or_early_end.csv).
One row per stock-month: next-month return, log market cap, book-to-market and ROE, for stocks that were in the top 100 at the previous quarter-end, using only statements whose statutory deadline had already passed at the end of month t.
| ticker | month_end | ret_next | log_mktcap | bm | roe | period_end_used | public_date |
|---|---|---|---|---|---|---|---|
| 1101 | 2021-01-31 | 0.0461 | 12.3700 | 0.8810 | 0.1227 | 2020-09-30 | 2020-11-14 |
| 1101 | 2021-02-28 | 0.1143 | 12.4196 | 0.8383 | 0.1227 | 2020-09-30 | 2020-11-14 |
| 1101 | 2021-03-31 | 0.1132 | 12.5383 | 0.7445 | 0.1227 | 2020-09-30 | 2020-11-14 |
| 1101 | 2021-04-30 | -0.0096 | 12.6623 | 0.6933 | 0.1175 | 2020-12-31 | 2021-03-31 |
| 1101 | 2021-05-31 | -0.0116 | 12.6527 | 0.7218 | 0.1174 | 2021-03-31 | 2021-05-15 |
| 1101 | 2021-06-30 | 0.0314 | 12.6517 | 0.7225 | 0.1174 | 2021-03-31 | 2021-05-15 |
| 1101 | 2021-07-31 | -0.0139 | 12.6826 | 0.7005 | 0.1174 | 2021-03-31 | 2021-05-15 |
| 1101 | 2021-08-31 | 0.0526 | 12.6004 | 0.7770 | 0.1172 | 2021-06-30 | 2021-08-14 |
| 1101 | 2021-09-30 | -0.0539 | 12.6518 | 0.7381 | 0.1172 | 2021-06-30 | 2021-08-14 |
| 1101 | 2021-10-31 | -0.0466 | 12.5965 | 0.7800 | 0.1172 | 2021-06-30 | 2021-08-14 |
| 1101 | 2021-11-30 | 0.0435 | 12.5488 | 0.7841 | 0.1005 | 2021-09-30 | 2021-11-14 |
| 1101 | 2021-12-31 | -0.0240 | 12.5914 | 0.7514 | 0.1005 | 2021-09-30 | 2021-11-14 |
| item | n |
|---|---|
| stock-months eligible (top 100 at previous quarter-end) | 6,000 |
| dropped: non-positive book equity | 0 |
| rows kept in Q6 table | 6,000 |
| rows with missing next-month return | 100 |
| rows with missing log market cap | 0 |
| rows with missing book-to-market | 0 |
| rows with missing ROE | 8 |
Comment. The table has 6,000 stock-months after dropping 0 with non-positive book equity. It is missing the next-month return for 100 rows (for example December 2025, whose next month is outside the sample) and ROE for 8 rows.
| ticker | month_end | statement period used | public by (deadline) | days public before month-end |
|---|---|---|---|---|
| 1101 | 2022-01-31 | 2021-09-30 | 2021-11-14 | 78 |
| 1101 | 2022-02-28 | 2021-09-30 | 2021-11-14 | 106 |
| 1101 | 2022-03-31 | 2021-09-30 | 2021-11-14 | 137 |
| 1101 | 2022-04-30 | 2021-12-31 | 2022-03-31 | 30 |
| 1101 | 2022-05-31 | 2022-03-31 | 2022-05-15 | 16 |
| 1101 | 2022-06-30 | 2022-03-31 | 2022-05-15 | 46 |
| 1101 | 2022-07-31 | 2022-03-31 | 2022-05-15 | 77 |
| 1101 | 2022-08-31 | 2022-06-30 | 2022-08-14 | 17 |
| 1101 | 2022-09-30 | 2022-06-30 | 2022-08-14 | 47 |
| 1101 | 2022-10-31 | 2022-06-30 | 2022-08-14 | 78 |
| 1101 | 2022-11-30 | 2022-09-30 | 2022-11-14 | 16 |
| 1101 | 2022-12-31 | 2022-09-30 | 2022-11-14 | 47 |
Comment. At each month-end the statement used was made public (statutory deadline) before that date: at the end of June the table uses the March quarter, not June. The minimum gap between the deadline and the month-end over all 6,000 rows is 16 days, so no row uses information from the future.