Coffee and paper
PDF reports
A roast, two roasts compared, a profile, a coffee, a period, the plan, inventory and purchases as PDF reports.
Roastwarden makes PDF reports from its own data: a roast on a page to keep with the bag, two roasts side by side after an experiment, a cupping form to score on, a stock-take sheet, a roast-day plan to fill in at the roaster. They are pages laid out to read and print, not data dumps, and the server makes them itself, so they read the same from any browser or a script.
| Report | What it is |
|---|---|
| Roast report | one roast: the coffee, eight figures (weight and loss, roast time, first crack, development, drop, colour, how closely it followed the profile, cost) each against the range it was judged by, the curve with RoR, heater and fan, the phases, events, notes and cupping |
| Compare two roasts | an A/B experiment: both curves and RoR on one chart, the phases on one time scale, about 25 numbers side by side with B − A |
| Cupping sheet | a blank form to score on, after the classic SCA protocol, with three-digit blind codes and the key on a page of its own; or a session's scores as a table |
| Green inventory | every coffee in stock with its age, cost and value, the recent pace and when it runs out; or a stock-take sheet to write the counts on |
| Shopping list | one short order per supplier, with the usual shipping, and the coffees running low |
| Coffee report | one green coffee: what is known of it, its roasts as a table and overlaid on one chart, its cuppings, its stock ledger |
| Profile report | a profile's roasts ranked, their curves overlaid on the profile's, and how the numbers spread. A profile never roasted prints its target curve to roast against by hand |
| Period report | a month, a year (the year in review) or a range: roasts, green roasted and bought, spend, stock at the end |
| Purchases | the green bought over a period, order by order with shipping and fees, and the landed cost per kg |
| Roast-day plan | the planned roasts in order: the green to weigh out, each profile's targets, last time's numbers, and boxes to write charge, first crack, drop and the weight in |
| Traceability | from a green lot to every bag, or a roast back to its lot: purchases, roasts, packed bags, label runs, gifts and what is left. It carries no prices |
Using it
- Dashboard: Reports in the top bar. Pick the kind and what it is about (a roast,
the roasts on a cupping sheet); a roast's, coffee's and profile's report start on the
newest roast's, a cupping sheet with no roast ticked (a blank form, or the latest cupping
session's scores). The preview is the server's own pages, the same as the PDF; while
there is none (the report failed: the reason shows above it) Download PDF and Open to
print wait. Download PDF, or Open to
print (the PDF in a new tab). History → a roast → Report opens its report there.
Reports is the
reportsmodule: if it is not in the top bar, switch it on under Settings → Modules. - From the command line:
roast report roast latestwritesroast-report-batch-N.pdfhere,roast report comparethe newest two roasts side by side (compare-12-13.pdf),roast report cupping latest --blanka cupping form;--format jsonprints the data the page is made from,--format png --page 1is one page to look at (The roast CLI). Any token may make a report: it changes nothing. - Settings → Roasting → Reports: the paper (US Letter, the default, or A4) and the
temperature unit (°C, the default, or °F) a report uses unless asked otherwise
(
report_paper,report_units). A report keeps its own units rather than the browser's, so the PDF reads the same wherever it is opened. - Writing results back: what you write on a roast-day plan goes back in with
roast weighandroast landmark, or on the roast's page; stock-take counts on Beans → the coffee → Counted (g) → Set stock.
Every number is worked out by the server and a missing value prints "–", so nothing shifts on the page. Charts use colours and dashes that still read in greyscale, and the PDF is tagged, so headings and tables keep their structure for screen readers.