ToolsCompareBlog Download

Multiple Hourly Rates on One Pay Stub

Give every pay rate its own earnings row with hours, rate, and YTD, then price overtime off the blended rate. Layout, state rules, and a worked example.

Payslip44

Paystub Generator

Make the paystub on your phone

Payslip44 builds itemized paystubs you can share as a PDF.

Free · No sign-up needed

This article is about the pay stub as a document: what has to appear on it when one worker is paid at more than one hourly rate. Payslip44 builds the stub, it does not compute your withholding, and wage statement rules vary by state, so treat the state citations here as a starting point rather than legal advice.

Maria rings up customers at $16 an hour and drives deliveries at $21. One person, one paycheck, two rates. The question that trips up most employers is not whether this is allowed (it is), but how the stub is supposed to display it.

One earnings row per rate. Never one merged line at an averaged rate.

What a two-rate pay stub actually looks like

The earnings block does the work. Each rate gets a labeled row carrying its own hours, its own rate, its own current amount, and its own year-to-date figure.

DescriptionHoursRateCurrentYTD
Line Cook22.0$17.00$374.00$6,732.00
Delivery14.5$22.00$319.00$4,873.00
Gross pay36.5$693.00$11,605.00

Read that top to bottom and the questions a worker would ask are already answered. Hours in each role, right there. The driving rate, right there. Has the delivery rate changed since January? Compare the row’s YTD amount against its YTD hours and you can tell.

Now collapse those two rows into a single line reading “Regular, 36.5 hrs @ $18.99, $693.00.” The gross is still correct to the penny. Everything else is gone: which role, which rate, how many hours at each. And $18.99 is a rate the worker has never been offered for any job she does.

That is the failure mode this whole article is about. The dollars can be right while the document is wrong.

Why each rate needs its own line, and what the law says

There is no federal law requiring an employer to hand a worker a pay stub at all. The FLSA requires that wage records be kept, not that they be furnished. The obligation to give the employee an itemized statement comes from state law, which is why the answer to “must I break out each rate?” changes when you cross a state line. Our state-by-state pay stub requirements guide covers which states require what.

For the multi-rate case, several states are explicit.

California. Labor Code 226(a)(9) requires the wage statement to show “all applicable hourly rates in effect during the pay period and the corresponding number of hours worked at each hourly rate by the employee.” Note the plural. A merged single line is a facial problem under 226 even when the gross is accurate: under 226(e) a worker is deemed injured when they cannot promptly and easily determine the required information from the statement alone, whether or not they were underpaid. Penalties still turn on a knowing and intentional failure, so an employer’s objectively reasonable, good-faith belief that its statements complied is a defense.

New York. Labor Law 195(3) requires wage statements for non-exempt employees to list the regular hourly rate or rates of pay, the overtime rate or rates, the number of regular hours worked, and the number of overtime hours worked. Payroll records supporting it have to be kept for six years.

Oregon. OAR 839-020-0012 asks for the same breakout: regular hourly rate or rates, overtime rate or rates, regular hours worked and the pay for them, overtime hours worked and the pay for them.

Three states, one drafting pattern. The statutes say “rates,” plural, and they pair each rate with its hours. That is not accidental phrasing. It exists so a worker can check the arithmetic on their own stub, which is impossible once the rates have been averaged into one line.

Even in states with no itemization mandate, the merged line costs you the thing the stub is for. A worker who cannot verify their own pay tends to ask about it, repeatedly, and the burden of proving what was paid falls on the employer.

Labeling the rows: job costing on the stub

Once each rate has its own row, the label on that row becomes the most useful field on the document.

“Regular” and “Regular 2” tell nobody anything. “Line Cook” and “Delivery” tell the worker which rate applies to which shift, and they tell you what each function costs. Run that across a month of stubs and you have labor cost by role without touching a separate job-costing system.

A naming convention that holds up in practice: Role, then qualifier. Some patterns worth stealing:

  • By role: Line Cook, Delivery, Prep
  • By role and shift: Cashier / Night, Cashier / Day when a differential applies
  • By department or client: Warehouse / Site B, Install / Acme Corp
  • By cost code on prevailing-wage or grant-funded work, where the funder wants hours attributed to a specific code

Two cautions. First, resist the urge to create a row for every variation. A printed stub has finite vertical space, and eight earnings lines on one page is the point where the document stops being scannable. If two labels carry the same rate and the same reporting purpose, merge them.

Second, keep labels stable across pay periods. Renaming Delivery to Driver in June splits the year’s history into two trails that no longer add up to anything. Saved line-item templates fix this by making the label a thing you pick rather than a thing you retype, which is the same argument for reusable pay stub templates generally.

The per-row year-to-date columns matter for the same reason. Two rates means two YTD trails, and merging them destroys your ability to answer “how many hours did she log as a driver this year.” That question comes up for role-based raises, for workers’ comp class codes, and on any prevailing-wage job. If you are unsure what belongs in those columns, what YTD means on a pay stub walks through it.

Payslip44

Paystub Generator

Build your next paystub in Payslip44

Overtime when the week has two rates

The arithmetic gets interesting once a week runs long, and this is where most stubs go wrong.

When a non-exempt employee works more than 40 hours in a week at two or more rates, their regular rate for that week is the weighted average of the rates worked. 29 CFR 778.115 puts it plainly: total earnings from all rates, divided by the total number of hours worked at all jobs.

Then the overtime hours get an extra half of that rate, not one and a half. The straight-time portion of those hours has already been paid inside the earnings rows, so what remains owing is the 0.5 premium.

A worked example

Sixteen hours as a helper at $18.00, thirty hours as an installer at $20.00. Forty-six hours total.

  1. Straight-time earnings. (16 × $18.00) + (30 × $20.00) = $288.00 + $600.00 = $888.00
  2. Regular rate. $888.00 ÷ 46 hours = $19.3043
  3. Overtime hours. 46 - 40 = 6
  4. Overtime premium. 6 × 0.5 × $19.3043 = $57.91
  5. Total for the week. $888.00 + $57.91 = $945.91

Notice that $19.3043 is neither $18 nor $20. It sits between them, weighted toward $20 because more hours were worked there. If the worker had spent those same six overtime hours at the helper rate instead, the weighted average would drop and so would the premium. The mix drives the number.

One arithmetic warning: carry the full precision on the regular rate and round only the dollar result. Rounding $19.3043 to $19.30 before multiplying loses cents that compound across a year of stubs. (This is why Payslip44 does its money math with decimal arithmetic rather than floating point, so a rate like $19.3043 does not quietly become $19.30429999.)

The one legitimate shortcut

There is an alternative, and it has conditions. Section 7(g)(2) of the FLSA, implemented at 29 CFR 778.419, permits an employer and employee to agree in advance of the work that overtime hours will be paid at not less than 1.5 times the straight-time rate for the type of work actually performed during those hours. The rates must be bona fide, meaning genuinely paid for that work in non-overtime weeks, and the conditions at 778.417 apply.

The load-bearing words are “in advance.” A decision made at the end of the pay period, after you have seen which arrangement is cheaper, is not an agreement under 7(g)(2).

And the regular rate itself cannot be bargained away. 29 CFR 778.6 and DOL Fact Sheet #56A both treat it as a matter of actual fact: total pay less statutory exclusions, divided by hours actually worked. “We both agreed to just use the lower rate” is not a defense.

Where the blended rate goes on the stub

The overtime premium needs its own row, and you have two conventions to choose between. Pick one and stay with it.

Premium-only. Add a row reading Overtime Premium, 6.0 hrs @ $9.65, $57.91. The rate shown is 0.5 × the regular rate. This matches how the earnings rows already work: straight time lives in the role rows, the premium sits on top.

Full blended rate. Split the 6 overtime hours out of the role rows and show OT (blended), 6.0 hrs @ $28.96, $173.74, where $28.96 is 1.5 × $19.3043. The role rows then carry only 40 hours between them. This reads more naturally to a worker used to seeing “time and a half,” but the dollars only reconcile if those 40 remaining hours are also valued at the blended rate: 40 × $19.3043 = $772.17, which plus $173.74 gets you back to $945.91. Pull the 6 hours out of the installer row at its own $20 rate instead and the role rows come to $768.00, leaving the week $4.17 short. So this convention costs you the per-role rates on the face of the stub, which is the one thing the itemization statutes ask for. Premium-only is the safer default.

Either way, show the regular rate somewhere. A stub with an overtime line and no visible $19.3043 leaves the worker unable to check anything.

The 2026 reporting angle

There is now a tax reason to get this row exactly right. The temporary deduction for qualified overtime compensation under IRC §225 covers only the premium portion, the amount above the regular rate. That is the $57.91 in our example, not the full $173.74 and certainly not the whole week’s pay.

Starting with the 2026 Form W-2, that figure is reported in Box 12 under code TT. Your pay stub’s overtime line is the source record that feeds it. When a worker has two rates, the premium depends entirely on the weighted average being computed correctly, so a stub that used the higher rate for all overtime hands the employee an inflated Box 12 number and a return that will not survive scrutiny.

For context on the deduction itself: it is capped at $12,500 for single and head of household filers and $25,000 for married filing jointly, phases out starting at $150,000 of MAGI ($300,000 joint), and applies to tax years 2025 through 2028. Married filing separately is not eligible.

Common mistakes, and how to check a stub

Run through these before the stub goes out. Most of them are visible in ten seconds once you know to look.

  • One merged earnings line. The averaged rate appears where a real rate should be. This is the mistake that generates the “why doesn’t my rate match?” email, and in California it is an itemization violation on its own.
  • Overtime priced at the higher rate. Intuitive, generous-looking, and wrong. Without a 7(g)(2) agreement made in advance, the weighted average governs.
  • Using the rate “in effect at hour 41.” Same problem. The clock does not decide which rate applies; the week’s mix does.
  • Forgetting what else raises the regular rate. Shift differentials and nondiscretionary bonuses (attendance, production, safety) are part of straight-time earnings and pull the weighted average up. A bonus or commission on the stub can change the overtime owed for the week it is paid.
  • A single YTD column. If year-to-date is only tracked in one lump, the role-level history is gone by February.
  • Rounding the blended rate before multiplying. Round the dollar result, not the intermediate rate.

More failure patterns, including the ones that have nothing to do with rates, are collected in our roundup of common pay stub errors. If you find a mistake on a stub that has already gone out, correcting a pay stub covers the reissue process.

Building the document itself is the easy part. Save the worker once, save each rate once as a reusable line item, and every future pay period becomes a matter of entering hours against rows that already exist. A tabular layout handles several earnings rows without crowding, and a CSV export gives you the line items as data when you want to total the year by role. The step-by-step guide to making a pay stub walks through the whole flow, and the same approach applies to seasonal and part-time workers, who tend to be exactly the people covering two jobs at two rates.

Two rates, two rows, two YTD trails, and a premium priced off the average of both. Get those four things on the page and the stub answers its own questions.

Payslip44

Paystub Generator

Build a clean, itemized paystub

Payslip44 keeps your employers and employees on file, so each new stub is mostly picking who it's for and filling in the pay.

Free · No sign-up needed

Scan to get the app

Frequently Asked Questions

Can an employer pay one employee two different hourly rates?

Yes. Paying different rates for different roles, shifts, departments, or skill levels is legal under the FLSA as long as each rate meets the applicable minimum wage and overtime is computed correctly for the week. It is common in restaurants, home care, construction, and any business where one person covers two jobs.

How do I show two hourly rates on one pay stub?

Give each rate its own earnings row with its own description, hours, rate, current amount, and year-to-date column. 'Line Cook, 22.0 hrs at $17.00' and 'Delivery, 14.5 hrs at $22.00' are two rows on the same stub. Do not merge them into one line at an averaged rate.

Why doesn't the rate on my pay stub match either rate I was promised?

You are probably looking at a blended, or weighted average, rate. When you work at two rates in one week and earn overtime, federal law computes your regular rate as total straight-time earnings divided by total hours worked, so the figure lands between your two rates. It is not one of your assigned rates. It is the average used to price your overtime.

How is overtime calculated when an employee works at two different rates?

Under 29 CFR 778.115 the regular rate is the weighted average of the rates worked. Add all straight-time earnings, divide by total hours worked, then pay an extra half of that rate for each hour over 40, because the straight time on those hours has already been paid. Example: 16 hours at $18 plus 30 hours at $20 is $888 over 46 hours, a $19.3043 regular rate, and 6 overtime hours earn an extra $57.91.

Can we just pay overtime at whichever rate the employee was working past 40 hours?

Only with a qualifying agreement. Section 7(g)(2), implemented at 29 CFR 778.419, lets an employee and employer agree before the work is performed that overtime hours will be paid at 1.5 times the bona fide rate for the work actually being done in those hours. Without that advance agreement the weighted average is the default, and the regular rate cannot be waived by a handshake.

Does my state require the pay stub to list hours worked at each rate?

Several do, explicitly. California Labor Code 226(a)(9) requires all applicable hourly rates in effect during the pay period and the hours worked at each. New York Labor Law 195(3) and Oregon OAR 839-020-0012 require the regular and overtime rates plus the hours at each. There is no federal pay stub mandate, so check your own state's rule.

Do multiple rates affect the 2026 No Tax on Overtime deduction?

Yes, indirectly. The deduction covers only the premium portion, the extra half above the regular rate, and with two rates that premium is computed off the weighted average rather than off your higher rate. That figure is reported in Box 12 with code TT on the 2026 Form W-2, so an incorrectly blended stub produces an incorrect deduction. The deduction is capped at $12,500 for single and head of household filers and $25,000 for married filing jointly, phasing out from $150,000 and $300,000 of MAGI, for tax years 2025 through 2028.

How do I keep year-to-date accurate when a worker has two rates?

Track YTD per earnings row, not just in a single lump. Each row should carry its own YTD amount and YTD hours so the role-level history survives the year. That is what lets you answer how many hours the worker logged in each role, which matters for raises, workers' comp classification, and any prevailing-wage or grant reporting.