Payroll Rules
Payroll rules define how Conductly calculates instructor compensation. You set up the rules, and Conductly applies them automatically each time a lesson is taught or a billing cycle is processed.
All payroll rules — the organization-wide default and every instructor, session, duration, location, or course-type override — are created in one place: Settings > Payroll, under Payroll Rules.
:::info Lesson labels can skip pay entirely Before a payroll rule is ever applied, Conductly checks the lesson's attendance label. A lesson marked Missed (no show), Missed (with notice), or Makeup is excluded from pay by default regardless of which rule would otherwise apply, and Trial lessons are paid by default. Each of these is independently configurable per school at Settings → Calendar → Lesson labels — see Calendar Settings. :::
Payroll Rule Types
Conductly supports five compensation types. Each uses a different method to calculate the instructor's pay.
Flat hourly rate
The instructor is paid a fixed dollar amount per hour of teaching.
How it works: The lesson duration (in hours) is multiplied by the hourly rate.
Example: An instructor with a $40/hour rate teaches a 45-minute lesson.
- Calculation: 0.75 hours x $40 = $30.00
Best for: Schools with straightforward hourly compensation.
If you also set a Duration on the rule (see Rule Hierarchy below), the Add New Payroll Rule dialog previews the payout for that lesson length — e.g., "45-minute lessons will pay $30.00" — as you type the rate.
Percentage of revenue
The instructor receives a percentage of the revenue generated from student billing for their lessons.
How it works: When a billing cycle is processed, Conductly calculates the total revenue from the instructor's students and applies the percentage.
Example: An instructor has a 60% revenue share. Their students generated $2,000 in billing for the cycle.
- Calculation: $2,000 x 60% = $1,200.00
Best for: Schools where instructors earn a share of tuition revenue.
Flat amount per lesson
The instructor receives a fixed dollar amount for each lesson taught, regardless of duration.
How it works: Each lesson occurrence generates a single flat payment.
Example: An instructor with a $35 flat rate teaches a lesson.
- Calculation: 1 lesson x $35 = $35.00
Best for: Simple per-lesson payment structures where lesson duration doesn't vary much.
Amount per student
The instructor's pay scales with the number of students in a class. There is no base rate — the pay is simply the per-student amount multiplied by the number of students.
How it works: The per-student amount is multiplied by the number of students in the class.
Example: An instructor has a $10/student rate and teaches a group class with 8 students.
- Calculation: 8 students x $10 = $80.00
Best for: Group classes where you want compensation to scale with class size.
No compensation
No automatic compensation is calculated for the instructor or session. Use this when:
- An instructor is salaried and not paid per lesson
- A session is unpaid (e.g., volunteer-led)
- You handle compensation entirely outside of Conductly
Rule Hierarchy
Every rule has five optional override fields — Instructor, Session, Duration, Location, and Course Type — plus a required Compensation Type and Effective Date. Leaving all five blank makes the rule your organization-wide default. Filling in one narrows where it applies, and you can combine fields for a more targeted rule (e.g., Instructor + Duration for "Julia's 30-minute lessons").
Conductly picks the most specific matching rule for each lesson. From most to least specific:
1. Instructor + Session (most specific — one instructor teaching one session)
2. Session (applies to everyone teaching that session)
3. Instructor (applies to everything that instructor teaches)
4. Location (applies to lessons taught at that location)
5. Duration (applies to lessons of that length)
6. Course Type (applies to every lesson, class, or program)
7. Organization Default (applies to everyone unless overridden)
Instructor and Session overrides always outrank Location, Duration, and Course Type overrides — a rule combining Location and Duration can never beat a plain Instructor rule. Location beats Duration, and Duration beats Course Type. A location override set on a building automatically covers every room inside it; if a rule is also set on the specific room, the room-level rule wins. Course Type is the broadest override available — a rule scoped only to a course type sits just above your organization-wide default, so any Instructor, Session, Location, or Duration override still wins over it.
If no rule matches at any level, no earnings are generated for that lesson.
How the Hierarchy Works in Practice
| Scenario | Which Rule Applies |
|---|---|
| Organization default is Flat hourly rate at $40/hr. No overrides set. | $40/hr Flat hourly rate (organization default) |
| Organization default is $40/hr. Instructor has an override of $50/hr. | $50/hr Flat hourly rate (instructor override) |
| Organization default is $40/hr. Instructor override is $50/hr. Session override is 60% revenue share. | 60% Percentage of revenue (session override) |
| Session override is 60% revenue share. A rule targets this instructor AND this session at $55/hr. | $55/hr Flat hourly rate (instructor + session override) |
| Organization default is $40/hr. A Location override for the Downtown studio is $45/hr. A separate Duration override for 30-minute lessons is $35/hr. A 30-minute lesson is taught at Downtown. | $45/hr Flat hourly rate (location override — location beats duration) |
| A Location override for Downtown is $45/hr. This instructor also has a plain Instructor override at $50/hr, and teaches at Downtown. | $50/hr Flat hourly rate (instructor override — instructor beats location) |
| Organization default is $40/hr. A Course Type override sets 65% revenue share for Classes. A student takes a private lesson. | $40/hr Flat hourly rate (organization default — the Class override doesn't apply to a private lesson) |
| A Course Type override sets 65% revenue share for Classes. A separate Duration override for 45-minute lessons is $35 flat. A 45-minute class is taught. | $35 Flat amount per lesson (duration override — duration beats course type) |
Creating a Payroll Rule
Whether you're setting the organization default or an override, the steps are the same:
- Go to Settings (from the organization menu at the top of the sidebar).
- Click Payroll.
- Click New payroll rule.
- In the Add New Payroll Rule dialog, choose a Compensation Type and enter the rate, percentage, or amount.
- Set the Effective Date (and optionally Expires On).
- Choose the scope with Instructor, Session, Duration, Location, and Course Type. Leave all five blank for an organization-wide default, or fill in one or more to narrow where the rule applies:
- Instructor → applies to everything that instructor teaches
- Session → applies to everyone teaching that session
- Duration → applies to any lesson of that length (15–90 minutes, in 15-minute steps)
- Location → applies to any lesson taught at that location; a location set on a building covers every room inside it
- Course Type → applies to every Lesson, Class, or Program, regardless of instructor, session, duration, or location — the broadest override available (see Rule Hierarchy)
- Combine two or more fields for a narrower rule, e.g. Instructor + Duration
- Optionally add Notes, then save.
The Session dropdown lists each session's instructor(s) and start date/time alongside its name (e.g., "DJ Fundamentals — Julia Smith (Aug 20, 2026 4:00 PM)"), so you can tell apart sessions that share a name.
Set your organization default to the compensation model used by the majority of your instructors. Then add override rules for the exceptions.
There are no payroll sections on instructor or session pages — the "Payroll Setup" panel on a course's detail page is read-only. All rules are created and edited at Settings > Payroll.
Setting up a lot of rules at once? If you already keep your rates in a spreadsheet, paste it in instead of adding rules one by one. See Bulk Importing Payroll Rules.
Bulk Importing Payroll Rules
If you pay different rates by instructor, location, and lesson length, the number of rules adds up fast. Twenty instructors teaching three lesson lengths at three locations works out to 180 rules. Rather than adding those one at a time, paste your existing rate sheet.
- Go to Settings > Payroll.
- Click Bulk import.
- Paste your rates into the box, including a header row.
- Set the Effective date, and tick Replace existing rules if you are updating rates you have already entered.
- Click Review import.
- Check the review table, then click Import.
Nothing is saved until you click Import, so you can review as many times as you need while you correct your paste.
What to Paste
Copy a range straight out of Google Sheets or Excel. Conductly accepts both tab separated text (what you get when you copy from a spreadsheet) and comma separated text, so there is nothing to convert first.
The first row must be a header row naming the columns. Column order does not matter, and any column Conductly does not recognize is ignored and listed for you in the review step.
instructor location duration rule_type amount
Jane Doe Main Studio 30 flat_amount 35
Jane Doe Main Studio 45 flat_amount 52
Jane Doe Main Studio 60 flat_amount 70
Jane Doe Online 30 flat_amount 43
John Smith Main Studio 60 flat_amount 70
Columns
| Column | Required | What to enter |
|---|---|---|
amount | Yes | The pay amount. Dollar signs and thousands separators are fine, so $1,234.50 works. For a percentage rule, see rule_type below. |
instructor | No | The instructor's name or email address. Leave blank to apply the rule to every instructor. |
location | No | A location name. For a room inside a building you can write either the room name on its own or Building Name - Room Name. Leave blank to apply the rule everywhere. |
duration | No | The lesson length in minutes: 15, 30, 45, 60, 75, or 90. Leave blank to apply the rule to any lesson length. |
rule_type | No | How the pay is calculated. See the values below. Defaults to flat_amount if you leave the column out. |
effective_date | No | When this rule starts. Defaults to the effective date you choose in the import panel. |
expires_on | No | An optional end date for the rule. |
notes | No | Free text. A good place to record why a rate is what it is. |
Leaving instructor, location, and duration all blank on a row creates your organization-wide default, the fallback used when no more specific rule matches. See Rule Hierarchy.
Values for rule_type
| Value | What it means | What to put in amount |
|---|---|---|
flat_amount | A set amount per lesson, whatever its length. Used when you leave the column out. | The amount per lesson, e.g. 70 |
flat_hourly | An hourly rate. The lesson length decides the pay. | The hourly rate, e.g. 40 |
percentage_revenue | A share of the tuition collected for that instructor's students. | The percentage, e.g. 60% or 60 |
number_of_students | An amount for each student enrolled in the class. | The amount per student, e.g. 10 |
none | No pay is calculated for these lessons. | Leave blank |
Each value is explained in full under Payroll Rule Types above.
Friendly spellings work too, so you do not have to match the exact value: hourly, per hour, per lesson, flat, percentage, percent, revenue share, per student, and no compensation are all understood.
For a percentage rule, both 60% and a plain 60 are read as 60 percent. A value of 1 or less without a percent sign is read as an already converted decimal, so 0.6 also means 60 percent. The review step tells you how it read each one, so you can confirm before importing.
Replacing Rates You Have Already Entered
By default, a row that targets the same instructor, location, and lesson length as an existing rule is flagged and skipped, so an import can never quietly overwrite rates you already set.
When you are putting through a rate change, tick Replace existing rules. Conductly then ends the old rule the day before the new one starts, exactly as it would if you entered the change by hand. Past earnings stay attached to the rule that paid them, in line with Versioned Rules with Effective Dates.
The Review Step
Before anything is saved, Conductly shows you a row-by-row summary: what each rule applies to, its type, its amount, and its effective date.
Rows that cannot be imported are highlighted with the reason, and are skipped when you import the rest. Common reasons:
- The instructor or location name does not match anything in your school. Check the spelling, or add the location first under Settings > Locations.
- The lesson length is not one of 15, 30, 45, 60, 75, or 90.
- Two rows target the same instructor, location, and lesson length, so Conductly cannot tell which should win.
- A rule already exists for that combination and Replace existing rules is not ticked.
You can import the valid rows and fix the rest afterwards, or click Back to correct your paste and review again.
If a lesson matches no payroll rule at all, no earnings are created for it and nothing in the app flags it. The review step warns you when an import would leave your school without a fallback rule, and names instructors who would end up with no rule. Take those warnings seriously, or add a catch-all row with instructor, location, and duration all left blank.
Import the amounts you pay instructors, not the prices students pay. Rate sheets often hold both side by side. Student pricing is tuition, set on courses and sessions, and pasting it here would overpay everyone.
Tips for a Clean Import
- Start with one instructor. Paste a few rows, review them, and import. Once you can see the result on the Payroll Rules list, paste the rest.
- Import a fallback rule first. A single row with only an
amountgives you an organization-wide default, so any gap in the rest of your import still pays something. - Keep the sheet. Your spreadsheet stays the readable record of what was agreed. The
notescolumn is a good way to carry across annotations like "no longer accepting 60 minute lessons". - Sessions, groups, and course types are not importable. Rules scoped to a specific session or group, or to a course type (Lesson, Class, or Program), are still created one at a time with New payroll rule.
Versioned Rules with Effective Dates
Payroll rules in Conductly are versioned. Each rule has an Effective Date and an optional Expires On date, so when compensation changes, you add a new rule that takes effect from the date you specify while the old rule is preserved with its date range.
This means:
- Historical earnings are not affected when you change a rule. Earnings that were already calculated under the old rule remain as they were.
- Future earnings use the new rule starting from its effective date.
- You can see the history of rules on the Payroll Rules list, with each rule's effective and expiration dates.
Example: You change an instructor's rate from $40/hr to $45/hr effective March 1. Lessons taught in February are still calculated at $40/hr. Lessons from March 1 onward use $45/hr.
When changing payroll rules, double-check the effective date. Setting the wrong date could cause earnings to be calculated at the wrong rate for a period.
Tips for Managing Payroll Rules
- Start simple. Create an organization default first (Instructor, Session, Duration, and Location left blank). You can always add overrides later as needed.
- Use Course Type for your broadest pay difference (e.g., every class pays a 65% revenue share regardless of who teaches it), Duration and Location for the next broadest (e.g., all 30-minute lessons, or everything taught at a satellite location), and reach for Instructor and Session overrides — or a combination — when you need to get more specific.
- Document your reasoning. Use the rule's Notes field to record why an override exists (e.g., "Higher rate for master class series" or "Custom agreement with instructor").
- Review rules periodically. As rates change or instructor agreements are updated, make sure the rules in Conductly reflect the current terms.
- Use effective dates carefully. When updating a rate, set the effective date to match the agreed-upon start date for the new rate.
- Test with a sample lesson. After setting up rules, check that a recent lesson's earning was calculated correctly to confirm everything is working as expected.