Skip to main content

Reproducibility + organization + code style

Project
Modified

October 7, 2026

All written work should be reproducible, and the GitHub repo should be neatly organized.

Evaluation criteria

Reproducibility + organization

Category Less developed projects Typical projects
Reproducibility (code) Required files are missing. Quarto files do not render successfully (except for if a package needs to be installed). All required files are provided. Project files (e.g. Quarto, Shiny apps, R scripts) render without issues and reproduce the necessary outputs.
Reproducibility (packages) renv.lock file does not include all required packages. External users have to manually install packages in order to get code to evaluate. renv.lock includes all required packages. Manual package installation is not required to render any code in the repo (e.g. Quarto documents, R scripts).
Data documentation Codebook is missing. No local copies of data files. All datasets are stored in a data folder, a codebook is provided, and a local copy of the data file is used in the code where needed.
File organization/readability Documents lack a clear structure. There are extraneous materials in the repo and/or files are not clearly organized. Documents (Quarto files and R scripts) are well structured and easy to follow. No extraneous materials.

Code style

Category Less developed projects Typical projects
Naming conventions Variable names, functions, and data objects use inconsistent or unclear naming (e.g., df1, temp). Variable names, functions, and data objects use clear, descriptive naming that reflects their purpose (e.g., sales_by_region, salesByRegion, etc.)
Formatting and spacing Code lacks consistent indentation, spacing around operators, or appropriate line breaks. Multiple statements appear on single lines. Code follows {tidyverse} formatting conventions with consistent indentation, spaces around operators, line breaks for long pipelines.
Use of base pipe Pipes are absent, misused, or create overly long/deeply nested workflows that are difficult to understand. Pipes (|>) create clear, linear data transformation workflows. Pipelines are reasonably sized and intermediate steps are understandable.
Deprecated functions Uses deprecated or superseded functions in their code. Fails to adhere to warnings about deprecated code and update their syntax to use the correct implementation. Does not utilize deprecated or superseded functions. No warnings or messages produced noting code uses deprecated functions.
Code cleanliness Code contains unused variables, commented-out blocks, duplicated code, or unnecessary intermediate objects. Repeated logic is copy-pasted rather than factored out. No redundant or dead code present. Where applicable, repeated logic is factored into short, focused, clearly-named functions rather than copy-pasted.
Comments Comments restate what code does rather than explaining why. Comments are excessive, outdated, or missing where needed. Comments explain why a step exists rather than what it does. Comments are used sparingly and are up to date with the code.
Avoidance of code smells Code contains magic numbers, overly complex expressions, hard-coded paths, or deeply nested conditionals that reduce readability and flexibility. Code avoids magic numbers, overly complex expressions, hard-coded paths, and deeply nested conditionals.