Both templates are standalone HTML files. You don't need a CMS, a developer, or special software to get started. If you can edit a text file and open it in a browser, you can use these. That said, if you want help customizing for your community, we're available — reach out at action@mboldenchange.org.
Each template comes in two versions:
The receipt has two sides: 'Funded & Protected' (left) and 'Cut & Defunded' (right). Each item has five parts:
Open the template in a text editor. Search for 'receipt-item' to find each entry. Replace the placeholder text between the HTML tags with your numbers.
<div class="receipt-item-label">YOUR CATEGORY</div> <div class="receipt-item-program">YOUR PROGRAM NAME</div> <div class="receipt-item-amount">$YOUR NUMBER</div> <div class="receipt-item-period">your timeframe · your source</div> <div class="receipt-item-human">Your one-sentence human impact line.</div>
If you downloaded the CSV guide, it shows the data format used on our site. You can use it as a reference for structuring your own data before entering it into the template. The CSV is not required — it's a companion reference.
The template uses CSS custom properties. To change the brand colors, find the :root section near the top and update these values:
--teal: #0091AD; /* right-side amounts, links */ --yellow: #FAD826; /* left-side header */ --fuchsia: #B22F93; /* VS badge, accents */
The villain index is a clickable list. Each row represents a domain (like 'Groceries' or 'Healthcare'). Clicking a row opens a detail modal with stats, narrative, and sources.
Search for 'villain-index-row' in the HTML. Each row has a domain name and a subtitle. Replace these with your own.
The detail content is stored in a JavaScript object called villainData near the bottom of the file. Each entry has:
Example:
groceries: {
domain: 'Your Domain',
names: 'Key Player 1 · Key Player 2',
stats: [
{ num: '$XX', label: 'what this number means' },
{ num: 'XX%', label: 'what this percentage means' }
],
narrative: 'Your narrative connecting the data to real people...',
sources: 'Your sources here'
}
To add a domain, copy an existing villain-index-row block and add a matching entry in villainData. To remove one, delete both the row HTML and its data entry.
Both templates can be embedded on any website using an iframe:
<iframe src="your-receipt.html" width="100%" height="800" frameborder="0"></iframe>
Or you can host the HTML file directly. Upload it to your web server alongside any assets.
These tools are free to use, adapt, and brand as your own. If you want help customizing for your community or issue area, reach out: action@mboldenchange.org