Case Studies
Proof before the pitch.
Eleven real builds, end-to-end.
My background is leading AI transformation at the enterprise level — designing, building, supporting, and growing the agents, tools, and teams that ship and run in production. The most complex thing I've built: an orchestration agent that autonomously manages 10+ sub-agents to complete real work end-to-end. The case studies below apply that same discipline at small-business scale. Each one is a problem, a process, a shipped tool, and the measurable result.
Ordered by materiality — biggest financial impact first.
A full financial operating system, built from spreadsheet chaos.
View case studyA Claude-API reporting platform that drafts the monthly review for every client.
View case studyPre-launch operating system for Happy Cookie Bar.
View case studyHourly POS data → a staffing decision tool.
View case studyTurned a "switch processors?" pitch into a clear yes-or-no.
View case study400-row POS export → shareable branded web dashboard.
View case studyA self-serve catering ordering page with the 72-hour gate built in.
View case studyWired Breeze's discovery-call CRM so no booking leaks again.
View case studyBuilt Breeze a branded booking page that out-converts default Calendly.
View case studyGrowth CFO dashboard for a multi-revenue-stream wellness studio.
View case studyCold-outreach lead magnets that look bespoke (because they are).
View case study* Dollar figures are estimates. Each detailed case study below shows the assumptions behind the math.
A full financial operating system, built from spreadsheet chaos.
A theatre-district specialty café had run on instinct for years. The owner knew sales by gut, set prices once and never revisited them, and got a monthly P&L with no narrative. Margin was leaking somewhere — but where?
The problem
No operational visibility. Pricing was set by gut feel years ago and never re-audited. The monthly P&L from QuickBooks came in clean but with no narrative — no answer to "what changed?" or "which items are pulling their weight?" Even one-off events like theatre nights got booked without any way to know if they were actually profitable.
Monthly performance review took hours of manual Excel work. Three menu items had been losing money for months and the owner didn't know.
The process
The instinct most consultants have is to build a dashboard. The right move was to first understand what the owner actually did with information when she had it — so I could build a tool she'd open, not one she'd ignore.
Pulled QuickBooks + POS history into one place
Mapped the full cost structure. Identified the gap: POS knew revenue per item; QBO knew costs by category. Nothing connected them.
Built a Supabase-backed menu margin database
Items, recipes, base costs, comps, waste factor — properly modeled, not in a spreadsheet. With auth and row-level security so the owner could log in from anywhere.
Designed a guided monthly review workflow
Margin alerts, top-contributor ranking, price simulator — all in plain English, no spreadsheet skills required. She opens it Monday morning and the decisions are queued up.
Layered on event profitability modeling
Separate scenario model for theatre nights — what does the event need to clear to be worth running? Now every one-off booking has a fast yes/no answer.
Wired in benchmark-aware monthly reporting
Recurring expense-analysis pipeline produces a monthly email comparing this month vs. last vs. industry benchmarks. Auto-flags anything drifting.
What I built
Menu Margin Review Dashboard
A Next.js + Supabase web app with auth, a recipe builder, a price-change audit log, low-margin alerts, category margin visualization, and a price simulator the owner can use without spreadsheet skills. Includes an embedded tutorial for the price-change workflow. Companion Excel model handles theatre-event profitability scenarios. Monthly expense reporting is generated by a separate AI-powered reporting platform (see case study below).
The proof
Real Feb 2026 measurements from the live system. Quarterly trend analysis underway to separate dashboard impact from seasonal factors.
The math
Estimate based on real Jan→Feb wage and COGS improvements scaled to annual. Assumes ~$500–800K annual revenue.
What this means for your business
If your monthly P&L is data without narrative, you don't have a margin problem — you have a visibility problem. The fix isn't a fancier dashboard. It's a workflow that turns the numbers into decisions someone will actually act on. Book a 15-minute call and I'll tell you within ten minutes where the leverage is in your business.
Turned a "switch processors?" sales pitch into a clear yes-or-no.
Another café owner was being courted by a competing payment processor: "two months free + we'll buy out your existing contract." Sounds good. Was it actually better than the deal she had? She had no way to know.
(Fiserv/Clover)
+ Moneris
SkyTab
Standard
EDGE
The problem
Headline pitches from payment processors are designed to feel like obvious wins. The reality is that switching costs are real, interchange rates vary by card mix, and "free months" can be eaten by long-tail fees. To know whether the offer was actually better, she needed to see her own data modeled against four competing scenarios — over twelve months, not two.
What I built
POS / Payment Processor Comparison Workbook
Pulled two months of merchant statements. Reconstructed her actual card mix — Visa/MC credit, Amex, Interac contact/flash, debit — by transaction count and amount. Computed her weighted interchange and annualized it. Then modeled four scenarios: current setup vs. three competing processor configurations, including hardware costs, software differentials, and 12-month total cost of ownership. Delivered as a multi-tab Excel workbook with conditional-coloured savings rows so she could see the answer at a glance.
The proof
The math
Decision-support engagement. Value realizes on the switch-or-stay call.
What this means for your business
If you're staring at a "switch to us" pitch — for payments, payroll, software, anything — and the math feels like it's hiding behind marketing copy, that's exactly the kind of analysis a custom build does in two weeks for a fraction of what you'd save (or lose) over the next year.
Recognize the pattern?
Most small-business AI work isn't about AI. It's about turning data you already have into decisions you'll actually make. If that sounds like your business — let's talk.
Book a free 15-minute callHourly POS data became a staffing decision tool.
The same café had 15+ months of daily-sales exports sitting as CSVs. Questions like "are Mondays worth opening?" or "is our hourly staffing matched to demand?" required a half-day in Excel every time she wanted an answer.
| Day | 9a | 10a | 11a | 12p | 1p | 2p | 3p | 4p | Daily |
|---|---|---|---|---|---|---|---|---|---|
| Tue | $44 | $88 | $142 | $138 | $97 | $61 | $38 | $19 | $627 |
| Wed | $51 | $95 | $158 | $172 | $104 | $79 | $44 | $22 | $725 |
| Thu | $58 | $112 | $181 | $176 | $121 | $86 | $52 | $31 | $817 |
| Fri | $72 | $143 | $224 | $219 | $148 | $103 | $71 | $38 | $1,018 |
| Sat | $108 | $196 | $267 | $251 | $188 | $134 | $87 | $49 | $1,280 |
| Sun | $94 | $178 | $241 | $232 | $162 | $118 | $74 | $41 | $1,140 |
| Avg/day | $71 | $135 | $202 | $198 | $137 | $97 | $61 | $33 | $934 |
What I built
Daily POS Sales Analytics Dashboard
A Next.js dashboard with 20+ custom Recharts components: KPI strip, monthly trend, day-of-week deep-dive, hourly heatmaps, seasonal closing-window recommendations, weekday/weekend split, YoY comparison. Plus an "Optimize" route — scenario cards with a breakeven slider, slow-period table, and seasonal closing recommendations to help her decide whether to cut hours. Deploys as a static site she opens in a browser.
The proof
The math
Range based on typical 5–15% café labor optimization when scheduling matches demand patterns.
What this means for your business
If you've got months of POS or transaction data sitting in CSVs, you don't have a data problem — you have an interface problem. A custom dashboard that answers your three most expensive questions ("when are we busy?", "when should we close?", "who do we need on shift?") pays for itself in one good staffing call.
A 400-row POS export became a shareable web dashboard.
Same café, different problem. She wanted to know which menu items were carrying the business YTD, which ones nobody buys, and how categories ranked — without combing through a 400-row item-sales export every time.
- Mex. Breakfast 21%
- Sandwiches 25%
- Pastries 18%
- Coffee 15%
- Retail 7%
- Other 14%
| Item | Category | Revenue | Units | Margin |
|---|---|---|---|---|
| Huevos Rancheros | Mex. Breakfast | $6,701 | 317 | 71% |
| Smoked Turkey Sand. | Sandwiches | $2,874 | 121 | 68% |
| Breakfast Cookie | Pastries | $2,106 | 468 | 74% |
| Cortado | Coffee | $1,526 | 346 | 54% |
What I built
Item-Level Revenue Dashboard
A single-file branded HTML dashboard with Chart.js: KPI strip, top items, category mix, item-level table sortable by revenue, units, and average ticket. Visual identity matched her existing café branding — warm terracotta and mustard palette — so she could share it as-is with her team or accountant without it looking like a generic template.
The proof
The math
Lightweight build with recurring time savings. Best when owner time is the binding constraint. No hosting cost — single HTML file.
What this means for your business
Not every build needs a full app. Sometimes the right answer is a single-file HTML dashboard that loads in any browser, runs forever, and looks like it belongs to your business. Fast to build, free to host, easy to share.
A self-serve catering page that handles its own 72-hour gate.
The café had a catering menu but no catering workflow. Inquiries came in by phone, email, and Instagram DM. Every one of them turned into a back-and-forth — "do you do delivery?", "how much notice do you need?", "what's the small platter?" — before the order even started. The owner wanted a single link she could send when someone asked about catering, and a page that quietly enforced the lead-time and delivery rules so she didn't have to.
The problem
Catering is one of the highest-margin lines a café can run — but only if the booking flow doesn't eat the owner's time. Without a structured order page, every inquiry restarts the same conversation: pricing, sizes, what serves how many, how much notice the kitchen needs, whether delivery is even possible to the customer's address. The cafe was leaving real orders on the table because some inquiries dropped out mid-thread, and the ones that closed each cost 20–30 minutes of owner messaging.
The other half of the problem was rule enforcement. Catering needs 72 hours of lead time for the kitchen to prep. Delivery is only free within 3 km. Pickup is always free. None of that was visible to a customer until they'd already started a conversation — and by then the owner was the one having to say "no."
The process
The brief looked simple — "build a catering page" — but the design work was in the constraints, not the layout. The page had to enforce the rules without feeling like a bureaucracy.
Modelled the actual catering menu
Five categories — dessert platters, sandwich platters, salads, sides, beverages. Two pricing shapes that had to coexist: tiered platters where the customer picks Small or Large (serves 8–10 or 15–20), and unit-priced items like rice balls and coffee carafes. Built a typed menu model so the cart and form handled both without if-statements everywhere.
Built the 72-hour gate as DST-aware logic, not a copy-paste warning
The date/time picker is interpreted as Toronto wall-clock regardless of where the customer is browsing from. Uses Intl.DateTimeFormat to convert correctly across daylight-savings transitions, so a customer ordering Friday for "Monday at 10am" gets validated against Toronto's clock, not their own. If they pick a time inside the window, the form refuses to submit and shows the earliest valid slot.
Designed a sticky cart customers don't lose
Cart lives in the sidebar, sticks while scrolling the menu, persists qty changes with a stepper. Two-step checkout: menu → form → confirmation. Confirmation generates a reference ID (RC-XXXXXX) and persists across refresh via sessionStorage, so a customer who reloads doesn't lose the receipt.
Wired the submission as a mailto draft
For Tier 1 — no backend, no transactional email service, no monthly fees. Submission opens the customer's email client with a fully-formatted order email pre-drafted to the café's address. Confirmation screen has a copy-to-clipboard fallback if their browser blocks mailto. Single static page, deployable anywhere.
Mirrored the brand from the existing margin dashboard
Same design tokens, same fonts, same rose-and-green palette as the financial OS already running for this client. Looks like part of the café — not a third-party form.
What I built
Catering Ordering Page (Tier 1, shipped)
A Next.js customer-facing catering page. Structured menu with category sections, sized vs. unit pricing handled in one model, sticky cart with quantity steppers, 72-hour-gated date/time picker enforcing Toronto wall-clock with DST awareness, pickup/delivery toggle with "free within 3 km" rule, contact form, mailto-based submission with a refresh-proof confirmation screen.
Admin Dashboard (Tier 2, planned)
Authenticated owner view: incoming orders, approve/reject actions, auto-generated printable invoice. Same stack with Supabase added for auth + storage. Designed to drop in without touching the customer-facing surface.
The proof
Tier 1 just shipped. Numbers below are projected at current inquiry volume; measured metrics will be added after 30+ days of live data.
The math
* Estimate. Assumes 4–8 catering inquiries/month at $150–400 each, with ~20% currently dropping out of the back-and-forth thread. Recovery rate and ticket size to be verified once Tier 1 has 30–60 days of live data.
What this means for your business
If a high-margin revenue line is gated on you personally answering messages — catering, custom orders, events, consultations — the bottleneck isn't demand, it's the workflow. A single shareable page that knows your rules (lead time, geography, pricing) replaces dozens of repeat conversations. Tier 1 ships in two weeks, runs forever, and doesn't need a backend until the volume justifies one.
Pre-launch operating system for Happy Cookie Bar.
Happy Cookie Bar is a Toronto premium-cookie startup I co-founded with Kayla. She brings the product — a warm-first, scoopable cookie experience built around the lava cookie as the wedge SKU. I built the operating system. Pre-launch, the recipe was locked but everything else lived in scattered notes — no brand, no business model, no Phase 1 budget, no operating cadence to hold it all together.
cookie
The process
Locked positioning + hero product
"Warm-first cookie experience" — the gap her competitors weren't owning. Identified the lava-cookie as the wedge product. Channel ladder set: market stalls → wholesale → DTC.
Built a 7-section Document Hub
Brand, Business, Products, Operations, Marketing, Finance, Legal — each one a browseable HTML page with portable markdown sources behind it. Single CSS file drives the entire visual identity so updates propagate everywhere.
Scoped Phase 1 plan with real numbers
Founder roles, market applications, $1,995 stretch budget, Toronto setup checklist (registration / permits / insurance). The plan she could actually execute, not a TBD document.
Stood up a weekly cadence
"This Week" panel on the hub homepage drives 5 specific founder actions every Friday. Replaces the vague "I should work on the business" guilt with a concrete checklist.
What I built
Pre-Launch Document Hub
A static, browseable internal hub site organizing every brand, ops, finance, and legal document the founder needs to run the launch. Phase 1 spec, market application tracker, Phase 2 marketing module (Personalized Moments feature), and a unified visual system driven by a single source-of-design-truth CSS file. The whole thing runs locally — no hosting cost, no auth, no platform lock-in.
The proof
The math
Pre-revenue engagement; ROI realizes at launch. Direct value: comprehensive launch infrastructure that would otherwise cost months of founder bandwidth or $20–40K in consulting.
What this means for your business
If you're pre-launch and your "business plan" is fifteen Google Docs and a Trello board, you don't need another tool. You need a single browseable hub where every decision lives in one place — and a weekly cadence that turns "I should" into "I did."
A Claude-API reporting platform that drafts the monthly review for every client.
Writing monthly sales-performance and expense-performance reports for every Breeze Financials client (my own fractional-CFO book) was eating evenings. Each one needed data ingestion (POS + QuickBooks), benchmark comparison, narrative commentary, and a polished PDF. Doing it five times a month was the same five-hour ritual on repeat.
April was a solid month on volume — $31,840 represents a 6% lift over your March run rate, and your gross margin held at a healthy 66%. That's the good news.
- Wages came in at 39% of revenue, above the 35% benchmark. With your current schedule, that's ~$1,270 more than the target ceiling — worth reviewing your Tuesday opening shifts.
- COGS crept up 2 pts month-over-month, likely tied to the dairy price increase in late March. Monitor May closely before adjusting menu pricing.
- Net profit at $1,140 is positive but thin. Closing the labour gap alone would add ~$1,000 to the bottom line.
Happy to walk through the full report on our next call. The detail is all in the PDF attached.
Stylized view · representative content
The process
Built ingestion for both data sources
POS sales CSV (Clover/TouchBistro export shapes) + QuickBooks P&L (.xlsx) — including the awkward edge case of QBO's "protected" Excel format. Both feed the same internal model.
Defined the benchmark library
Wages %, COGS %, gross margin — industry thresholds per client type. Each month's numbers auto-compare and auto-flag.
Wired the Claude API to two narrative endpoints
One generates sales-performance commentary. The other drafts a ~150-word "advisor email" in a warm, plain-English tone — the kind you'd write to a client on a Sunday night. Prompt-engineered for voice consistency.
Per-client rolling history
Each month's report compares against the previous month and the benchmark library. Trend lines surface automatically.
Branded PDF export
html2canvas + jspdf — the report comes out as a clean PDF ready to send. Owner gets the email; advisor sends it; client receives a polished artifact.
What I built
Multi-Client Reporting Platform with AI Narration
An internal Next.js application with three tools: Sales Performance Report, Expense Analyzer, AI Email Draft. Multi-client by design — each client has rolling history stored locally, and the same engine produces personalized monthly reports for the entire book of business. The Claude integration handles the part of the work that previously took the most time: writing the narrative that connects the numbers to a decision the owner can make.
The proof
The math
Replaces ~5 hrs/mo per client of manual report writing at $150–250/hr advisory rates. Scales linearly with client count — same engine, every client. Same pattern is buildable for any service business with recurring client reporting.
What this means for your business
Any recurring report you write — monthly P&L narrative, weekly ops update, client wrap-up email — is a candidate for this exact pattern. The AI doesn't replace the analysis. It writes the connective tissue between the numbers and the recommendation, in your voice, in a fraction of the time.
This is the action plan.
Five case studies in, you're seeing the pattern: identify the work that recurs, build a tool that takes it from hours to minutes, free your team to do the work that needs humans. That's it. That's the whole plan. Want yours?
Book a free 15-minute callWired Breeze Financials' discovery-call CRM so no booking leaks again.
At Breeze Financials (my own fractional-CFO business), discovery calls were leaking. Bookings came in via Calendly but didn't auto-flow into the CRM. Prospects sometimes no-showed because there was no reminder. I was manually building context for every call. Pre-call admin was quietly eating an hour a week.
What I built
Calendly → HubSpot → Email + SMS Automation
Two Make.com scenarios. Scenario A: instant booking flow — Calendly webhook fires, HubSpot creates or updates the contact (dedupe on email), creates a deal in the Discovery Booked stage, sends a Microsoft 365 confirmation email. Scenario B: timed reminder cadence — runs hourly, checks HubSpot for upcoming calls, sends a 24-hour-before reminder email, a 2-3 hour day-of email, and an SMS reminder via Twilio. Plus a full 45-minute self-serve setup guide and an alternative Power Automate path documented for future migration.
The proof
Running in production since March 2026. Live no-show and admin-time metrics will be added as the automation accrues operating history.
The math
Built as internal infrastructure on free-tier tools (Make.com + HubSpot free + Twilio pay-as-you-go). Same architecture is deployable for any client doing 20–200 calls/month.
What this means for your business
Yes — I run the same playbook on my own business. The CRM automation here is identical in shape to what I'd build for a service business, agency, or fractional advisor doing 20-200 discovery calls a month. If you're losing bookings because Calendly and your CRM don't talk, the fix is a one-time build and free tooling forever.
Built Breeze Financials a branded booking page that out-converts the default Calendly link.
Breeze's original Calendly link wasn't converting cold traffic. Prospects landed on a sterile widget with no context, no social proof, no urgency framing — and bounced. The fix isn't a different scheduler; it's the page around it.
Let's See If Working Together Is the Right Fit
No pitch. No slides. Just a real conversation about your numbers.
- 1Quick overview of your business
We ask a few targeted questions about your revenue, expenses, and biggest financial stress right now.
- 2Honest fit assessment
We tell you plainly whether CFO support makes sense at your stage — no upsell pressure.
- 3Clarity either way
Walk away with at least one specific insight about your numbers — whether we work together or not.
12+ small businesses have booked a call this month — average client saves $2,800/mo in hidden costs
Stylized view · representative content
What I built
Conversion-Optimized Booking Landing Page
Custom branded landing page matching the Breeze Financials design system (teal HSL token-mapped to the main site). Calendly embedded inline with surrounding context: urgency banner ("only 2 new clients per month"), what-to-expect for the call, FAQ section, social proof block. Deployed via Vercel, feeds directly into the CRM automation from Case 7.
The math
Conversion lift on cold traffic. One incremental closed engagement at typical pricing pays back the build; every additional booking after that is uplift.
What this means for your business
If your "book a call" experience is a raw Calendly link in an email signature, you're leaving conversions on the table. The page around the widget — context, urgency, social proof, brand match — is doing most of the work.
Cold-outreach lead magnets that look bespoke (because they are).
Cold outreach to small-business owners doesn't convert from a generic pitch. Owners need to see the kind of insight a fractional CFO would deliver before they'll book a call. So the lead magnet itself has to do the convincing.
What I built
Per-Prospect "Financial Health Snapshot" Dashboards
Two standalone HTML/Chart.js dashboards, each one branded to the prospect's visual identity — one in their brown/teal/cream palette, another in a pig-cream/tan/gold scheme. Each includes a financial health score, revenue-stream estimate, profit-leak alerts, and per-location P&L estimates, all built from publicly available info and industry benchmarks (no internal data needed). Sent as a conversation-starter; the conversion event is a 30-minute Financial Health Snapshot call.
The math
Outbound methodology. Per-prospect cost is research time + design. ROI realizes on conversion to a paid engagement at typical $5–15K range.
What this means for your business
If your cold outreach gets ignored, the issue usually isn't your subject line — it's that prospects can't see the value before they reply. A bespoke artifact (even a small one) flips that equation. The work that goes into the snapshot is the pitch.
Growth CFO dashboard for a multi-revenue-stream wellness studio.
A Toronto wellness studio owner running an unusual business model — wellness programming + children's classes + events + physio room rentals + co-working — couldn't find industry benchmarks that matched her shape. Was she operating at, above, or below where she should be? Nobody had ever told her.
What I built
Growth CFO Preview Dashboard + Proposal Deck
Researched Canadian wellness market sizing, boutique-studio benchmarks, and multi-revenue-stream operator economics. Built a tailored preview dashboard showing what she'd get as a Growth CFO client — industry overview, benchmark comparison, growth opportunities — in a sage and cream wellness palette that matched her studio aesthetic. Paired it with a formal proposal deck as the conversion artifact.
The math
Pre-engagement proposal artifact. ROI conditional on conversion. The methodology — custom benchmark research + brand-matched preview dashboard — is valuable independent of outcome because it demonstrates the actual Growth CFO product capability.
What this means for your business
If your business doesn't fit standard industry benchmarks (multi-revenue-stream, hybrid model, unusual mix), generic dashboards won't tell you anything useful. The fix is custom benchmark research and a dashboard built around your actual shape — not someone else's template.
Ready to be the next case study?
The next 90 days are about shipping more of these. Founding-client discount available for businesses willing to be featured publicly once the work is live.
Book a 15-minute call