This vignette demonstrates how to use the catool
R
package to calculate fair and transparent overload compensation for
college instructors, based on institutional course schedules and
compensation policies.
The package supports analysis for both individual instructors and full teaching schedules using well-defined eligibility and proration rules based on enrollment and credit hour thresholds.
To use catool
, your schedule data must include at
minimum:
INSTRUCTOR
: Instructor name (e.g., βBaker,
Danielleβ)ENRLD
: Enrollment count for each courseHRS
: Credit hours for each courseπ Sample input:
The schedule.csv
file from the βinst/extdataβ folder provides a realistic example of
course schedule data used by the package. It includes columns such as
SUBJ
, CRN
,
INSTRUCTOR
,DEPARTMENT
and COLLEGE
fields.
schedule <- data.frame(
INSTRUCTOR = c("Lalau-Hitchcock, Diksha", "Lalau-Hitchcock, Diksha", "Brown, Cecily"),
ENRLD = c(12, 7, 4),
HRS = c(3, 3, 3),
stringsAsFactors = FALSE
)
If you have extended data including subject codes, departments,
colleges, and programs, make sure those columns are labeled as
SUBJ
, DEPARTMENT
, COLLEGE
, and
PROGRAM
respectively.
filter_schedule()
You can filter a schedule using subject codes, instructor names, department, college, or program using pattern matching.
# Filter by subject pattern
filter_schedule(schedule, subject_pattern = "MATH|CSCI")
# Filter by instructor
filter_schedule(schedule, instructor_pattern = "Armbruster|al-Abdul")
# Filter by department
filter_schedule(schedule, department_pattern = "Business Administration")
# Filter by college
filter_schedule(schedule, college_pattern = "arts")
# Filter by program
filter_schedule(schedule, program_pattern = "computation")
# Filter by instructor name (case-insensitive)
inst_schedule <- get_instructor_schedule("Lalau-Hitchcock", schedule)
# Calculate overload compensation using default policy
ol_comp(inst_schedule)
# You can also apply custom policy parameters
ol_comp(inst_schedule, L = 4, U = 8, reg_load = 9, rate_per_cr = 5000 / 3)
# Compare institutional vs instructor interest
ol_comp(inst_schedule, favor_institution = TRUE) # Less pay
ol_comp(inst_schedule, favor_institution = FALSE) # More pay
# Get summary for a specific instructor by index
ol_comp_byindex(1, schedule_df = schedule)
# With custom policy
ol_comp_byindex(1, schedule_df = schedule, L = 4, U = 9, reg_load = 12, rate_per_cr = 2500 / 3)
The ol_comp_summary()
function generates a comprehensive
compensation report for all instructors in the
schedule.
Purpose:
Default usage:
Custom policy parameters:
Compare strategies for all instructors:
# Favoring institution (less total pay)
ol_comp_summary(schedule, favor_institution = TRUE)
# Favoring instructor (more total pay)
ol_comp_summary(schedule, favor_institution = FALSE)
The output is formatted for easy import into Excel or use in administrative reports.
Default institutional policy:
Regular teaching load = 12 credit hours
Courses with ENRLD < 4
are excluded
Qualified credit hours beyond regular load are paid at
$2,500 / 3
per hour
For ENRLD < 10
, pay is prorated:
\[ \text{Compensation} = \left(\frac{\text{ENRLD}}{10}\right) \times \text{rate per CR} \times \text{qualified CR} \]
Overload hours are assigned based on the
favor_institution
strategy:
favor_institution = TRUE
, least-enrolled
eligible courses are counted toward overloadfavor_institution = FALSE
, most-enrolled
eligible courses are preserved for compensationYou can specify how regular teaching load is assigned when determining overload pay:
favor_institution = TRUE
β
Favor institutional interest β Assign high-enrollment
courses to regular load first β Leaves low-enrollment
courses for compensation β Results in less total
pay
favor_institution = FALSE
β
Favor instructor interest β Assign low-enrollment
courses to regular load first β Leaves high-enrollment
courses for compensation β Results in more total
pay
This option is supported in both ol_comp()
and
ol_comp_summary()
functions.
For questions or feedback, please open a GitHub issue or contact Dawit Aberra at aberrad@fvsu.edu.