The scripts in the billing system are dependent upon one another to clean data, backfill new records, communicate with customers, decide what to bill, acknowledge receipt of funds, and enforce policy. Each is dependent on the other tasks. To assure everything happens on schedule, almost all tasks in the billing system are run on a regular basis via cron. Data cleaning and updating happen on a daily or weekly cycle. Internal reporting happens on a weekly cycle. Everything that decides which projects will get billed happens on a monthly cycle. The detailed schedule of jobs is shown below.
Daily
- 00:47 - cleanup_project_ownership_table
- 1:05 - update_project_billable_attribute
Weekday business hours, every two hours, 7:00 - 19:00
- 7:03 - 17:03 - update_probono_service_request_records
- 7:07 - 17:07 - update_free_support_time_remaining
Weekly
- Monday at 3:11 - update uf fiscal orgs data (temporarily disabled)
- Monday at 7:03 - Send billable_candidates report
- Tuesday at 10:00 - cleanup_bad_email_addresses
- Tuesday at 10:03 - cleanup_bad_project_pi_email_addresses
Monthly
- First Tuesday of the month - sequester_unpaid_projects
- Day 1 at 8:02 - sequester_orphans
- Day 1 at 10:03 - warn_owners_of_impending_bill in the next month
- Day 1 at 10:05 - request_correction_of_bad_ownership_data by the study team
- Day 5 at 8:05 - create_and_send_new_invoice_line_items
- Day 23 at 8:02 - sequester_orphans
- Day 23 at 10:03 - warn_owners_of_impending_bill in the next month
- Day 28 at 8:02 - sequester_orphans