Sunday, Jul 19th  2026 @ 15:14:49 Daylight Savings Time 
 
 
  
www . shrum.net /updates
All scripting, coding, html, layout, design, .... basically everything here done by yours truly. - S

     

  
 
 
 
filter
 clear search
 
 
$domain$ :: $subdomain$

Site Modifications + Code Changelogs

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
 
$domain$ :: $subdomain$ :: $title$
# of Columns
PAGINATION NAVIGATION
RECORDS PER PAGE
 

1 2 3 4 5 6 7

     Page 2 of 5     

90 135 180 - All

 

Displaying 15 [  16 - 30  ] of 69 matching entries (out of 69) in descending order

 
 

 
  2026.06.28 @ 21.31.26

 

  [ /sean/datasets/trends.html ] :: (trends.py) Created a sector and subsector trends dashboard that updates daily at 5pm PDT. Includes top sector and subsector movers for the day, the week, and the month. Subsector tables breakout even more: 1d%, 2d%, 3d%, 4d%, 5d%, 1m%, 2m%, 3m%, 6m%, 200d%. It is generated off 2 files I create and maintain in /sean/datasets:
  • tickers.csv - master ticker,sector,subsector file
  • pricehistory_365.txt - ticker historical prices for the past 365 days

The dashboard data is updated every weekday at 5pm PDT (as I don't have paid access to live data).  [ edit ]

    
 
 

 
  2026.06.28 @ 20.42.26

 

  [ /sean/code/cats/files/plugins ] :: (csv.php) Created a CSV file importer. Plugin can be viewed in the plugins folder link. Here is a raw output sample page pulling in the latest '/sean/datasets/YoY_pct_10y.csv' file (~3000 records). Here is a link to the same file showing only those tickers with a positive gains Streak >=5 years sorted by Streak,AVG% (overall 10y) in desc order (~100 records).  [ edit ]
    
 
 

 
  2026.06.25 @ 23.40.59

 

  [ /sean/datasets ] :: (tickers.csv) Removed CWAN as it went private.  [ edit ]
    
 
 

 
  2026.06.23 @ 18.23.32

 

  [ /sean/code/cats/files/plugins ] :: (update.php) Saw a strange reaction where the first record in the data array was omitting the 'value-added' cols on the first record causing the returned array to be missing its complete header row. This resulted in search-and-replace functions skipping those added values during token replacement. I've modified it so all array rows are built at array construction time versus being appended later. This solved the issue on my end. Simply replace your update.php with the newer file. No other changes are needed.  [ edit ]
    
 
 

 
  2026.06.22 @ 18.17.09

 

  [ /sean/datasets ] :: (pricehistory.py) Script was creating weekday date cols and left price values blank (as yFinance returns none) on market observed holidays. Updated script to purge HOLIDAY cols that return no data due to market observance (such as Juneteenth, June 19, 2026). Pricehistory_*.txt files are updated.  [ edit ]
    
 
 

 
  2026.06.21 @ 16.44.52

 

  [ /sean/datasets ] :: (tickers.csv) I've removed BVC and MGRT tickers from the master list as their market cap no longer meets my threshold ($1B) but more so their reverse splits were reeking havoc in my reports and I'm too lazy to build an exclusions file.  [ edit ]
    
 
 

 
  2026.06.19 @ 19.12.11

 

  [ /sean/datasets ] :: (YoY_pct.py) YoY % analysis; calendar-year end-to-end YoY percent report spanning 10y.

This report analyzes year-over-year (YoY) percentage changes using raw, unadjusted calendar-year price data. For each ticker, the script identifies the earliest valid price within each calendar year and compares it to the most recent price in that same year. The resulting YoY percentage reflects the end-to-end performance for that year, without smoothing, normalization, or averaging. TXT and CSV formats.

The '+Streak' column highlights long-term postive year over year consistency. This provides a quick visual / sorting indicator of sustained multi-year strength, helping highlight companies that have demonstrated durable, repeated positive performance over extended periods.

Word of caution: Beware of stock price consolidation (reverse stock splits) results. I have no way of reliably detecting these. As always, if a value seems suspect, trust your gut and verify it with your own trusted source.  [ edit ]

    
 
 

 
  2026.06.18 @ 18.41.06

 

  [ /sean/datasets ] :: (pricehistory.py) Yfinance has finally updated the price on KLAC post split to reflect the new stock price. Split detection pulled a full history for the updated ticker price as designed.  [ edit ]
    
 
 

 
  2026.06.15 @ 17.26.10

 

  [ /sean/datasets ] :: (pricehistory.py) Revision to stock price storage. Old prices on a ticker that has a stock split needs to be updated otherwise reports using the data will generate incorrect output. Modified script to do split checking when yfinance updates single stock pricing to force a full price history refresh. (KLAC is reporting a MA200 of $1394.39 when the ATH price today was $256.43 post 20-1 split).

What I've found: Yfinance has not yet updated their historical price data and as such the values coming from there are PRE-SPLIT values. This will mess with any reports doing historical price analysis against current market values until things are updated on the yfinance side. Just be aware of this if you start seeing tickers with unexplainable massive % gain or declines as this is the culprit. You've been informed.  [ edit ]

    
 
 

 
  2026.06.12 @ 12.30.41

 

  [ /sean/datasets ] :: (stability.py) Script outputs 2 sets of distinct but similar reports (5 in total to date). Each one will cover 1M, YTD, 1Y, 2Y, and 5Y and return top 20 results per timeframe. Files with 'nofilter' in the name have no chaos filtering and no volatility smoothing (1). More reports will appear later as I deem them needed.

+ [SET 1] STABILITY BASED

Currently, 3 reports with varying "chaos" limiters and a 'nofilter' report.

Reports that use chaos values will list them in the filename.

Example: stability-chaos=[Move]pct@[Limit]pct@[Smooth].txt

  • Move
    ..... threshold % for abnormal daily returns,
  • Limit
    ..... allowed % of abnormal days
  • Smooth
    ..... volatility dampener; 1=none, higher=magnified, lower=minimized

Current file(s):

  • stability-chaos=4pct@10pct@1.5.txt ("stability obsessed")
  • stability-chaos=5pct@12pct@1.0.txt ("sane institutional")
  • stability-chaos=6pct@18pct@0.7.txt ("momentum friendly")
  • stability-nofilter.txt ("Catch all")

+ [SET 2] CATAGORY BASED

Reports that prioritize based on catagory order in filename: (1st sort)_(2nd sort)_(3rd sort)_(etc). The current catagories available are:

  1. Return
  2. Updays
  3. Consistency
  4. Efficiency
  5. Stability
  6. Momentum

Current file(s):

  • momentum_stability_return-nofilter.txt
Use at your own discretion, and as always, dbl-check values.  [ edit ]
    
 
 

 
  2026.06.10 @ 18.04.06

 

  [ /sean/datasets ] :: (ma200.py) Creates a report based on the 200d moving averages of the contents of tickers.txt and price histories from pricehistory_365.txt in the datasets folder.
  • ma200.txt
  • ma200.csv
These files are identical but the csv allows for easier importing into spreadsheet apps for column sorting.

Fields are: Ticker, Current price, MA200 average price, MA%, 1w%, 1m%, and YTD%.

Reports refresh daily at 5pm PST.  [ edit ]

    
 
 

 
  2026.05.15 @ 22.30.45

 

  [ /sean/datasets ] :: (pricehistory.py) Update pricehistory script to address an issue where adding new tickers to an existing pricehistory_max.txt file was not getting all price data and only returning current price data. Also updated the script to omit all trailing comma separators on tickers that have no extended price data for dates outside it's IPO date in an effort to bring down the overall file sizes. Dataset files are being updated now.  [ edit ]
    
 
 

 
  2026.05.04 @ 22.29.03

 

  [ /sean/datasets ] :: (pricehistory.py) Created a new subarea for datasets I generate for analysis. I'm now generating and hosting CSV-formatted, stock market price history files at https://sean.shrum.net/datasets. This is keyed to tickers.csv located in the same location.
  • pricehistory_max.txt :: ALL price values available thru yfinance
  • pricehistory_365.txt :: latest 365 weekdays price values (faster d/l)
Files have .txt extensions for browser viewing but only need to be renamed or appended with '.csv' when stored locally (not needed but aids in spreadsheet processing without prompting you for delimiter type). All pricehistory files will have current date closing values auto updated every weekday starting at 6pm PST in col 2. Header is ticker followed by newest date first, next date, etc... Check file timestamp before d/l'ing to be sure it has been updated.  [ edit ]
    
 
 

 
  2026.05.04 @ 20.29.03

 

  [ /sean/datasets ] :: (tickers.txt) Creating a system that will pull ticker values for later local analysis and reporting. Tickers.txt will be populated with Dow 30, Nasdaq 100, S&P 500, and the Russell 2000 as well as a few others I track. Roughly 3000 tickers, My threshold for inclusion will be tickers with a market cap of >$1B. This file will be used to populate pricehistory output text files.  [ edit ]
    
 
 

 
  2026.04.13 @ 17.31.24

 

  [ /sean/code/launcher ] :: Added volume label monitoring to Launcher which makes my VolRun script obsolete. If you are using VolRun, you will want to upgrade to Launcher 3.3.18.0 or later.  [ edit ]
    
 
 

Displaying 15 [  16 - 30  ] of 69 matching entries (out of 69) in descending order

 

1 2 3 4 5 6 7

     Page 2 of 5     

90 135 180 - All

 
# of Columns
PAGINATION NAVIGATION
RECORDS PER PAGE
 
 
top

Page generation time = 0.0071/s
Page size (minus graphic elements) = 98kb

bookmark

feedback print

back

Since 1992 - shrum.net

Copyright 2026 Sean Shrum

 
 
CATS.PHP [C]ontent [A]cquisition and [T]emplating [S]cript v.4.17-claude [ 2026.07.08 ] by Sean Shrum