Skip to content

DC geography formats + include macros run unmodified on Jenner#172

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

DC geography formats + include macros run unmodified on Jenner#172
jenner-analytics wants to merge 1 commit into
NeighborhoodInfoDC:masterfrom
jenner-analytics:jenner-check/initial-bundles

Conversation

@jenner-analytics

@jenner-analytics jenner-analytics commented Jul 10, 2026

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 Format_cnty03f.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 the library is how much of the geography knowledge lives in small, single-purpose include macros. %Fedtractno is a nice example: the SELECT block handles the empty and general cases with input( substr( ... ), 6.2 ), but carries an explicit when ( '11001008410' ) branch that rewrites tract 84.10 to 84.01 — a real-world census correction pinned right where anyone reading the code will see it. The same discipline shows up in %Octo_Quad blanking anything outside NW/NE/SW/SE, and in %msapma falling back from PMSA to the MSA/CMSA code. Formats and crosswalks like these are exactly the kind of code that is easy to break silently and worth having a check on.

Everything is under a single jenner-check/ directory — a byte-identical copy of each script (the macros carry a tiny caller and a few rows of sample FIPS/tract input so they run in isolation), the captured log and listing from the run, and a small shell runner. Nothing outside jenner-check/ is touched, no workflow files or hooks are added, and nothing runs on merge.

jenner-check/
├── run_jenner.sh
├── README.md
├── t001_format_cnty03f/        PROC FORMAT — $cnty03f county labels
├── t002_format_longusr/        PROC FORMAT — $longusr username translations
├── t003_style_rtf_arial_9pt/   PROC TEMPLATE — Rtf_arial_9pt ODS style
├── t004_macro_ucounty/         %ucounty — unique county ID
├── t005_macro_msapma/          %msapma — PMSA / MSA-CMSA fallback
├── t006_macro_fedtractno/      %Fedtractno — Geo2000 tract to OCTO key
├── t007_macro_octo_quad/       %Octo_Quad — DC quadrant normalize/validate
├── t008_macro_geoblk2000_octo/ %GeoBlk2000_Octo — OCTO census block ID
└── t009_macro_uplace/          %uplace — unique place ID

To try one straight away, check out this PR and run a bundle from the repo root:

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

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

On data: the runner uploads only the SAS source text of the script it runs (plus a two-line autoexec that caps input rows) to api.jenneranalytics.com, which runs it and returns the log and listing. It does not read or upload any data files — the sample rows live inside the scripts themselves, so anything else on your machine stays there — and nothing is sent unless you run one of these commands yourself. As with pasting a snippet into any hosted tool, only the code you run is transmitted, so you can review a script first if it ever embeds a value you would rather keep local.

Merge it, close it, or ignore it — all fine, and no response is expected. We won't open further PRs in this repository. If you'd prefer we never do, reply with no-more-prs in any comment or open an issue titled jenner-check: opt out and we'll stop.


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

Adds a self-contained jenner-check/ directory: nine bundles that run
scripts and include macros from this library against the hosted Jenner
SAS engine, each with the captured log/listing and pinned expected
fields, plus a small shell runner.

  t001 Format_cnty03f       PROC FORMAT $cnty03f county labels
  t002 Format_longusr       PROC FORMAT $longusr username translations
  t003 Style_rtf_arial_9pt  PROC TEMPLATE Rtf_arial_9pt ODS style
  t004 %ucounty             unique county ID (state+county FIPS)
  t005 %msapma              PMSA / MSA-CMSA fallback
  t006 %Fedtractno          Geo2000 tract to OCTO match key
  t007 %Octo_Quad           DC quadrant normalize + validate
  t008 %GeoBlk2000_Octo     OCTO census block ID
  t009 %uplace              unique place ID (state+place FIPS)

Nothing outside jenner-check/ is touched; nothing runs on merge.
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