<!-- Source: https://lazyjack.app/guide/work.md -->

# Work: plans, jobs and problems

Work holds the jobs to do, the plans that keep making them, and the problems found aboard. This chapter gives the exact rules behind Do first, Soon and Later and what each action records, as of 2026-10-11.

## Jobs, plans and problems {#kinds}

| Record | What it is | Where it comes from |
|---|---|---|
| job | One piece of work, done once | Add job, a plan, or Schedule fix on a problem |
| plan | A repeating schedule that makes the next job each time one is done | Add plan, or a suggested plan |
| problem | Something wrong, with a severity, open until fixed or set aside | Something's wrong, Record a problem, or a trip |

Every job is one of three kinds. A **one-off job** is made with Add job and belongs to nothing. A **plan's job** is one occurrence of a plan; its title, items and checklists come from the plan. A **fix** is a job made by Schedule fix; it carries its problem as its reason.

The Work page has three tabs: **To do** (open and deferred jobs and the problems that need a decision, in three groups), **Plans** and **History**.

## Do first, Soon and Later {#groups}

Each row in To do is in exactly one group. Work, Today and an assistant's `work_list` read the same rules (`src/taskUrgency.ts`).

| A job is in | When |
|---|---|
| Do first | Its due date has passed. A date is stored at 09:00 on its day, so a job due today is overdue from 09:00. |
| Do first | Its equipment's latest engine-hours reading is at or above the job's due hours |
| Soon | Its due date is within the next 30 days |
| Soon | Its due hours are 10 hours or fewer above the latest reading |
| Later | It is due more than 30 days and more than 10 engine hours away |
| Later | It is due by engine hours and its equipment has no reading yet ("Waiting for a reading") |
| Later | It has no due date and no due hours ("No due date") |
| Later | It is deferred with Not now and the deferral still holds |

| A problem is in | When |
|---|---|
| Do first | Its severity is High or Critical, whatever its status, until it is fixed or set aside |
| Soon | Its severity is Low or Medium and it is Open or In progress |
| Later | Its severity is Low or Medium and you chose Keep watching |

- **A job due by both a date and engine hours takes the more urgent of the two.** Reaching the hours puts it in Do first even when its date is weeks away. A date within 30 days with the hours not yet reached is Soon. The row names the one that put it in its group, and the date when both agree.
- **A problem with a fix scheduled is not a row.** Its job is the row, with "Because:" and the problem's title under it, and the job takes the higher of its own group and the problem's. A fix for a High problem is in Do first even when its own date is weeks away.
- **Not now quiets a fix's problem only when it is Low or Medium.** A deferred fix for a High or Critical problem stays in Do first.
- **The equipment's importance does not change a job's or a problem's group.** Importance (Essential, Important, Useful) matters only when a piece of equipment is Out of service or Failed with no problem or job recorded against it; see [What Today shows from Work](#today).
- **Engine hours are not forecast here.** A job due by hours moves only with the readings you record.

Within a group: overdue jobs, then jobs by due date, then problems by severity, then by title.

On a wide screen a job row in Do first or Soon carries **Not now** and **Did the job**, and a problem row **Schedule fix**. On a phone, and in Later, rows only open the record's page.

## Plans {#plans}

**Add plan** asks "What needs doing?", the equipment (or Whole boat) and **Repeat by**.

| Repeat by | Choices | First job |
|---|---|---|
| Calendar | Every number of days; Monthly, on a day of the month (every 1 to 120 months, on a day from 1 to 31 or the last day); Yearly, on a date; Every season | **First due**: required for a number of days (a year from today unless changed); optional for the others, which then start on the next day they fall on |
| Engine hours | Every (hours) | **First due at**: optional. Left empty, the plan starts counting at the first reading you record. |
| With another plan | Every Nth time the other plan comes round, optionally starting with time # | None of its own: its job rides along with the other plan's job and shares its due date |

A season falls due on its first day: spring 1 March, summer 1 June, autumn 1 September, winter 1 December in the northern hemisphere, and six months on in the southern.

The plan form makes a plan by calendar or by engine hours, not both. A plan with both comes only from an assistant (`maintenance_plan_create`), and its jobs are due by both. Editing such a plan in the app keeps only its engine-hours schedule.

### What the next job is scheduled from {#next-job}

Each time a plan's job is done, the plan makes its next job at once, due as follows.

| Schedule | Next due |
|---|---|
| Every number of days | The interval counted from the day the job was done |
| Monthly, yearly or seasonal | The next day the rule falls on after the day the job was due, so finishing late does not move the schedule; slots that passed meanwhile are skipped |
| Engine hours | The hours typed in Did the job plus the interval; with no hours typed, the job's due hours plus the interval |
| With another plan | Its job is added to the other plan's next job when the count falls on that occurrence |

### Pause, Resume and Archive {#pause}

- **Pause** (the plan's More menu) stops the plan from making its next job. The job it already has stays in To do and can still be done.
- **A job done while its plan is paused makes no next job, and Resume does not make one either.** The plan is then left with no job.
- **Archive** on a plan archives its open and deferred jobs with it. A plan that another plan follows cannot be archived until the follower is archived or given its own schedule.
- **A plan's job cannot be archived on its own.** To stop it, pause or archive the plan.

### Suggested plans {#suggested}

Work's Plans tab and the equipment page offer **Suggested plans** for equipment of a known type. A diesel engine gets engine oil and filter, fuel filters, raw-water impeller, drive belt and alternator, and coolant and heat exchanger; many other types get their own.

- **Each suggestion is one schedule**: by engine hours when it has an hours interval and the engine has a reading, otherwise every number of days, with the first job one interval from now.
- **Add N plans** adds the ticked suggestions. "Also add the usual items to Inventory and to these plans" adds their usual items too.
- **A suggestion disappears** once one of your plans on that equipment covers it.

### Items, checklists and estimate {#plan-details}

- **Items** are what each job needs. A job short of one shows "Missing", and the shortfall reaches To buy.
- **Checklists** are offered on each job's page.
- **Estimate** is labour and services in the boat's currency, excluding items from stock. It is never copied onto the jobs: an open job without its own shows the plan's, "(from the plan)".

## Jobs {#jobs}

**Add job** (Work's Add to Work menu, a project's page, the equipment page's Work section) asks "What needs doing?", the equipment (or Whole boat), Due and the project; the estimate and notes are under More details. A one-off job has a due date or none; this form cannot make it due by engine hours.

**Edit** is the pencil on the job's page. An open one-off job can change its title, due date, estimate, items and checklists. An open plan's job can change its own due date, due hours and estimate; its schedule, items and checklists are changed on the plan. A deferred or finished job can change only its project and notes, so a finished job can still be put under its project.

### Not now {#not-now}

**Not now** defers a job **On a date** (any day after today; a week ahead by default) or, for equipment with an engine-hours meter, **At an engine-hours reading** above the current one, with an optional note.

The job moves to Later and leaves Today until the date passes or a reading reaches the hours. Not now never changes the due date: a job that was overdue is overdue again when the deferral ends.

### Did the job {#did-the-job}

**Did the job** asks:

| Field | What it records |
|---|---|
| Done on | The day, today or earlier |
| Engine hours | Shown when the equipment has a meter or the plan repeats by hours, prefilled with the latest reading. It is recorded as a reading on the meter. |
| Cost, excluding items from stock | In the boat's currency. Above zero, it becomes a paid expense. |
| Paid to | Who was paid; offered once a cost is typed |
| Note | What was done |
| Items used | The job's items, ticked when in stock; the quantities are taken from stock |
| Photo or file | A service record, receipt or photo, kept as a document attached to the job |
| Mark the problem as resolved | For a fix only, ticked by default |

The form lists the job's checklists as completed, in progress or not run. A checklist not run does not stop you saving. A cancelled checklist run is ignored, so the job shows that checklist as not started again.

**What a cost becomes.** A cost above zero adds a paid expense in the same change: titled with the job, category `Maintenance`, paid on the day the job was done, Paid to as its vendor, linked to the job ("see expense" on its page), with the job's equipment and project while they are active. Items taken from stock are never added to the cost.

**What a completion freezes.** The job keeps the estimate it had when it was done, its own or its plan's. A later change to the plan's estimate does not rewrite what a finished job was estimated at.

## Problems {#problems}

**Something's wrong** (the Record menu, outside a trip) and **Record a problem** (Work's Add to Work menu, the equipment page) open one form. It asks a **Short description** and a **Severity**: Low, Medium (the default), High or Critical. More details holds More detail, Noticed at, Equipment, Trip and Notes. A problem found during a trip is covered in [A trip](a-trip.html).

A problem's status changes only through its actions, on its page or in its row's More menu.

| Action | Offered | Result |
|---|---|---|
| Schedule fix | Unfinished, no fix open | A job titled "Fix:" and the problem's title, with the problem as its reason; the problem becomes In progress |
| Keep watching | Unfinished, no fix open, not already watched | Watching. A Low or Medium problem moves to Later and leaves Today. |
| Mark fixed | Unfinished, no fix open | Fixed, with an optional "What was done?" |
| Not a problem | Unfinished, no fix open | Not a problem, at once, without a question |
| Reopen | Fixed or Not a problem | Open again; the fixed date and note are dropped |

**Schedule fix** suggests a due date from the severity, which you can change:

| Severity | Suggested due |
|---|---|
| Critical | Today |
| High | 7 days ahead |
| Medium | 30 days ahead |
| Low | 90 days ahead |

While a fix is open the problem page says "A fix is scheduled. Finish or archive that job to change this." Doing the job with "Mark the problem as resolved" ticked marks the problem Fixed, with the job's note as its note.

## The pages and History {#pages}

Every job, problem and plan row opens its page at `/work/<id>`, even a finished or archived one, which is then read-only. The job page's **Why** says what the job fixes or which plan it belongs to, its project, "Last done" and its estimate; below come its items, reference documents, checklists, what was recorded when it was done, and its documents. The problem page says when and on which trip it was noticed, and names its fix. The plan page lists its **Next job**, **What each job needs** and the jobs **Done** under it.

Work's **History** tab lists finished jobs ("Did the job") and settled problems ("Fixed", "Not a problem"), newest first, 30 at a time with "Show all".

## What Today shows from Work {#today}

Today's **Do first** and **Soon** hold the same jobs and problems as Work's, in Work's order, beside other facts such as papers, items to buy and checklists. Later is never on Today. Today shows five Do first rows and three Soon rows, with "Show all N". The Work badge in the navigation counts Work's Do first rows.

Two equipment facts sit beside them. They are not Work rows.

- **Out of service or Failed**, when the equipment has no unfinished problem and no open or deferred job. It is in Do first for Essential and Important equipment and in Soon for Useful.
- **Service or expiry due**, a date on the equipment itself: in Do first once the day has passed, in Soon from 60 days before. It makes no job and has no items, checklists, estimate or cost, as a plan does; tracking one service both ways gives two rows on Today.

## For assistants {#for-assistants}

If you are an assistant connected to LazyJack, these are the rules for work.

1. **Read `work_list` before proposing work.** It answers Do first, Soon and Later as the Work page shows them, with each job's reason. Say which group a thing is in; do not re-rank.
2. **Never mark a job done or a problem fixed unasked.** `maintenance_task_complete`, `defect_update` to resolved or dismissed, and `maintenance_task_defer` each change the record for good; confirm one record per answer.
3. **One call records a job done.** `maintenance_task_complete` takes `completedHours`, `cost`, `vendor`, the items used and the documents; it makes the reading and the expense itself. Do not also call `reading_record` or `expense_create` for the same job.
4. **Not now needs a date or an engine-hours count** (`maintenance_task_defer`); "later" is not a deferral.
5. **Something wrong is `defect_create`**, with the equipment and a severity the owner agreed to; a fix is `maintenance_task_create` with the problem's `defectId`, never a second problem.
6. **A plan with both a calendar and an hours schedule** can be made over MCP but not in the app, and the owner's Edit plan keeps only its hours schedule. Prefer one schedule unless the owner asks for both and knows this.
7. **Engine hours are not forecast.** A job due by hours moves only when a reading is recorded; say "due at 2,500 h, now at 2,470 h", not a date.

## When Work looks wrong {#troubleshoot}

| What you see | What it means | What to do |
|---|---|---|
| "Waiting for a reading" | The job is due by engine hours and the equipment has no reading | Add a reading |
| "No due date" on a plan's job | An hours plan made without "First due at" has had no reading yet | Add a reading; the plan sets the due hours from it |
| A job with its hours reached is in Soon | Its due date is within 30 days, and the date is checked first | Do it, or move its date with Edit |
| A plan has no Next job | A job was done while the plan was paused | Add a one-off job for now |

## Not in this chapter {#not-here}

The ideas behind statuses, Archive and Delete: [How LazyJack thinks](how-it-thinks.html). Setting up the engine and accepting the first plans: [Setting up the boat and engine](setting-up.html). Problems and engine hours recorded during a trip: [A trip](a-trip.html). Items, stock and To buy: [Inventory and To buy](inventory.html). How estimates, expenses and plans feed the forecast: [Budget and projects](budget.html). Documents attached to jobs and plans: [Documents and papers](documents.html). A Did the job that waits in Sync problems: [Troubleshooting sync](sync-troubleshooting.html). Backup and restore: [Backup, restore and moving devices](backup.html). What an assistant may do: [Assistants](assistants.html).
