cIRT
A choice-based IRT model published once in 2019 and kept compiling ever since
A side-by-side editorial comparison of BORG and epidict — release velocity, themes, recent moves, and the top alternatives to consider.
A cross-validation guard that refuses to run random CV on dependent data unless you insist
BORG detects spatial, temporal and clustered dependence in a modelling dataset and generates a cross-validation scheme that respects it — spatial blocks, temporal blocks, group folds — rather than letting random splits leak information between train and test. Its distinguishing choice is enforcement: when it finds dependence, random CV is blocked outright and needs an explicit allow_random=TRUE to proceed. The package also wraps the standard rsample and caret entry points so the guard applies inside existing workflows.
A spin-out dictionary reader for MSF epidemiological data, finding its shape on CRAN
epidict reads and applies the data dictionaries MSF field epidemiologists use to standardise outbreak and survey datasets. It was split out of the larger sitrep toolchain so the dictionary-reading and variable-renaming functions could ship on CRAN independently. Three releases in roughly two months have taken it from that initial separation to handling intersectional dictionaries.
BORG detects spatial, temporal and clustered dependence in a modelling dataset and generates a cross-validation scheme that respects it — spatial blocks, temporal blocks, group folds — rather than letting random splits leak information between train and test. Its distinguishing choice is enforcement: when it finds dependence, random CV is blocked outright and needs an explicit allow_random=TRUE to proceed. The package also wraps the standard rsample and caret entry points so the guard applies inside existing workflows.
The entire visible history is a single day, and the sequence within it is coherent rather than churn: enforcement first, then the evidence layer, then framework integration, then idiomatic R polish. The evidence work matters to the pitch — borg_compare_cv() runs random against blocked CV so users see the inflation on their own data instead of taking the warning on faith, and the methods-text and certificate exports are aimed squarely at getting this into published papers. By the final release the interface has been rebuilt on standard S3 plot and summary methods.
The wrappers so far cover rsample and caret; tidymodels and mlr3 are the obvious remaining entry points if the guard is to reach the workflows it hasn't yet intercepted.
epidict reads and applies the data dictionaries MSF field epidemiologists use to standardise outbreak and survey datasets. It was split out of the larger sitrep toolchain so the dictionary-reading and variable-renaming functions could ship on CRAN independently. Three releases in roughly two months have taken it from that initial separation to handling intersectional dictionaries.
The arc is a package being unbundled and then reassembled as its dependencies land on CRAN. The 0.1.0 release deliberately dropped msf_dict_rename_helper() because its dependencies weren't available; 0.2.0 put it back. 0.3.0 is the first release that adds rather than restores, extending intersectional dictionary support and giving callers control over name cleaning.
Expect the next releases to keep widening dictionary coverage rather than changing the API, since the reinstatement work that dominated 0.1.0 to 0.2.0 is now finished.
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 BORG or epidict.
A choice-based IRT model published once in 2019 and kept compiling ever since
The R engine behind MetaboAnalyst closes the gap from raw spectra to biological interpretation
Rebuilding SAS's formatting layer in R, one format specification at a time
Standardised coefficients for models where standardising everything is wrong — but the feed only links out
Stream-network spatial models learning to run on data that no longer fits in memory
Bioconductor's installer, frozen at 1.30.x and tuned almost entirely through environment variables
See all BORG alternatives → · See all epidict alternatives →
Latest ship moves from both products, interleaved chronologically. ⚡ = editorial spark.
Both compete on the same themes — r-package — within Analytics. BORG and epidict 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.
Sparkpulse doesn't pick a winner — we score release velocity, not feature parity. BORG and epidict 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.
Top BORG alternatives in Analytics are ranked by recent ship velocity. Browse the "BORG alternatives" section above for the current picks, or visit /alternatives/borg for the full list with editorial commentary on each.
Top epidict alternatives in Analytics are ranked by recent ship velocity. Browse the "epidict alternatives" section above for the current picks, or visit /alternatives/epidict for the full list with editorial commentary on each.