This workspace’s plan
@switch (activePanel()) {
@case ('invoicing') {
@if (needsReview() > 0) {
{{ needsReview() }} draft is held for review. An invoice several times
last month’s is either a real campaign or a double count — the customer
should not be the one who finds out.
}
@for (invoice of invoices; track invoice.id) {
{{ invoice.account }}{{ invoice.period }}{{ invoice.lines.length }}${{ invoice.total.toLocaleString() }}
}
Pipeline
@for (stage of pipeline; track stage.label) {
}
}
@case ('pricing') {
Every input is a number a customer can check against their own payroll.
The calculator will tell you when a deal does not pay for itself — one
that only produces good news is one nobody believes.
All-human cost{{ money(costAllHuman()) }}
With the platform{{ money(costWithAi()) }}
Monthly saving{{ money(monthlySaving()) }}
@if (paysForItself()) {
Break-even containment is {{ breakEvenContainment() }}%; this deal is
modelled at {{ containment() }}%. Implementation repays in about
{{ paybackLabel() }}.
} @else {
At {{ containment() }}% containment this does not pay for itself. The
platform fee is covered only above {{ breakEvenContainment() }}% —
either the volume is too low for these numbers, or the fee is wrong for
this account.
}
}
@case ('partners') {
@for (partner of partners; track partner.id) {
{{ partner.name }}{{ partner.kind }}{{ partner.sharePct }}%{{ partner.accounts }}${{ partner.revenueQtr.toLocaleString() }} 0 ? '$' + partner.owed.toLocaleString() : 'none'"
[tone]="partner.owed > 0 ? 'amber' : 'grey'"
/>
}
Blended share is {{ blendedShare() }}% of partner-sourced revenue. The
technology partner carries a 0% share and is still listed — attribution
matters even when the payout does not.
}
@case ('feedback') {
Lines
@for (line of invoice.lines; track line.label) {
}
@if (invoice.reviewReason) {
Why it is held{{ invoice.reviewReason }}
}
This period
} @else {
Select an invoice.
}
}
@case ('pricing') {
The model
Five inputs, no hidden multipliers.
WorkingWhat it leaves out
Implementation effort, training time and the revenue side of faster
responses. Deliberately: those are the numbers a customer disputes,
and losing an argument about them costs the credible ones too.
}
@case ('partners') {
@if (selectedPartner(); as partner) {
{{ partner.name }}
{{ partner.kind }} · {{ partner.status }}
Agreement
{{ partner.note }}
Across all partners
} @else {
Select a partner.
}
}
@case ('feedback') {
@if (selectedResponse(); as response) {
Score {{ response.score }}
{{ response.role }} · {{ response.at }}
What they said{{ response.comment }}Context
} @else {
Select a response.
}
}
}