Skip to content

CCM/DSE link builders run unmodified on Jenner - #2

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

CCM/DSE link builders run unmodified on Jenner#2
jenner-analytics wants to merge 1 commit into
attilabalogh: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 DSE_Link.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 package, shared in case it's useful, and was assembled with AI assistance as is most code in modern businesses today.

The header comment in Code/CCM_Link.sas reproduces WRDS's own ccm_lnktable.sas worked example almost verbatim, right down to the two-row GVKEY-001043 collapse illustration — running that exact algorithm against a mock link-history table reproduces the documented output character-for-character, which made it a satisfying one to verify. Examples from 007-CEO/Example_AWE.sas stood out too: the AT&T Wireless walkthrough chains a director-year expansion, an ISIN-to-CUSIP substr() derivation, and a CRSP date-range join, and lands on the same GVKEY-134845, 2001-2004 conclusion the trailing comment states — a genuinely well-checked worked example, not just a sketch.

jenner-check/ is a self-contained bundle: seven of your scripts (the CCM/DSE/BX-SDC link builders, the CRSP-Compustat reverse lookup, one worked matching example, the example-table generator, and the manual lookup helper), each with mock WRDS-shaped sample data standing in for the licensed BoardEx/Compustat/CRSP feeds, plus the captured log and listing from a real run.

jenner-check/
├── run_jenner.sh
├── README.md
├── t001_dse_link/                DSE_Link.sas -- CUSIP/NCUSIP link-table collapse
├── t002_bx_sdc_link/             BX_SDC_Link.sas -- SDC 6-digit CUSIP matching
├── t003_ccm_link/                CCM_Link.sas -- WRDS's CCM link-collapse algorithm
├── t004_crsp_compustat_reverse/  CRSP-Compustat_reverse.sas -- GVKEY reverse lookup
├── t005_example_awe/             Example_AWE.sas -- full worked matching example
├── t006_ccm_link_tables/         CCM_Link_Tables_create.sas -- example-table generator
└── t007_lookup/                  Lookup.sas -- manual BoardEx/Compustat/CRSP lookups

To try it yourself, check out this PR's branch and run one bundle straight from the repo root:

gh pr checkout <PR_NUMBER>
curl -sS --data-binary @jenner-check/t003_ccm_link/script.sas https://api.jenneranalytics.com/v1/quick

Or cd jenner-check && ./run_jenner.sh --all to run all seven and check them against the pinned results. The hosted API is free to try, no signup — full API reference: the docs.

One note on data: the runner uploads only a bundle's SAS source text (the script plus a two-line autoexec) to api.jenneranalytics.com, which runs it and returns the log and listing. It doesn't read or upload any data files, so nothing besides the code you run ever leaves your machine.

Merge it, close it, or ignore it — no response expected, and we won't open further PRs in this repo. To opt out for good, leave 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 jenner-check/, a self-contained set of Jenner compatibility
bundles built from this repo's own SAS scripts (Code/*.sas,
Examples from 007-CEO/Example_AWE.sas, SAS/Lookup.sas), each with
mock WRDS-shaped sample data standing in for the licensed
BoardEx/Compustat/CRSP feeds the originals read, plus a captured
passing run and the shell runner to reproduce it. Nothing outside
jenner-check/ is touched, and 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