Skip to main content

Compliance program

A compliance program is the recurring set of requirements your chapters submit to you for review — monthly headcount, annual hazing prevention attestations, GPA reports, philanthropy hours.

Deep dives for each Compliance surface: Requirement templates · Multi-tier approval · Semester management · Chapter dashboards · Alerts & overrides · Submissions & evidence

Open compliance settings

Org → Compliance (or your org's nav path to Compliance).

The org compliance program editor. The org compliance program editor.

Create a requirement

  1. Click New requirement.
  2. Set:
    • Title (e.g., "Monthly headcount")
    • Description — what chapters need to do
    • Category — Administrative, Financial, Membership, Safety, Academic, PNM Intake, PNM Name Assignment, Other
    • Frequency — One Time, Monthly, Quarterly, Semesterly, Annually
    • Priority — Low, Medium, High, Critical
    • Due date (one-time) or recurrence month / day (recurring)
    • Academic year and semester (Fall / Spring) if tied to a compliance period
    • Requires submission — toggle off for attestation-only requirements
    • Optional — does not count toward compliance — see Optional requirements below
    • Tracking type — submission-based or value-based (a numeric target)
    • Form schema — optional JSON schema if you want chapters to submit a structured form rather than a file
  3. Optionally pick a Compliance period and Template so the requirement is generated from your reusable template each cycle.
  4. Save.

Optional requirements

Tick Optional — does not count toward compliance to publish a requirement your chapters may complete rather than must.

The Create Ad-hoc Requirement dialog, with the "Optional — does not count toward compliance" checkbox alongside "Requires evidence submission" and "Active". The optional flag sits beside the other requirement toggles, and is off by default. An optional requirement behaves like any other — it appears on the chapter's list, accepts submissions, and goes through the same review ladder — with three deliberate differences:

  • It is excluded from the compliance rate. A chapter that ignores every optional requirement still shows 100%. Optional completion is reported separately, as an N of M optional figure beside the rate, so uptake stays visible without moving the compliance number in either direction.
  • It never goes overdue. Its due date still displays, as guidance, but the nightly evaluation will not mark it overdue.
  • It never raises an alert. No compliance alert, no admin email or push.

Rows for optional requirements carry an Optional badge so chapters can tell at a glance which work is not scored.

Optional is also available on a template, in which case every requirement that template generates inherits it.

Making an existing requirement optional

Marking a live requirement optional cleans up the pressure it already applied: its open alerts resolve, and any chapter row that had gone Overdue returns to In Progress (if the chapter had submitted something) or Not Started. Rows already approved, rejected, or awaiting review are left exactly as they are.

Turning it back into a required requirement does not re-apply the old overdue marks — the next nightly evaluation decides afresh from the due date.

Templates and periods

Use Compliance Templates to define a requirement once and generate it across multiple compliance periods. A compliance period is a Term (a semester or academic year cycle) plus its compliance config. New NationalRequirement rows are spawned from a template per period.

Submission types

Each ComplianceSubmission is one of:

  • Event (with title, description, attendees)
  • Document (file upload to your configured storage)
  • Link (external URL)
  • Text (free-form note)
  • Attestation (acknowledgment-only)
  • Form (structured JSON answers matching the requirement's form_schema)

Attachments are validated by magic-byte sniffing and size cap on the backend.

Multi-tier approval workflow

Each chapter's progress on a requirement is tracked in ChapterComplianceStatus. Statuses move through:

not_started → in_progress → submitted →
pending_chapter → pending_regional → pending_org →
approved | rejected

Other terminal states: overdue, exempt.

The chapter officer submits, a chapter reviewer signs off (chapter_reviewed_by), then it moves to regional review (regional_reviewed_by), then org review (reviewed_by). Each tier captures who reviewed, when, and free-form review notes.

Per-chapter overrides

A ChapterRequirementOverride lets you exempt a specific chapter from a requirement or adjust its due date. Useful for new colonies still spinning up.

Reviewing submissions

When a chapter submits:

  1. You get a notification.
  2. Open Org → Compliance and filter to the appropriate review queue.
  3. Review the submission contents (file / form / attestation / link).
  4. Approve or Reject with notes. Rejected status returns to the chapter for resubmission.

Compliance reporting

Org compliance views show overall on-time rates, per-chapter performance, and currently overdue chapters. Reports are available in the Compliance section (separate from the org settings page) and can be exported.

What's not built today

  • No dedicated "Health Scores" settings tab. Compliance performance is visible in the compliance dashboard and chapter detail views, but there's no org-configurable weighting screen tying compliance to a single chapter "health score" today.
  • No bulk-approve UI for selecting many submissions at once — approvals are per-submission.
  • No per-chapter waiver. A requirement is optional for the whole org or for none of it; you cannot excuse a single chapter from a requirement the others must meet.

Tips

  • Start lean. A 6-requirement program is easier to maintain than 30. Add requirements as gaps surface.
  • Use templates for recurring work. Author once, generate per period.
  • Mark aspirational work optional rather than leaving it out. A requirement nobody is penalised for still gives you a place to collect evidence and a number showing how many chapters chose to do it.
  • Use form schemas for structured data. A JSON schema makes downstream reporting much easier than parsing PDFs.

Last verified against v0.62.1 (2026-05-10).