PDF templates / Civic / Government
Capital Improvement Plan
Municipal five-year capital improvement plan derived from published US and Irish CIPs: masthead with program meta box, program overview, funding sources with amount and share columns, projects grouped by category with cost and schedule columns, program highlights, debt note, and certification with public-works-director and city-manager sign-off. Renders as a tagged PDF/A-2A + PDF/UA-1 document.

DSL source
The whole template. Learn the language in the template DSL guide.
const template = doc(
{ size: "Letter", title: "{{jurisdiction}} Capital Improvement Plan — {{planPeriod}}", padding: [36, 40, 36, 40],
styles: {
".masthead": { "font-family": "Inter", "font-size": 20, "font-weight": "bold", color: "#0b3d91", "margin": [0, 0, 2, 0] },
".doc-kind": { "font-family": "Inter", "font-size": 13, "font-weight": "bold", color: "#1a1a1a", "margin": [0, 0, 2, 0] },
".doc-line": { "font-family": "Inter", "font-size": 10, color: "#333", "line-height": 1.4 },
".meta-label": { "font-family": "Inter", "font-size": 8, "font-weight": "bold", color: "#555" },
".meta-value": { "font-family": "Inter", "font-size": 9.5, color: "#1a1a1a" },
".notice-box": { "background-color": "#f0f4fa", "border": [1, 1, 1, 1], "border-color": "#0b3d91", padding: [8, 10, 8, 10] },
".notice-text": { "font-family": "Inter", "font-size": 9, color: "#1a1a1a", "line-height": 1.45 },
".section-title":{ "font-family": "Inter", "font-size": 12, "font-weight": "bold", color: "#0b3d91", "border": [0, 0, 1, 0], "border-color": "#0b3d91", "padding": [0, 0, 3, 0], "margin": [0, 0, 6, 0] },
".cat-title": { "font-family": "Inter", "font-size": 10.5, "font-weight": "bold", color: "#1a1a1a", "margin": [0, 0, 4, 0] },
".col-head": { "font-family": "Inter", "font-size": 8, "font-weight": "bold", color: "#555" },
".line-label": { "font-family": "Inter", "font-size": 9.5, color: "#1a1a1a", "line-height": 1.4 },
".line-amount": { "font-family": "Inter", "font-size": 9.5, color: "#1a1a1a" },
".line-share": { "font-family": "Inter", "font-size": 9.5, color: "#444" },
".proj-name": { "font-family": "Inter", "font-size": 9.5, "font-weight": "bold", color: "#1a1a1a", "line-height": 1.35 },
".proj-meta": { "font-family": "Inter", "font-size": 9, color: "#444", "line-height": 1.4, "margin": [1, 0, 0, 0] },
".total-label": { "font-family": "Inter", "font-size": 10, "font-weight": "bold", color: "#1a1a1a" },
".total-amount": { "font-family": "Inter", "font-size": 10, "font-weight": "bold", color: "#0b3d91" },
".hl": { "font-family": "Inter", "font-size": 9.5, color: "#1a1a1a", "line-height": 1.45 },
".bullet": { "font-family": "Inter", "font-size": 9.5, color: "#0b3d91" },
".cert": { "font-family": "Inter", "font-size": 9, color: "#333", "line-height": 1.5 },
".sig-name": { "font-family": "Inter", "font-size": 10, "font-weight": "bold", color: "#1a1a1a", "margin": [0, 0, 0, 0] },
".sig-title": { "font-family": "Inter", "font-size": 9, color: "#444", "margin": [0, 0, 0, 0] },
},
},
// Masthead
s(".masthead", "{{jurisdiction}}"),
s(".doc-kind", "Capital Improvement Plan — {{planPeriod}}"),
s(".doc-line", "{{planTitle}}"),
gap(8),
// Program meta box
r({ "border": [1, 1, 1, 1], "border-color": "#0b3d91", padding: [8, 10, 8, 10] },
col("50%",
s(".meta-label", "PLAN PERIOD"),
s(".meta-value", "{{planPeriod}}"),
gap(4),
s(".meta-label", "ADOPTED"),
s(".meta-value", "{{adoptedAt}}"),
),
col("50%",
s(".meta-label", "FIVE-YEAR PROGRAM TOTAL"),
s(".meta-value", "{{totalProgram}}"),
gap(4),
s(".meta-label", "PUBLIC WORKS CONTACT"),
s(".meta-value", "{{contact}}"),
),
),
gap(8),
// Program overview
r({ class: "notice-box" },
col("100%", s(".notice-text", "{{overview}}")),
),
gap(10),
// Funding sources
s(".section-title", "How the Program Is Funded"),
r({ grid: ["1fr", "90pt", "52pt"], "margin": [0, 0, 4, 0] },
col(s(".col-head", "SOURCE")),
col({ align: "right" }, s(".col-head", "AMOUNT")),
col({ align: "right" }, s(".col-head", "SHARE")),
),
each("source in fundingSources",
r({ grid: ["1fr", "90pt", "52pt"], "margin": [0, 0, 3, 0] },
col(s(".line-label", "{{source.name}}")),
col({ align: "right" }, s(".line-amount", "{{source.amount}}")),
col({ align: "right" }, s(".line-share", "{{source.share}}")),
),
),
r({ grid: ["1fr", "90pt", "52pt"], "border": [1, 0, 0, 0], "border-color": "#0b3d91", "padding": [4, 0, 0, 0], "margin": [2, 0, 0, 0] },
col(s(".total-label", "Total program")),
col({ align: "right" }, s(".total-amount", "{{totalFunding}}")),
col(s(".line-share", "")),
),
gap(10),
// Projects by category
s(".section-title", "Projects by Category"),
each("cat in categories",
s(".cat-title", "{{cat.name}} — {{cat.total}}"),
r({ grid: ["1fr", "80pt", "80pt"], "margin": [0, 0, 4, 0] },
col(s(".col-head", "PROJECT")),
col({ align: "right" }, s(".col-head", "COST")),
col({ align: "right" }, s(".col-head", "SCHEDULE")),
),
each("proj in cat.projects",
r({ grid: ["1fr", "80pt", "80pt"], "margin": [0, 0, 6, 0] },
col(
s(".proj-name", "{{proj.id}} — {{proj.name}}"),
s(".proj-meta", "{{proj.detail}}"),
),
col({ align: "right" }, s(".line-amount", "{{proj.cost}}")),
col({ align: "right" }, s(".line-share", "{{proj.schedule}}")),
),
),
gap(4),
),
gap(4),
// Highlights
s(".section-title", "Program Highlights"),
each("h in highlights",
r({ grid: ["14pt", "1fr"], "margin": [0, 0, 3, 0] },
col(s(".bullet", "•")),
col(s(".hl", "{{h}}")),
),
),
gap(4),
s(".cert", "{{debtNote}}"),
gap(8),
// Certification + sign-off
s(".cert", "{{certification}}"),
gap(8),
r({ "margin": [0, 0, 0, 0] },
col("50%",
s(".sig-name", "{{publicWorksDirector}}"),
s(".sig-title", "Public Works Director"),
),
col("50%",
s(".sig-name", "{{cityManager}}"),
s(".sig-title", "City Manager"),
),
),
ftrPages("{{jurisdiction}} Capital Improvement Plan {{planPeriod}}"),
);
const sampleData = {
jurisdiction: "City of Riverton",
planPeriod: "FY 2025-30",
planTitle: "Adopted 24 June 2025 — 1 July 2025 through 30 June 2030",
adoptedAt: "24 June 2025",
totalProgram: "$127.4 million (five years)",
contact: "Public Works — (555) 014-2950",
overview: "This plan programs the City of Riverton capital investments for FY 2025-30 in plain language. The $127.4 million five-year program funds 11 projects across streets, water and parks — including Elm Street resurfacing, the Northside water-main renewal, and the Mill Road park expansion. Pay-as-you-go transfers cover 42 percent of the program; the balance comes from voter-approved bonds and state grants already awarded.",
fundingSources: [
{ name: "General fund transfers (pay-as-you-go)", amount: "$53.5M", share: "42.0%" },
{ name: "General obligation bonds (2024 authorization)", amount: "$38.2M", share: "30.0%" },
{ name: "State and federal grants (awarded)", amount: "$21.3M", share: "16.7%" },
{ name: "Water and sewer utility fees", amount: "$14.4M", share: "11.3%" },
],
totalFunding: "$127.4M",
categories: [
{
name: "Streets and transportation",
total: "$48.6M",
projects: [
{ id: "ST-24-04", name: "Elm Street resurfacing", cost: "$4.2M", schedule: "FY 2025-27", detail: "Mill and overlay 2.1 miles plus storm-drain repairs; change order 3 adds $86,400." },
{ id: "ST-25-01", name: "Mill Road complete street", cost: "$18.9M", schedule: "FY 2026-29", detail: "Reconstruct with bike lanes and sidewalks to serve the MU-N corridor (Case Z-25-09)." },
{ id: "ST-25-02", name: "Rail-crossing safety program", cost: "$6.1M", schedule: "FY 2025-28", detail: "Gates, signals and pedestrian refuges at three crossings; 80 percent state grant." },
{ id: "ST-26-01", name: "Neighborhood pavement preservation", cost: "$19.4M", schedule: "FY 2026-30", detail: "Annual slurry and overlay rotation covering 42 lane-miles per year." },
],
},
{
name: "Water and sewer",
total: "$52.3M",
projects: [
{ id: "WT-25-01", name: "Northside water-main renewal", cost: "$18.6M", schedule: "FY 2025-28", detail: "Replace 6.4 miles of 1950s cast iron; funded by utility fees and a $4.1M state grant." },
{ id: "WT-26-02", name: "Treatment plant buffer and intake", cost: "$22.4M", schedule: "FY 2026-30", detail: "Intake upgrades plus east buffer landscaping adjoining the Mill Road corridor." },
{ id: "WT-25-03", name: "Sewer lift-station rehabilitation", cost: "$11.3M", schedule: "FY 2025-27", detail: "Three stations rebuilt to current flood-elevation standards." },
],
},
{
name: "Parks and public facilities",
total: "$26.5M",
projects: [
{ id: "PK-25-01", name: "Mill Road park expansion", cost: "$9.8M", schedule: "FY 2026-28", detail: "Eight-acre expansion with playfields and trail connection to Elm Street." },
{ id: "PK-26-02", name: "Civic Center HVAC and roof", cost: "$7.2M", schedule: "FY 2026-27", detail: "450 Civic Center Drive — roof replacement and all-electric HVAC conversion." },
{ id: "PK-25-03", name: "Winter shelter capital repairs", cost: "$3.4M", schedule: "FY 2025-26", detail: "Life-safety upgrades referenced in the city manager's November 2025 report." },
{ id: "PK-27-01", name: "Neighborhood playground renewals", cost: "$6.1M", schedule: "FY 2027-30", detail: "Six playgrounds brought to current accessibility and surfacing standards." },
],
},
],
highlights: [
"No new tax rate: the 2024 bond authorization and awarded grants fund 47 percent of the program.",
"Elm Street resurfacing (ST-24-04) starts summer 2025 — the same corridor as the Mill Road rezoning.",
"Water-main renewal replaces the oldest cast-iron segments first, cutting main breaks in half.",
"Every project page publishes its budget, schedule and funding source in one accessible table.",
"Annual CIP review each June re-balances pay-as-you-go transfers against General Fund reserves.",
],
debtNote: "Debt service on the 2024 bond authorization peaks at $3.1 million per year in FY 2028-29, or 2.4 percent of General Fund spending — inside the Council's 5 percent policy cap.",
certification: "I certify that the projects and figures in this plan are drawn from the FY 2025-30 capital improvement plan adopted by the Riverton City Council on 24 June 2025. — M. Haddad, Public Works Director",
publicWorksDirector: "M. Haddad",
cityManager: "J. Ellis",
};Sample data
{
"jurisdiction": "City of Riverton",
"planPeriod": "FY 2025-30",
"planTitle": "Adopted 24 June 2025 — 1 July 2025 through 30 June 2030",
"adoptedAt": "24 June 2025",
"totalProgram": "$127.4 million (five years)",
"contact": "Public Works — (555) 014-2950",
"overview": "This plan programs the City of Riverton capital investments for FY 2025-30 in plain language. The $127.4 million five-year program funds 11 projects across streets, water and parks — including Elm Street resurfacing, the Northside water-main renewal, and the Mill Road park expansion. Pay-as-you-go transfers cover 42 percent of the program; the balance comes from voter-approved bonds and state grants already awarded.",
"fundingSources": [
{
"name": "General fund transfers (pay-as-you-go)",
"amount": "$53.5M",
"share": "42.0%"
},
{
"name": "General obligation bonds (2024 authorization)",
"amount": "$38.2M",
"share": "30.0%"
},
{
"name": "State and federal grants (awarded)",
"amount": "$21.3M",
"share": "16.7%"
},
{
"name": "Water and sewer utility fees",
"amount": "$14.4M",
"share": "11.3%"
}
],
"totalFunding": "$127.4M",
"categories": [
{
"name": "Streets and transportation",
"total": "$48.6M",
"projects": [
{
"id": "ST-24-04",
"name": "Elm Street resurfacing",
"cost": "$4.2M",
"schedule": "FY 2025-27",
"detail": "Mill and overlay 2.1 miles plus storm-drain repairs; change order 3 adds $86,400."
},
{
"id": "ST-25-01",
"name": "Mill Road complete street",
"cost": "$18.9M",
"schedule": "FY 2026-29",
"detail": "Reconstruct with bike lanes and sidewalks to serve the MU-N corridor (Case Z-25-09)."
},
{
"id": "ST-25-02",
"name": "Rail-crossing safety program",
"cost": "$6.1M",
"schedule": "FY 2025-28",
"detail": "Gates, signals and pedestrian refuges at three crossings; 80 percent state grant."
},
{
"id": "ST-26-01",
"name": "Neighborhood pavement preservation",
"cost": "$19.4M",
"schedule": "FY 2026-30",
"detail": "Annual slurry and overlay rotation covering 42 lane-miles per year."
}
]
},
{
"name": "Water and sewer",
"total": "$52.3M",
"projects": [
{
"id": "WT-25-01",
"name": "Northside water-main renewal",
"cost": "$18.6M",
"schedule": "FY 2025-28",
"detail": "Replace 6.4 miles of 1950s cast iron; funded by utility fees and a $4.1M state grant."
},
{
"id": "WT-26-02",
"name": "Treatment plant buffer and intake",
"cost": "$22.4M",
"schedule": "FY 2026-30",
"detail": "Intake upgrades plus east buffer landscaping adjoining the Mill Road corridor."
},
{
"id": "WT-25-03",
"name": "Sewer lift-station rehabilitation",
"cost": "$11.3M",
"schedule": "FY 2025-27",
"detail": "Three stations rebuilt to current flood-elevation standards."
}
]
},
{
"name": "Parks and public facilities",
"total": "$26.5M",
"projects": [
{
"id": "PK-25-01",
"name": "Mill Road park expansion",
"cost": "$9.8M",
"schedule": "FY 2026-28",
"detail": "Eight-acre expansion with playfields and trail connection to Elm Street."
},
{
"id": "PK-26-02",
"name": "Civic Center HVAC and roof",
"cost": "$7.2M",
"schedule": "FY 2026-27",
"detail": "450 Civic Center Drive — roof replacement and all-electric HVAC conversion."
},
{
"id": "PK-25-03",
"name": "Winter shelter capital repairs",
"cost": "$3.4M",
"schedule": "FY 2025-26",
"detail": "Life-safety upgrades referenced in the city manager's November 2025 report."
},
{
"id": "PK-27-01",
"name": "Neighborhood playground renewals",
"cost": "$6.1M",
"schedule": "FY 2027-30",
"detail": "Six playgrounds brought to current accessibility and surfacing standards."
}
]
}
],
"highlights": [
"No new tax rate: the 2024 bond authorization and awarded grants fund 47 percent of the program.",
"Elm Street resurfacing (ST-24-04) starts summer 2025 — the same corridor as the Mill Road rezoning.",
"Water-main renewal replaces the oldest cast-iron segments first, cutting main breaks in half.",
"Every project page publishes its budget, schedule and funding source in one accessible table.",
"Annual CIP review each June re-balances pay-as-you-go transfers against General Fund reserves."
],
"debtNote": "Debt service on the 2024 bond authorization peaks at $3.1 million per year in FY 2028-29, or 2.4 percent of General Fund spending — inside the Council's 5 percent policy cap.",
"certification": "I certify that the projects and figures in this plan are drawn from the FY 2025-30 capital improvement plan adopted by the Riverton City Council on 24 June 2025. — M. Haddad, Public Works Director",
"publicWorksDirector": "M. Haddad",
"cityManager": "J. Ellis"
}Render it with your data
Any API key can render this template by its ID. This call uses the sample data; add a data object to use your own. See the API reference.
curl -X POST https://makespdf.com/api/v1/render \
-H "Authorization: Bearer $MAKESPDF_API_KEY" \
-H "Content-Type: application/json" \
-d '{"templateId": "capital-improvement-plan"}' \
-o output.pdf