Creating an organization
New customersStarting fresh, not joining a team that's already using this? From the sign-in screen, choose Create one. You'll give it your organization's name, your own name, an email, and a password.
Next, check that email for a 6-digit code and enter it — this confirms the address is real and yours before your organization actually goes live. The code expires after 15 minutes; if it doesn't arrive, use Resend code (available once a minute).
Once verified, you're signed in immediately with no separate password step. It makes you the Owner — full visibility, team management, approval-chain configuration — with a default Supervisor → Office Manager → Manager → Finance approval chain already in place. Reorder it, add stages, or remove ones you don't need from Settings as soon as you're in.
This is only for setting up a brand-new organization. If you're joining a team that already uses this app, you don't need this — your Owner invites you instead, see Signing in below. If it is you setting up, the quick-start flow chart lays out the right order for everything below.
Signing in
EveryoneIf someone else's Owner set up your organization, you'll get an email invite from them with a link to set your password. After that, sign in with your email and password like any other account — there's no PIN or shared login.
Forgot your password? Use the reset link on the sign-in screen. Clicked your invite link once but never finished setting a password, and it's stopped working? Use "Haven't set up your account yet?" on the sign-in screen to get yourself a fresh one — no need to ask your Owner, though they can still resend it from Manage Team if you'd rather. Either way, request a new link only once at a time — if you request a second one, only the newest email works, and clicking an older one you still have open shows an "expired link" error even though you never used it.
Typing your password blind is an easy way to lock yourself out with a typo — every password field (signing in, setting one for the first time, or resetting one) has a small eye icon to reveal what you've typed before you submit.
The name on your account is what shows up on your timesheets and to your approvers — it doesn't have to match your login email.
Logging time
EveryoneOpen the Log Time tab and fill in one entry per block of work. Every role logs their own hours this way — Supervisors, Managers, and Finance included, not just Employees.
Did some driving too? Mileage is always tracked and reimbursed separately from your hours — see Mileage reimbursement below for the two ways to log it, right on this same tab.
Quick entry
Above the form, a single line — "Describe your day instead of filling this in" — offers a faster way in: tap it, then describe the work in your own words, either typed or by tapping Speak to dictate ("changed all the piping and fixed the leak at unit 4B at Main St from 8am to 9:45am"). Tap Fill in form and it reads what you said into the fields above — property, unit, times, and a note — for you to check before submitting. Anything you didn't mention keeps its current value rather than being cleared.
It stays collapsed until you tap it, so the form itself is what you land on. It opens on its own if it has something to tell you — a batch part-way through, or something it couldn't make sense of.
Speak only appears where your browser actually supports dictation. On an iPhone, the microphone key already built into your keyboard works just as well and is often quicker to reach.
Fields
| Field | What to put |
|---|---|
| Project / job | Optional, and only shown at all if you're assigned to a job or on a project's team — see Projects & Jobs. The list includes every job on any project you're part of, not just ones assigned specifically to you, so you can log hours covering for someone or helping a job that's falling behind. Leave it on "General" for routine work. Jobs are listed soonest-starting first, so the one at the top is generally what to work on next; a job already marked done sinks to the bottom of the list. |
| Location | Which property this was at — pre-filled to your usual one, but change it if you worked somewhere else that day |
| Unit number | The apartment/unit you worked in. If your Owner has set up a unit list for that property (Settings → Locations), this is a dropdown showing only that property’s units, and it re-filters when you change Location — unit numbers repeat across properties, so Location is what tells them apart. Pick Unit named in description for work that isn’t in any one unit (a roof, a car park, a corridor) and say where in Details of work done. Where no unit list has been set up, this stays a free-text box exactly as before. |
| Type of work | Pick from the list below |
| Date | The day the work happened |
| Start / Stop | When you started and stopped that block of work |
| Details of work done | Required — what was done, for your own record and your approver's context |
| Break (mins) | Optional — any unpaid break taken during this block, in minutes. See Unpaid breaks below. |
Your default location is set by your Owner from Manage Team — ask them if it's ever wrong or you regularly split time between more than one place.
Start and Stop always stay what actually happened — a break doesn't shift either one, it's simply deducted from what counts as paid. As you fill in Start, Stop, and Break, a live line above Submit Entry shows the math — "8h 00m − 30m break = 7h 30m paid" — so what you're about to submit is never a surprise. See Unpaid breaks for setting a number that fills in automatically.
Picking a job pre-fills the Unit field if the job has one set, but never touches Location — a project isn't assumed to sit at just one property, so Location is always its own choice regardless of which job (if any) you pick.
Type of work
Photos
Up to 3 photos per entry — a before/after/detail shot is often the fastest way to settle a question, for a tenant, an owner, or your own approver, faster than a note ever reads. Once an entry is visible (while its week is still Collecting or has been Returned), tap Add photo underneath it — your phone's camera opens directly. Anyone who could see the entry to begin with can see its photos, including your approver while it's in their queue; nobody outside that gets access.
Once you tap Submit Entry, that entry is locked — it can't be edited. If you make a mistake, don't worry — see Fixing a mistake below; you can correct it the same day, no need to wait.
Leave a required field empty and tap Submit Entry anyway — the field itself outlines in red and a message names exactly what's missing, right there on the form. It clears the moment you actually fill that field in.
A few things will get rejected before an entry saves even once every field is filled in: a date in the future, a date more than about a year old (double-check the year), a start time the same as the stop time, or a time range that overlaps another entry you already logged that same day. Each shows a clear message explaining what to fix.
Once an entry actually goes through, a confirmation banner appears at the top of the screen for a few seconds — placed there on purpose so it's visible right away, even on a phone, without needing to scroll.
Mileage reimbursement
EveryoneTwo ways to log mileage, depending on whether it came with paid hours:
- Driving during paid work — check Mileage right on the entry itself while logging the block of time, and a Miles driven field appears. This is for time you were already being paid for that also happened to involve driving — picking up supplies mid-shift, say. Pick Driving for company errand as the type of work if the whole block was the drive itself. One submission logs both: the hours count toward your pay exactly as always, and the miles are tracked and reimbursed separately, using this same entry's Details of work done as the reason on record.
- A trip with no hours attached — below the main entry form, tap Log miles only to open a separate mini-form: an optional project/job, location, unit, date, miles driven, and a reason for the trip. Use this for driving before or after a shift, or if you don't log hourly time at all.
Either way, mileage shows a live estimate as you type, based on your organization's mileage rate, and is kept completely separate from your hours — never added to a timesheet's hours total, never shown as "worked" time, reimbursed on its own, apart from your pay (see Payroll). It still goes through the exact same approval chain as your hours, on the same weekly timesheet, and you can see it — and when it's actually been reimbursed — the same way you check your hours, from My Timesheets.
The rate used is whatever your organization's mileage rate was at the moment you logged the trip — if the Owner changes it later, trips you already logged keep the rate they were logged at.
Once submitted, a mileage entry is locked the same way a time entry is — see Fixing a mistake if you need to correct one while its week is still Collecting or has been Returned.
Working with no connection
EveryoneNo signal — a basement, a rural property, an elevator — doesn't have to mean logging time later from memory. Open Log Time even with no connection and it switches to an offline form automatically, working from a copy of your properties and jobs already saved on your device from the last time you had a connection. Fill it in and tap Save — it's held right there on your phone.
Once you're back online, a banner appears wherever you're signed in — "N entries are still on this device and not on your timesheet" — tap it, then Send to submit everything that queued up while you were out.
Queued entries are only ever on the one device that logged them, and the banner only shows up while signed in as the same person. On a shared work phone, whoever is signed in when a connection comes back is the one who sees the reminder and sends the queue.
My Timesheets
EveryoneYour entries are grouped automatically into one timesheet per calendar week (Monday–Sunday). Open My Timesheets to see every week you've logged, and tap one to expand it and see each entry.
While the week is still running, its status is Collecting — you can keep adding entries. Once the week ends, it's automatically submitted for approval; there's no "submit" button to remember.
What the status line means
The row of dots under each week is a progress stepper — filled dots are stages it's already cleared, the highlighted dot is where it's sitting now.
Once a week is Closed, the status line itself tracks payroll too: it becomes "Closed — payment initiated [date]" once your organization's payroll run has started, then "Closed — payment initiated [date], paid [date]" once it's actually been paid — someone with Payroll access (see Payroll below) records both dates as payroll runs. You'll get an email the moment the paid date is set — not for the initiated date, since that's just payroll getting underway, not money actually landing.
Once it's actually paid, a line underneath spells out the wages themselves — "38.5h × $15.00 = $577.50 gross", before tax and deductions — so the total isn't the only number you see. A week with overtime in it splits the two rates apart instead: "40h × $20.00 + 5h overtime × $30.00", which is the one place that answers "why is this week's pay different from last week's" on its own. If no hourly rate was ever recorded for you, this line says so plainly rather than showing a $0.00 that could read as an accusation. Reimbursed mileage gets a line of its own the same way, once its own reimbursed date is set — miles and the dollar amount, on the date it happened.
If an entry on an already-paid week is corrected afterward — by the Owner or your approval chain, see All Staff and Your Approved history — the figure above stays exactly what was actually paid at the time; it's never rewritten after the fact. A separate line appears instead, stating plainly whether you're still owed more or were paid too much for that week, until someone with Payroll access settles it.
Fixing a mistake
EveryoneEntries are locked the moment they're submitted — there's no direct edit. Instead, you void the mistaken one (with a reason) and log a corrected one in its place. Voiding is the only way to remove an entry; it can't be deleted outright, so there's always a record of what changed and why. You don't have to wait for anything to go wrong first — you can do this the same day, while the week is still Collecting.
Same-day correction (week still Collecting)
- Open this week in My Timesheets and find the entry that needs fixing.
- Tap Void this entry and give a short reason.
- Log a new, corrected entry the normal way. Nothing else to do — it's already part of this week's Collecting timesheet.
After a timesheet is returned
An approver can also send a whole week back if something needs fixing — you'll see their note explaining why at the top of that week.
- Open the returned week in My Timesheets and find the entry that needs fixing.
- Tap Void this entry and give a short reason.
- Log a new, corrected entry the normal way.
- Tap Resubmit for approval. It goes back into the queue starting from your own correct stage — not necessarily the very first approver.
Voided entries stay visible (struck through) so the full history of a corrected week is always there if anyone needs to check it later.
If a mistake is caught after several approvals (or after it's closed)
This is a job for the Owner, not the person who happened to spot it — Undo this approval (see Your Approved history) only ever reverses the single most recent action, so it can't jump back several stages in one go.
- The Owner undoes the most recent approval from their Approved tab.
- The Owner sends the timesheet back to the employee (an override — works no matter which stage it's sitting at).
- The employee voids the mistaken entry and logs a corrected one — or, if they're not available to do that themselves, the Owner can void it on their behalf from All Staff.
- Whoever resubmits it, it goes through the entire chain again from the start — every approver reviews the corrected version, not just the one who caught the problem.
The Approvals queue
ApproverIf you hold an approval role, the Approvals tab lists every timesheet currently waiting on you, across everyone you approve for. Tap one to expand it and see each entry — unit, type of work, date, times, notes, and any photos attached — plus the total hours for the week. Any mileage on the same week's timesheet appears right alongside, clearly marked, though it isn't counted in that hours total.
Three actions, from broadest to narrowest:
- Approve — moves it to the next stage in the chain. If yours is the last stage, the button reads Approve for payment instead, and approving closes it out.
- Send back — returns the whole week to the employee with a note. A note is required here, so they know what to fix.
- Fix it yourself, on one line — for the case that used to force a full send-back over one wrong digit. Fix the times next to any entry lets you correct its start, stop, and break without bouncing the entire week; Assign a job (or Change job, if one's already picked) lets you file it under the right job if it was logged as General by mistake. Either way you give a short reason, the original stays on the record marked as replaced, and the employee is told what changed and by whom — it's recorded as your doing, never silently attributed to them.
You'll never see your own timesheet in your queue. Nobody approves their own hours, at any level — yours routes to whoever's next above you automatically.
Your Approved history
ApproverOnce you approve something, it moves on and drops out of your queue — the Approved tab is where it goes instead. It lists everything you've personally approved, most recent first, along with where that timesheet stands right now — still moving through the chain, sent back since, or fully closed.
This is the place to check "did I already approve this?" without having to ask around.
Filtering and looking back
A filter bar above the list narrows it by employee, project, unit, or a date range — a running total (hours and entry count) updates live above the list as you filter, so "how many hours did I approve for this person, or this unit, or this project" is a direct answer, not something you have to add up by hand. There's no time limit on how far back this goes — every timesheet you've ever approved stays here, including ones already closed and paid.
Tap Show entries on any card to see the actual entries behind it — unit, location, project/job, hours, and notes — not just the sheet's overall status. Any mileage on the same week shows too, clearly marked, and unlike the entries above it isn't affected by the filters — mileage has no hours or project fields of its own to filter by. Filtering does this automatically: once a filter is active, every matching sheet expands on its own and shows only the entries that actually match, so you're not hunting through unrelated ones.
Once a week is Closed, its progress stepper keeps going: the final dot stays unfilled until someone with Payroll access (see Payroll) actually enters payroll for it, turns highlighted once they've recorded it as initiated, then fills in once the pay date is set. Both dates show right in the status line above it — "Closed — payment initiated [date]", then "Closed — payment initiated [date], paid [date]" — visible everywhere this timesheet appears, including to the employee themselves on My Timesheets, not just here and on All Staff.
Fixing a mistake found after the fact
If you're the one whose approval actually closed a timesheet — the last stage, not any earlier one — expanding it here shows the same Fix the times control the Owner has on All Staff, even weeks after the fact and even once it's been paid. If it changes what a paid week was worth, the original payout is never rewritten; the difference is tracked separately until settled, and the employee is told either way.
Undoing an approval
Approved something by mistake? A row shows Undo this approval when it's still available — tap it, enter a note explaining why, and confirm. It reverts the timesheet back to exactly where it was right before you approved it, and the undo itself is recorded alongside the original approval, so nothing about what actually happened gets erased.
The button only shows up while your approval is still the most recent thing that's happened to that timesheet. If it's moved on since — approved further up the chain, sent back, or already undone — it's too late to undo from here.
All Staff
Owner · and any ApproverA read-only roster of everyone in the organization: their role, all-time hours logged, and their timesheets with status — including the current week while it's still Collecting, before anyone's even submitted it. Useful for a quick "how's everyone doing" check without digging through individual queues. Visible to you (the Owner) and to anyone else who's an approver on any stage of your approval chain(s), so an approver can check in on a team's progress without waiting for a timesheet to actually reach their queue.
Tap any week to expand it and see its entries — unit, type of work, times, notes, and any photos — at any status, not only while it's still open. Any mileage on the week shows too. This is the one place a closed, already-paid week's detail stays reachable to an approver who didn't personally handle it themselves — see Your Approved history for the sheets you did.
Three actions, all Owner-only even though the roster and its entries are visible to other approvers too:
- Void on their behalf — only while the week is still Collecting or Returned. For the case where a mistake is found after the fact and the person who logged it isn't around to fix it themselves.
- Assign a job / Change job — works at any status, including a week that's already closed and paid. A job assignment isn't a claim about what happened, only which bucket the cost reports against, so there's no reason a wrong one caught during payroll reconciliation months later should be stuck that way.
- Fix the times — also works at any status, including a closed and already-paid week. If fixing the hours changes what a paid week was worth, the original payout stays exactly as recorded (see My Timesheets) and the difference is tracked separately as a wage adjustment until someone with Payroll access settles it — see Payroll.
Every action here is honestly recorded as you having done it, not silently attributed to them — if they ever look at that entry, they'll see what changed, when, and why. See Fixing a mistake for the full recovery path when a mistake is caught after the timesheet has already moved past a few approval stages.
Manage Team
OwnerThis is where you add people and control their accounts.
Adding someone
Fill in their name, an optional Department, their role, and email, then tap Send invite. They'll receive an email to set their own password — you're not choosing a password for them. Their name is what appears on timesheets and approvals; it's kept separate from their login email.
Leave Department set to "None" to route them through the main organization-wide approval chain. Choosing a department switches the Role dropdown to that department's own stages, and routes all of their timesheets through it instead — see Departments.
The top of this screen shows how many active people you're using against your plan's limit. If you're at that limit, Send invite is disabled until you either free up a spot or upgrade your plan.
Renaming someone
Tap directly into their name field and edit it — it saves automatically when you click away. This is purely cosmetic (nothing authenticates against it), so there's no confirmation step.
Fixing a mistyped invite email
Sent an invite to the wrong address? As long as that person hasn't signed in yet, their row shows "invite pending" and a Fix email button. Enter the corrected address and confirm — this retires the mistaken invite entirely and sends a fresh one to the corrected address. Once someone has actually signed in, their email is their proven login and can no longer be changed this way.
Disabling someone
Rather than deleting an account (which would erase their place in the audit trail), inactive people are disabled instead — tap Disable next to their name. They keep every past record, they just can't sign in or receive new work. Enable reverses it any time.
Default location
Each person has a default location (see Locations) that pre-fills when they log time, so most people never have to pick it themselves. Set or change it from the dropdown next to their name.
Department
If you've created any Departments, a Department dropdown appears next to each person (other than yourself) — reassign them any time. Moving someone into or out of a department only affects their next submitted timesheet; one already mid-approval keeps following the chain it started on.
Changing someone's role
A Role dropdown next to each person (other than yourself) lets you promote or reassign them any time — no need to re-invite them. The options always reflect whichever chain that person is currently in: the main approval chain, or their own department's if they're assigned to one (see Departments). If you're moving someone to a different department and giving them a new role there, change the Department first, then pick their new Role — the Role list updates to match as soon as you do.
Pay rate, Projects access & Payroll access
Each person (other than yourself) has an hourly rate (between $0 and $500/hr), a Projects on/off toggle, and a Payroll on/off toggle. The rate is used only to compute labor cost on a project's Overview — it's never shown to anyone but you, not even to someone you've turned Projects on for. Toggling Projects on lets that person create and manage projects and jobs the same as you can; see Projects & Jobs. Toggling Payroll on lets that person record when payroll is initiated and when it's paid (see Payroll below) without giving them the CSV export, which stays yours alone.
Parts access
A separate Parts on/off toggle — deliberately independent of Projects access, since "trusted to buy parts" and "trusted to manage a project's schedule and assignments" aren't the same thing. Toggling this on lets that person manage the parts catalog and order parts for jobs on any project they're also on the team of; see Parts & Materials.
Notifications
Everyone · set by OwnerApprovers get emailed when something new lands in their queue; anyone gets emailed if their own timesheet is returned or fully approved for payment. If you're on a project, you'll also get emailed when you're newly assigned to a job, when a job you're on (or manage) moves to a new column on its board, when one of your jobs is coming due soon or has gone overdue without being marked done, or when a job you're assigned to (or manage) nears or passes its hours estimate — see Budget alerts. How often those emails arrive is controlled per person from Manage Team — ask your Owner if you'd like yours changed.
"Event" here means a timesheet changing status — entering your approval queue, being returned, being closed for payment, or your pay being deposited — or a job being assigned to you, moving to a new column, coming due, or nearing/passing its budget. Logging a daily time entry never sends an email on its own, no matter which setting you're on.
| Setting | What you get |
|---|---|
| Immediate | An email right away, one per event (see above). |
| Daily digest | One email at the end of the day summarizing everything relevant. |
| Weekly digest | Same idea, once a week — mainly what's currently waiting on you. |
| Off | No emails at all. |
A digest with nothing to report simply doesn't send — you won't get an empty "nothing happened" email.
Locations
OwnerUnder Settings: the list of properties everyone picks from when logging time. This exists because a unit number alone isn't enough to know where work happened — "Suite 101" might exist at more than one of your properties.
Add a location by typing its name and tapping Add. Remove one with the trash icon — a location that already has time logged against it can't be removed, since that would leave those records without a home; you'll see a message explaining why instead of it disappearing.
Each person's default location — so most people never have to change it when logging time — is set per-person from Manage Team, not here.
Units within a property
Each location can carry a list of its own units, so people pick "4B" rather than typing it and spelling it three ways across one week. Tap the unit count under a location's name to open its list, then type the units and tap Add. You can add several at once — separate them with commas or put one per line, so a property can be set up by pasting a list rather than tapping Add sixty times.
Units belong to a property, not to your organization, which is what lets two properties each have their own 4B without them being confused for each other in a timesheet or an export.
You don't have to do this. A location with no units set up keeps the free-text box on Log Time exactly as it works today, so you can set up one property to try it and leave the rest alone. Nothing already logged changes either way.
Unit named in description is always offered alongside your list and doesn't need adding. It's for work that isn't in any one unit — a roof, a car park, a corridor — where the person says where in Details of work done instead.
Misspelled a location, or does one need a genuine name change? Tap directly into its name and edit it — it saves automatically when you click away. This corrects it everywhere at once, including every past entry already logged against it, not just going forward.
Renaming a unit works differently on purpose: it changes what people are offered from then on, but past entries keep the unit they were actually submitted with, so an old timesheet still reads as what was signed off at the time. Removing a unit is the same — it stops being offered, and nothing already logged is touched.
Projects & Jobs
Owner · or granted per personFor planned work that spans more than a single entry — a roof replacement, a clubhouse renovation — a Project breaks into one or more Jobs, each with its own schedule, an hours estimate, and the people assigned to it. Logging time against a job is entirely optional and doesn't change how routine maintenance entries work at all — see the Logging time field table above.
You (the Owner) always have full access. Anyone else needs it granted from Manage Team — the Projects toggle next to their name.
Who sees what
| Access | What they can do |
|---|---|
| Granted "Projects" (or Owner) | Create projects and jobs, set schedules and estimates, assign or reassign people at any time, change a project's status, move a job between board columns |
| Assigned to a job, not otherwise granted | Read-only — see Overview, Gantt, and Kanban for any project they have at least one job assignment in, with no edit controls |
| Neither | The Projects tab doesn't appear in their nav at all |
The three views inside a project
- Overview — hours logged and labor cost per job, plus a project-wide total against its optional budget. Jobs are listed soonest-starting first, the same order they appear in on Log Time. Cost figures reflect everyone's hours; individual pay rates are never shown here or anywhere else outside Manage Team. If you can manage the project, each job card also has a Materials & equipment section — add a line (description, category, amount) for anything spent that isn't someone's time. The budget bar and total cost figure count these the same as labor.
- Gantt — a timeline of every job's scheduled dates, with a "today" marker and a fill showing hours logged against its estimate. On a phone this is a real Monday–Sunday week grid — tap the date range at the top to move a week at a time, or Today to jump back. Tap any job for its hours, progress and who's assigned, with a Log Time button that goes straight to a Log Time entry with that job already picked. On a wider screen this is the full timeline instead, all jobs at once.
- Kanban — jobs grouped into columns by their current stage. If you can manage the project, move a card with the arrows on it; the columns themselves (their names, order, and how many there are) are configured once for the whole organization — see Job board columns below.
Finding your own jobs
If a project has more than one job, each job you're personally assigned to is highlighted in Overview — the whole card, not just an edge — so it stands out at a glance in a long list, especially on a phone. A My jobs only checkbox appears above the list to filter down to just those.
Priority and stage chips above the job list let you filter by either, or both together — tap one to filter, tap it again to clear it. If you can manage the project, a List / By person toggle switches between the plain job list and jobs grouped under each assignee's name, with an "Unassigned" group at the end for anything nobody's on yet. Each name on the project's Team card (below) also shows a small "· N" badge for how many not-yet-done jobs they currently have on this project — hover it for the full count.
A project's team
Each project has its own Team card, at the top of its Overview if you can manage the project — a toggle list of who's eligible to be put on one of this project's jobs. Nobody's on a project's team by default: build it up per project, so a construction project's team can stay just the field crew while a finance project's team is made up of the office and finance people who'd never belong on the other one. The same person can be on as many or as few project teams as makes sense — being on one project's team has no effect on any other project. A filter box above the list narrows it by name as your roster grows, so a larger organization never has to scroll the whole thing to find one person.
You (the Owner) show up in the list too, and can add yourself the same way as anyone else — useful for a job that's really yours to do, like approving a large purchase or reviewing a financial report, where tracking your own hours against it matters.
This is separate from a job's own Assigned list below — the project team is the pool of candidates; a job's Assigned row only ever offers people from its own project's team.
Changing who's assigned
Who's on a job isn't locked in once it's created. If you can manage the project, an Assigned row of toggle buttons sits right on the job's card in Overview — the same picker used on the New Job form — so you can add or remove people at any time, whether the job started with no one on it or someone's just moved on to other work.
Only people on the project's own Team (see above) show up in that row as candidates. Someone already assigned to a job keeps showing there even if they're later removed from the project's team, so you can still see and remove them.
Removing someone from a job only affects things going forward: it stops that job from being offered to them on Log Time, and it doesn't touch hours they already logged against it — those stay exactly as they were, since a time entry records who actually did the work, not who's currently assigned. Adding someone sends them the same "you've been assigned to a job" email as assigning them when the job was first created (see Notifications).
Anyone on the project's Team, not just people specifically assigned to a job, can log time against any of its jobs from Log Time — useful for covering someone or helping a job that's falling behind while still tracking the hours against the right job.
Job dates
A job's start and end dates aren't locked in once it's created. If you can manage the project, tap directly into either date right on the job's card in Overview to change it — the same way you'd edit a location or someone's name elsewhere in the app. Plans change; adjust the dates as the real schedule shifts rather than leaving them stale. An end date can't be set before its start date — that's rejected with a message telling you to fix the range.
Job dependencies
If one job genuinely can't start until another one wraps up — pour the foundation before framing, say — set that from a job's card in Overview: tap the other job under Depends on. Only jobs in the same project can be picked, and a dependency that would create a loop (A depends on B depends on A) is rejected.
This is a real, enforced rule, not just a note to yourself: trying to move a job out of the board's first column while something it depends on isn't in the last column yet is rejected, with a clear message telling you what it's still waiting on. A job with an unfinished dependency shows a "Blocked by" line right on its card in Overview, Gantt, and Kanban, so it's never a surprise when a move doesn't go through.
Budget alerts
Set an Estimated hours figure on a job (see Overview above) and everyone assigned to it, plus the project's manager, gets an email at two points: once it's used 80% of that estimate — "nothing is wrong yet, this is the point where there's still room to do something about it" — and again if it goes on to pass 100%. Neither email blocks anything; hours logged past the estimate still count normally. The person doing the work is told the same moment as the manager, not left to hear about their own job secondhand.
Picking a job while logging time pre-fills the entry's Unit if the job has one set, but never its Location — see the note under Logging time.
Hours by person
Each job card's Hours logged line is a real total from actual time entries against the job, measured against its hours estimate — not just how much of the scheduled date range has gone by. If you can manage the project, tap Show hours by person on a job card to see exactly who logged that time: each person's name and total, with their individual dated entries — and whatever notes they wrote on each one — listed underneath. A total alone can't tell you someone logged hours to the wrong job; seeing the date and their own description of the work usually will.
Reporting
A Reporting toggle next to the project list switches to a dashboard over every job you have access to, sliced three ways: Project, Person, and Property. One filter bar (property, person, project, priority) works across all three, and jobs in each group sort by priority automatically — set on the New Job form, or edited afterward from a job's card in a project's Overview.
Property is which property a job is classified under — set once, independent of the location logged on each individual time entry. Someone can log an hour under a job while physically at a different property (picking up supplies, say) without that being a mistake; the by-Property view always groups by the job's own setting, and the entry-level location stays exactly what it's always been.
Cost figures (dollar amounts) in Reporting are visible to you, the Owner, only — even for someone otherwise granted full Projects access. Hours are visible to everyone who can see Reporting at all.
The link icon next to the view switcher copies a link to exactly what's on screen — the view, every filter, sorted the same way — so you can send it to someone else and both look at the same slice together. Opening it just shows whatever the person who opens it is normally allowed to see; it never grants extra access.
Parts & Materials
Owner · or granted per personA reusable, organization-wide catalog of parts and the vendors you buy them from — entered once, picked from on every future job instead of retyped each time. Kept behind its own Parts access (see Manage Team), deliberately separate from Projects access — someone trusted to buy parts doesn't automatically need to manage a project's schedule or assignments, and vice versa.
The catalog
Under Parts & Materials (in the More menu, if you have Parts access): a Vendors list (name only — build it up once, same as Locations) and the Parts catalog itself. Each part has an optional part number, a name, a description, a unit (each, box, linear ft, ...), an optional category, a default price, and an optional preferred vendor. Search matches name, description, category, and part number — part numbers are optional, so search never depends on one existing.
A part can be marked Inactive instead of deleted — it disappears from the picker for new jobs without breaking any past job's purchase history that already points at it.
The Vendor field, wherever it appears, is a free-text box with autocomplete suggestions from your existing list — start typing and matching vendors appear. Typing a name that doesn't match anything creates a new vendor automatically when you save, so there's no separate "add vendor" step to remember, but matching an existing name reuses that same vendor instead of creating a near-duplicate.
Parts on a job
If you have Parts access and are on that job's project team (see Projects & Jobs's "A project's team"), each job's card in Overview has its own Parts section: pick a part from the catalog, set a quantity, and its price and preferred vendor pre-fill from the catalog (both are still editable — real prices move, and this job's actual purchase might not match the catalog's default). A status — Needed, Ordered, or Received — tracks where it stands; moving to Ordered or Received fills in today's date automatically (still editable), since the order isn't necessarily placed the same day the job was created.
Quantity, price, and vendor can all be edited any time — not locked in once entered — since the actual purchase often isn't known until later in the project.
Unlike job dependencies, a job waiting on parts is never blocked from moving forward on the board — it's a soft warning only. A job with any part not yet marked Received shows a "Waiting on N part(s)" note right on its card, visible to anyone who can see that job at all (not just people with Parts access) — enough to explain a delay without revealing what's on order or what it costs to someone who isn't authorized to see that.
Parts marked Ordered or Received count toward that job's (and its project's) materials cost, right alongside Materials & equipment expenses — a part still merely marked Needed hasn't actually been bought yet, so it doesn't inflate the cost total before it is.
Payroll
Owner · Mark payroll also available to anyone with Payroll accessA CSV of approved hours you can hand straight to payroll — one row per time entry, for whatever date range you pick. Only entries from a timesheet that's actually Closed ever appear here; anything still Collecting, Pending, or Returned never shows up, no matter what dates you choose.
Pick a start date, an end date, and optionally a single person (or leave it on All employees), then tap Download CSV.
Archived timesheets are included if their entries fall in your date range — archiving only hides a timesheet from the everyday views (see Data retention below), it's still real payroll history.
Each row includes an hourly rate and cost column if that person's rate has been set from Manage Team — left blank, not "$0.00", for anyone whose rate was never set, so it's never mistaken for a confirmed zero.
Mark payroll
Below the CSV export, a separate card lists every Closed timesheet that hasn't been marked paid yet — whoever actually runs payroll (you, or anyone you've given Payroll access from Manage Team) checks off exactly the ones included in this payroll run. A running total at the top of the card — checked count and total hours — stays visible while you scroll, so it's never out of view no matter how long the list gets.
Enter the date payroll was initiated, the date it'll hit everyone's bank, and the total you're actually paying out (your own figure from your payroll provider — not calculated from anyone's hourly rate, just shown alongside the hours total so you can eyeball that the two line up), then tap Mark paid. Each affected employee gets one email listing their own included timesheet(s) and both dates — not a separate email per timesheet. The action itself is recorded in your organization's Activity Log.
Only a timesheet whose own week falls entirely within the pay period you pick is affected — a week that only partially overlaps the range is left untouched, so it can be caught correctly in whichever period it actually belongs to.
Mileage export & Mark mileage reimbursed
Two more cards below Mark payroll, both entirely separate from everything above — mileage (see Mileage reimbursement) is never mixed into the wage CSV or the Mark payroll checklist, so it can never end up in a document treated as taxable wages.
Mileage export (Owner-only) works exactly like the payroll CSV above, but is its own separate file — one row per trip, for a date range you pick, from timesheets that have actually closed.
Mark mileage reimbursed works like Mark payroll's checklist, but there's nothing to type in for the amount: it's always exactly the miles times your organization's mileage rate at the time each trip was logged, so there's no figure to eyeball or cross-check by hand — only the two dates below are yours to enter.
- Sign in and tap More, then Payroll. (Anyone with Payroll access can reach this, not only the Owner — see Manage Team if you need to grant it.)
- Scroll down to the Mark mileage reimbursed card, below Mark payroll.
- Each row is one employee's week — the dollar total is already calculated, right there next to it.
- Check off every week included in this reimbursement run. A running total (count and dollars) stays pinned at the top of the card as you check boxes.
- Fill in Reimbursement initiated (the date you started the payment run) and Reimbursed date (the date it actually goes out).
- Tap Mark reimbursed. Done — no amount to type in anywhere in this flow.
This never touches that same timesheet's wage payment dates above, and marking payroll never touches these — the two run on entirely separate schedules.
Wage adjustments
A last card, and it's only ever there when needed: it lists open corrections made to a week that had already been paid out — see All Staff and Your Approved history for who can make one and when. The original payout is never rewritten, so this is the only place the difference shows up. Each row states the employee, the week, and a signed amount — positive means they're now owed more, negative means they were paid too much. Check off whichever ones you've settled outside the app, enter the date, and tap Mark settled. The employee sees the same open amount on their own My Timesheets until it's settled here.
MCP API access
OwnerUnder Settings: lets an external AI assistant (Claude, or any other tool that speaks the Model Context Protocol) connect directly to your organization's data — read reports, and take real actions like approving a timesheet or logging an expense — with your own permissions, without you being the one clicking through the app each time.
Tap Create key, give it a name so you remember what it's for later, and copy the key it shows you. That's the only time you'll ever see it — afterward only its first few characters are shown, the same way a password manager or a service like Stripe handles an API key. Then add this app as an MCP server in whatever tool you're connecting, using the details below.
Connection details
| Setting | Value |
|---|---|
| Server URL | https://jobtimesheet.online/api/mcp |
| Transport | Streamable HTTP. Most clients ask only for the URL and the key; if yours asks for a transport by name, this is the one. |
| Authentication | Bearer token — the key you copied, sent as Authorization: Bearer jt_live_…. Clients that have a "token" or "API key" box want the key on its own; the word Bearer is added for you. |
What an assistant can do
Nine tools: four that read and five that change something. Each one runs as you — the same permission rules that decide what you can see in the app decide what the assistant can see, so it can never read or touch anything you couldn't yourself. Nothing here is screen-scraping or a second set of credentials.
| Reading | What you get |
|---|---|
| get_pending_approvals | Every timesheet waiting on you right now, with the employee's name and the week it covers. Takes no arguments. |
| get_approved_hours | Total paid hours per employee between a start_date and end_date, optionally narrowed to one employee_id. Counts only closed timesheets and deducts unpaid breaks, so it agrees with what Payroll exports rather than with the raw clock span. |
| get_project_cost | Hours, cost and budget for one project_id — or for every project at once if you leave it out. |
| get_job_cost | The same for a single job_id, for every job on a project_id, or for every job in the organization if you give neither. |
| Doing | What happens |
|---|---|
| approve_timesheet | Approves a timesheet_id at its current stage, passing it to the next approver — or closing it, if you're the last one. An optional note is recorded against the approval. |
| return_timesheet | Sends a timesheet_id back to the employee to fix. The note explaining why is required, exactly as it is in the app — see Fixing a mistake. |
| add_job_expense | Records a non-labor cost against a job_id: a description, an amount, and a category of materials, equipment or other. |
| mark_payroll_initiated | Marks every closed timesheet whose week falls entirely inside period_start–period_end as handed to payroll. Safe to run twice — weeks already marked are left alone. |
| mark_payroll_paid | Sets a pay_date on that same set of weeks and notifies each affected employee. Running it again with the same date sends nothing new; running it with a different date re-notifies, which is how you correct a forecast once the real date is confirmed. |
An example: closing out a pay period
The end of a period is usually three passes through the app — chase whoever hasn't been approved, agree the hours with what your payroll processor is about to run, then tell everyone when the money actually lands. Connected to an assistant, it's one conversation:
- "Whose timesheets am I still holding up?" It lists them by name, and you can approve the straightforward ones and send back the questionable one — with a reason — without opening the queue yourself.
- "How many paid hours is that for the 1st through the 15th?" Broken down per employee. Because it's the same figure Payroll would export, it can be checked against your processor's own number before anything is submitted, which is the point at which a mistake is still cheap.
- "Mark that period as sent to payroll." Every closed week inside those dates is flagged in one go, rather than one timesheet at a time.
- "Payroll confirmed the deposit lands Thursday the 20th." Every employee in the period is notified of their pay date at once. If the date later moves, saying so again re-notifies them with the corrected one.
None of this is unique to payroll — "which jobs are over budget?" or "log a $340 materials charge against the Elm Street re-roof" work the same way. Payroll is just the case where doing it by hand costs the most time.
A key acts with your own Owner permissions — anyone holding it can do anything you can do in this app, including approving payroll. Treat it exactly like a password: only share it with tools you trust, and revoke it immediately from the key's list if you ever suspect it's been exposed.
Revoking a key takes effect immediately — the next request it makes is rejected. There's no way to temporarily pause one; create a new key instead if you need a fresh start.
Take your data with you
OwnerUnder Settings: everything your organization owns, in one file — every timesheet, entry, approval, payment record, project, job and setting, plus your people and their rates. Tap Download everything.
A JSON file, which is the format that survives a move to another system intact — for opening in a spreadsheet, the payroll and mileage CSVs under Payroll are the better tool. The file itself lists what it deliberately leaves out (sign-in credentials, and platform records that were never yours) rather than leaving you to discover that on opening it.
Any photos attached to entries are listed with a link to download each one, valid for seven days from when you generate the file — download them then if you're keeping this as an archive, since the links themselves don't last.
Organization name
OwnerAt the top of Settings, edit your organization's name — shown at the top of the app for everyone in your organization, and on invite emails. Takes effect immediately for everyone, not just you.
Organization logo
OwnerJust below Organization name in Settings: upload an image to show next to your organization's name at the top of the app, in place of the default icon. PNG, JPEG, WebP, or SVG, up to 2MB. Uploading a new one replaces the old one immediately; Remove logo clears it back to the default icon.
Time zone
OwnerJust below Organization name in Settings: which local time zone your organization's work week ends in. This controls exactly one thing — a Collecting timesheet only auto-submits into the approval chain once this time zone's own current date has actually passed the week's end date, not the moment UTC's date does.
Defaults to UTC for every organization until set. If you're in the United States (or anywhere else behind UTC) and never set this, a timesheet could auto-submit a few hours before your own local week actually ends — pick your organization's real time zone here to fix that.
Mileage rate
OwnerJust below Time zone in Settings: the dollars-per-mile rate used whenever someone logs a trip from Log Time. Every trip snapshots this rate the moment it's logged, so changing it here only ever affects trips logged from then on — nothing already on the books gets repriced.
Mileage is kept entirely separate from wages throughout the app — it isn't taxable income the way hours are, so it's tracked, marked reimbursed, and exported on its own; see Payroll.
Unpaid breaks
OwnerAlso under Settings: every time entry can record an unpaid break, taken off the paid hours while the start and stop times stay exactly what actually happened. Set a number of minutes here and it fills in automatically on every new entry — people can still change it on any entry where the actual break ran long or short, or leave it at 0.
This is a pre-fill, not a policy — it saves typing the same number every day, nothing more. It doesn't enforce a break, doesn't apply to entries already logged, and doesn't stop anyone entering a different number on the day.
Overtime
OwnerAlso under Settings: hours worked past a weekly threshold are paid at a higher rate — 40 hours at 1.5× is the US federal standard, prefilled as a starting point; set your own numbers if yours differ, or leave the threshold blank for no overtime rule at all.
Only hours actually worked count toward the threshold — paid leave (holiday, sick) is wages, but it's not time worked, so a week of 32 worked hours plus 8 hours of holiday is a 40-hour week with no overtime in it.
Changing the threshold or rate only ever affects weeks paid from then on — see My Timesheets for where the split actually shows up, on a Closed week's wages line.
Roles
OwnerUnder Settings, just above the approval chain: the list of roles your organization has defined. Create a role here first — typing "Regional Manager" and tapping Add — then pick it from a dropdown when building the approval chain below or any department's own chain, instead of typing a name fresh in each place. That's the point of doing it this way: typing "Regional Manager" in one chain and "Regional-Manager" in another used to create two subtly different roles instead of one shared one, with no warning it had happened.
Made a typo? Tap directly into the name and edit it — it saves automatically when you click away. Renaming updates it everywhere the role is already used, including any stage that's already picked it, so there's nothing else to fix afterward.
Removing a role is blocked while it's still in use — by a stage in any chain, or by a team member currently holding it — so nothing is ever silently orphaned.
A brand-new organization already starts with roles for its four default stages (Supervisor, Office Manager, Manager, Finance) — nothing to set up before your first approval chain works.
Approval chain setup
OwnerUnder Settings, the approval chain is the ordered list of stages every timesheet walks through before it's paid — Supervisor → Office Manager → Manager → Finance by default, but it's entirely yours to shape.
- Reorder a stage with the up/down arrows next to it.
- Add a stage by picking a role from the dropdown at the bottom and tapping Add — not there yet? Create it in Roles first. The new stage lands at the end of the chain; move it into place with the arrows, then assign someone to it from Manage Team.
- Remove a stage with the trash icon next to it.
Changes take effect immediately, including for timesheets already mid-approval.
If a stage has nobody assigned to its role, it shows a warning right there in the list — a timesheet that reaches it will still stop and wait, since nothing skips a stage automatically. Inviting someone to that role (even before they've accepted) clears the warning.
Removing a stage nobody currently holds happens right away. Removing one that is staffed asks you to confirm first — that person's role isn't reassigned automatically, so they'd otherwise silently lose the ability to act on anything until you give them a new role from Manage Team.
Want a stage to always land on you instead of a team member — a final sign-off, say? Check "I'll handle this stage directly" next to it. Instead of the unstaffed-role warning, it'll show that you're handling it on purpose — nothing about how it routes actually changes, since you can already act on any stage regardless (see the note below); this just tells the warning to stand down.
As the Owner, you can also approve or return at any stage yourself, as an override — not just the ones you'd normally be assigned to, and regardless of whether you've checked "I'll handle this stage directly" for it. Doing so still only advances a timesheet one stage at a time, exactly like the assigned approver would; it doesn't skip everyone below you.
Departments
OwnerIf different teams need their own supervisors and managers — Maintenance signing off through one chain, Service through a completely different one — create Departments, just below the approval chain in Settings. This is entirely optional: an organization with no departments works exactly as it always has.
Each department you create gets its own independent chain, built the same way as the main approval chain above:
- Tap Add at the bottom to create a department, then tap the arrow next to its name to open its own chain editor.
- Inside, add, reorder, and remove stages exactly like the main approval chain — picking a role from the same Roles list, so "Manager" in Maintenance and "Manager" in Service can each be a different real person. A department's stages are entirely its own, with no connection to the main chain or any other department's, even when they share a role.
- Rename a department by editing its name field directly; remove one with the trash icon (blocked if any timesheet has ever routed through it, so past records always stay meaningful).
Assign someone to a department from Manage Team — once assigned, all of their timesheets route through that department's chain instead of the main one, using their role within that department's own stages. Unassigned people are unaffected, still routing through the main organization-wide chain.
Just like the main chain, a department stage with nobody currently holding its role shows a warning right there in its editor, and a timesheet reaching it simply waits rather than skipping ahead — and the same "I'll handle this stage directly" checkbox from the main approval chain is available here too, if you want a department's final stage to always land on you instead of a team member.
By default, each department's chain is self-contained — approving its last stage closes the timesheet, the same as the main chain. If you'd rather every department eventually funnel up to a shared executive review (a CFO, then you) instead of closing independently, pick a stage under "Once a department's own chain is finished, continue into:" near the top of this section. Every department then hands off there instead of closing — landing on that stage specifically, then continuing through whatever comes after it in your main chain. Leave it set to "Nowhere" (the default) if you'd rather each department stay fully self-contained.
A person belongs to at most one department at a time — there's currently no way to split someone's time across two departments' chains (for example, a consultant who floats between teams).
Job board columns
OwnerAlso under Settings: the columns every project's Kanban board groups jobs into — Not Started, In Progress, Blocked, Done by default, but entirely yours to shape, the same way the approval chain is.
- Reorder a column with the up/down arrows next to it.
- Add a column by typing a name at the bottom and tapping Add.
- Remove a column with the trash icon — blocked with a message if any job is currently sitting in it, or if it's the last column left.
Changes apply across every project immediately.
Plan & billing
OwnerUnder Settings, this shows your current billing and how many active people you're using against it. You're billed per active person, not a flat tier, once a year rather than monthly:
- Your first 2 active people are free.
- Then $5.00/person/mo (billed as $60.00/person/year) for your 3rd through 100th active person.
- Then $3.75/person/mo ($45.00/person/year) for every active person beyond that.
There's no seat to pick and no tier to upgrade to — tap Start billing once you need more than your 2 free people, which takes you to a secure Stripe checkout page charging that year's total up front. Take somebody on partway through the year and the rest of their year is charged then; when they leave, the credit comes off your renewal rather than back to your card. Once you have a subscription, Manage billing / cancel takes you to Stripe's own billing portal to update your payment method or cancel — nothing to manage inside this app itself.
Cancelling never removes anyone already on your team — it just means you're back to needing to start billing again once you go past your 2 free people.
Data retention
OwnerAlso under Settings: how long a closed timesheet stays in the everyday views before it's archived. Archiving just hides it from the default lists to keep things tidy — nothing is ever deleted. Toggle Show archived on My Timesheets any time to bring it back into view.
Check with your accountant on the right number for your business — payroll-adjacent records often carry legal minimums that vary by jurisdiction.
Activity log
OwnerAt the bottom of Settings: a record of every change to this organization's setup — renaming it, adding or renaming a location, editing the approval chain, changing the retention period, a person's rate or notification settings — who made each change, and when. Read-only, and only visible to you.
Time entries and approvals have their own separate history, visible right on the timesheet itself (see Your Approved history) — this covers everything else.
Frequently asked
Reference- Why can't I edit a time entry?
- Entries are locked the moment they're submitted, so there's always a trustworthy record. To fix a mistake, void the entry (with a reason) and log a corrected one — see Fixing a mistake. You don't need to wait for anything to be returned; you can do this the same day.
- Why don't I see a timesheet I'm expecting in my Approvals queue?
- You'll only see timesheets currently waiting at a stage you hold. If it's still sitting with an earlier approver, or it's already moved past your stage, it won't be in your queue — check Approved if you're trying to confirm you already acted on it.
- Can I access this on my phone?
- Yes — it's a normal web page, so it works in your phone's browser without installing anything. Sign in the same way as on a computer.
- I'm an approver — do I still log my own time the same way?
- Yes. Every role logs hours the same way, including approvers. Your own timesheet just routes to whoever's above you for approval, skipping any stage at or below your own level.
- What happens if I'm the top approver, or the Owner?
- If you hold the highest approval role, your own timesheet routes straight to the Owner as a final check. The Owner's own timesheet closes automatically — there's no one above the Owner to review it.
- I signed in and got an "Organization suspended" message — what does that mean?
- Your organization's access has been paused platform-side. This isn't something your Owner can trigger or reverse from within the app — reach out to the contact address shown on that screen to sort it out.
- Sign-in says "Too many failed sign-in attempts" — what now?
- After several incorrect password attempts in a row from the same network, sign-in is briefly paused as a security measure — wait about 15 minutes and try again. If you're not sure of your password, use Forgot your password? instead of continuing to guess.
- Why is "Send invite" disabled on Manage Team?
- Your organization has reached your plan's active-user limit, shown at the top of that screen. Disable someone no longer active to free up a spot, or upgrade your plan from Settings for more.
- I found a mistake in a timesheet that's already been approved several times — why can't I just fix it?
- Undoing an approval only ever reverses the single most recent one, so it can't jump back multiple stages at once — this needs the Owner to step in. See Fixing a mistake for the full recovery path.
- Why was my time entry rejected when I tried to submit it?
- A handful of checks run before it saves: the date can't be in the future or more than about a year old, the start and stop time can't be identical, and the time range can't overlap another entry you already logged that same day. The error message tells you which one.
- Is there a record of who changed the organization's settings?
- Yes, if you're the Owner — see Activity log at the bottom of Settings. Time entries and approvals have their own separate history shown right on the timesheet; this covers everything else (renaming things, the approval chain, rates, retention, and so on).
- I forgot my password — what do I do?
- Tap Forgot your password? on the sign-in screen and enter your email. If it's registered, a reset link is on its way — follow it to set a new password. You won't be told whether an email is registered either way, so don't worry if you're not sure which address you used; just try it.
- I clicked my invite link but never finished setting a password — now it says the link is invalid or expired. What now?
- Invite links only work once. If you closed the tab, opened the link a second time, or requested another one before finishing, the earlier link is dead — that's expected, not a bug. Tap "Haven't set up your account yet?" on the sign-in screen, enter your email, and use that fresh link right away, in one tab, without requesting another before you're done. You can request up to 3 on your own; after that, ask your Owner to resend it from Manage Team instead.
- Can the Owner account be disabled?
- No — there's exactly one Owner per organization, so this is blocked outright, at every layer, to prevent an organization from ever losing its only Owner with no way back in.
- Why does a banner say a new version of Timesheets is available?
- The app checks every few minutes for updates, so a tab left open for days doesn't silently keep running old code without you knowing. It's just a heads-up, not something urgent — tap Refresh whenever it's convenient. Anything you're in the middle of logging isn't saved until you tap Submit, so finish or note what you were entering first if you'd rather not lose it.
- What's the small text under "Timesheets" in the header?
- A build stamp — which version of the app is actually running, and roughly when it went live. It's there for troubleshooting: if you screenshot a problem, whoever's helping can tell at a glance whether you're on the latest version or one from before a fix, without having to ask.