Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions app/(site)/(catalogs)/[slug]/content/saas-tools/article.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,13 @@ Find the question you're asking.
| What made MRR go up or down this month? | [MRR waterfall calculator](/mrr-waterfall-calculator) |
| How much does each customer pay on average? | [ARPU and ARPA calculator](/arpu-arpa-calculator) |
| How many customers did I lose? | [Customer churn calculator](/customer-churn-calculator) |
| What is my monthly churn rate as a yearly rate, or the other way round? | [Churn rate converter](/churn-rate-converter) |
| How much revenue did I lose, or keep, from existing customers? | [Revenue churn calculator](/revenue-churn-calculator), [NRR calculator](/net-revenue-retention-calculator) |
| How much of my revenue is gross profit? | [SaaS gross margin](/saas-gross-margin-calculator) |
| How much MRR do I need to cover my costs? | [Break-even MRR](/break-even-mrr-calculator) |
| How many customers do I need for my MRR goal, and when will I get there? | [MRR goal calculator](/mrr-goal-calculator) |
| What should my annual plan cost, and does the discount pay off? | [Annual plan discount calculator](/annual-plan-discount-calculator) |
| How many free trials turn into paying customers? | [Free trial conversion calculator](/free-trial-conversion-calculator) |
| What does a new customer cost, and is it worth it? | [Customer acquisition cost](/customer-acquisition-cost-calculator), [customer lifetime value](/customer-lifetime-value-calculator), [LTV to CAC](/ltv-cac-calculator), [CAC payback](/cac-payback-calculator) |
| How much cash am I burning for each dollar of new ARR? | [Burn multiple calculator](/burn-multiple-calculator) |
| How long will my cash last? | [Startup runway calculator](/startup-runway-calculator) |
2 changes: 1 addition & 1 deletion app/(site)/(catalogs)/[slug]/content/saas-tools/intro.mdx
Original file line number Diff line number Diff line change
@@ -1 +1 @@
Calculators for subscription businesses: recurring revenue, churn and retention, margins, and what it costs to win a customer. Enter your own figures. Not sure which metric answers your question? Find it in the table below the tools.
Calculators for subscription businesses: recurring revenue and growth goals, churn and retention, pricing, margins, cash runway, and what it costs to win a customer. Enter your own figures. Not sure which metric answers your question? Find it in the table below the tools.
Original file line number Diff line number Diff line change
@@ -0,0 +1,144 @@
.workbench {
background: var(--color-surface);
border-block: 1px solid var(--color-border-strong);
grid-column: 1 / -1;
margin-inline: calc(-1 * var(--container-gutter));
min-width: 0;
padding: var(--space-7) var(--container-gutter);
width: calc(100% + var(--container-gutter) + var(--container-gutter));
}

.content,
.form,
.results,
.offer,
.fees {
display: grid;
gap: var(--space-6);
min-width: 0;
}

.content {
gap: var(--space-7);
margin-inline: auto;
max-width: 66rem;
}

.offer,
.fees {
gap: var(--space-5);
}

.priceRow,
.pair {
align-items: start;
display: grid;
gap: var(--space-5);
min-width: 0;
}

.priceRow {
grid-template-columns: minmax(8rem, 10rem) minmax(0, 22rem);
}

.pair {
grid-template-columns: repeat(2, minmax(0, 1fr));
max-width: 48rem;
}

.currency {
min-width: 0;
}

.offerField,
.presetField {
max-width: 22rem;
min-width: 0;
}

.priceRow > *,
.pair > *,
.offer > * {
min-width: 0;
}

.feeNote,
.assumptions {
color: var(--color-text-muted);
font-size: var(--text-small);
line-height: var(--line-body);
margin: 0;
max-width: 48rem;
}

.results {
border-top: 1px solid var(--color-border);
min-width: 0;
overflow-wrap: anywhere;
padding-top: var(--space-6);
}

.results :global(table) {
min-width: 0;
}

.results :global(th),
.results :global(td),
.results :global(caption) {
overflow-wrap: anywhere;
}

.detailLines,
.threshold,
.rowLabel {
display: grid;
gap: var(--space-1);
min-width: 0;
}

.thresholdLine {
color: var(--color-text-muted);
font-size: var(--text-small);
line-height: var(--line-body);
}

.cellStack {
display: grid;
gap: var(--space-1);
justify-items: end;
min-width: 0;
}

.cellNote {
color: var(--color-text-muted);
font-size: var(--text-small);
font-weight: var(--weight-regular);
}

@media (max-width: 760px) {
.workbench {
padding-block: var(--space-5);
}

.content {
gap: var(--space-6);
}

.priceRow,
.pair {
grid-template-columns: minmax(0, 1fr);
}

.currency {
max-width: 12rem;
}

.offerField,
.presetField {
max-width: none;
}

.cellStack {
justify-items: start;
}
}
Loading
Loading