Skip to content

%NCDB_2010_pl_vars, %ChgVar, and a PROC SQL view run on Jenner#64

Open
jenner-analytics wants to merge 1 commit into
NeighborhoodInfoDC:masterfrom
jenner-analytics:jenner-check/initial-bundles
Open

%NCDB_2010_pl_vars, %ChgVar, and a PROC SQL view run on Jenner#64
jenner-analytics wants to merge 1 commit into
NeighborhoodInfoDC:masterfrom
jenner-analytics:jenner-check/initial-bundles

Conversation

@jenner-analytics

Copy link
Copy Markdown

Jenneranalytics.com provides an API that runs SAS code, with support for more than 200 SAS procedures. You can also use it with AI assistants in a collaborative workspace. It's available for Mac on the Apple App Store, and by license for Windows and Linux.

We support the larger community by
(1) increasing access to SAS-compatible systems,
(2) by providing test coverage and a test coverage framework to public SAS repos in order to encourage the use of best practices in software engineering.

Your NCDB_2010_pl_vars.sas runs on Jenner unmodified — this PR adds a small compatibility bundle so you can see for yourself. It's the test we wrote for your library, shared in case it's useful, and was assembled with AI assistance as is most code in modern businesses today.

What stood out reading through NCDB is how much analytical intent lives in the macros themselves. %NCDB_2010_pl_vars derives the whole NCDB race/ethnicity vocabulary — the SHR bridged-race totals, the MIN single-race-alone counts, and the MAX alone-or-in-combination counts — straight out of the raw PL94-171 P001/P002 cells, and the if shr1d > 0 guard around the proportion block is a small, careful touch that keeps zero-population blocks from generating missing-value noise. %ChgVar is the other one I liked: a three-line macro that turns any decennial measure into its 1980->1990, 1990->2000, and 2000->2010 deltas, with the optional chgvar= name so a long variable like PopAsianPINonHispBridge gets a readable change name. Both read like they were written by someone who has had to maintain them.

The bundle lives entirely under jenner-check/ and nothing runs on merge — no workflow files, no hooks, nothing outside that directory is touched. Each bundle carries a copy of the relevant code, a small runner, and the captured log and listing from running it on Jenner:

jenner-check/
├── run_jenner.sh
├── README.md
├── t001_ncdb_2010_pl_vars/    # %NCDB_2010_pl_vars over synthetic PL94-171 blocks
├── t002_chgvar_pop_ward/      # %ChgVar decade-change vars by ward
└── t003_ncdb_views_metro_sql/ # PROC SQL metro-area view via put(ucounty,$ctym20f.)

To try one directly against the hosted API, check out this PR and run from the repo root:

# Check out this PR (puts you on its branch); then run from the repo root:
gh pr checkout 64
curl -sS --data-binary @jenner-check/t002_chgvar_pop_ward/script.sas https://api.jenneranalytics.com/v1/quick

Or cd jenner-check && ./run_jenner.sh --all re-runs every bundle and checks the pinned fields in each expected.json. The API is free to try with no signup; full API reference is in the docs.

On what leaves your machine: the runner uploads only the SAS source text of the script it runs (plus a two-line autoexec) to api.jenneranalytics.com, which runs it and returns the log and listing. It does not read or upload any data files, so anything sitting next to a script stays local, and nothing is sent unless you run a command yourself — only the code you run is transmitted, the same as pasting a snippet into any hosted tool. Since a script's own source is what's sent, you can review it first if it ever embeds sensitive values inline.

Merge it, close it, or ignore it — all fine, and no response is expected. We won't open further PRs in this repo. To opt out of any future ones for good, put no-more-prs in any comment or open an issue titled jenner-check: opt out.


Lawrence W. Sinclair
CEO / Jenner Analytics Ltd
linkedin.com/in/lwsinclair/

Adds a self-contained jenner-check/ directory exercising repo-authored SAS
against api.jenneranalytics.com:
  t001_ncdb_2010_pl_vars    - %NCDB_2010_pl_vars macro over synthetic PL94-171 data
  t002_chgvar_pop_ward      - %ChgVar decade-change vars by ward
  t003_ncdb_views_metro_sql - PROC SQL metro-area view via put(ucounty,$ctym20f.)

Each bundle keeps the repo's macro/SQL logic and supplies small synthetic
inputs (the NCDB source data are not in the repo). Nothing runs on merge;
all files live under jenner-check/. A bash+curl runner (run_jenner.sh)
re-runs each bundle and checks the pinned fields in expected.json.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant