exametrika
A test-theory package that grew into a graphical-model toolkit, now spending its releases paying down the API debt that growth created.
A side-by-side editorial comparison of dqcheckr and simDAG — release velocity, themes, recent moves, and the top alternatives to consider.
dqcheckr adds drift analysis, then removes the YAML a user had to hand-write.
dqcheckr runs configurable data-quality checks over files and DuckDB tables, driven by YAML dataset configs and recording results as snapshots. The 0.2.0 release added the ability to compare two historical snapshots and report per-column statistical drift, schema changes and trend charts, extending the tool from point-in-time checking into change over time. The most recent tag, 0.3.0, attacks the other friction point by generating the config itself from a sniff pass over the data.
simDAG grew a second simulation engine, then spent two releases surviving upstream breakage.
simDAG generates data from directed acyclic graphs, with a library of node types covering Gaussian, binomial, Poisson, negative binomial, zero-inflated, ordered regression, Cox, and Aalen models. The 1.0.0 milestone opened node_cox() to arbitrary baseline hazard functions, which lets continuous time-dependent hazards drive discrete-event simulations. The two most recent releases exist only to keep the package on CRAN through breakage in lme4 and simr.
dqcheckr runs configurable data-quality checks over files and DuckDB tables, driven by YAML dataset configs and recording results as snapshots. The 0.2.0 release added the ability to compare two historical snapshots and report per-column statistical drift, schema changes and trend charts, extending the tool from point-in-time checking into change over time. The most recent tag, 0.3.0, attacks the other friction point by generating the config itself from a sniff pass over the data.
Both moves point the same way: reduce what the operator has to write and know. Config generation removes the hand-authored YAML that gated first use, list_runs() and validate_config() make an existing setup inspectable, and the snapshot comparison turns accumulated run history into a second product surface. Check coverage keeps widening underneath — outlier detection, composite keys, row-count and file-size ceilings — and the reporting layer moved from rmarkdown to Quarto, with existing 0.1.x databases auto-migrated on first run.
Expect the generated configs and the drift reports to converge, so a sniffed config can seed thresholds from the snapshot history rather than from defaults, plus continued growth in the numbered QC check catalogue.
simDAG generates data from directed acyclic graphs, with a library of node types covering Gaussian, binomial, Poisson, negative binomial, zero-inflated, ordered regression, Cox, and Aalen models. The 1.0.0 milestone opened node_cox() to arbitrary baseline hazard functions, which lets continuous time-dependent hazards drive discrete-event simulations. The two most recent releases exist only to keep the package on CRAN through breakage in lme4 and simr.
The package has been widening what a simulation can represent rather than deepening any one node. Networks arrived in 0.4.0 so individuals could depend on each other, discrete-event simulation in continuous time arrived in 0.5.0 as an alternative to the discrete-time engine, and 1.0.0 connected the two by letting continuous hazards feed the event-driven path. Alongside that, node types keep accumulating for outcome families the framework could not previously generate.
Expect the node library to keep expanding into outcome types the discrete-event engine can now support, though the recent releases suggest upstream dependency churn will keep consuming release slots.
Other Infra & APIs 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 dqcheckr or simDAG.
A test-theory package that grew into a graphical-model toolkit, now spending its releases paying down the API debt that growth created.
nuggets keeps compounding on the 2.0 rewrite — more pattern families, lighter install.
projoint spent a year on CRAN paperwork, then shipped a correctness fix it flagged itself.
eratosthenes spends 0.1.0 hardening inputs rather than adding chronology methods.
An actuarial mainstay spends its releases on CI plumbing, not on new mathematics.
EDAForge is a data-quality auditor renamed mid-flight, still finding its CRAN footing.
See all dqcheckr alternatives → · See all simDAG alternatives →
Latest ship moves from both products, interleaved chronologically. ⚡ = editorial spark.
Both compete on the same themes — r-package — within Infra & APIs. dqcheckr and simDAG are shipping at a similar cadence (velocity 2.5 vs 2.5, 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. dqcheckr and simDAG are shipping at a similar cadence (velocity 2.5 vs 2.5, both within Sparkpulse's "active" band). For your specific use case, the alternatives sections above list other Infra & APIs products to evaluate alongside.
Top dqcheckr alternatives in Infra & APIs are ranked by recent ship velocity. Browse the "dqcheckr alternatives" section above for the current picks, or visit /alternatives/dqcheckr for the full list with editorial commentary on each.
Top simDAG alternatives in Infra & APIs are ranked by recent ship velocity. Browse the "simDAG alternatives" section above for the current picks, or visit /alternatives/simdag for the full list with editorial commentary on each.