The ACTS Data Aggregation Tool is a Python application that processes institutional data from ACTS Excel templates and generates aggregated reports for submission. This tool validates your data, performs complex aggregations, and outputs two files per academic year for submission: an Aggregate Data CSV file and an Institution Review report Excel file. The Institution Review report is meant to provide you with an overview to review and verify the data looks as you would expect.
- Python: Version 3.12
- pip: Python package installer (usually included with Python)
-
Clone or download this repository
-
Navigate to the project directory:
cd acts-aggregator -
Create a virtual environment (recommended):
python -m venv .venv
-
Activate the virtual environment:
- macOS/Linux:
source .venv/bin/activate - Windows:
.venv\Scripts\activate
- macOS/Linux:
-
Install dependencies:
pip install -r requirements.txt
To test the application with the provided example data:
python run_acts.py --unitid 123456 --year 2019-20 --input "example_data/example_2019_20.xlsx" --output-folder "output" --non-interactiveThis will process the example Excel file and generate results in the output directory.
- Prepare your ACTS Excel template file
- Run the application:
python run_acts.pyThe application will prompt you for:
- Your institution's IPEDS UNITID
- Academic year (e.g., 2019-20, 2022-23)
- Path to your ACTS Excel template file [example_data/example_2019_20.xlsx]
- Confirmation to continue after validation checks
python run_acts.py --unitid 123456 --year 20NN-NN --input "path/to/template.xlsx" --output-folder "output" --non-interactiveYour Excel file must contain:
- Required sheets: All expected worksheets for your academic year
- Proper formatting: Column headers and data types as specified in ACTS guidelines
- Complete data: All required fields populated according to ACTS specifications
An example Excel template is provided in the example_data/ directory:
- example_2019_20.xlsx: Sample ACTS template file for academic year 2019-20
- Use UNITID
666666when testing with this example file
| Option | Description | Example |
|---|---|---|
--unitid |
Your institution's IPEDS UNITID | --unitid 123456 |
--year |
Academic year in YYYY-YY format | --year 2022-23 |
--input |
Path to your ACTS Excel template | --input "data/template.xlsx" |
--output-folder |
Output folder | --output-folder "output" |
--non-interactive |
Run without prompts | --non-interactive |
The application performs the following steps automatically:
- π Schema Validation - Verifies your Excel file structure and format
- π Business Rules Check - Validates data consistency and logic rules
- βοΈ Data Transformation - Prepares data for aggregation
- π Aggregation - Computes institutional-level metrics
- π Quantile Calculation - Generates statistical bounds
- π Data Merging - Combines all aggregated results
- β¨ Final Processing - Applies formatting and presentation rules
The application generates:
- Primary Output: A CSV file with aggregated institutional metrics
- Institutional Review Report: An excel sheet that contains an overview of the calculations to ensure the counts look as you expect given the input data.
- Validation Reports: JSON files with validation results
business.json- Business rules validation summaryreview_file.json- Schema validation details
If your data fails validation, the application will:
- Display specific error messages
- Generate detailed reports in JSON format
- Allow you to review and decide whether to continue
| Issue | Solution |
|---|---|
| "Input file not found" | Verify the file path is correct and file exists |
| Schema validation failures | Check your Excel template matches ACTS requirements |
| Business rule violations | Review the business.json file for specific violations |
| Missing required sheets | Ensure all required worksheets are present |
- Python: Version 3.12, though other versions may work
- Operating System: Windows, macOS, or Linux
- Memory: Minimum 4GB RAM (8GB+ recommended for large datasets)
- Storage: At least 1GB free space for processing
- Permissions: Read access to input files, write access to output directory
This application requires several Python packages as listed in requirements.txt:
- pandas: Data manipulation and analysis
- numpy: Numerical computing
- openpyxl: Excel file reading and writing
- click: Command-line interface creation
- jsonschema: Data validation
- boto3: AWS SDK (if cloud features are used)
- And other supporting libraries
All dependencies can be installed using:
pip install -r requirements.txt- Large datasets: Processing may take several minutes for large institutions
- Memory usage: Monitor system memory during processing
- Progress: Check console output for processing status
- Missing data: Review ACTS template requirements
- Format errors: Ensure proper Excel formatting
- Encoding problems: Save Excel files in standard format
- Check the console output for specific error messages
- Review generated JSON reports for detailed validation information
- Verify your input data matches ACTS template specifications
# Process multiple years
python run_acts.py --unitid 123456 --year 2021-22 --input "data/2021-22.xlsx" --output "output/2021-22.csv" --non-interactive
python run_acts.py --unitid 123456 --year 2022-23 --input "data/2022-23.xlsx" --output "output/2022-23.csv" --non-interactive#!/bin/bash
UNITID="123456"
# Activate virtual environment
source .venv/bin/activate
for year in 2020-21 2021-22 2022-23; do
echo "Processing $year..."
python run_acts.py --unitid $UNITID --year $year --input "data/template_$year.xlsx" --output "output/results_$year.csv" --non-interactive
done@echo off
set UNITID=123456
:: Activate virtual environment
call .venv\Scripts\activate
for %%y in (2020-21 2021-22 2022-23) do (
echo Processing %%y...
python run_acts.py --unitid %UNITID% --year %%y --input "data\template_%%y.xlsx" --output "output\results_%%y.csv" --non-interactive
)This Python application uses a modular architecture for optimal maintainability and flexibility. Python is required to run this application.