Lab 11, second pass / researched rather than assumed
You were right that the first pass picked chart types by habit. This one starts from the question a reader is actually asking, because the job the data has to do picks the form, and colour comes last. It also starts from a constraint I checked with a validator rather than an opinion.
So the status palette cannot become a series palette. That is settled by measurement. Everything below is the design that follows from it.
01 / the research
Sixteen real measures from the platform. The middle column is the form, the right column is why that form and not the obvious one.
02 / built
One currency at a time, unlike the dashboard which converts everything into the entity's base. A dashboard answers "how is the business", so one number is right. An analysis answers "where did it come from", and adding dollars to dirhams at today's rate to answer that is arithmetic dressed as insight.
| Destination | Bookings | Revenue | Share | Average | Margin |
|---|---|---|---|---|---|
| Japan | 61 | 2,184,400 | 19.0% | 35,809 | 18.2% |
| Kenya | 44 | 1,771,900 | 15.4% | 40,270 | 21.4% |
| Italy | 58 | 1,436,200 | 12.5% | 24,762 | 16.1% |
| Portugal | 49 | 1,132,700 | 9.8% | 23,116 | 15.8% |
| Iceland | 31 | 961,300 | 8.4% | 31,010 | 19.0% |
| Vietnam | 37 | 808,500 | 7.0% | 21,851 | 17.7% |
| United Kingdom | 22 | 634,100 | 5.5% | 28,823 | 14.3% |
| 31 others | 126 | 2,455,900 | 21.4% | 19,491 | 16.9% |
| All destinations | 428 | 11,385,000 | 100% | 26,600 | 17.4% |
03 / the forms we are not using
Worth writing down, because every one of these will be asked for eventually and the reason should not have to be reinvented each time.
Three ideas from it are now in the system and they are the good ones: a pattern fill instead of a gradient, which happens to be the hatch rule we already had; a dashed tail for the period still running, which fixed a genuine defect where August looked like a finished month next to July; and a reference band behind a series, which is how a target and a margin floor get stated without a second series. The biaxial variant we are not taking, for the reason above.
04 / measured against the stack we already run
The wireframes already run Recharts, and shadcn is a thin wrapper over it, so this is not a library evaluation. It is the question that actually matters: of the sixteen forms above, how many cost nothing to build.
Those five tokens are named like a categorical palette and they are not one. One hue family, lightness falling 77.5, 54.2, 44.1, 36.9, 30.3, in order. shadcn's own default for "five chart colours" is a sequential ramp, arrived at independently of the validator run at the top of this lab and landing in exactly the same place. Five slots called chart-1 to chart-5 is the shape everybody copies; a single hue going light to dark is what the people who built it actually shipped.
Eight of the sixteen are native Recharts. Two more are Recharts with a reference primitive. The remaining six are plain HTML, and five of those are things that should never have been charts. Nothing in the chart language needs a new dependency, and nothing in it needs the platform to leave the stack it already runs.
05 / the last archetype
One page, many sections, holding the rules every other page obeys. The grammar is a repeating three column row: what it is, what it is set to, and who is allowed to change it. That third column is what stops a settings page becoming the place where nobody knows who broke something.
| Capability | Admin | Finance | Supervisor | Agent | Quality |
|---|---|---|---|---|---|
| Create a quotationquotation.create | |||||
| Clear an undercut marginquotation.approve | |||||
| Issue an itembooking.issue | |||||
| Release credit against the gatebooking.release | |||||
| Open a passport copycustomer.passport | |||||
| Read a private customercustomer.blacklist | |||||
| Archive a customercustomer.archive | |||||
| Post a manual journalledger.manual | |||||
| Close a periodledger.close | |||||
| Export a registerreports.export |
A tick and a blank can only say yes and no, and the true answer for releasing credit against the gate is "yes, with a second signature". Hatched has meant open, in flight, not settled alone since the first lab, and here it means a capability that exists but cannot be exercised by one person. Same mark, same meaning, on a surface nobody had it in mind for.
What I need from you