Introduction to Automated Reporting for Corrections Analysts

Description

This course teaches the fundamental skills and concepts needed to use Quarto and R to build fully automated, reproducible reporting workflows for the corrections field. Quarto is an open-source, Markdown-based publishing system that integrates seamlessly with RStudio, allowing you to weave narrative, code, tables, and figures into a single source document that can be rendered to HTML, PDF, Word, or dashboards. By the end of the course, you'll be able to make reports customizable, save time by reusing results from complex calculations, apply custom templates, and schedule automated report builds so that up-to-date insights flow directly from your data to stakeholders without manual intervention.

In corrections settings, reproducibility is essential for generating consistent incident trend reports, facility population dashboards, and recidivism analyses that drive policy and operational decisions. For example, you'll learn how to automate monthly "Facility Safety Reports" (PDF) summarizing incident counts by security level, quarterly "Recidivism Cohort Analyses" slides, and staff-to-incarcerated people ratio dashboards—each refreshed and distributed with a single Quarto command. These automated workflows not only eliminate tedious manual steps but also guarantee accuracy, transparency, and rapid delivery of critical insights.

The goal of this course is not to turn you into a Quarto guru in one sitting—that journey takes time—but rather to help you get over the initial learning curve and gain hands-on experience in authoring, automating, and sharing robust reports. You'll learn how to ask the right questions, structure your project folder for reproducibility, manage dependencies, and integrate version control, all while maintaining clear prose alongside your R code.

Each lesson pairs real-world corrections data with annotated Quarto source files and video walkthroughs. We cover how to ingest and wrangle data in R; embed and customize code chunks; leverage Quarto's parameter and caching features; publish to multiple formats; and adhere to best-practice workflows that ensure transparency, consistency, and auditability of your reporting. While this course focuses on using R and Quarto, the principles of building templates, connecting to data sources, and parameterizing reports (making them customizable) can also be extended to other tools.

Intended Audience

This course is tailored for analysts, policy researchers, and program evaluators working in the corrections environment who wish to streamline their reporting workflows. Learners should have basic data management and analytical experience (familiarity with R or another scripting language is helpful but not required) but need not be seasoned programmers. This is not a statistics course, though you will apply simple summarization and visualization techniques, and it is not a computer science deep dive. Rather, it draws on reproducible research principles and practical tools to meet the specific needs of corrections analytics.

Participants must be able to install and run R, RStudio (or another integrated development environment of your choice), Quarto, and the necessary R packages on your Mac, Linux, or Windows machines (with administrative privileges). All software is freely available, and the course walks you through every setup step so you can focus on building reliable, automated reports.

Learning Objectives

After completing this course, learners should be able to do the following:

  • Use Quarto parameters and templates to generate facility or state-level incident trend summaries, recidivism cohort analyses, and staff-to-incarcerated people ratio reports to measure consistent delivery of key corrections metrics.
  • Author and render dynamic Quarto documents that weave R code, narrative text, tables, and figures into a single source file, using RStudio (or your editor of choice).
  • Ingest, wrangle, and manage corrections-related datasets in R, importing from CSV or databases, and embed those steps directly into your Quarto workflow.
  • Leverage Quarto's parameters, caching, and templating features to automate and schedule report builds, so that up-to-date analyses flow straight from your data to stakeholders with minimal manual effort.
  • Publish and distribute reproducible reports in multiple formats (HTML, PDF, Word, slides).
    • Choose which type of report works best for project organization.

Structure

The course is organized into lessons that are meant to be completed sequentially. Each lesson includes a video introduction to the topic or technique with an example or demo of the topic being implemented, as well as an opportunity to put into practice some or all of the material presented in the lesson through a practical exercise.

Lesson Lesson Objectives
1: Foundations of Reproducible Reporting with Quarto
  • Install and configure R, RStudio, and Quarto.
  • Understand and use Markdown syntax and YAML frontmatter.
  • Identify the difference between inline code and code chunks in a Quarto document.
  • Create a recommended project folder structure for reproducibility.
  • Render a Quarto document to HTML.
2: Integrating Data Workflows into Quarto
  • Import data into Quarto from CSV, Excel, and databases.
  • Write clear and organized code chunks for loading and cleaning data.
  • Use dplyr to filter, join, and summarize datasets.
  • Produce formatted tables using kable and gt for polished reporting.
  • Embed these outputs directly into your reports to ensure reproducibility.
3: Embedding Visualizations and Controlling Chunk Options
  • Create bar and line charts for key metrics.
  • Format figures with controls for size, captions, and output formats.
  • Understand key options including eval and echo.
4: Parameterizing and Templating Reports
  • Add parameters in the YAML header.
  • Use parameters inside R code and narrative text.
  • Conditionally show/hide sections of a report.
  • Batch-render multiple reports in one command.
5: Automating Report Builds
  • Write an R script that calls quarto::quarto_render() to generate reports automatically.
  • Schedule that script to run on a fixed schedule using Task Scheduler (Windows).
  • Send completed reports by email or Slack so stakeholders always receive the latest insights.

Resources

Estimated Time to Complete

10 hours

Keywords

Reproducibility, reporting, automation, Quarto, R

Course Information