
Quote — rendered output
npx @formepdf/html templates/quote/index.html -o quote.pdf
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Quotation QUO-2026-118 — Northmoor Industrial Group, Inc.</title>
<link rel="stylesheet" href="../northmoor-shared.css">
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="sheet">
<div class="atop"></div>
<div class="pagefill">
<header>
<div class="hd">
<div class="mast-left">
<div class="mark">N</div>
<div>
<div class="wm">Northmoor</div>
<div class="sub" style="margin-top: 3pt">Industrial Group, Inc.</div>
</div>
</div>
<div class="addr" style="text-align: right">418 Ellingham Road, Suite 300<br>Rochester, NY 14604<br>(585) 274-0180<br>estimating@northmoorgroup.com</div>
</div>
<div class="hr2 mast-divider"></div>
<div class="dochead">
<div>
<div class="lbl lbl-accent" style="margin-bottom: 7.5pt">Estimating · firm for thirty days</div>
<h1 class="dtitle">Quotation</h1>
</div>
<div style="text-align: right">
<div class="lbl" style="margin-bottom: 5.25pt">Quotation number</div>
<div class="refnum">QUO-2026-118</div>
</div>
</div>
</header>
<div class="meta meta-doc">
<div><div class="lbl">Prepared for</div>Alder Creek Public Schools<br>Attn. J. Perreault, Operations<br>77 Sixth Street North<br>Alder Creek, NY 13301</div>
<div><div class="lbl">Dated</div>07 September 2026<div class="lbl meta-gap">Valid until</div>07 October 2026</div>
<div><div class="lbl">Enquiry</div>RFQ 26-114, 26 Aug 2026<div class="lbl meta-gap">Lead time</div>6–8 weeks from order</div>
<div><div class="lbl">Prepared by</div>S. Marchetti, Estimating<div class="lbl meta-gap">Site visited</div>02 September 2026</div>
</div>
<p class="intro" style="max-width: 418pt">We are pleased to quote the supply and installation of one dust collection system for the district's technology shop, sized to the four machines listed in your enquiry with capacity for one future drop. Pricing assumes single-shift access and existing 480 V service within thirty feet of the proposed unit location.</p>
<table class="t items">
<thead>
<tr>
<th scope="col" style="width: 33pt">Item</th>
<th scope="col">Description</th>
<th scope="col" class="num" style="width: 48pt">Qty</th>
<th scope="col" style="width: 30pt">Unit</th>
<th scope="col" class="num" style="width: 61.5pt">Rate</th>
<th scope="col" class="num" style="width: 69pt">Amount</th>
</tr>
</thead>
<tbody>
<tr><td>001</td><td>Dust collector, 4,000 CFM, cartridge type, with rotary airlock and controls</td><td class="num">1</td><td>ea</td><td class="num">12,480.00</td><td class="num">12,480.00</td></tr>
<tr><td>002</td><td>Ductwork, spiral galvanized 14 in, hangers and blast gates</td><td class="num">240</td><td>ft</td><td class="num">18.60</td><td class="num">4,464.00</td></tr>
<tr><td>003</td><td>Installation labor, mechanical and electrical, two technicians</td><td class="num">88</td><td>hr</td><td class="num">96.00</td><td class="num">8,448.00</td></tr>
</tbody>
</table>
<table class="tt">
<tbody>
<tr><td>Subtotal</td><td class="num">25,392.00</td></tr>
<tr><td>Taxable materials 16,944.00 · NY sales tax 8.00%</td><td class="num">1,355.52</td></tr>
<tr class="total"><td>Quoted total</td><td class="num">26,747.52</td></tr>
</tbody>
</table>
<div class="twocol">
<div style="flex-grow: 1">
<h2 class="lbl sh-plain" style="margin: 0 0 5.25pt; border-bottom: 0 solid #FDFCFA; padding-bottom: 0">Excluded from this quotation</h2>
<div class="excl">Roof penetrations and patching · fire suppression modifications · asbestos survey or abatement · permit fees, billed at cost · painting beyond factory finish · after-hours premium time</div>
</div>
<div style="flex-grow: 1">
<h2 class="lbl" style="margin: 0 0 5.25pt">Options, priced separately</h2>
<table class="t mini">
<tbody>
<tr><th scope="row" class="rlab">Sound attenuation package</th><td class="num">1,840.00</td></tr>
<tr><th scope="row" class="rlab">Spare cartridge set, six filters</th><td class="num">2,214.00</td></tr>
<tr><th scope="row" class="rlab">Extended warranty, 36 months</th><td class="num">960.00</td></tr>
</tbody>
</table>
</div>
</div>
<div class="pagefill-spacer"></div>
<div class="sigrow">
<div class="sigcell lbl" style="flex-grow: 1.4">Accepted for Alder Creek Public Schools</div>
<div class="sigcell lbl" style="flex-grow: 1">Title</div>
<div class="sigcell lbl" style="flex-grow: 0.7">Date</div>
</div>
<footer class="foot foot-after-sig">
<div style="flex-grow: 1"><div class="lbl">Terms of quotation</div>Prices firm for thirty days. Payment 30% with order, balance net 30 on substantial completion.</div>
<div style="flex-grow: 1"><div class="lbl">Acceptance</div>Return one signed copy or issue a purchase order referencing QUO-2026-118. Orders are subject to our standard conditions of sale, available on request.</div>
</footer>
</div>
</div>
</body>
</html>
/* quote — page geometry and document-specific rules.
* Spine comes from ../northmoor-shared.css. */
@page {
size: Letter;
margin: 52.5pt 57pt 40.5pt; /* 70px 76px 54px */
@bottom-left {
content: "Quotation QUO-2026-118 · Alder Creek Public Schools";
font-family: Helvetica, Arial, sans-serif;
font-size: 5.625pt;
letter-spacing: 0.14em;
text-transform: uppercase;
color: #8A857E;
}
@bottom-right {
content: "Page " counter(page) " of " counter(pages);
font-family: Helvetica, Arial, sans-serif;
font-size: 5.625pt;
letter-spacing: 0.14em;
text-transform: uppercase;
color: #8A857E;
}
}
/* First-page 4px full-bleed accent head rule (escapes into the margin). */
.sheet { position: relative; }
.atop {
position: absolute;
top: -52.5pt;
left: -57pt;
right: -57pt;
height: 3pt;
background-color: #7B2233;
}
.meta-doc { grid-template-columns: 1.4fr 1fr 1fr 1fr; }
.items { margin-top: 19.5pt; }
.twocol { display: flex; gap: 27pt; margin-top: 22.5pt; } /* 36px / 30px */
.excl { font-size: 7.125pt; line-height: 1.75; }
.foot-after-sig { margin-top: 16.5pt; } /* 22px */
/* Equal/ratio split columns: explicit widths (flex basis is not in
* the subset; grow alone leaves intrinsic-width columns). */
.twocol > div { width: 47%; }
northmoor-shared.css alongside them — the set’s shared spine (type scale, tables, signature blocks, the accent).
Sample data (data.json)
Sample data (data.json)
data.json
{
"issuer": {
"name": "Northmoor Industrial Group, Inc.",
"address": "418 Ellingham Road, Suite 300, Rochester, NY 14604",
"phone": "(585) 274-0180",
"ein": "16-1904472",
"bank": {
"name": "First Genesee Bank, Rochester NY",
"account": "8841 002937",
"routing": "021304559"
},
"email": "estimating@northmoorgroup.com"
},
"document": {
"type": "quotation",
"number": "QUO-2026-118",
"dated": "07 September 2026",
"validUntil": "07 October 2026",
"enquiry": "RFQ 26-114, 26 Aug 2026",
"leadTime": "6–8 weeks from order",
"preparedBy": "S. Marchetti, Estimating",
"siteVisited": "02 September 2026"
},
"preparedFor": {
"name": "Alder Creek Public Schools",
"lines": [
"Attn. J. Perreault, Operations",
"77 Sixth Street North",
"Alder Creek, NY 13301"
]
},
"items": [
{
"item": "001",
"description": "Dust collector, 4,000 CFM, cartridge type, with rotary airlock and controls",
"qty": 1,
"unit": "ea",
"rate": 12480.0,
"amount": 12480.0
},
{
"item": "002",
"description": "Ductwork, spiral galvanized 14 in, hangers and blast gates",
"qty": 240,
"unit": "ft",
"rate": 18.6,
"amount": 4464.0
},
{
"item": "003",
"description": "Installation labor, mechanical and electrical, two technicians",
"qty": 88,
"unit": "hr",
"rate": 96.0,
"amount": 8448.0
}
],
"totals": {
"subtotal": 25392.0,
"taxableMaterials": 16944.0,
"taxRate": 0.08,
"tax": 1355.52,
"quotedTotal": 26747.52
},
"options": [
{
"name": "Sound attenuation package",
"price": 1840.0
},
{
"name": "Spare cartridge set, six filters",
"price": 2214.0
},
{
"name": "Extended warranty, 36 months",
"price": 960.0
}
]
}
MIT-licensed, free to copy — source on GitHub. Passes PDF/UA-1 validation (veraPDF) in CI; validation is a floor, not a certification.