The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.
catool (Compensation Analysis Tool) is an R package that calculates fair and transparent overload pay for college instructors. It analyzes course schedules and applies institutional policy rules to determine qualified credit hours and compensation—prorated when needed.
# Install from GitHub
# install.packages("remotes")
::install_github("dawit3000/catool") remotes
Your course schedule data must include:
Column | Description |
---|---|
INSTRUCTOR |
Instructor’s name (e.g., “Smith, C”) |
ENRLD |
Enrollment in each course |
HRS |
Credit hours assigned per course |
Optional: SUBJ
, DEPARTMENT
,
COLLEGE
, and PROGRAM
for advanced
filtering.
📂 Sample input: The schedule.csv
file provides a realistic example of course schedule data used by the
package. It includes columns such as SUBJ
,
CRN
, INSTRUCTOR
, DEPARTMENT
, and
COLLEGE
.
library(catool)
<- data.frame(
schedule INSTRUCTOR = c("al-Abdul", "baxter", "Smith, Courtney"),
ENRLD = c(12, 7, 4),
HRS = c(3, 3, 3)
)
# Analyze one instructor
ol_comp(get_instructor_schedule("baxter", schedule))
# Apply one instructor with a custom policy
ol_comp(get_instructor_schedule("Smith", schedule),
L = 4, U = 9, rate_per_cr = 2500 / 3, reg_load = 12)
# Summarize full schedule (patroll ready summary of all instructors in the schedule)
ol_comp_summary(schedule)
# Filter by subject
filter_schedule(schedule, subject_pattern = "MATH|STAT")
filter_schedule(schedule, subject_pattern = "^MATH|^STAT") # If subject codes are always exact prefi
# Filter by department
filter_schedule(schedule, department_pattern = "Business")
# Filter by instructor
get_instructor_schedule("davis", schedule)
# List all instructors
get_unique_instructors(schedule)
The ol_comp_summary()
function returns a clean tibble
with:
QUALIFIED_CR
: Credit hours above regular load, eligible
for payROW_AMOUNT
: Calculated compensation per rowTYPE
: "PRORATED"
where ENRLD < 10,
blank otherwiseSUMMARY
: Instructor headers, notes, and totalsNote: Pay is never per-course—only on qualified credit hours.
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 counted starting with the least-enrolled eligible courses
You 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.
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.