Picture Monday morning. You open Stripe, copy the MRR number, paste it into an email, manually add the dollar sign and comma separators, then hit send. Every week. What if that line formatted itself?
I've been doing that exact ritual for 18 months. I assumed it was just part of being a founder.
It was — until now. This week you learn how Python holds a single value the way a named cell holds a KPI. A variable is just a cell with a name you chose. An f-string is the formatted callout line in that email. And a simple if/elif/else is the "flag this customer as churned" rule you've been doing by eye.
So by the end of the week I can write code that spits out the formatted MRR line I normally type by hand?
Exactly that. Five short functions, each adding one layer. Day 3 formats one metric label. Day 4 normalises the messy customer name your CRM exported. Day 5 builds the full MRR line with thousands separators. Day 6 checks whether a customer is churned. Day 7 categorises customers into enterprise, mid-market, or starter tiers. By the end you have the raw pieces of the weekly investor update you'll finish in Week 4.
"MRR — $14,850.00" with an f-stringstrip(), lower(), and replace()f"{mrr:,.2f}""enterprise", "mid-market", or "starter" with if/elif/elseGoal: by Friday you can format one customer row entirely in code.
7 lessons this week
Picture Monday morning. You open Stripe, copy the MRR number, paste it into an email, manually add the dollar sign and comma separators, then hit send. Every week. What if that line formatted itself?
I've been doing that exact ritual for 18 months. I assumed it was just part of being a founder.
It was — until now. This week you learn how Python holds a single value the way a named cell holds a KPI. A variable is just a cell with a name you chose. An f-string is the formatted callout line in that email. And a simple if/elif/else is the "flag this customer as churned" rule you've been doing by eye.
So by the end of the week I can write code that spits out the formatted MRR line I normally type by hand?
Exactly that. Five short functions, each adding one layer. Day 3 formats one metric label. Day 4 normalises the messy customer name your CRM exported. Day 5 builds the full MRR line with thousands separators. Day 6 checks whether a customer is churned. Day 7 categorises customers into enterprise, mid-market, or starter tiers. By the end you have the raw pieces of the weekly investor update you'll finish in Week 4.
"MRR — $14,850.00" with an f-stringstrip(), lower(), and replace()f"{mrr:,.2f}""enterprise", "mid-market", or "starter" with if/elif/elseGoal: by Friday you can format one customer row entirely in code.