Files
stack/docs/docs/cli/comments-extract-ocr.md
kert b1e06b1b9e feat(bls): OEWS occupation wages + CES health-care employment — bls.oews / bls.ces, stack bls oews|ces, notebook 7f (refs #695)
OEWS: the BLS API serves only the latest OEWS year, so history comes
from the annual oesm{yy}nat.zip files (2013–2024), which bls.gov only
serves to a full browser header set; each zip's national_M{year}_dl
sheet (xls through 2013, xlsx after; OCC_GROUP through 2018, O_GROUP
plus area/industry columns from 2019) is normalised to one row per SOC
occupation with employment and the hourly/annual wage distribution,
suppressed cells (* # **) as NULL, and the BLS series-id prefix kept
per row. One bib Source per release (module:bls, table:bls.oews,
source:bls-website, year:N) and a cms.ingest_log row with the zip's
sha256.

CES: a closed registry of employment (01) and average hourly earnings
(03) series for health care, ambulatory care, offices of physicians,
home health, hospitals and nursing/residential care (CES65<industry>
<type>), pulled through the public API in 10-year × 25-series chunks
(20 × 50 with BLS_API_KEY), monthly rows with the series id on every
row, one bib Source per series.

stack bls oews [--year]... [--write [--offline]] [--occ]...;
stack bls ces [--write] [--series]... [--annual]. Notebook 7f overlays
clinical-staff wages (31-9092, 29-2061, 29-1141, 29-1171) and
physician-office / ambulatory employment on the family's exposure
dates. CLI docs regenerated.
2026-09-22 16:25:46 -04:00

1.8 KiB

title, sidebar_position
title sidebar_position
stack comments extract-ocr 38

stack comments extract-ocr

Usage: stack comments extract-ocr [OPTIONS]                                    
                                                                                
 OCR pass for ``ocr_needed`` attachments (#663).                                
                                                                                
 Finds comment dirs whose combined.md frontmatter flags any                     
 attachment ``ocr_needed`` and re-extracts them with the RapidOCR               
 engine (rewrites combined.md + sibling transcripts, keeps the flag             
 on anything OCR can't clear). CPU-only, pip-only:                              
                                                                                
     uv run --with rapidocr-onnxruntime stack comments extract-ocr              
                                                                                
╭─ Options ────────────────────────────────────────────────────────────────────╮
│ --root          PATH     Comments root dir. [default: .state/comments]       │
│ --docket        TEXT     Limit to one docket (e.g. CMS-2023-0121).           │
│ --limit         INTEGER  Cap comment dirs processed this run. 0 = no cap.    │
│                          [default: 0]                                        │
│ --help                   Show this message and exit.                         │
╰──────────────────────────────────────────────────────────────────────────────╯