| 1 |
{# Pricing comparison partial — server-rendered, swapped into /pricing via |
| 2 |
HTMX from GET /pricing/compare as the revenue/tier inputs change. Every |
| 3 |
value here is preformatted in `pricing_comparison::ComparisonResult`; this |
| 4 |
template does no arithmetic. The math lives in Rust, sourced from |
| 5 |
`docs/business/assumptions.toml`, and is pinned by |
| 6 |
`pricing_comparison::tests`. #} |
| 7 |
<div class="tier-section" id="results"> |
| 8 |
<h2 class="section-label">You keep</h2> |
| 9 |
<div class="mnw-summary"> |
| 10 |
<div class="mnw-keep" id="mnw-keep">{{ comparison.mnw_keep }}</div> |
| 11 |
<div class="mnw-detail" id="mnw-detail">{{ comparison.mnw_detail }}</div> |
| 12 |
</div> |
| 13 |
</div> |
| 14 |
|
| 15 |
<div class="tier-section"> |
| 16 |
<h2 class="section-label">Platform comparison</h2> |
| 17 |
<table class="data-table" id="comparison-table" aria-label="Platform fee comparison"> |
| 18 |
<thead> |
| 19 |
<tr> |
| 20 |
<th>Platform</th> |
| 21 |
<th>Fee structure</th> |
| 22 |
<th>You keep</th> |
| 23 |
<th>vs MNW</th> |
| 24 |
</tr> |
| 25 |
</thead> |
| 26 |
<tbody id="comparison-body"> |
| 27 |
{% for row in comparison.rows %} |
| 28 |
<tr{% if row.is_mnw %} class="highlight"{% endif %}> |
| 29 |
<td{% if row.is_mnw %} style="font-weight:600"{% endif %}> |
| 30 |
{%- if row.is_mnw -%} |
| 31 |
{{ row.name }} |
| 32 |
{%- else -%} |
| 33 |
<a href="{{ row.url }}" target="_blank" rel="noopener">{{ row.name }}</a> |
| 34 |
{%- endif -%} |
| 35 |
</td> |
| 36 |
<td>{{ row.fee_label }}</td> |
| 37 |
<td>{{ row.keep }}</td> |
| 38 |
<td{% if !row.diff_class.is_empty() %} class="{{ row.diff_class }}"{% endif %}>{{ row.diff }}</td> |
| 39 |
</tr> |
| 40 |
{% endfor %} |
| 41 |
</tbody> |
| 42 |
</table> |
| 43 |
<p class="pricing-disclaimer">Fee structures sourced from each platform's public pricing page. Actual fees may vary by plan, region, or payment method. Verify on each platform's site before making decisions.</p> |
| 44 |
<p class="pricing-disclaimer"><strong>Selling small-ticket items?</strong> Payment processors charge a fixed fee per transaction (~$0.30) that hits harder on $1-5 sales. This is an industry-wide constraint, not specific to any platform. Bundling items into collections lets your fans buy in groups at a single transaction cost instead of paying per-item processing fees.</p> |
| 45 |
</div> |
| 46 |
|
| 47 |
{% match comparison.breakeven %} |
| 48 |
{% when Some with (note) %} |
| 49 |
<div class="tier-section" id="breakeven-section"> |
| 50 |
<div class="breakeven-note" id="breakeven-note">{{ note }}</div> |
| 51 |
</div> |
| 52 |
{% when None %} |
| 53 |
{% endmatch %} |
| 54 |
|