A funded startup built to save families $5,000 a year, live across 15+ Canadian chains.
Project Type
Live consumer product, a funded startup out of the Entrepreneurship Co-op at the University of Waterloo.
Role
Founder and CEO.
Timeline
Apr 2025 to present, live across Ontario for all stores.
Skills & Tools
User research and listening sessions, prototyping for mobile and web, data ingestion for flyers and prices, IA and systems design, accessibility to WCAG, and ethical AI covering privacy and explainability.
Skrimp is a live, actively developed startup. Technical architecture, supplier agreements, LLM implementation details, growth strategies, and non-public user data are not discussed here. What follows covers the design process, research methodology, public coverage, and the product decisions I can speak to without compromising ongoing commercial development.
Food prices outran wages for four straight years. So the one thing Skrimp was never allowed to cost a family was time.
Groceries are up 26.8% since 2020. Pay is not.
I pulled Statistics Canada's food and wage series for June 2021 to 2024 and plotted them against each other, because I wanted to know whether this was a spending problem or an arithmetic one. Food inflation ran at 6.6% . Wage inflation ran at 3.7% . The lines separate in early 2022 and never come back together.
That gap is not abstract inflation. It is the item you put back. The recipe you stopped making. The Sunday session that used to feel like cooking and now feels like damage control. Younger households, already carrying 30% less generational wealth than boomers were at the same age, absorb it worst.
Nobody can really control their rent, their utilities or their car insurance. Groceries were the one line families told me felt like something they could actually tackle, which is exactly why they were already working so hard at it. Every household I spoke to was running a manual savings algorithm in their head, every week, unasked. That is not a motivation problem. It is a tooling problem.
CTV News Kitchener, September 2025. The cost of living story, and Skrimp inside it.
Three tools. None of them talking to each other. → Flyer apps show what's on sale. They have no idea what you're cooking. → Recipe apps look beautiful. They have no idea what things cost. → Budget apps tell you what you spent. After you've already spent it.
Families don't stop trying because they aren't motivated. They stop because the coordination tax compounds: the deal that expired before you got there. The "budget recipe" that quietly needs three specialty items. The list you built carefully at home and abandoned halfway down the aisle. Not a motivation problem. A tooling problem, invisible, persistent, and costing real money every single week.
Food they like
Recipe apps nail this one and then quietly price you out of it. A plan nobody wants to cook is not a plan, it is a spreadsheet with pictures.
At prices they can afford
Budget apps nail this one, but only in hindsight. They tell you what you spent after you have already spent it, which is not help, it is a receipt.
On what is actually on sale
Flyer apps nail this one and have no idea what you are cooking. A deal you cannot build a week around is just a number on a page.
Families were already running this algorithm in their heads, so Skrimp was never allowed to ask them to change. It compares live flyer prices across 15+ Canadian grocery stores, plans the week around whatever is actually on sale, and auto-adds the list to the cart. Families save $50-$100 a week , and it stays free, because a household that cannot afford food cannot afford a subscription to save on it either.
I ran listening sessions instead of surveys, and gave up a clean number to do it.
Ask someone their budget and you get a number. Ask about last Sunday and you get a system.
I ran listening sessions, not questionnaires. Not what would you want from a grocery app, but tell me about last Sunday. Ask someone their budget and they give you a number. Ask them to narrate the shop and they describe a system they did not know they had: flyer-first thinking, mental price matching, routes through the store that save six minutes, recipes that live in the body and were never written down.
The cost of that choice is that I came out with no clean quantitative baseline, only patterns. I took it, because the insight underneath was the whole product. People are already the system. Skrimp was never going to design something new, it was going to automate something ancient.
Key Findings
Deal-seeking is at a record high, but the workflow to act on deals is completely fragmented.
Cost pressure is changing what ends up in the basket, not just which brands.
Cumulative food price increases have permanently reshaped how families plan.
Cost pressure is no longer theoretical, it is directly affecting nutrition.
I inverted the order. What is on sale became the prompt, not the filter.
Which means I cannot promise you a specific meal. I decided that trade was worth making.
Most food apps start with a recipe, beautiful and aspirational, then quietly price you out of it. I inverted it. What is on sale at your store this week is the prompt; the meal plan is the answer. Deals are not a filter applied after you have committed to a recipe, they are the foundation the plan is built on.
The price of that decision is real: I cannot promise you a specific meal on a specific night. A family who wants lasagne on Tuesday regardless of cost is not who this is for. I decided that was the right trade, because the family who needs the forty dollars more than the lasagne is.
If a step felt like homework, it got cut. Journey maps were ruthless: postal code → store → constraints → plan → list. Anything that didn't earn its place in that chain got removed. The listening sessions held the standard throughout: users can rarely say what they want, but they can describe, with surprising precision, exactly what's breaking their current system. We built for that.
Budget-first, not recipe-first: the plan hits your number before you fall in love with it, never the other way around. Defaults do the work, power users get the controls, and everyone else gets a plan that simply works.
Must-haves
The non-negotiables. Built-in, not bolted on.
Explainable savings
Every meal shows its working, not just a total, a reason. "Cheap" is a claim. A line item is evidence. Families under financial pressure have been misled enough. Skrimp doesn't ask for trust it hasn't earned.
Swap and recalculate
Change one ingredient. Every number updates instantly. Swaps surface substitutes; use-up suggestions prevent the half-bag of lentils from disappearing to the back of the cupboard. The plan is alive, not a document you print and abandon.
Built for households, not individuals
One person plans. Everyone else arrives at the aisle with half the context. Household sharing and real-time sync exist because meal planning was never supposed to be a solo activity, and designing it that way was always leaving something essential out.
Minimum viable data
Families under financial pressure have less margin for everything, including data risk. Skrimp collects what's needed for utility, explains why, and makes deletion a single action. This was a constraint before it was a principle.
Flyers arrive as images that code cannot read, so I built for chaos as the default case.
Every Monday is a negotiation with data nobody ever intended a machine to read.
A flyer is a photograph of a page. Nothing in it is text, so nothing in it is readable, and the store that published it is under no obligation to publish it the same way twice. I designed the pipeline to assume that rather than to be surprised by it. Nothing reaches a family's list on the first pass. Products earn their place, and the different names one ingredient goes by get resolved silently across hundreds of recipes, because a user base that cannot afford for the numbers to be wrong is also a user base that will not stop to correct them.
They are pictures, not data
A flyer is a picture of a page. There is no text in it, so there is nothing for code to read. Every price on it has to be pulled out of an image before it means anything.
“This week” has more than one answer
A store runs a weekly flyer and a monthly one at once, and they disagree. I had to pick which one wins, because the family cannot be asked to.
Nobody shares a vocabulary
A recipe asks for chicken, the flyer has bone-in thigh, and nobody sells the juice of two lemons. I resolve those silently, because a parent at 6pm will not answer a disambiguation prompt.
The units do not line up
Recipes measure in cups. Flyers price per pound, per unit, per 100g, sometimes two ways on one page. The conversion has to be invisible or the number is not trustworthy.
What a family sees is the opposite of all that. Every plan shows its working: which items are on sale, at which store, for what they cost this week. Not a black box, a receipt they can interrogate. Layout changes, missing products and store quirks get absorbed upstream and never reach them.
The most valuable thing testing surfaced was not a screen. Meal planning is not solo. One person plans, and their partner arrives at the store holding a list and none of the reasoning behind it. Household sharing was never a later sprint, it was the thing the product was missing. Adding it did not upgrade Skrimp, it finished it.
So per-meal and per-week totals update on every change, the number is live instead of a surprise at the till, and allergen filters, store preferences and dietary flags are set once and then remembered.
Sixty seconds was the ceiling, so anything that did not fit inside it died.
If a step felt like homework, I cut it. Including several I liked.
Sixty seconds is not a performance target, it is the whole product. Past a minute a family goes back to doing this in their head for free, and I have built nothing. So every feature had to survive the same question: does a household get a usable week out of this faster than they could assemble one themselves? Most of what I wanted to build did not.
The disambiguation prompt
When a recipe and a flyer disagree, the obvious fix is to ask the user which they meant. A parent at six o'clock will not answer. The system resolves it and shows its working instead.
The setup questionnaire
A profile wizard would have made every call downstream easier, and it would have spent the first two minutes before anyone saw a plan. The week starts from a postal code and learns from there.
The meal you asked for
Letting a family request a specific dish breaks the premise, because the sale is the prompt and not the filter. I traded the request away for the price, knowingly.
The paywall
A subscription to save money on food is a joke played on the people who need it most. Free first is not a growth tactic here, it is the only version of this that is not insulting.
What survived is not a meal kit, a subscription box, or another app that claims to care about your budget. It is connective tissue. Deals inform the plan, the plan generates the list, the list loads the cart, and the whole chain runs inside the minute.
DROP IN → skrimp/vid/reel-product.mp4 Portrait social reel of the product doing the thing.
A reel: the plan, start to finish.
I had to make the system legible enough that a first-year could not quietly break it.
You cannot design your way out of somebody not knowing why a pipeline works.
Six engineers came through Skrimp in rotations, most of them first or second years. The risk was never that they would write bad code. It was that someone who does not know why a pipeline is shaped a certain way will quietly reshape it, and that breaks silently and compounds for weeks before it surfaces as something catastrophic.
You cannot design your way out of that, so I stopped trying to. The job became making the system legible enough that somebody else could reason about it under pressure, and onboarding people to the why before the how. They already knew how to code. What they had to learn was to ask what does this break before writing the first line, and the intern who understands the constraint makes a better call than the one who only knows the command.
DROP IN → skrimp/vid/reel-behind.mp4 Portrait social reel. Team, process, whatever you have.
A reel from behind the build.
What this taught me that a classroom couldn't.
01
Automate what already exists
Families were already running the algorithm. In their heads, every week, for free, at cost to their sanity. Skrimp didn't invent a behaviour, it inherited one and made it run without the labour.
02
The last mile is the product
A plan that ends at a list is a plan that depends on the user to finish it. The Chrome extension exists because "we got you to the shopping list" was not good enough. The loop had to close.
03
Household beats personal
The planning being solo was never a user preference. It was a gap in the product. When we closed it, retention followed. The unit isn't the user. It's the household.
04
Trust is the product
Families under financial stress don't want to be impressed. They want to believe the number. Every decision, explainable savings, transparent swaps, no dark patterns, was an argument that the number on screen is one they can trust.
🛒 What I didn't expect
The thing that surprised me most wasn't the savings. It was the tone of voice.
Users didn't say "I saved $80 this week." They said things like: "I don't have to think about it anymore." "Sunday isn't a thing for us now." "My partner finally knows what we're having." That's not a savings story. That's a stress story. The problem was never purely financial, it was the invisible weight of managing money, alone, every week, in your head. Skrimp didn't solve a grocery problem. It solved a cognitive one. The savings are real, confirmed by families, confirmed by the press. But what people feel is the absence of something. The weekly drain that stopped.
That is what AI should do. Not impress you. Disappear.
→ Try Skrimp at skrimp.ai
What I can't say yet, and why that's okay
There is an entire category of work inside Skrimp I am proud of and not showing here. The architecture decisions that took months to arrive at. The commercial work still in motion. The technical choices that will shape this product for years and belong to the future, not a portfolio page written in the present tense.
The discipline of keeping quiet about active development, of understanding that the story gets told when it's done, not while it's happening, is its own kind of skill. You don't perform progress. You make it, quietly, and you wait. Some things are worth waiting for.
The internet noticed.