Free tools to help you run your biz cleaner, faster, and with way less chaos.
Turning hot mess businesses into high-performing machines — and loving every damn minute of it.
YES Indy is EmployIndy’s youth employment program in Indianapolis, delivered through a network of community providers that work with young people on job readiness, education, training and getting hired. I built its youth employment dashboard myself, in Google Sheets. Every provider reported its spending and its outcomes every month, and EmployIndy needed to see both across the whole network without someone rebuilding the totals by hand.
Custom dashboard and reporting structure, built in Google Sheets while on staff at EmployIndy
The program funds community providers to serve young people with job readiness, education, training, work experience and job placement. It focuses on disconnected youth, young people who are out of school and out of work and need a way back into both.
Each provider holds its own contract, and a single contract can draw on more than one funding source. Some of the money came as grants, and some came as reimbursements, where the provider spends first and is paid back after submitting its costs. Contracts also change during the year through modifications, which are formal amendments to a provider’s budget.
Before I built the dashboard, I worked on YES Indy from the program side. As program manager and then associate director for EmployIndy’s opportunity youth work, I led grant-making and administration for YES Indy across more than 10 providers. I ran the request for proposals that providers applied through, evaluated the responses and made funding recommendations to leadership. I analyzed how each provider and the grant as a whole were performing so we could report back to the funder, and I built a website where providers could share what was working so the network could learn from itself.
That meant I had lived the problem. I knew which questions leadership and the funder would ask, and I knew how much digging it took to answer them when the numbers were spread across a dozen files.
Every provider had a budget, a monthly spending history, contract changes and a set of outcomes it had agreed to reach. Across 11 providers and 6 funding streams, that added up to a lot of moving numbers. Answering simple questions, like how much is left in each contract or how many young people have stayed in a job for 90 days, meant opening every provider’s file and adding things up by hand. Every time someone did that, there was a chance the answer would come out a little different from the last time.
Providers’ monthly reports were collected in Airtable, and the dashboard workbook had a tab set aside for them with its own short instructions: run the report for the month, export it, remove EmployIndy’s own row and paste in only the provider rows. The dashboard read from that tab, so the monthly update came down to a single paste instead of retyping every provider’s numbers.
Each provider got one row, and that row followed the full path a young person might take through the program: total clients served, then application, enrollment and assessment, and job readiness, through high school equivalency, work experience, advanced training placement and completion, post-secondary placement and completion, job placement counted in two tiers, and job retention at 30, 60, 90, 180 and 365 days.

Each provider had its own tab built from the same template. Spending was entered across twelve monthly columns and seven budget lines: personnel and fringe, direct participant costs, work experience, staff development and travel, indirect cost, administration and overhead, and profit. For each line, the tab calculated the budget, the amount spent to date, what remained and the percent of the budget used.
Columns beside the budget held the original contract and up to 10 modifications, so a change to a contract sat right next to the budget it changed. Every tab also carried the same instruction at the top: if a provider does not have one of the funding sources, hide that section instead of deleting it. Keeping every tab identical meant the formulas feeding the dashboard never broke, no matter which provider’s tab someone was working in.

The dashboard pulled every provider’s budget and remaining balance for each funding stream into one place and calculated the percentage spent across the whole network. Below that, it added up the outcomes from the monthly update tab, showing each provider’s contracted goal next to what it had reached to date, with a network total and a percentage for every measure.
A third section did the same for employer engagement activities, 7 of them, from career talks and prep sessions to mentoring, site tours, job shadows and apprenticeships. A note on the sheet summed up the design in four words: all of this auto-tabulates.
The YES Indy numbers also flowed into EmployIndy’s program performance dashboards, where youth employment sat alongside the organization’s other programs. Leadership could see YES Indy in context without asking anyone for a separate report.
The team kept updating the dashboard after I moved on, and that is the result I care about most. A tool that keeps running without the person who built it is a tool that fit the work.
Today this would be an Airtable base with providers, contracts, modifications and monthly reports as linked tables, a form for each provider’s monthly submission, and dashboards that update the moment a report comes in. See custom dashboard creation.
I build custom dashboards that pull program data into one view. See how I work with nonprofits.
In this power-packed session, I show you how to connect Airtable + your CRM for smarter tracking, simplified workflows, and insights that actually move your business forward.
A step-by-step guide to setting up your new Dubsado account, area by area, so your trial ends with a system you can actually use.
© 0000 Cait Potter Creative, LLC
Privacy Statement and Terms & Conditions