Payroll
Part of the MountDev Ops Workspace documentation. Updated October 9, 2026
MountDev Ops Workspace documentation | Updated October 9, 2026
Payroll, in People, is where you pay your team for each pay period: each person's hours and what they cost, who is paid and who is not, and a record of every payment, with a CSV download.
Our Commitment
MountDev Ops is built security first. Your business data belongs to you, and you can export all of it at any time. We never use analytics or tracking of any kind inside MountDev Ops.
Every update passes all 1,932 automated checks before it ships, plus screen tests on 9 screen sizes for everything it changes.
Where to Find It
Open People (the Settings gear, then People, or Hours and Pay on the Staff page) and choose the Payroll tab, beside Hours. The address is payroll, and payroll/<a day> opens the pay period holding that day. Everyone can open it: owners and admins see everyone, and everyone else sees only their own pay periods.
Pay Periods
Owners and admins choose Pay Periods to set how often the company pays (actions core.payroll.settings and core.payroll.settings.save):
- Every week: seven days at a time, starting on the day you choose. At first a period runs Monday to Sunday, like the weeks in People.
- Every two weeks: fourteen days at a time, repeating from the first day of any one period you name.
- Twice a month: the 1st to the 15th, and the 16th to the end of the month.
- Every month: the 1st to the end of the month.
Payroll opens on the period holding today. Previous Period and Next Period move it, and This Period comes back. Changing how often you pay never changes a payment already recorded: each payment keeps its own first and last day.
A Pay Period
Each person's hours in a period come from your workspace's own time tracking: every time entry they logged, in any app, on a day in the period, at their pay rate on that day (action core.payroll.period). Adjustments made in the period are added. So for each person you see:
- Tracked: their time in the period and what it cost.
- Adjusted: hours and money added or taken off, if any (see Adjustments below).
- Total: the hours and the cost together. Hours from a day with no pay rate are counted and marked with no pay rate, never guessed.
- Status: Paid (with the day, the amount, and how), Not Paid for anyone with hours or adjustments not paid yet, or No Time.
The summary at the top shows the period's Total hours, Total cost, Paid (the amounts recorded and how many people), and Not paid yet (what the hours of everyone not paid yet cost). Time logged by an AI agent with its own API key address is never pay, the same as in People, and time brought in under a name only, with no person's email, is not on Payroll.
Mark Paid
Owners and admins choose Mark Paid beside a person, or in their Details (action core.payroll.pay), and fill in:
- Day paid: today at first.
- Amount: the period's cost at first; change it to what you actually paid.
- How it was paid: any words, such as Gusto, ACH, or check.
- Note: anything else to remember.
The period's hours and cost at that moment are kept with the payment, so the record shows what was paid for even if a pay rate changes later. A person is paid once per period; a second Mark Paid for the same person and period is refused. A period that has not started yet cannot be paid.
Locked Time
Once a person is marked paid for a period, their time in it is locked: nobody can log time on a day in it, change or delete an entry in it, move an entry into or out of it, put one of its entries on another record, or run a timer that ends on one of its days, and an import cannot add or change their time there either. Their adjustments in the period are locked too. The refusal says which paid period the day is in.
- Unlock (owners only): in the person's Details, choose Unlock and say why (action
core.payroll.unlock). Their time in the period can change again; the payment stays as it was. The reason is kept in the pay history and the Activity Log. - Lock Again (owners and admins): locks an unlocked period again (action
core.payroll.lock). - Take Back Payment (owners only): for a payment recorded by mistake (action
core.payroll.take_back). You say why; the payment stays in the history, marked taken back, and the period is no longer paid or locked.
Adjustments
Owners and admins choose Adjust in a person's Details to add or take off hours, money, or both, on a day of the period, always with a reason (action core.payroll.adjust): for example, 1.5 hours of work done away from the workspace, -0.25 hours logged twice by mistake, or 50 for a bonus. Hours are costed at the person's pay rate on that day. Remove takes an adjustment back, with a reason; it stays in the history, marked removed (action core.payroll.adjust.remove).
Pay History
A person's Details show their period in full (tracked time, adjustments, total, and the payment) and their Pay History across every period: each payment (and any taken back), each adjustment (and any removed), each unlock and lock, and any disputes brought in from another system with whether each was resolved (action core.payroll.history).
Download CSV
Download CSV saves the period as a spreadsheet file, one line per person (action core.payroll.export). Owners and admins get every person with hours or a payment: the period's first and last day, the person, their email, tracked hours, adjusted hours, total hours, hours with no pay rate, cost, status, the day paid, the amount paid, how it was paid, and the note. Everyone else gets their own line with their hours, status, and the day paid. The button says Preparing until the file is ready.
Who Sees What
- Owners and admins see everyone, with costs, amounts, and pay history, and mark people paid, adjust, and lock periods again.
- Owners also unlock a paid period and take a payment back.
- Everyone else sees only their own pay periods: their hours in each (tracked and adjusted, with the reasons for adjusted hours), whether each was paid and on which day, and whether their time in it is locked, with their recent periods. They never see a pay rate, a cost, an amount, or anyone else.
- AI agents and API keys never see or change Payroll.
Bringing Pay in from Another System
Pay periods from another system come in once through core.payroll.import, one row per person and period, each piece by its id there, so running it again adds nothing and never replaces what is here. Each row can carry the hours that system recorded each day (they come in as the person's time, not on any record yet, so they show in People and Payroll), its adjustments with their reasons, its disputes as pay history, and, when it was paid, the payment, which comes in locked. A period already marked paid here keeps its own payment. A check-only run counts what would come in without saving anything, and every answer lists the periods that were not paid.
