No description
Find a file
David 8d957a1f16 Dashboard: a Monthly profit chart, one dot per month
The profit line already drawn on Income vs Fixed vs Running, isolated into its
own full-width card above the monthly trend, with the marker the eye actually
wants: a green dot on a month that made money, a red dot on one that did not.
A line rather than bars, so it is the same series the card above draws and the
two cannot drift.

The dots are NOT on the run lines. A run of a single month has no segment, so a
lone profitable month would have had no dot at all and vanished from the chart.
A second, transparent Line carries `profit` and draws one marker per month
coloured from that month's own sign.

September is a HOLLOW dot, which is the honest part: monthly_running_costs has
rows for Jan-Aug only, so September's profit has had no running cost subtracted
and is optimistic. /charts already marks such a month the same way. The chart
also says so in words, and the KPI is unaffected.

The tooltip shows the hovered MONTH's profit, not a running total, and names it
Profit or Loss by sign rather than surfacing the profitRun0/profitCross0 keys.
2026-10-03 19:13:58 +02:00
.mavis/canvas-assets Mega Plant dashboard — fix & harden (Parts 0-5) 2026-09-12 09:35:48 +02:00
app Dashboard: a Monthly profit chart, one dot per month 2026-10-03 19:13:58 +02:00
components Dashboard: a Monthly profit chart, one dot per month 2026-10-03 19:13:58 +02:00
data/source Invoices: add PHI 169 (Rooihuiskraal) 2026-10-02 06:44:10 +02:00
lib Income: hide stood-down machines, with an active/inactive filter 2026-10-03 18:40:32 +02:00
public Brand logo: 3D cube/map icon replaces the M gradient mark 2026-09-12 12:12:30 +02:00
scripts Sites: auto-allocate container lines to the container the site hires 2026-10-02 18:32:12 +02:00
.dockerignore Round 4: regressions fixed + mobile standard 2026-09-12 12:05:43 +02:00
.env.example Mega Plant dashboard — fix & harden (Parts 0-5) 2026-09-12 09:35:48 +02:00
.gitignore Housekeeping: the surface token, and ignore the verification screenshots 2026-10-03 09:20:24 +02:00
AGENTS.md Invoices: a machine chosen in the dropdown was never actually booked 2026-10-03 15:43:46 +02:00
COOLIFY.md Round 4: regressions fixed + mobile standard 2026-09-12 12:05:43 +02:00
Dockerfile Round 4: regressions fixed + mobile standard 2026-09-12 12:05:43 +02:00
HANDOFF-PROMPT-2.md Round 2 (Parts B-D): asset register restructure, type field, sequential codes, flat sortable table, cost_lines, removed synthetic code, fail loudly 2026-09-12 10:24:26 +02:00
HANDOFF-PROMPT-3.md Round 3 (Parts A-B): charts fixes + expenses/overheads cleanup 2026-09-12 11:24:18 +02:00
HANDOFF-PROMPT-4.md Round 4: regressions fixed + mobile standard 2026-09-12 12:05:43 +02:00
HANDOFF-PROMPT.md Auto-create synthetic assets for unmatched machines in seed; update open-questions report 2026-09-12 09:40:18 +02:00
next.config.ts Invoices: the app ingests PDFs itself, with a problem-invoice inbox 2026-10-02 14:30:17 +02:00
package-lock.json Sites: give every site coordinates 2026-10-02 16:33:43 +02:00
package.json Sites: give every site coordinates 2026-10-02 16:33:43 +02:00
postcss.config.mjs Mega Plant dashboard — fix & harden (Parts 0-5) 2026-09-12 09:35:48 +02:00
tsconfig.json Mega Plant dashboard — fix & harden (Parts 0-5) 2026-09-12 09:35:48 +02:00