
The canonical form of the documents we hand to a client: business assessment, periodic report, data read-out. Page geometry, components, the rules that govern numbers, the vertical variants and how the PDF is produced.
Chapter 11 defines the document families — proposal, brief, report. This chapter fixes the form of the ones that carry a client's numbers and end up in their hands: the business assessment, the periodic report and the read-out of a pilot. All three share the same grid, the same components and the same rules about numbers. Only the sequence of content changes.
Photographs a client's business with their own numbers, isolates the two or three that change their decisions, and closes with a phased plan. It is the document that opens a working relationship.
Same form, recurring content: what happened in the period, what the data says, what changes as a result and who does it. Pages 1, 2 and the last one never change.
The delivery of a measurement: few numbers, the method under each one, and the decision they unlock. Same grid, fewer pages.
The document is a fixed-page HTML file: one <section class="page"> is one A4 page. No automatic pagination, no content flowing from one page into the next. Whoever writes sees immediately when a page is full, because the overflow check outlines it in red on screen.
| Element | Value | Why |
|---|---|---|
| Format | 210 × 297 mm, @page { size: A4; margin: 0 } | Margins live in the CSS, not in the print dialog: the PDF comes out identical on any machine. |
| Side margins | 18 mm | A 174 mm text column: about 95 characters at 9.5 pt, the point past which a line stops reading well. |
| Text area | 27 mm from the top to 20 mm from the bottom | Leaves the header and footer room to breathe without crowding the trim. |
| Header | Wordmark left (30 mm), document title right, 0.25 mm rule | Chapter 11: the wordmark opens, the title closes. It never appears on the cover. |
| Footer | Version and date · confidentiality · page number | Three non-negotiable items on every page (ch. 11, section F). |
| Page number | CSS counter, bottom right | It has to appear where scripts do not run either: previews, static viewers, conversions. |
| Cover | No header; wordmark top left | The cover is the only page that carries the mark at size. |
The cover is the only page with a layout of its own, and the only one where the pictogram appears. Its geometry is fixed: it is what makes two documents, for two different clients, read as coming from the same place.
| Element | Geometry | Rule |
|---|---|---|
| Wordmark | 62 mm wide, top left, 18 mm from the top, on the side margin | Ink, flat version, never the outlined one. On a vertical it becomes the vertical's wordmark with "Powered by EurekaGO" 2.5 mm below it, in a 6.5 pt label. A vertical's wordmark is matched on optical height, not on width: eureka!BIKE is a longer lock-up, so at the same height it runs about 14% wider. Heights: 8.35 mm on the cover, 4.04 mm in the header, 5.93 mm in the closing block. |
| Pictogram | Height 106% of the page, top at −3%, flush to the right edge with the point of the stem past the trim | The flat mark — the two solid shapes, not the shaded version — in Ink at 4.5% opacity, on z-index 0 with every other element above it. It is the one element in the whole document allowed to bleed. |
| Client logo | 24 mm high, horizontally centred, 12 mm above and 11 mm below | The canonical logo, in SVG whenever one exists. Never a raster below 200 ppi at printed size — at 24 mm that means at least 189 pixels tall — and never one enlarged to get there. It is never recoloured, never put on a coloured ground, never set next to our wordmark as if the two were a single mark. |
| Title block | Starts 44 mm from the top: eyebrow, then the title at 40 pt over a maximum of 160 mm | The eyebrow says what kind of document it is; the title names the client and the subject. Two lines at most. |
| Contents | Single column, 0.35 mm Ink rule on top, rows of 8 mm / 1fr / 8 mm separated by hairlines | Number, title, page. It sits on the cover, not on a page of its own: a document of twelve pages does not need a second one to list them. |
| Summary line | 12 pt, maximum 150 mm, below the contents | One sentence: what the document holds, where the numbers come from, which decision they serve. |
| Signatures | 22 mm from the bottom, "Prepared for" left and "Prepared by" right | Name, role, organisation. A person on each side, never a department. |
| Footer | Same as the inner pages | The cover carries the footer but never the header: the wordmark is already there at size. |
The order is not the writer's to choose. An assessment starts from what the client told us, arrives at the numbers they did not have, then at the structural limit, and only at the end at the plan. Inverting that order turns the document into a sales proposal, which is a different document.
| # | Page | What it holds |
|---|---|---|
| 1 | Cover | Eyebrow, title, the client's logo centred, single-column contents, the summary line, "prepared for / prepared by" at the foot. |
| 2 | In summary | Exactly three points, each with a large figure on the left. It closes with the statement box: the thesis of the document, in one sentence. |
| 3 | The starting point | What the client told us, in horizontal tables. If the declared numbers do not reconcile, that is said here — without blaming anyone. |
| 4–n | One number per page | One page for each number that changes a decision. The title is the conclusion, not the topic. |
| n+1 | Where the limit is | The structural read: the bottleneck, with a diagram of today's process. |
| n+2 | After the work | The same process afterwards: what becomes automatic, what stays with the person, and the loop that ties the two together. |
| n+3 | The steps | Three to five linked steps, each with its moment and its tool from the suite. |
| n+4 | Action plan | Phases as tiles, then the "action · who · when" table. Day zero is declared in the column header. |
| last | The data and the next step | What we read and with which permissions, the assumptions in an appendix, the box with the single action that follows, contacts and wordmark at the foot. |
The scale in chapter 03 is built for screens. On A4 we set in points, and these are the values of the canonical format. Archivo is the only typeface: no monospace, no exceptions.
| Role | Size / weight | Notes |
|---|---|---|
| Cover title | 40 pt / 700, tracking −0.03em | Two lines at most. If it needs three, the title is too long. |
| Page title (h1) | 23 pt / 700, tracking −0.025em, leading 1.1 | Maximum width 160 mm. |
| Lead | 11 pt / 400, leading 1.55 | Two or three lines, never more. |
| Box title (h2) | 12 pt / 700 | Ends in a full stop. |
| Body | 9.5 pt / 400, leading 1.55 | Always set in Ink. |
| Small text | 8–8.3 pt / 400 | Inside boxes and columns. |
| Label / eyebrow | 6.3–7 pt / 600, tracking +0.12em, all caps | The only all-caps allowed in the document. |
| Figure in a horizontal table | 12 pt / 700, on a single line | If it wraps, shorten the figure and move the rest into the detail line. |
| Key figure in the summary | 22 pt / 900, azure | One per point, three per page. |
| Figure from a bar | 34 pt / 900, azure | Under the segment it belongs to, never stranded in a corner. |
| Step number | 54 pt / 900, opacity 0.12 | Watermarked into the box, aligned to the top, never underneath the text. |
The document uses four colour roles and nothing else. Structure is Ink on white; cream separates the boxes that carry reasoning; the brand accent fills the boxes that need emphasis; azure marks the data. A light grey holds the neutral items in charts.
| Role | Value | Where |
|---|---|---|
| Structure | Ink #0A0A0A on White #FFFFFF | Body text, titles, rules, tables. |
| Reasoning box | Cream #F5F3EC | The canonical box: title, then content. Every box in the document aligns to this one. |
| Emphasis box | Accent at 20% | Phase tiles, steps, cost segments. Ink text. |
| Statement box | Accent at 40% | Thesis and next step only: two or three per document, never more. |
| Data | Azure #00AEEF | Eyebrows, key figures, percentages, the result bar. Never on running text. |
| Secondary | Greys G11 #E4E2DB and G05 #524F49 | Neutral chart items, steps not in focus, labels. |
Nine components cover the whole document. We do not invent more: when a piece of content does not fit one of these, it is almost always the content that is wrong.
| Component | Anatomy | Rule |
|---|---|---|
| Section | 0.8 mm azure rule, 7 pt all-caps title, full-width content | Divides dense pages. The rule is azure, not black. |
| Horizontal table | Label above, 12 pt figure on one line, 7.8 pt detail below | Items sit side by side, never stacked: vertically they do not read. |
| Stacked bar | Proportional segments, 0.8 mm white gap between them, labels below aligned to the segments | It shows where an amount goes. The result is the last segment, in azure. |
| Comparison bars | Two bars on one scale; the range is hatched and starts where the solid bar ends | The scale is shared, otherwise the comparison lies. |
| Tiles | Four or more equal columns: short bold title, one line of detail | For phases and for effects. The title fits on one line. |
| Step | Full-width box: watermarked number, text in the middle, details on the right | The first step carries the accent, the others grey: where to start is visible at once. |
| Canonical box | Cream ground, title with a full stop, content 3 mm below the title | It is the format every reasoning box aligns to. |
| Statement box | Accent at 40%, label, 14 pt sentence (19 pt in the closing) | Centred in the free space of the page. Two or three per document. |
| Actions table | Number, action as an infinitive, who, when | One row per action, each on a single line. Day zero is declared in the header. |
Five fills, five jobs. Choosing the fill is choosing what the reader should do with the block, so it is not a matter of taste: a reasoning in accent colour reads as a claim, and a claim in cream disappears.
| Box | Fill | It holds |
|---|---|---|
| Reasoning | Cream #F5F3EC, padding 5 × 6 mm | Method, context, an explanation that supports the page. It is the default box, the one everything else is measured against. |
| Emphasis | Accent at 20%, padding 6 × 7 mm | What matters most on the page: phases, steps in focus, the cost model, the effects of the work. Ink text, no rule, no border. |
| Statement | Accent at 40%, padding 6 × 7 mm | The thesis of the document and the single next step. Two per document, three in a long one. Nothing else ever gets this fill. |
| Secondary | Grey G11 #E4E2DB | Steps that are not the one to start from, neutral segments of a chart, anything present but not in focus. |
| Neutral | White with a 0.25 mm hairline | Tables, lists, anything that is structure rather than a statement. The absence of a fill is a choice too. |
Four line weights, and each one means something. Thickening a rule to make a block stand out breaks the only signal the reader has for telling structure from emphasis.
| Line | Weight and colour | Where |
|---|---|---|
| Hairline | 0.25 mm G10 #D6D3CC | Everything that only separates: table rows, columns of a horizontal table, header and footer rules, the divider between paragraphs. |
| Emphasis rule | 0.35 mm Ink | Under a table header and above a total. It closes a group of numbers, and it is the only black rule in the document. |
| Section rule | 0.8 mm Azure, above the label, 2.5 mm of space under it | Opens a section inside a page. Azure because it marks data, never Ink and never the accent. |
| Quote bar | 1.2 mm Azure on the left, 6 mm of indent | The client's own words, set at 14 pt. Nothing else takes a left bar. |
| Spacing | Value | Note |
|---|---|---|
| Paragraph | 2.6 mm below | The unit of vertical rhythm in the body. |
| Page title | 4 mm below; the lead 5 mm below that | The lead breathes more than the body: it is the entrance to the page. |
| Divider | 5 mm above and below | A full-width hairline. Use it when a page holds two blocks, not to fill space. |
| Columns | 7 mm for two, 5 mm for three, 3.5 mm between tiles | The tighter the grid, the smaller the gutter: the columns have to read as one block. |
| Stacked bar | 13 mm high, 0.8 mm white gaps, labels 1 mm below | The white gap is what separates two adjacent segments of the same colour. |
| Comparison bars | Track 6 mm on cream; the range hatched at 0.6 mm every 1.4 mm | The hatch always starts where the solid bar ends: solid is measured, hatch is estimated. |
| Step card | Padding 3.8 mm / 5 mm, left inset 22 mm; the number at 5 mm from the left and 3.8 mm from the top | The inset is what keeps the watermarked number clear of the text, on every step. |
This section is not about style: it is the part that decides whether the document survives contact with a client who knows their numbers better than we do.
Always, without exception. The calculation on the VAT-inclusive price never appears in the document, not even as a contrast, not even to correct what the client believes: the right figure replaces the wrong one instead of sitting beside it.
Every table of derived numbers carries a method line with the formula, the source and the period. The reader has to be able to redo the arithmetic. The label itself is set in the language of the document — "Metodo:" in an Italian one, which is what the two templates ship.
A single full-width paragraph, items separated by middots: rates, perimeter, period, and what is not verified yet.
When a number rests on few cases, write how far it moves: "one more order would bring the cost per order down to ~€1,200". A range is more honest than a single figure.
If the metric you were asked for does not describe the phenomenon, use the right one and say so out loud. A ROAS that is positive on revenue and negative on margin is written "the return, measured on margin, is negative": a wrong metric in print disqualifies everything else.
Every number sits in the DATA block at the foot of the file and reaches the page through data-v. No figure is ever typed into the body: updating a source must not mean re-reading twelve pages.
There is one template. A document for a vertical changes the accent token block, the wordmark and the contacts: nothing else. Structure, components and the rules about numbers stay put.
| Brand | --accent | Fill 20% / 40% | Text on 40% |
|---|---|---|---|
| EurekaGO | Fuchsia #E0007A | rgba(224,0,122,.2) / .4 — solid #F9CCE4 | White |
| BIKE | Azure #00AEEF | rgba(0,174,239,.2) / .4 — solid #CCEFFC | Ink |
| OUTDOORS | Forest #278244 | rgba(39,130,68,.2) / .4 | White |
| SKI | Arctic #0072A8 | rgba(0,114,168,.2) / .4 | White |
| MOTO | Race #E01010 | rgba(224,16,16,.2) / .4 | White |
| AUTO | Cobalt #1A4A96 | rgba(26,74,150,.2) / .4 | White |
| GYM | Lemon #F5CC00 | rgba(245,204,0,.2) / .4 | Ink |
| FASHION | Velvet #8B2FA0 | rgba(139,47,160,.2) / .4 | White |
| LEDGER | Fog #8A8780 | rgba(138,135,128,.2) / .4 | Ink |
Both templates live in templates/ in this repository: eurekago-report-template.html and eurekabike-report-template.html. Copy the folder, rename the file to index.html, and work there.
| Step | Command or action | What it guarantees |
|---|---|---|
| 1. Content | One <section class="page"> per page; numbers only in the DATA block | Updating a figure is a single operation. |
| 2. Check | Open the file in a browser: pages that overflow are outlined in red | Nothing gets clipped in the PDF. |
| 3. Bake | python tools/bake.py | Writes the computed figures and bar widths into the HTML: the file stays correct where scripts do not run. |
| 4. PDF | build-pdf.cmd | Prints A4 through headless Chrome with zero margins, and names the file itself. |
| 5. Name | YYMMDD_Title_vX.Y.pdf, one folder up | Date and version come from DATA: the filename and the footer cannot drift apart. |
assets folder arrives broken the moment someone moves it or attaches it to an email.
Computing, or even quoting, a margin on the price with VAT in it. It costs credibility across the whole document, and it does not come back.
A number typed into the body instead of derived from DATA. By the third revision two pages will say two different things.
Quoting another client's numbers as proof, even anonymised, in a document that promises confidentiality. The promise only holds if it holds for everyone.
A mark lifted from a website or a slide and enlarged to fill its 24 mm. It is the first thing on the cover and the one element the client knows down to the pixel, so the softness is read as how much care the rest of the document got. Use the vector; a raster only above 200 ppi at printed size. Enlarging adds no detail — it only makes the loss visible. The rule holds for our own wordmark too.
Fix it by cutting words, not by shrinking type: the type scale is the same on every page.
"Cost analysis" says nothing. The title carries the conclusion: someone reading only the titles should already have the document.
Accent scattered around to "add colour", azure on running text, a fourth colour. The document uses four, each with one job.
Three A4 pages with the text replaced by lorem ipsum, carrying every element the format allows: cover with the watermark, header and footer, section rules, horizontal table, stacked bar, comparison bars with a hatched range, quote, cream box, tiles, step cards with the watermarked number, flow with arrows, actions table and the statement box. The same three pages appear twice, once in the master configuration and once in the bike vertical: what changes between them is the accent token block and the wordmark, and nothing else.
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua, ut enim ad minim veniam quis nostrud.
Sunt in culpa qui officia deserunt mollit anim id est laborum, sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium.
Metodo: totam rem aperiam / eaque ipsa quae · 01.01–31.12.2026.
“Quis autem vel eum iure reprehenderit qui in ea voluptate.”
Adipiscing elit sed do eiusmod tempor incididunt ut labore et dolore magna aliqua enim.
Veniam quis nostrud exercitation ullamco laboris nisi ut aliquip.
Dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
Occaecat cupidatat non proident sunt in culpa qui officia.
| # | Action | Who | When |
|---|---|---|---|
| 1 | Lorem ipsum dolor sit amet consectetur | Nomen Nescio | Week 1 |
| 2 | Adipiscing elit sed do eiusmod tempor | EurekaGO | Weeks 2–3 |
| 3 | Incididunt ut labore et dolore magna | Nomen Nescio | Week 4 |

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Lorem Ipsum — Business assessmentSed do eiusmod tempor incididunt ut labore et dolore magna aliqua, ut enim ad minim veniam quis nostrud.
Sunt in culpa qui officia deserunt mollit anim id est laborum, sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium.
Metodo: totam rem aperiam / eaque ipsa quae · 01.01–31.12.2026.
“Quis autem vel eum iure reprehenderit qui in ea voluptate.”
Lorem Ipsum — Business assessmentAdipiscing elit sed do eiusmod tempor incididunt ut labore et dolore magna aliqua enim.
Veniam quis nostrud exercitation ullamco laboris nisi ut aliquip.
Dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
Occaecat cupidatat non proident sunt in culpa qui officia.
| # | Action | Who | When |
|---|---|---|---|
| 1 | Lorem ipsum dolor sit amet consectetur | Nomen Nescio | Week 1 |
| 2 | Adipiscing elit sed do eiusmod tempor | EurekaBIKE | Weeks 2–3 |
| 3 | Incididunt ut labore et dolore magna | Nomen Nescio | Week 4 |
Shown at 50%: every sheet is a real A4 page, with the geometry of sections B, D, E and F.