Generative Assets · Industry Demos · how it was made
How the Canning Linen Co. demo was built
Canning Linen Co. is a fictional Welshpool commercial laundry — linen hire and wash-and-return for Perth hotels, restaurants, aged care homes, clinics and gyms. The page exists for one reader: the operations manager with a linen problem who wants the week priced honestly, to the whole dollar, before they ring. Its single job is a weekly-service enquiry with the business, the volume, the changes, the delivery days and the kitchen linen already attached.
The Linen Run
The signature is a drawn SVG loading dock in elevation: a roller door with steam drifting across the bay, cage trolleys stacked with folded linen beside a one-metre cage mark, a van backed on with its beacon breathing, a week strip of seven day ticks along the dock edge, and the week's van runs queued in the yard lane. Every control redraws the dock honestly and reprices the week from the pinned anchors.
- Business chip changes the rate, the unit noun on the stepper (rooms / covers / beds / treatment rooms / towel packs), the stepper grid, whether kitchen linen is available, and how much folded height one unit-change makes. The five grids share no values, so a business swap resets the volume to that chip's floor rather than remembering it — a per-product reset, stated here so it is not mistaken for a lost value.
- Volume and changes grow the stack. The week's linen is
units × changesunit-changes; each unit-change is a pinned folded height — 30 mm for a hotel room or an aged-care bed, 20 mm for a treatment room, 4 mm for a restaurant cover, 100 mm for a 25-towel gym pack — so the stack is strictly proportional to units × changes. The drawing scale is constant at 1 metre = 120 scene units, which is why the one-metre cage mark ruled beside the stack never moves: it is the honest reference, not a legend. - The view-fit frame. Across the whole control range the week runs from 4 cm of folded linen (a two-room clinic, one change) to 14.4 m (an 80-room hotel, six changes) — a 360:1 span no single drawn column can carry. So the stack draws between a 40-unit floor (so the smallest week is still legible) and a 300-unit ceiling — and 300 units is not an arbitrary clip, it is exactly one cage trolley's 2.5 m fill line. Past that the overflow rolls up as more cages,
⌈metres ÷ 2.5⌉of them, receding to the right. The drawn cap is six cages, which is the range's own ceiling — every value is drawable. The honest reading is printed over the bay at every state: "14.4 m folded · 6 cages a run". - Delivery chip fills the van's run days on the week strip with a bar beneath the tick and queues that many van passes in the yard lane (2, 3 or 6 — cap 6, the range's ceiling, every value drawable). Changes light that many of those run days in laundry blue. Because changes can never outrun delivery days, the lit ticks are always a subset of the barred ones — the week strip is the constraint, drawn.
- The docket. The price badge is a kraft delivery docket with a punched hole and a cord running to the front cage's top rail. Two lines always: the weekly total and the service-model line pinned per mode. On-scene at the upper left at ≥641 px, docked directly beneath the dock at ≤640 px. Its tear-off stub — still inside the signature's container — carries the two always-on declarations.
- Second read: a count sheet hangs on the wall beside the door with the week's changes struck as a tally (the fifth stroke goes through the first four) and the volume written underneath. It is exactly what the trust strip and the FAQ promise — linen counted in and out, count sheets on every invoice — drawn rather than claimed.
Pinned anchors (GST inclusive; every figure is per week)
| Business | Unit | Stepper | Hire | Wash only | Kitchen linen | Folded height |
|---|---|---|---|---|---|---|
| Hotel & motel | room | 5–80, step 5 | $9 | $5 | yes | 30 mm |
| Restaurant & function | cover | 20–300, step 10 | $2 | $1 | yes | 4 mm |
| Aged care & disability accommodation | bed | 5–60, step 5 | $11 | $6 | yes | 30 mm |
| Physio & medical clinic | treatment room | 2–20, step 1 | $12 | $7 | no | 20 mm |
| Gym & studio | pack of 25 towels | 1–20, step 1 | $16 | $9 | no | 100 mm |
Rates are dollars per unit, per change. Chef whites and aprons are a flat +$40 a week. Delivery is 2 days included, 3 days +$25, 6 days +$60. Changes run 1–6 a week.
The minimum, and which lines sit inside it. The $150 weekly minimum applies to the linen subtotal — units × changes × rate plus kitchen linen. The delivery surcharge sits outside it and is added afterwards. So the week is max(linen subtotal, 150) + delivery surcharge. The rate multiplies the actual volume and changes, never a billed minimum; kitchen linen is flat and inside; delivery is flat and outside. The exact boundary is reachable on the pinned grids: hotel & motel, wash only, 30 rooms, one change is 30 × 1 × $5 = $150 exactly, and it prints the "exactly at the $150 weekly minimum" note rather than the shortfall template. There is no empty state — a business chip, a mode and a delivery chip are always selected, and every stepper has a floor. Every rate is a whole dollar and every stepper grid is whole units, so no total ever needs rounding.
Changes can never outrun delivery days
Raising changes above the selected delivery days forces delivery up to the smallest option that covers it (3 changes → 3 days; 4–6 changes → 6 days) and remembers the previous choice. Every delivery option with fewer days than the current changes is disabled with the reason on the page — "6 changes a week needs 6 delivery days". Lowering changes restores the remembered option only when it becomes valid again; on a partial unwind — the constraint relaxes but the remembered value is still too small — the forced value is held, never stepped down through intermediates. The memory is cleared by any explicit delivery-chip change while the force is active. Kitchen linen behaves the same way in the other direction: the toggle is disabled with its reason on the clinic and gym chips, its value is remembered, and it is restored the moment a hospitality business is chipped again.
Worked examples, measured from the running page
| Scenario | Arithmetic | Week | Minimum note | Cages |
|---|---|---|---|---|
| Rest state — hotel, 25 rooms, hire, 3 changes, 3-day, whites off | 25 × 3 × 9 = 675, + 25 delivery | $700 | absent | 1 |
| Cheapest output — restaurant, 20 covers, wash only, 1 change, 2-day | 20 × 1 × 1 = 20 → minimum 150, + 0 | $150 | "…your linen comes to $20" | 1 |
| Exact boundary — hotel, 30 rooms, wash only, 1 change, 2-day | 30 × 1 × 5 = 150, + 0 | $150 | "exactly at the $150 weekly minimum" | 1 |
| Hotel, 25 rooms, wash only, 1 change, 2-day | 125 → minimum 150, + 0 | $150 | "…your linen comes to $125" | 1 |
| Restaurant, 120 covers, hire, 6 changes, 6-day, whites on | 1,440 + 40 = 1,480, + 60 | $1,540 | absent | 2 |
| Aged care, 40 beds, hire, 3 changes, 3-day, whites on | 1,320 + 40 = 1,360, + 25 | $1,385 | absent | 2 |
| Clinic, 6 treatment rooms, hire, 2 changes, 2-day | 144 → minimum 150, + 0 | $150 | "…your linen comes to $144"; whites disabled | 1 |
| Gym, 8 towel packs, hire, 6 changes, 6-day | 768, + 60 | $828 | absent | 2 |
| Hotel, 80 rooms, hire, 6 changes, 6-day, whites on | 4,320 + 40 = 4,360, + 60 | $4,420 | absent | 6 |
| Hotel, 25 rooms, wash only, 3 changes, 3-day | 375, + 25 | $400 | absent | 1 |
| Force — hotel 25, hire, 1 change, 2-day → changes 6 | 225 → forced to 6-day: 1,350 + 60 | $225 → $1,410 | absent; 2-day and 3-day disabled | 1 → 6 |
| Partial unwind — changes 6 → 3 (remembered 2-day still invalid) | holds 6-day: 675 + 60 | $735 | absent; 3-day re-enabled | 3 |
| Restore — changes 3 → 2 (remembered 2-day valid again) | 450 + 0 | $450 | absent; memory cleared | 2 |
| Memory invalidation — forced to 6-day, lower to 3, chip 3-day explicitly, changes → 1 | stays on 3-day: 225 + 25 | $250 | absent | 1 |
| Rapid fire — gym → clinic → restaurant → hotel in one evaluate, volumes at each floor | hotel floor 5 × 3 × 9 = 135 → minimum 150, + 25 | $175 | "…your linen comes to $135" | 1 |
Every figure above, the grid floor ($150 a week, which is the Linen Run's cheapest output and the services grid's stated floor), the three minimum states (below / exactly / above), the force and both unwind behaviours, and 40 random control vectors were checked against an oracle reimplemented from the pinned anchors in the verification harness — not from the page's own code.
Palette — argued from a folding table under high-bay light
Folded-linen white for the ground, press-steel for the ink and the primary CTA, a real laundry-bluing blue for every mark and rule, and unbleached linen sand that lives only in the drawn stacks, the strapping and the kraft docket. Ratios below were computed with WCAG arithmetic from the shipped tokens during Pass 1 — role, hex and ratio from the same script row.
Every spec figure measured exactly on the shipped tokens — steel 13.04 / 14.37, white-on-blue 6.45 and 8.41 on hover, blue-on-ground 5.85, blue ink 7.30, sand 1.51 (fill only), sand ink 5.15 — so no token moved. The sub ink, the kraft and the map water were minted by the builder and measured before use; the footer's light ink #D6DCE0 reads 10.38:1 on steel and its quiet variant #AEB8BF 7.12:1. Map labels are body ink with a ground-coloured halo (paint-order: stroke) wherever they cross a fill. Inside the open door — a dark bay — the remedy runs the other way: the one-metre cage mark, the bay reading and the ruler are drawn in white on the door's #2E3840 so they hold their contrast where the steel ink could not.
Type
The display moment is the rest-state line set over the dock — "$700 A WEEK · HOTEL & MOTEL · 25 ROOMS · 3 CHANGES" — rebuilt from state on every change, so the figure is always the live total and the rest-state figure is the measured $700. Its tokens are joined with non-breaking spaces so a wrap never strands a dot or a unit at a line end.
Techniques
- Procedural SVG, no libraries. A gridded wall, the roller door, the platform, the ground and the yard lane are the only static layer; the count sheet, the cages, the stack, the steam, the cage mark, the bay reading, the week strip, the van, the queued passes and the docket cord are rebuilt from state on every change. The stack is bands of alternating linen white and folded-linen grey with sand edges, inset on alternate bands so a column of folded pieces reads at any height; above the cage's top rail the heap is strapped in sand.
- Dual-speed redraw (W21) plus an instant relayout. First paint staggers each drawn part at 24 ms with a 1.25 s cap; every later state change redraws at 10 ms per part with a 480 ms cap via a
firstDrawflag. A pure relayout — a resize or a breakpoint crossing — takes a third path that skips the fade entirely, so rotating a phone never replays the entrance choreography (and, as Pass 1 discovered the hard way, a clipped screenshot that re-emulates device metrics can never catch the scene mid-fade). - Token-invalidated loop (W25). Six gradient-filled steam puffs drift across the open bay on an eight-second cycle with a soft sine opacity envelope and a visibility floor, and the van's beacon breathes on its own slower sine. One
requestAnimationFrameloop; its token is bumped in every control handler before the state swap, so the loop closed over the old puff array exits on its next frame and the rebuilt scene starts a fresh one — the probe'sloopscount settles back to exactly one after two rapid-fire bursts. Delta time is clamped at zero and capped at 50 ms (W29), and the loop idles while the tab is hidden. - Labels sized from rendered pixels. Free-floating scene labels take their font size from the live pixels-per-unit, so the bay reading, the cage mark, the strip caption and the run-day letters hold 11–13 px at the desktop frame and at the phone-width crop alike. Day letters inside the week-strip ticks are clamped between 18 and 34 scene units so they fill their box without bursting it.
- The kraft docket. An HTML badge positioned over the scene by CSS at ≥641 px — the drawn subject is composed to its right and below at every state, and the harness asserts the docket never intersects the cages, the one-metre mark, the week strip or the van at 641, 700, 900, 1000, 1100 and 1200 px. At ≤640 px it docks beneath the dock in flow. Its punched hole pulses once on every change after the first draw (off under reduced motion). The declarations live on the docket's tear-off stub so the head stays small enough to be an overlay — Pass 1's finding, described below.
- Reduced motion. A CSS media query plus a
matchMediacheck: no loop starts, the steam is parked mid-curl and the beacon at mid-glow, the entrance transitions, the hero's rise and the punch-hole pulse are all off; every control still computes. - State probe.
window.__laundrycarries the business and its unit noun and grid, volume, mode, rate, changes, delivery days and fee, the forced flag and the remembered delivery, the disabled delivery options and their reason, kitchen linen (effective, remembered and disabled) with its reason, every ledger line, the subtotal, the billed figure, the minimum state, the note in both forms, line 2 in both forms, both declarations in both forms, the total and its text form, the folded millimetres and their reading, the cage count and the drawn count, the lit and barred day indices, the van passes, the stack height,loops,parkedand asettledflag — plus aset()that takes a full control vector in one render. QA gates on state, never on seconds.
Conversion decisions
- Above the fold at 375 px: the business name, "Commercial laundry and linen hire across Perth — hotels, restaurants, aged care, clinics and gyms", Get a weekly price + Call (08) 9000 0373, and the since-2003 / thermal-disinfection / count-sheets trust line — all inside the first viewport, measured.
- Price first, call second. A linen contract is a considered purchase with a walk-through in it, so the primary CTA is "Get a weekly price" with the phone as a visible ghost button beside it; on phones a sticky bar carries Call now and Weekly price above the thumb, with 48 px targets and no backdrop-filter.
- Per week, not per job. Everything on the page — the badge, the ledger, the services grid, the FAQ — is stated per week, because that is the unit a linen contract is bought in. The badge's second line names the service model rather than a turnaround, since the model (our linen or yours) is the decision the buyer is actually making.
- The Run feeds the form. Business, volume, changes, mode, delivery days, kitchen linen, the weekly figure and any minimum note pre-fill the enquiry textarea; "Send this week to us" refreshes it and focuses the name field. The fields are the ones a laundry needs to quote: name, phone, business name, suburb, and the current arrangement — in-house machines, another laundry, staff taking it home, or a new site — because the changeover plan is completely different in each case.
- Honest floors and declarations. The services grid's rates are the Linen Run's rates, and its stated floor — every run starts at $150 a week — is the Run's cheapest reachable output. The losses declaration and the no-lock-in declaration appear wherever the total prints: on the docket's stub, in the ledger and in the screen-reader mirror. Neither carries a number, because the honest figure is replacement cost against a count sheet.
- Local confirmation, no fake network. An empty submit flags every required field inline, sets
aria-invalid, moves focus to the first offender and keeps the confirmation hidden; a valid submit shows the designed panel naming the person, the business, the suburb and the weekly figure, clearly marked as a demonstration. There is nofetchanywhere on the page.
Local SEO we'd implement for the real business
The live page carries only WebPage, WebSite and BreadcrumbList structured data naming it a demonstration — a fictional laundry must not mark itself up as a real one, and the reviews on the page are demonstration copy that is deliberately not marked up at all. For the real client we would ship the block below. Schema.org has an exact organisation type for this trade — DryCleaningOrLaundry, a LocalBusiness subtype — so there is no need to reach for a generic ProfessionalService. Real reviews would be pulled from the Google Business Profile feed and marked up only with the reviewer's consent.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "DryCleaningOrLaundry",
"name": "Canning Linen Co.",
"description": "Commercial laundry and linen hire in Welshpool — sheets, towels, table linen and chef whites for Perth hotels, restaurants, aged care homes, clinics and gyms.",
"url": "https://www.example-canninglinen.com.au/",
"telephone": "+61 8 9000 0373",
"image": "https://www.example-canninglinen.com.au/dock.jpg",
"priceRange": "$$",
"address": {
"@type": "PostalAddress",
"addressLocality": "Welshpool",
"addressRegion": "WA",
"postalCode": "6106",
"addressCountry": "AU"
},
"geo": { "@type": "GeoCoordinates", "latitude": -31.99, "longitude": 115.94 },
"areaServed": ["Perth", "Northbridge", "East Perth", "Subiaco", "Osborne Park", "Cannington", "Fremantle", "Joondalup"],
"openingHoursSpecification": [
{ "@type": "OpeningHoursSpecification", "dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"], "opens": "04:00", "closes": "18:00" }
],
"knowsAbout": ["commercial laundry", "linen hire", "hotel linen", "table linen", "aged care laundry", "thermal disinfection", "chef whites", "gym towel service"],
"hasOfferCatalog": {
"@type": "OfferCatalog",
"name": "Weekly linen services",
"itemListElement": [
{ "@type": "Offer", "itemOffered": { "@type": "Service", "name": "Hotel and motel linen hire" }, "priceSpecification": { "@type": "UnitPriceSpecification", "price": "9", "priceCurrency": "AUD", "unitText": "per room, per change" } },
{ "@type": "Offer", "itemOffered": { "@type": "Service", "name": "Restaurant and function table linen" }, "priceSpecification": { "@type": "UnitPriceSpecification", "price": "2", "priceCurrency": "AUD", "unitText": "per cover, per change" } },
{ "@type": "Offer", "itemOffered": { "@type": "Service", "name": "Aged care and disability accommodation linen" }, "priceSpecification": { "@type": "UnitPriceSpecification", "price": "11", "priceCurrency": "AUD", "unitText": "per bed, per change" } },
{ "@type": "Offer", "itemOffered": { "@type": "Service", "name": "Gym and studio towel packs" }, "priceSpecification": { "@type": "UnitPriceSpecification", "price": "16", "priceCurrency": "AUD", "unitText": "per pack of 25, per change" } }
]
},
"aggregateRating": { "@type": "AggregateRating", "ratingValue": "4.8", "reviewCount": "57" },
"review": [
{
"@type": "Review",
"author": { "@type": "Person", "name": "Real customer, with consent" },
"datePublished": "2026-06-14",
"reviewRating": { "@type": "Rating", "ratingValue": "5" },
"reviewBody": "Pulled from the live Google Business Profile feed — never hand-written."
}
]
}
</script>
Alongside the schema: a Google Business Profile with the Welshpool plant pinned and the service area drawn, "commercial laundry Perth" / "linen hire Perth" / "hotel linen service Perth" / "aged care laundry Perth" as the page's core phrases with the suburbs above as secondary, NAP consistency across the hospitality and aged-care supplier directories, and a reviews feed that updates without anyone touching the page.
What changes for the real client
- RFID linen tracking behind the count sheets — chipped items read at the plant and at the cage, so the counts on the invoice are machine-generated rather than hand-tallied, and a disputed loss is a query, not an argument.
- Route software for the six-day run: the delivery-days chip stops being a price line and becomes a real route with a driver, an ETA and a proof-of-delivery signature the customer can see.
- Xero for weekly recurring invoices with GoCardless direct debit — the Linen Run's ledger maps line for line onto the invoice, with the loss items appended from the tracking system.
- A customer portal for change requests, par-stock levels and the wash records the aged-care and clinic customers need for audit — the same records the FAQ promises, downloadable instead of emailed.
- The plant's own photography of the folding floor and the cages in place of the drawn dock, a Google reviews feed, the real ABN, trade waste permit and insurance certificates, and the real phone number in place of the reserved pattern.
Iteration log
- Pass 1 — Craft. Contrast measured from the shipped tokens with WCAG arithmetic (32 pairs): every pinned figure held exactly and no token moved; the builder-minted sub ink, kraft and map water were measured before use. Two real defects and one instructive artifact. (1) The docket was too heavy to be an overlay: carrying the total, line 2, the note and both full declarations, it measured 300 px tall — at 641 px that is taller than the whole scene, and the geometry sweep caught it covering the week strip and the van at 641, 700, 900 and 1200 px. The declarations moved to a tear-off stub directly beneath the artwork — still inside the signature's container, still a badge surface, still full forms at ≥641 px and short forms at ≤640 px — and the head now clears every drawn part at all six widths. (2) The bay reading ("2.3 m folded · 1 cage a run") was set on the wall in steel ink and ran across the door's dark edge, half of it unreadable, and its first line overhung the platform's left edge by 17 px; it is now one line in white ink over the open bay, with the one-metre ruler re-inked white to match. (3) The instructive one: every scene capture came back washed out, and pixel sampling showed the week strip at zero opacity while
getComputedStylereported 1 — a clipped Puppeteer screenshot re-emulates device metrics, which fired the resize handler, which replayed the entrance fade under the shutter. The site fix is the right one anyway: a pure relayout now redraws with no fade at all. Also in this pass: the steam moved from the door's left edge (where it smeared the cage mark and the bay reading) to the open bay on the right and gained a radial-gradient fill so it reads as steam rather than grey ellipses; scene linework was thickened (van 3.4 → 4.4, run bars 7 → 9, tick strokes 2 → 2.8) because at the desktop frame one scene unit is 0.6 px and the dock was reading as a wireframe; the beacon moved from the middle of the van's body onto its roof. - Pass 2 — Depth. The stack model was rebuilt to be honest across its whole range. A single proportional column cannot span 4 cm to 14.4 m, so the drawing now keeps the proportional model and a constant one-metre cage mark, and lets the overflow roll up as extra cages —
⌈metres ÷ 2.5⌉, capped at six, which is the range's own ceiling, so every value is drawable and the bay reading prints the true metres and cage count at every state. Second read added: the count sheet on the wall, with the week's changes struck as a tally (the fifth stroke crosses the first four) and the volume written underneath — the trust strip's promise, drawn. The docket gained its cord and punched ring running to the front cage's top rail, cased in white so it reads across both the white wall and the dark bay. The queued vans in the yard lane gained their run-day labels, which ties the lane to the week strip: at two days a week you can see the Friday truck arrive with no linen change lit against it. Pass 2 drove the force sequence end to end (225 → 1,410 → hold 735 → restore 450), the memory-invalidation sequence (→ $250), the minimum boundary below / exactly / above (125 → $150 under, 150 → $150 exact, 175 → $175 absent), the surcharge-outside and whites-inside cells, both rapid-fire bursts, and 40 random oracle vectors. - Pass 3 — Hardening. 375 px, masthead first (W18): the wordmark's right edge was compared explicitly against the call button's left edge, and the call button's right edge against the CTA's — no collision at either seam, because the phone number collapses to a 44 px icon button and "Get a weekly price" shortens to "Price". Above the fold: the h1, both CTAs and all three trust lines land inside the first viewport; scrollWidth is exactly 375 with zero non-SVG overflow offenders; the sticky bar is fixed inside the bottom 140 px with 48 px targets, and neither it nor the header uses
backdrop-filter(W28). Three real 375 defects, all found by looking at native-resolution captures rather than by an assert. (1) The count sheet's type was sized from rendered pixels, so on the phone crop — where one rendered pixel is nearly three scene units — "3 changes a week" burst straight off the clipboard; its type now takes fixed scene units, and the wall prop is dropped from the phone crop entirely so the crop does what it is for and enlarges the subject. (2) The ledger's declaration amounts were wrapping mid-phrase ("at / cost") — nownowrap. (3) The hero motto's inline separator dot stranded itself between two wrapped columns; below 640 px the motto stacks and the dot is dropped. (4) The week strip's legend — pixel-sized, like every free-floating scene label — grew tall enough on the phone crop to sit on top of the van-run bars; it is dropped from the phone crop for the same reason the count sheet is, and its desktop baseline moved down six units so it clears the bars there too. A fifth defect showed only at the top of the range: at six cages the queue reached across the count sheet and left it reading "…HEET / …week", so the cages now recede 44 scene units apart instead of 64 and the board was reflowed to 176 units with a short tally noun — the queue is tighter, the board is clear at every state, and the six-stroke tally (five struck through, plus one) still fits. Reduced motion: no loop starts, the steam parks mid-curl, the beacon sits at mid-glow, two frames 1.4 s apart are byte-identical, and every control still computes. DPR and resize: at deviceScaleFactor 2 and across a 1200 → 520 → 1200 sweep the state is intact and the probe reports exactly one loop. Keyboard drives the chips and both steppers; focus rings render; the form'spatternattributes compile under Chrome's v-flag rules, which the zero-console assert is the net for (W19/W30). Chanel rule: the three high-bay light cones came out — near-invisible gradient wedges whose only real contribution was moiré risk on a downscaled capture; the fixtures stay. Label-collision sweep: every text bounding box in the live scene layer was compared against every other at six control vectors (hotel at floor, rest, hotel at maximum, restaurant at maximum, clinic at minimum, gym at maximum) — zero collisions among the day ticks, the one-metre mark, the bay reading, the strip caption, the run-day labels and the count sheet — plus native-resolution captures at 375, 1000 and 1200, the 1200 × 750 thumbnail frame, and clipped signature captures of the maximum and minimum states. Final run: 561 assertions across both pages, all green, zero console errors or warnings.
Two builder calls worth flagging. (1) Cages are the builder's mechanism, not the spec's: the concept pinned a proportional stack between a 40-unit floor and a 300-unit ceiling with a constant one-metre mark; over a 360:1 range those three cannot all hold in one column, so the 300-unit ceiling was read as one cage trolley's 2.5 m fill line and the overflow drawn as further cages. The proportional model, the floor, the ceiling and the constant mark are all shipped as pinned; the cage count is the honest way the big states stay truthful, and its drawn cap of six is the range's own ceiling. (2) Volume resets to the chip's floor on a business swap rather than being remembered per business — the five grids share no values, so a remembered 25 rooms has no meaning on a 20–300 covers grid. This matches the rapid-fire example pinned in the concept, and it is stated on this page so it is not read as a lost value.
This is a demonstration build by Sapience Analytics. Want one pointed at your customers?