Pay runs
Pay runs keeps each employee’s pay record, prepares every run with withholding and deductions, and posts it to the Ledger.
The Payroll Specialist approves each Pay Run within its Limit, and a larger one waits for the founder.
Summary
| Part | This System |
|---|---|
| Group | People |
| Status | Beta: it works, and its Verbs may still change |
| Shelf | Wakes: offered once its Event fires |
You can ask:
- “Run payroll this Friday”
- “Pay our contractor for March”
- “What does payroll cost each month?”
- “Send the year-end tax forms”
What you get
| Part | This System |
|---|---|
| Starts | Opt-in: it wakes with the Product Templates that need it. |
| Wakes | On Agreement.signed when you sign your first employee. |
| Built from | Payroll, Benefits, Payment rails, Workflows |
Nouns it owns
| Noun | Definition |
|---|---|
| Worker | A Worker is a Human or an Agent that fills a Role and acts on Tasks. |
| Transaction | A Transaction is money moving on a payment rail, such as a charge, a payout, or a transfer, reconciled to Entries. |
| Pay Run | A Pay Run is one pay period’s payroll for a Company: each employee’s gross pay, withholding, deductions and net pay, approved and paid together. |
Verbs
| Verb | Object | Approval | Event |
|---|---|---|---|
| Human.remit | Human | Asks first; waits 1 business hour | Human.remitted |
| PayRun.prepare | Pay Run | None | PayRun.prepared |
| PayRun.approve | Pay Run | Asks first; waits 1 business hour | PayRun.approved |
| PayRun.pay | Pay Run | Asks first; waits 1 business hour | PayRun.paid |
| PayRun.void | Pay Run | None | PayRun.voided |
| Company.submit | Company | Asks first; waits 1 business hour | Company.submitted |
Events
| Direction | Event | How |
|---|---|---|
| Emits | Human.remitted | By Human.remit |
| Emits | PayRun.prepared | By PayRun.prepare |
| Emits | PayRun.approved | By PayRun.approve |
| Emits | PayRun.paid | By PayRun.pay |
| Emits | PayRun.voided | By PayRun.void |
| Emits | Company.submitted | By Company.submit |
| Emits | Transaction.failed | Raised by the rail |
| Emits | Transaction.settled | Raised by the rail |
States
The lifecycle of a Pay Run:
| State | Meaning | Moves to |
|---|---|---|
prepared (first) | Every amount is computed and the run waits for approval; nothing is booked or paid. | approved by PayRun.approve; voided by PayRun.void |
approved | The cost is booked and payment is scheduled to land on the pay date. | paid by PayRun.pay |
paid | Net pay reached each employee, and the payroll provider holds the taxes and deductions to remit. | None: it ends here. |
voided | The run was set aside before approval; nothing was booked or paid, and the record stays. | None: it ends here. |
Who operates it
| Part | This System |
|---|---|
| Accountable | Payroll Specialist |
| Team | People Team |
| Seat | A role agent holds it until a Human is seated. |
| Autonomy | assist |
| Also calls its Verbs | Supply Manager, Finance Lead, Treasurer |
Approvals and limits
| Verb | Rule | Detail |
|---|---|---|
| Human.remit | A person says yes first | Waits 1 business hour |
| PayRun.approve | A person says yes first | Waits 1 business hour |
| PayRun.pay | A person says yes first | Waits 1 business hour |
| Company.submit | A person says yes first | Waits 1 business hour |
Processes that use it
| Process | How it uses it |
|---|---|
| Supply | A step calls Human.remit |
| Books | A step calls Company.submit |
| Billing | A Workflow writes Transaction |
| Payroll | A step calls Human.remit |
| Hiring | A step calls Human.remit |
| Delivery | A Workflow writes Transaction |
| Expense approval | A Workflow writes Transaction |
| Supplier payouts | A step calls Human.remit |
| Payables | A Workflow writes Transaction |
| Mail handling | A Workflow writes Transaction |
| Staffing | A step calls Human.remit |
Rail underneath
| Noun | Stripe object | Source of truth |
|---|---|---|
| Transaction | PaymentIntent (payment_intent), when kind is charge | The source of truth is Stripe: db.sb mirrors it, written only from Stripe’s webhooks. |
| Transaction | Payout (payout), when kind is payout | The source of truth is Stripe: db.sb mirrors it, written only from Stripe’s webhooks. |
| Transaction | Refund (refund), when kind is refund | The source of truth is Stripe: db.sb mirrors it, written only from Stripe’s webhooks. |
| Capability | Runs on |
|---|---|
| Payroll | payruns.co |
Views and dashboards
| View | Shows | Metrics |
|---|---|---|
| Payroll | The next Pay Run and its cost, each paid run by Team, and every tax filing with its deadline. | Pay accuracy |
Access
What each Access level may call here.
| Access level | May call |
|---|---|
owner | Every Verb (15) |
admin | All but 4 of 15: Company.submit, Human.remit, PayRun.approve, PayRun.pay |
member | All but 4 of 15: Company.submit, Human.remit, PayRun.approve, PayRun.pay |
viewer | Read only (6 of 15) |
Import and export
None.
Fees and pricing
The payroll provider bills each pay run under its Agreement once the run is paid, posted to the Ledger as a cost.
Availability and limits
| Part | This System |
|---|---|
| Status | Beta: it works, and its Verbs may still change |
Compliance notes
An officer signs employer returns or authorizes a reporting agent to; who is an employee and who a contractor stays the founder’s.
Controls it carries:
Related Systems
- Workforce
- Ledger
- Tax
- Treasury: also holds Transaction
Example
A Licensed-human marketplace with four employees in two states pays twice a month. Pay runs prepares each run with both states’ withholding and benefit deductions, and the Payroll Specialist approves it four days before payday. The Ledger shows the cost by Team the same day.