If you frequent my site, you'll notice that I
update it and the projects I create quite a bit. Due to size and
scope, updates are scattered all around. This listing serves as a
quick reference for those who only want to look at the newest changes.
By default, the latest 15 updates are listed below (with links to the
changed or added content). If you are looking for a specific area of the
site, use the search field above or use the site nav links in the top
right and bottom right of the page. Area specific links are typically on the
left side
[ /sean/datasets ] :: (tickers.csv, volume.html, ma200.html) Tickers.csv file now includes a company NAME col (entries dbl-quote wrapped if it contains commas). The company name is now part of the row hover popups. Be aware that some company names use accented characters in their names when parsing this file. Updated MA200 and Volume dashboard tables to display a 'ER' (Earnings Report) col (for sorting purposes) which acts as a countdown to the day.
[
edit
]
[ /sean/datasets/volume.html ] :: (volumehistory.py, volume.py) Created a new dataset to store trade volumes for the last 365 days in volumehistory_365.txt. This data is used along with pricehistory_365.txt and ticker.csv in compiling my new Volume Spike Dashboard. This page will display tickers along with its last 3 trading day volumes as well as its 20d trade volume average. More useful in spotting tickers that are seeing sudden upwards moves but also down. Will update post pricehistory_365.txt and volumehistory_365.txt update every weekday.
[
edit
]
[ /sean/code/cats ] :: (cats.php) v4.17-claude. Ran cats.php thru Claude Code and it addressed a number of issues that are outlined in the script itself. New file is posted in here or by clicking on the source icon in the Cats area.
[
edit
]
[ /sean/datasets ] :: (tickers.py, pricehistory.py, ma200.py, trends.py, YoY_pct.py) Moved weekday run times to start at 1:10 pm PDT (10 minutes after market close) for pricehistory dataset updates followed by a 30 minute window for all cronjobs that require that data.
[
edit
]
[ /sean/datasets/ma200.html ] :: (ma200.py) Added 200d+ which totals the number of positive return days a ticker has had in the past 200 trade days. Also added icons to the right of each ticker that links out to Yahoo Finance and MarketWatch for the ticker it is next to.
[
edit
]
[ /sean/code/cats ] :: (cats.php) Multiple search terms were being treated as AND conditions without '+' operator. Non-operator prefaced term searches are now OR based.
[
edit
]
[ /sean/datasets ] :: (tickers.py) Replaced all periods '.' in ticker names to dashes '-' as yFinance does not support periods in tickers. Example: BRK.A -> BRK-A. Beefed up detect_split() to trigger price history refresh if a split is detected mathematically via ratios and corporate announcement via yf.Ticker(ticker).splits. Script will refresh full histories on some tickers with large (+/-33%) 1 day moves. Example: CRNX had a 98% price jump (no split) on July 7, 2026. Script detects and logs it as such:
[SPLIT] Price jump detected for CRNX: 1:2 reverse split (estimated) on 2026-07-07
[SPLIT] CRNX — 1:2 reverse split (estimated) on 2026-07-07
[SPLIT] Refreshing full history for CRNX
In the event of a corporate announcement:
[SPLIT] Corporate action detected for CRWD: 4:1 forward split on 2026-07-02
[SPLIT] CRWD - 4:1 forward split on 2026-07-02
[SPLIT] Refreshing full history for CRWD
I'm using a 7 day window as yFinance doesn't update prices the day of or the day after a split thereby massive moving tickers will age out of the validation window in that timeframe.
[
edit
]
[ /sean/datasets ] :: (ma200.py, YoY_pct.py) Added a 'sector-> subsector' popup that displays next to the mouse pointer when hovering over a ticker row. Search field now allows for ticker, sector, and subsector searching.
[
edit
]
[ /sean/datasets ] :: (tickers.py, pricehistory.py, ma200.py, trends.py, YoY_pct.py) Moved update run time to 3 pm PDT for all cron jobs. If I find that yFinance is posting a complete set of price data sooner after market close, I'll move the update time closer to 1 pm PDT.
[
edit
]
[ /sean/datasets/YoY_pct.html ] :: (YoY_pct.py) Script no longer generates .txt or .csv files natively. I've switched to a html dashboard layout with on-page column sorting, my portfolio filtering, and the ability to export to csv. This page gets updated every weekday at 5pm PDT.
[
edit
]
[ /sean/datasets/ma200.html ] :: (ma200.py) Script no longer generates .txt or .csv files natively. I've switched to a html dashboard layout with on-page column sorting, my portfolio filtering, and the ability to export to csv. Added a ranking column goes off highest MA200% and a 1w% column that can be sorted to reorder those tickers that are experiencing a growth spurt. This page gets updated every weekday at 5pm PDT.
[
edit
]
[ /sean/datasets/trends.html ] :: (trends.py) Clicking on sectors and subsectors titles will list all the tickers in that group. Data links are included at the top of the report.
[
edit
]
[ /sean/code/cats ] :: (update.php, files.php, caption.php) These plugins have been updated. Use the Source link in the navbar to download the new plugins. No site modifications are needed, simply replace your existing plugins with these.
[
edit
]
[ /sean/code/cats ] :: (cats.php) Rewrite of search_and_sort() function to be more robust and handle multiple fields (primary, secondary, ...) when defining [order].
[
edit
]
Displaying 15 [ 1
-15 ] of 69 matching entries
(out of 69) in descending order