← Back to home
Comparison · Analytics

BORG vs ggguides

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

Shared themes:r-package

BORG vs ggguides: at a glance

FeatureBORGggguides
SectorAnalyticsAnalytics
Velocity score0.00.0
Sparks · 30d00
Top themescross-validation, spatial-statistics, model-validation, reproducibilityggplot2, legends, r-package, bugfix-train
Last editorial update19m ago1h ago
WebsiteVisit →Visit →

What is BORG?

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.

Read the full BORG trajectory →

What is ggguides?

Three releases in one day to make legend positioning finally do what the docs said.

ggguides is a helper layer over ggplot2's guide system, exposing legend placement and styling through small named functions instead of raw theme() calls. On 23 April 2026 it shipped 1.1.7, 1.1.8 and 1.1.9 within thirteen hours, each fixing a different path by which the justification argument silently did nothing. The common root cause is that ggplot2 3.5 split legend.justification into side-specific theme elements, and ggguides was still writing to the generic fallback.

Read the full ggguides trajectory →

BORG vs ggguides: editorial side-by-side

B
BORG
ANALYTICS
0.0

A cross-validation guard that refuses to run random CV on dependent data unless you insist

◆ Current state

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.

◆ Where it's heading

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.

◆ Prediction

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.

G
ggguides
ANALYTICS
0.0

Three releases in one day to make legend positioning finally do what the docs said.

◆ Current state

ggguides is a helper layer over ggplot2's guide system, exposing legend placement and styling through small named functions instead of raw theme() calls. On 23 April 2026 it shipped 1.1.7, 1.1.8 and 1.1.9 within thirteen hours, each fixing a different path by which the justification argument silently did nothing. The common root cause is that ggplot2 3.5 split legend.justification into side-specific theme elements, and ggguides was still writing to the generic fallback.

◆ Where it's heading

The package is in the phase where a wrapper meets the reality of the API it wraps. All three same-day releases are the same bug found in successive entry points: legend_inside(), then the four side functions, then legend_style(by = ). Along the way the fix work produced a real feature, a justification argument on the side legend functions. The pattern of a single reporter driving three consecutive releases suggests the surface is being audited rather than randomly patched.

◆ Prediction

Expect a consolidation release that audits the remaining theme elements ggguides writes to against ggplot2 3.5 semantics, rather than another single-path fix.

Alternatives to BORG and ggguides

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 ggguides.

See all BORG alternatives → · See all ggguides alternatives →

Recent activity from BORG and ggguides

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

  1. 3mo agoggguideslegend_style(by=) justification now reaches the whole-plot theme
  2. 3mo agoggguidesSide legend functions gain justification and target the right theme element
  3. 3mo agoggguideslegend_inside() justification now moves the legend as documented
  4. 7mo agoBORGInterface rebuilt on standard S3 plot and summary methods
  5. 7mo agoBORGGuarded wrappers for rsample and caret splitting functions
  6. 7mo agoBORGEmpirical inflation comparison and publication-ready reporting
  7. 7mo agoBORGRandom CV blocked by default when dependence is detected
  8. 7mo agoBORGVersion bump to 0.1.1
  9. 8mo agoggguidesLegend reordering, key overrides and colorbar styling added

Frequently asked questions

What is the difference between BORG and ggguides?

Both compete on the same themes — r-package — within Analytics. BORG and ggguides 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 BORG better than ggguides?

Sparkpulse doesn't pick a winner — we score release velocity, not feature parity. BORG and ggguides 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 BORG?

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.

What are the best alternatives to ggguides?

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