Ask a VC: how to model a P&L — Part 2/6: variable costs

8 min readOct 27, 2023
Photo by Masaaki Komori on Unsplash

Note: the content of this post was taught in a 7-hour class at HEC Paris Business School in May 2024.

In our last article, I introduced a simple technique to model revenue. To make our model more concrete now, let’s imagine a simple venture: let’s say we are going to sell T-shirts online. There are a number of companies doing this, and let’s imagine we are going to add a bit of added value, ie. allow customers to add their own brand on the T-shirt.

Let’s assess our price first.

So let’s Google “put my brand on a T-shirt”. You get lots of answers. Let’s pick 3 companies, and check the price range:

This is my simple competitive analysis, replicating what a potential customer would do (googling). All these sites have lots of options, and I’m just starting the venture, so I need to be competitive. I won’t be able to do so at this early stage of my venture with tons of features on th esite and options for the T-shirt, and probably not with differentiated quality, so I need to be competitive on price. I’ll go with 10€ excluding VAT and delivery (slightly cheaper than them all). One day, with more volume, and once I have built more features and options on my site, I’ll increase the price. Let’s say I’ll add 2€ every 12 months to the sales price. I’m hard coding this into my model (just modify the value every 12 months in the cells, and each month equal to the previous month).

Revenue = Price x Quantity modeling

What about quantity?

Now, I have no idea how many I’ll sell, but I guess word of mouth will play. My assumption is that I should start slowly, for a few months (maybe doing direct sales), then start increasing slowly, until I reach a plateau, like an s-curve. I could either hard code my assumptions on 60 different cells, or imagine what reality could look like. Let’s say I’ll sell 1–2 T-shirts / day at first (30 to 60 / 1st month; I’ll start with 45), and that after 2 years, I’ll be selling 50/day (= 1500 / month), with a small growth thereafter. It doesn’t really matter what I sell per day, but the projected number should be pretty close every month. I can start playing with a start value (t0), and growth and acceleration values (positive to accelerate, or negative to slow down). After a while you’ll get comfortable modeling like this.

Checking assumptions for Revenue

In my model above, we clearly see the step curve for prices, and the slow S-curve for quantity per month, ending with 7000 T-shirts sold per month around year 5, at 18€/piece, reaching a 1.4m€ revenue in year 5. AT first glance, it looks plausible and realistic. Good enough for V1 of my model.

I will need to check however that I will have the procurement facility for 2.245 T-shirts in year 1, up to almost 80.000 in year 5; I will also need to check the logo production facility, manpower, delivery capability, etc.

Here as you see, I am already considering operations costs and capacity to make the model credible (still assuming there will be enough demand for my product). You should always keep this in mind when modeling.

Variable costs

Now we introduce variable costs. For me, in this series of articles, a variable cost is a cost that occurs ONLY if there a SALE. No Sale, no cost. Simple enough. We also call them Cost of Goods Sold (COGS).

So if I’m selling T-shirts, I need to buy them first. I’ll not consider drop shipment here (no inventory). And to simplify the model, I’m assuming a plain white T-shirt (no other colors), just one size (let’s say L), and one quality (cotton 100%, nothing fancy). You can always make a model super complicated, and introduce all kinds of assumptions, but GIGO (Garbage In, Garbage Out) will haunt you immediately. Assume first just your main product, or an average of all your products. Maybe later on, introduce another one in the model, once you have real data from sales.

The model above gave us a volume of T-shirts that we expect to sell per year. However, if you want to try out the model, maybe just consider a trial inventory of 3 months max. The model says 177 units, so maybe buy 150 to 200 units.

Let’s google again “purchase white T-shirts size L”: I get many answers, including:

  • they sell a brand that I recognise: Fruit of the loom. The unit is 2,78€, by bulk purchase of 200+ it’s 2,33€. This includes VAT (which I need to get back so my model should not consider VAT or sales tax), and delivery is free on orders of over £99 excluding VAT (I will then not model it yet).
  • has a range of different qualities. I’ll go with the Fruit of the loom plain white, at £2.19 excluding VAT. The bulk price is not online, so I would have to write to them. No need here. I’m looking for reasonable assumptions for my model, I can always optimize it all once the model is finished, and it’s in the price range of the previous site
  • they have tons of brands, including Fruit of the loom. They have even the avialable stock online, and offer a discount: nice. Currently, the L is at $2.94 for 36 or more. I should certainly contact them for better prices.

I’ll just use 2,33€ from the first site but without VAT (minus the 20% VAT, it’s 1,95€ per T-shirt), free delivery here, for volumes of 200. It’s easy but a bit tricky. Bulks start at 200 units. I want this price, so i’ll have to buy a bit more than planned.

In the model, I’ll first sum up the T-shirts I need every month, calculate the number of bulks needed (using =ROUNDUP(total t-shirts/units per bulk;0 decimals), remove them from the T-shirts to order, and start over. Automatically this will tell me when I need to order them.

Of course, I need to start with a small inventory, but I said, no cost if no sales, and I’m taking in a cost higher than sales. Error ?

Actually, let’s assume we’re at cruising speed, and almost all COGS are direct variable costs that can almost be calculated at unit level (or on a monthly level). Alternatively, you would just put the remaining inventory in fixed costs and only consider the real costs for the month. You would then take them out of fixed costs the next month, and just add the ones left over, etc. Too much hassle. You would do this if you bought equipment that would go into inventory for a long time.

My formula above allows me to find how many bulks I need to order each month, and therefore the costs associated with these. In addition, I’m assuming delivery here is almost instantaneous. Otherwise, you would have to order 1 or 2 months earlier and just move the cells left 1 or 2 months.

Other direct costs :

Now, I could go on, and check exact prices online for the remaining fees

  • logo sticker: let’s assume 0,40€ / each (a potential supplier here)
  • man.hour to put the sticker on the T-shirt, fold it, put it in an envelope, and take it to the post : 2,50€/each (get a workforce here for example)
  • post office: 0,70€ per enveloppe (I checked here in France, that you can send a T-shirt as a letter. Bulk prices here. A t-shirt is 140g approx. and with the envelope, 200g max. It would be about 0,50€ with tracking)
  • cost of envelope : 0,20€ / enveloppe
  • transaction fee for each order: 2% (sample prices from Stripe here)
  • customer acquisition cost: 3€ (assuming direct sales with students for example. This would be an important variable to test and monitor).
Calculating Gross Margin

I really have no idea about the real costs above, but the exercise to find them is trivial (like the cost of the T-shirt), and I can double-check later. In the meantime what I’m really interested in is finishing the model. And I could model growth for each value, taking into account bulk prices and discounts.

Gross Margin

Plotting Gross Margin over time

Adding all up, I get a gross margin calculation (Revenue — sum of all variables costs).

It’s really interesting to immediately calculate the % of gross margin on overall sales, as I still need to cover fixed costs etc. Getting to at least 50% gross margin is healthy, as it will let you deduct 20% of sales & marketing costs, and with other fixed costs, get to about 20% net margin one day.

Unit margins

You can then divide the Gross margin/units sold, to calculate unit metrics. I wrote about unit metrics in a previous post. This is the CORE of your business model and one of the most important insights that you will get from this exercise.

Here we did not optimize the gross margin, but it would be wise to get to 50% by year 2, and not wait until year 5.

And let’s assume I’m running on Shopify as an e-commerce frontend (so I don’t have to worry about hosting costs, engineers, etc.); this would go into fixed costs. I would also need a warehouse to store the T-shirts (consider deposit, rent, electricity, telecom), buy irons to add the logos, find the manpower, etc. And the lawyers, and accountants, are also fixed costs.

Keep in mind that to start with this business, I could subcontract the logo processing to any of the companies mentioned above, and just apply a markup on my own site + time to manage the orders, etc. The value-add of my company would at first be just 1) finding customers 2) selling to them 3) managing orders and service for them, subcontracting everything else to suppliers.

Next time we’ll look at Fixed costs, and EBITDA.

I consult with corporates and startups and help them address issues like this and many more. Don’t hesitate to reach out at or book a video call with me on




Senior Technology Executive with global experience as an Investor, Board Member, 5x Founder, Consultant.