Running one product makes most expenses easy to understand. The hosting bill belongs to that product. So does its email service, payment processing, and support software.
The picture becomes less clear when you run two or more products. A single design subscription may support all of them. The same monitoring account, AI assistant, analytics service, and domain registrar can appear on one card statement even though several products benefit.
Ignoring those shared costs makes every product look healthier than it is. Assigning them carelessly can be just as misleading. Use a repeatable allocation rule and record why you chose it.
If you want to compare the main methods while reading, open the free Shared Cost Allocator. It runs locally in your browser and lets you switch between equal, revenue-weighted, and custom allocation.
Start with three cost buckets
Before choosing an allocation method, classify each expense:
- Direct product costs belong entirely to one product. Examples include a dedicated server, that product's transactional email, its domain renewal, and product-specific advertising.
- Shared operating costs support several products. Typical examples are design tools, bookkeeping software, a common observability account, and a company-wide AI subscription.
- Personal or unrelated costs do not belong in product profitability at all. A personal cloud-storage plan should not become a business expense merely because it appears on the same payment card.
If a clearly direct expense is placed into a shared pool, a successful product can quietly push its costs onto smaller products.
Create one simple rule: allocate only the shared bucket. Keep direct costs attached to their actual products.
Choose the simplest defensible method
There is no universally correct allocation method. The useful method is the one that reflects how your products consume a cost and remains practical to maintain.
Equal allocation
Divide the shared amount equally among active products.
Use this when each product receives roughly the same benefit. A source-control plan or bookkeeping subscription may fit this model when all products are maintained by the same small team.
Equal allocation is easy to explain, but it can overcharge a tiny experiment and undercharge an established product.
Revenue-weighted allocation
Assign costs according to each product's share of portfolio revenue.
Use this when your shared tools primarily support ongoing commercial activity and there is no better usage measure. A product producing 60% of revenue receives 60% of the shared pool.
This is convenient and usually stable, but revenue is only a proxy for consumption. A pre-revenue product under heavy development may use more design and engineering resources than a mature product.
Usage-based allocation
Assign a cost using a measurable driver such as requests, active users, storage, support tickets, or engineering hours.
Use this when the expense has a clear relationship to usage. If one monitoring account covers three apps, event volume may be a better driver than revenue. If a contractor works across products, recorded hours may be appropriate.
This method can be more accurate, but collecting the data has a cost of its own. Do not build an elaborate tracking system to divide a small monthly bill.
Custom weights
Set deliberate percentages based on product stage and current effort.
This is useful when a portfolio contains a mature product, a growing product, and a pre-launch experiment. The percentages are a management judgment, so write down why they were chosen and review them on a fixed schedule.
A hypothetical example
Consider a fictional portfolio with three products:
| Product | Monthly revenue |
|---|---|
| Orbit | $2,400 |
| Beacon | $1,200 |
| Sandbox | $400 |
| Total | $4,000 |
The portfolio has $180 in shared monthly subscriptions. Under an equal allocation, each product receives $60.
Under a revenue-weighted allocation, the revenue shares are 60%, 30%, and 10%:
| Product | Revenue share | Shared-cost allocation |
|---|---|---|
| Orbit | 60% | $108 |
| Beacon | 30% | $54 |
| Sandbox | 10% | $18 |
Neither result is automatically correct. If the $180 consists mainly of bookkeeping and company administration, revenue weighting may be reasonable. If it is a design suite currently used almost entirely for Sandbox's launch, a custom or usage-based split would reveal more.
The important question is: What behavior is this allocation meant to represent? State that answer beside the calculation.
Use different drivers for different cost groups
You do not need one rule for every shared expense. Group similar costs and give each group one driver:
| Shared-cost group | Possible driver |
|---|---|
| Administration and bookkeeping | Revenue share |
| Design and development tools | Engineering or design time |
| Monitoring and infrastructure | Events, requests, or users |
| General software with no clear driver | Equal allocation |
Keep the number of groups small. A solo developer usually gains little from maintaining twelve allocation rules. Two or three groups are often enough to expose the main differences between products.
Build a monthly allocation routine
A lightweight process can fit into a monthly review:
- Export or list the month's software expenses.
- Attach every direct item to a product.
- Move genuinely shared items into a shared pool.
- Apply the chosen driver to each shared-cost group.
- Check that allocated amounts add back to the original totals.
- Record unusual items and changes in assumptions.
- Compare the result with the previous month before making decisions.
Keep an annual subscription in its recorded billing month so the timing remains visible. If a normalized comparison would help, show the $10 monthly average as a separate analytical view; do not replace the scheduled $120 cost with that average.
Do not constantly rewrite historical allocations when a product changes. Instead, establish a policy such as reviewing weights quarterly or whenever a product launches, shuts down, or changes materially.
A design decision from building MarginDeck
Disclosure: I make MarginDeck. This article describes my own work on the product.
This question became concrete while I was building MarginDeck's shared-cost allocation workflow. I chose to make a changed percentage split effective from a selected month instead of silently rewriting every earlier month.
That decision preserves the context in which an earlier product review was made. If Product A carried 70% of a shared tool in March and the portfolio changed in June, March should still show the rule that was active in March. The new split belongs to June onward.
Record both the allocation method and its effective month. Without the date, changing today's assumption can make historical comparisons look cleaner than they really were.
Avoid false precision
Allocation is a model, not an observable fact. A result such as $53.27 can look authoritative even when it came from a rough 30% estimate.
Set a materiality threshold. You might split a significant shared infrastructure bill carefully while dividing a small password-manager subscription equally. The threshold should reflect the size of your portfolio, not someone else's rule.
Run a sensitivity check when a decision depends on the result. If a product is unprofitable under equal, revenue-weighted, and reasonable custom allocations, the result is less sensitive to the allocation method. If its status changes with every method, treat the result as uncertain and investigate the underlying cost driver.
What the allocation should help you decide
A good shared-cost model should answer practical questions:
- Does this product contribute enough to support the portfolio?
- Which subscriptions would disappear if the product closed?
- Is a small product genuinely inexpensive, or is another product subsidizing it?
- Where would another dollar of revenue have the greatest impact?
- Should a shared tool be downgraded, replaced, or cancelled?
It should not be used to justify a decision you have already made. Nor does an internal allocation necessarily match tax or financial-reporting treatment. Consult a qualified professional when you need formal accounting guidance.
A spreadsheet is enough to begin
Start with rows for expenses and columns for products. Add fields for amount, direct or shared status, allocation driver, and notes. Then verify that the sum across product columns equals the original bill.
Once that becomes tedious, a purpose-built tool can reduce repetitive calculation. Disclosure: I am Junhua Jin, and I build MarginDeck, a product for understanding costs and profitability across multiple products. The framework in this article is useful whether you use MarginDeck, a spreadsheet, or your own system.