← Back to home
Comparison · Analytics

tern vs xportr

A side-by-side editorial comparison of tern and xportr — release velocity, themes, recent moves, and the top alternatives to consider.

Shared themes:pharmaverse

tern vs xportr: at a glance

Featureternxportr
SectorAnalyticsAnalytics
Velocity score0.00.0
Sparks · 30d00
Top themesclinical-trials, tables, r-package, pharmaversecdisc, clinical-submissions, sas-transport, pharmaverse
Last editorial update1h ago2h ago
WebsiteVisit →Visit →

What is tern?

tern is migrating its entire analysis-function catalogue off make_afun(), one release at a time.

tern builds the clinical-trial tables, listings, and graphs layer on top of rtables — occurrence counts, survival summaries, ANCOVA, incidence rates, subgroup and biomarker tabulations. The visible work across the window is a systematic refactor: dozens of analysis functions rewritten to drop make_afun() and adopt a common analysis-function style driven by rtables' additional_fun_params. Feature additions ride along with it.

Read the full tern trajectory →

What is xportr?

The CDISC transport writer collapsed six pipeline calls into one, then spent two years hardening it

xportr applies CDISC metadata — variable types, lengths, labels, formats, ordering — to R data frames and writes the SAS transport files that go into regulatory submissions. Since v0.4.0 the package has had a single entry point, xportr_process(), that runs the whole chain and writes, and metadata arrives as a plain specification rather than a metacore object. The v0.5.0 release in January 2026 finished the cleanup by deleting every deprecated argument left over from that redesign.

Read the full xportr trajectory →

tern vs xportr: editorial side-by-side

T
tern
ANALYTICS
0.0

tern is migrating its entire analysis-function catalogue off make_afun(), one release at a time.

◆ Current state

tern builds the clinical-trial tables, listings, and graphs layer on top of rtables — occurrence counts, survival summaries, ANCOVA, incidence rates, subgroup and biomarker tabulations. The visible work across the window is a systematic refactor: dozens of analysis functions rewritten to drop make_afun() and adopt a common analysis-function style driven by rtables' additional_fun_params. Feature additions ride along with it.

◆ Where it's heading

This is a multi-release architectural migration, not incremental polish. Each release converts another batch of functions, and the count is large — roughly two dozen in the most recent entry alone, after a comparable batch the release before. Alongside it, the denom parameter is being threaded through counting functions and g_lineplot is accumulating layout control, both patterns of standardising arguments that previously varied per function.

◆ Prediction

The refactor should continue until the make_afun() dependency is gone entirely, with the remaining tabulate_* and biomarker functions the likely next batch; the entries give no date for completion.

X
xportr
ANALYTICS
0.0

The CDISC transport writer collapsed six pipeline calls into one, then spent two years hardening it

◆ Current state

xportr applies CDISC metadata — variable types, lengths, labels, formats, ordering — to R data frames and writes the SAS transport files that go into regulatory submissions. Since v0.4.0 the package has had a single entry point, xportr_process(), that runs the whole chain and writes, and metadata arrives as a plain specification rather than a metacore object. The v0.5.0 release in January 2026 finished the cleanup by deleting every deprecated argument left over from that redesign.

◆ Where it's heading

The work has moved from building the pipeline to defending it against the ways submission data actually arrives: grouped data frames now raise a warning, date and time variables get class checks, illegal characters are resolved rather than erroring, and xportr_write() warns before a file crosses 5GB instead of producing an unusable artifact. Contributor volume is high and spread across sponsors — Atorus, Roche, GSK and others show up in the PR lists — which is what keeps a validated-context package moving without a single owner.

◆ Prediction

With deprecations cleared in 0.5.0, the next cycle likely targets more input-shape validation of the kind 0.5.0 started — the grouped-data and datetime-class checks read as the first two of a series. Nothing in these entries points to a new output format.

Alternatives to tern and xportr

Other Analytics products tracked by Sparkpulse, ranked by recent ship velocity. Each card links to a full editorial trajectory and lets you pivot into a head-to-head comparison with either tern or xportr.

See all tern alternatives → · See all xportr alternatives →

Recent activity from tern and xportr

Latest ship moves from both products, interleaved chronologically. ⚡ = editorial spark.

  1. 7mo agoxportrDeprecated arguments deleted; 5GB and datetime guards added
  2. 1y agoxportrTest fixes for the metacore 0.2.0 update
  3. 1y agoternTwo dozen more analysis functions drop make_afun()
  4. 1y agoterndenom threading, custom statistics, and compare_vars merged in
  5. 1y agoxportrhms accepted as a numeric type; domain logging filled in
  6. 1y agoxportrFile-size limit moves into xportr_write, deprecating xportr_split
  7. 1y agoternRisk-difference columns for subgroup tables
  8. 2y agoterng_lineplot gains faceting and axis controls
  9. 2y agoxportrxportr_process() runs the whole pipeline in one call
  10. 2y agoxportrUnused dependencies removed

Frequently asked questions

What is the difference between tern and xportr?

Both compete on the same themes — pharmaverse — within Analytics. tern and xportr are shipping at a similar cadence (velocity 0.0 vs 0.0, both within Sparkpulse's "active" band). See the at-a-glance table above for a side-by-side breakdown of velocity, recent sparks, and editorial themes.

Is tern better than xportr?

Sparkpulse doesn't pick a winner — we score release velocity, not feature parity. tern and xportr are shipping at a similar cadence (velocity 0.0 vs 0.0, both within Sparkpulse's "active" band). For your specific use case, the alternatives sections above list other Analytics products to evaluate alongside.

What are the best alternatives to tern?

Top tern alternatives in Analytics are ranked by recent ship velocity. Browse the "tern alternatives" section above for the current picks, or visit /alternatives/tern for the full list with editorial commentary on each.

What are the best alternatives to xportr?

Top xportr alternatives in Analytics are ranked by recent ship velocity. Browse the "xportr alternatives" section above for the current picks, or visit /alternatives/xportr for the full list with editorial commentary on each.