Replaced the non-running ggrank_app() example with
an explicit if (interactive()) guard, as requested by
CRAN.
Period selections now reject duplicates and report selected periods left without finite ranking values using clear, user-facing errors.
Missing-value status matching now joins on category and period safely.
ggrank_change() now validates scalar
from and to comparisons.
Plot layout arguments receive consistent validation, and GUI plot downloads are available only while viewing a plot.
Added internal large-ranking examples for manually checking layouts with up to 30 rows.
Initial implementation of ggrank(),
ggrank_table(), and theme_ggrank().
Support for automatic and supplied ranks across two to four states.
Automatic retention of categories entering and exiting the selected top N.
Added synthetic causes and product teaching datasets.
Added ggrank_data() for inspecting automatically
calculated ranks.
Equal values now share competition ranks by default; tied categories retain separate display positions and all ties at the top-N boundary are included.
Ranking uses exact numeric values independently of printed labels, and missing or non-finite ranking values produce an informative warning.
Supplied ranks can now be checked against value ties and ranking direction; potential disagreements warn because external ranking rules may be valid.
Added ggrank_change() to visualise the largest rises
and falls from a ggrank_table() result.
Added ggrank_app() as an optional local Shiny
interface for the existing ranking, table, and visualisation
workflow.
Finalised ggrank_change() as a latest-comparison
diverging chart with raw data support, explicit or all-comparison
selection, stable-category control, detailed rank labels,
within-comparison ordering, and wrapped labels.
Added palette, legend-title, legend-label, and legend-visibility controls to both primary visualisations.
Added rank-only workflows across the package and GUI. Authoritative ranks can now be plotted without inventing a value, mark, rate, or score column.
Reworked the GUI as a four-step guided workflow with basic/advanced settings, embedded data examples, and independent error handling for the change chart.