Budget and projects
On this page: One currency · Expenses · Where expenses come from by themselves · The Expenses tab · Projects · Budget, By month · Counting rules · For assistants
An expense is an amount planned, committed or paid. A project is a larger piece of work with an estimate, and expenses, jobs and kits under it. Budget joins them with jobs, plans and items into a month-by-month picture of what is still to pay and what was paid. Budget and Projects are views of the Work area; Budget has two tabs, By month and Expenses.
One currency
- Every amount is in the boat's one currency: prices, costs, estimates, expenses, the purchase price.
- It is chosen at the first run and changed under Currency in the Edit boat details form.
- There are no exchange rates. A quote in another currency is converted before it is entered, or kept in notes with no amount.
- Changing the currency converts nothing. The numbers stay and are shown in the new code.
Expenses
An expense has a title, a category, an amount, and optionally a due date, a vendor, a project, a piece of equipment, a document (the receipt or quote) and notes. Add one with Add expense on Budget or on a project's page.
The category is free text. A new expense starts as "Upgrade"; the ones the app makes by itself are Maintenance (a job's cost) and Parts (a receipt). The category does not decide where Budget counts an amount (see The five lines).
Statuses
An expense's status changes by an action, never by a field on the form.
| Status | Means | How it gets there |
|---|---|---|
| Planned | Expected, not agreed | Every new expense from the form starts here. It shows no pill. |
| Committed | Agreed or ordered, not yet paid | Committed, in the More menu, from Planned |
| Paid | Money has left | Paid, the row's and the page's one button, from Planned or Committed |
| Cancelled | Will not be paid | Cancel, in More, from Planned or Committed |
A paid or cancelled expense offers no further status action. Planned and Committed both count as unpaid.
Due date and paid date
- The due date is when the money is expected. The form calls it "Target date" (or "Next due" for a repeating expense); rows and the expense's page say "Due 1 Mar".
- The paid date is when it was actually paid. Pressing Paid records today. Once an expense is paid its form shows Paid on, where the date can be corrected.
- A paid expense with no paid date (one paid before paid dates were recorded) counts on its due date.
To record something paid last month: Add expense, press Paid, then Edit and set Paid on.
Repeating expenses
Berth, insurance and winter storage repeat. The form's Repeats choice is Doesn't repeat, Every month, Every 3 months, Every 6 months or Every year. A repeating expense needs a date ("A repeating expense needs a date."); the date field becomes Next due and is required. The row says "Repeats every year".
- Paid rolls it forward. Marking a repeating expense paid adds the next one: planned, with the same title, category, amount, vendor, project, equipment, notes and repeat, dated one interval after the previous due date (not after the day it was paid). The toast says "Paid. Next one added for 1 Oct 2027."
- The next one is added once. If an active expense already follows it, paying again or paying on a second device adds nothing.
- A day the month lacks is moved to its last day. A monthly expense due on 31 January is next due on 28 February, and stays on the 28th after that, because each counts from the one before.
- Cancel stops the series. No next one is added, and Budget stops projecting it.
The expense's page
A row opens the expense's page: the status, the title, one line with the amount, the category and "Due 1 Mar" or "Paid 3 Oct", and Paid as the main action while it is unpaid. Details lists what is set, each a link: Paid to, Repeats, Follows and Next one (the series' neighbours), Project, Job, Equipment, From received stock, Document. Then its Documents.
Where expenses come from by themselves
Two actions make a paid expense in the same change, so money is never typed twice.
| Action | Expense it makes |
|---|---|
| Did the job with a cost | Titled as the job, category Maintenance, dated when done, vendor from Paid to; linked to the job, its equipment and its active project. Its row says "Job · " and links to the job. |
| Received with a price and Record as an expense ticked (the default) | "Bought: <item>", category Parts, dated when received; linked to the receipt ("From received stock"), and to the project when exactly one unfinished project's kit needs the item |
A job's cost excludes items taken from stock: those were paid for when received. Undoing a receipt archives its expense. Doing a job and receiving stock are in Work and Inventory.
The Expenses tab
Budget's Expenses tab lists every active expense, with their count on the tab. A year's actual spending is read here.
- Order: unpaid first, by due date (none last); then paid, newest first; then cancelled.
- Chips: All, Unpaid · N and Paid · N, each offered only while it would narrow the list (Paid also when payments span several years).
- Year: with Paid chosen and payments in more than one year, a Year select appears (this year by default, All years last), and the line reads "Paid in 2026: 14 expenses · NOK 12,400". A payment counts in the year of its paid date on the boat's clock.
- Paid this year on By month opens this tab on Paid for that year.
Projects
A project is an upgrade, a refit or any piece of work bigger than one job: "Replace standing rigging". It has a title, a Priority (Must do, Should do, Could do), an optional target season ("Spring 2027"), target date, estimated cost, related equipment, description and notes. The Projects list is ordered by priority.
Statuses
A new project is an Idea. Its row and page show the next step as the one button; the other moves are in More.
| From | Next step (the button) | Also in More |
|---|---|---|
| Idea | Mark planned | Start, Cancel |
| Planned | Start | Cancel |
| In progress | Done | Back to planned, Cancel |
| Cancelled | none | Back to planned |
| Done | none | none |
What goes under a project
- Expenses: choose the project on the expense form, or use Add expense on the project's page.
- Jobs: Add job on the project's page, or set the project on a job's Edit. A job's project can be changed even after the job is done.
- Kits: set the project on the kit. A kit's items, once bought, are counted under the project.
The project's page
Its header shows the status, the title, the priority and the target. Then:
- Money: Estimate, Paid (its paid expenses), Still to pay (its planned and committed expenses), and Left of the estimate, the estimate less Paid and Still to pay. When those pass the estimate it reads Over the estimate by. With no estimate there is no Left line.
- Expenses, Jobs (cancelled ones left out) and Kits, then Details and Documents.
Left of the estimate counts only the project's expenses. Budget's figure for the same project also takes off its jobs' estimates and its kits' items (see Counting rules), so the two can differ.
Budget, By month
By month is Budget's first tab. It is worked out from the record each time it opens, by the same calculation that answers an assistant.
The range
| Choice | Shows |
|---|---|
| Next 12 months | This month and the 11 after it (the default) |
| Next 24 months | This month and the 23 after it |
| This year (its number, such as 2026) | January to December: what was paid in the months gone, what is still expected from this month on |
| An earlier year | January to December of a year with paid expenses: paid only |
Up to two earlier years get a button each; with three or more they are one Year select. The range is not remembered. The summary line above the months gives the expected total and what was paid this year.
A month
Each month row shows "NOK X expected" with "NOK Y paid" under it, leaving out a zero, and a bar. Tapping the row opens its lines: first what was paid ("Paid · Jobs"), then what is expected, each with its amount. A line opens its record: a job or a plan its page, an expense its page, a project its page, an item its page.
- The bar is drawn against the busiest month (expected plus paid), so the months compare. Paid is drawn first, striped; expected follows, solid; each line has its own colour, named in the legend.
- Paid is never inside "expected". A job's estimate counts while the job is open; once it is done with a cost, the cost is a paid expense and the estimate is gone. An expense counts as expected while planned or committed, and as paid once paid. Nothing is in both.
- A month before this one shows only what was paid. Unpaid money is never shown in the past.
The five lines
| Line | What is expected on it |
|---|---|
| Purchases | Items the jobs, plans and kits will need that are not aboard, the minimum stock, and what is on order |
| Jobs | Open and deferred jobs and plans' coming occurrences, at their estimate |
| Projects | What is left of each planned or in-progress project's estimate, and the expenses, jobs and kit items under a project |
| Fixed costs | Repeating expenses, and their occurrences not yet added |
| Other | Every other planned or committed expense |
A paid expense counts on one line only, decided in this order:
- Fixed costs, if it repeats or follows an expense that did.
- Projects, if it is under a project.
- Purchases, if a receipt made it.
- Jobs, if a job's cost made it.
- Other, otherwise.
A planned or committed expense follows steps 1 and 2 and is otherwise Other. A job's expense under a project is therefore on the Projects line, not Jobs.
No date
Below the months, a No date row holds what could not be dated: an expense or a project with no date, a job with no due date, and a job due by engine hours on an engine without a usage rate. It is not shown for an earlier year, or when it is zero.
Notes
Under the months, Notes lists only what applies. An earlier year has no Notes.
| What you see | What it means | What to do |
|---|---|---|
| "3 jobs have no estimate." | They count as nothing; a plan counts once however often it falls | Add an estimate (Open Work) |
| "2 items have no price." | Items to buy with no price paid and no usual price count as nothing | Add a price to the item |
| "1 problem has no planned fix, so its cost is not included." | An open problem with no fix job has no amount; a watched one is not counted | Schedule a fix with an estimate |
| "4 items were never counted; the purchases figure may be high." | An uncounted item is taken as none aboard | Count them (opens To buy) |
| "Ideas are not included: 2 projects, about NOK 60,000." | Projects at Idea are left out of every total | Mark planned the ones you mean to do |
| "Engine hours: about 0.4 a day on Volvo Penta D2, from your readings." | The rate that dates jobs due by engine hours | Keep recording readings |
Counting rules
These are the rules behind By month, in plain words.
- Only unpaid money is forecast. Paid money is shown apart.
- Overdue counts this month. Money still unpaid and dated before this month is counted in this month. When this month is outside the range (an earlier year), it is not shown.
- A plan's coming occurrences are counted after its open job, each from the one before, as if done on its due day, or today if that day has passed. An overdue plan is one job this month, not several. A paused plan adds no coming occurrences; a job of it that is already open still counts.
- A job due by engine hours is dated by the engine's usage rate: hours per day from the first and last readings of the last 365 days, which needs at least two readings at least 30 days apart. It is a year's average, so for a boat laid up in winter it gives an earlier date than the real one. When a job has both a date and hours, the earlier counts.
- Items are netted against stock. The items each job, plan occurrence and kit needs are taken from what is aboard and on order, earliest need first, equivalent items pooled. The minimum stock is a reserve, bought this month if short; only stock above it covers later needs. What is still short is bought in the month it is needed, or in its Buy later month if that is later, at the last price paid, else the item's usual price.
- What is on order is paid when it arrives, so it is counted this month at its order's price.
- A kit counts in the month of its date, or this month with none. A kit for an Idea or a cancelled project counts nothing.
- A project's remainder is its estimate less its expenses (cancelled ones left out), its kits' items to buy and its open jobs' estimates, never below zero, in the month of its target date (No date without one).
- A job under a project is on the Projects line, and its estimate is taken off the project's remainder, so the two are not counted twice.
- A repeating expense is projected from its latest occurrence, at that amount, until the range ends. A latest occurrence that is cancelled or no longer repeats ends it.
What can count twice, because nothing links the two:
- an item on order and a planned expense you added by hand for the same order;
- a job's estimate and a planned expense you added by hand for the same job;
- a project carried out by a job that is not put under it (put the job under the project to fix this);
- a project kit's item that is already on order, which counts under Purchases and does not reduce the project's remainder.
Over MCP, budget_forecast_get answers the same forecast an assistant can read, month by month, with the same lines and notes.
For assistants
If you are an assistant connected to LazyJack, these are the rules for money.
- Every amount is in the boat's one currency (
vessel_getanswerscurrency). Acurrencythat differs is refused before anything is stored. Convert with the owner, or leave the amount out and keep the quote in notes. - A past payment carries its date.
expense_createwithstatus: "paid"andpaidAt, orexpense_updateto paid withpaidAt; without it the payment is dated now. - Pay a repeating expense, never add the next one yourself.
expense_update { status: "paid" }on the current occurrence adds the next one; an occurrence you create by hand is a second series. - A job's cost is recorded with the job, through
maintenance_task_complete(cost,vendor), which makes the expense. Do not add a planned expense for a job that has an estimate: it counts twice. - Put a job under its project (
projectIdonmaintenance_task_createor_update) rather than adding an expense to the project for it; the job's estimate then comes off the project's remainder. - Read before you quote.
budget_forecast_getwithdetail: truegives the lines behind a month; say which line a figure is on, and say it is an estimate from the record, not a quote. Mentionuncountedandunpricedwhen they are not empty: the figure is then known to be incomplete. - Idea projects are not in the totals. Marking one planned (
project_update { status: "planned" }) puts its estimate in; do that only on the owner's say-so.
Not in this chapter
- Why statuses are actions and what Archive keeps: How LazyJack thinks.
- Choosing the currency at the first run: Setting up the boat and engine.
- Doing a job, its estimate and its cost: Work: plans, jobs and problems.
- Receiving stock, orders, Buy later and counting: Inventory and To buy.
- Receipts and quotes as documents: Documents and papers.
- A change refused when syncing: Troubleshooting sync.
- What an assistant may do: Assistants.