← Back to all sparks
S

saros

INFRA · APIS
Velocity0.0

Semi-Automatic Reporting of Ordinary Surveys

Survey reporting automation moves past charts and starts writing the sentences about them.

survey-reportingquartoautomated-narrativeggplot2s3-dispatch
Current state
saros generates survey reports semi-automatically, turning questionnaire data into the plots, tables and Quarto structure a report needs. Version 1.6.0 adds txt_from_cat_mesos_plots(), which produces textual summaries of two categorical plots and calls out where groups differ significantly, plus crowd_plots_as_tabset() to fold a set of plots into Quarto tabsets with computed heights and download links. An interactive interval plot type arrives alongside.
Where it's heading
The package consolidated its interface first and is now spending that consolidation. The embed_* family collapsed into a single makeme() generic with S3 dispatch in 1.2.0, and every output type since has been an S3 method rather than a new exported function, which is why 1.5.0 and 1.6.0 could add violin plots and interactive interval plots cheaply. The 1.6.0 notes are heavy with internal modularisation, splitting makeme() into argument setup, crowd processing, assembly and validation without touching the public API. Text generation is the newest direction and the one that changes what the package produces.
Prediction
Expect the textual summary work to extend beyond the two-plot categorical case it currently handles, and the tabset and download-link helpers to spread across the remaining output types. The public surface should stay stable while the internals keep being split.

Recent moves

  1. 9mo ago

    Generated prose summaries and Quarto tabsets join the output types

    ⚡ SPARK

    The release where saros starts producing text about its own figures rather than only the figures, and packages sets of plots into navigable Quarto structure. It fits the trajectory the makeme() consolidation set up: new capabilities arrive as output types without disturbing the interface.

    View source ↗
  2. 1y ago

    Fixes makeme() argument handling in parent frame scopes

    A one-line fix for makeme() mishandling arguments in parent frame scopes. Narrow scoping correction with no change to output.

    View source ↗
  3. 1y ago

    Group-comparison settings, violin plots and global settings inheritance

    The release that made comparing one group against all others or against everyone a matter of settings rather than custom code, and introduced the violin plot output type that 1.6.0 later makes interactive. Global settings inheritance across makeme(), make_link(), girafe() and the n_range functions removes a lot of repeated argument passing.

    View source ↗
  4. 1y ago

    makeme() replaces the embed_* family with one S3 generic

    ⚡ SPARK

    The architectural release the rest of the package's development rests on. Collapsing a family of exported functions into one generic with S3 methods is what let every later output type ship as a method rather than a new entry point.

    View source ↗
  5. 2y ago

    Text sizing defaults tuned for Word and HTML output

    A practical release about output targets: more arguments for plot text sizes with defaults chosen separately for Word and HTML layouts, plus flexibility in Qualtrics label attachment and an option to translate HTML-escaped characters to unicode. The concerns are all about what happens between the data and the rendered document.

    View source ↗
  6. 2y ago

    Development snapshot of the text-size argument work

    A development-version tag carrying one line of the text sizing work that ships properly in 1.0.4 two weeks later. It is a checkpoint rather than a release.

    View source ↗