Payments
Pricing Model
Turn the monthly price and hosted AI cap blockers into a defensible first paid-beta SKU before creating live Stripe prices.
Pricing Decision Form
Stripe setupChecking command-center API...
Rebuild runs the pricing model before rendering the dashboard. Private provider keys and Stripe secrets do not belong in these fields.
Current Pricing Snapshot
Source Rates
| Source | URL | Planning Use |
|---|---|---|
| OpenAI API pricing | https://platform.openai.com/docs/pricing/ | Text token price assumptions use gpt-5-mini standard rates seen on 2026-05-31: $0.25 input and $2.00 output per 1M tokens. |
| Stripe US pricing | https://stripe.com/us/pricing | Payment estimate uses standard domestic card rate seen on 2026-05-31: 2.9% plus $0.30 per successful transaction. |
NyrA Pricing And Hosted AI Cap Model
Scope: NyrA Swarm Little Buddy desktop paid beta.
This model exists to turn the open pricing blockers into concrete dashboard decisions:
- Monthly subscription price.
- Included hosted AI cap.
- Reserve for payment fees, support, infrastructure, refunds, disputes, and provider cost swings.
It is not legal, tax, accounting, or investment advice. Verify provider pricing immediately before creating the live Stripe product.
Default Paid Beta Assumption
Use one simple paid beta SKU first:
- Product: NyrA Swarm Little Buddy Pro.
- Billing interval: monthly.
- Trial: none.
- BYOK: later.
- Hosted usage: capped from day one.
- Cancellation: Customer Portal.
- Refund posture: all purchases final, with legal/billing-error exceptions.
Current Planning Inputs
The generated snapshot uses:
- OpenAI
gpt-5-minitext-token rates as the baseline hosted chat cost. - Stripe standard domestic card processing as the payment estimate.
- 30% provider buffer to absorb longer conversations, retries, routing variance, and small provider changes.
- Support, infrastructure, and refund/dispute reserves per subscriber.
- 70% target gross margin before taxes and owner payroll.
These are intentionally conservative enough for a first paid beta. If the product leans harder into realtime audio, image generation, or heavy computer-use loops, reduce the included cap or raise the price.
Decision Rule
- Pick a first monthly price.
- Pick included hosted AI messages/month.
- Run
npm run pricing:model. - If the modeled margin is below target, raise price or lower included usage.
- Do not create the live Stripe price until the command center shows both monthly price and hosted AI cap as decided.
Recommended Starting Posture
For paid beta, prefer a smaller included cap with a clear disclosure instead of promising unlimited AI:
- Start with a single plan.
- Cap hosted usage.
- Record real usage during beta.
- Raise or lower the cap only after measured user behavior.
- Add BYOK later for power users.
Commands
npm run pricing:model
npm run test:pricing-model
The model writes:
docs/pricing/pricing-snapshot.jsondocs/pricing/pricing-summary.csv
The command center renders those outputs on the Pricing page.
Sources To Recheck Before Live Stripe Setup
- OpenAI API pricing: https://platform.openai.com/docs/pricing/
- Stripe US pricing: https://stripe.com/us/pricing
Provider pricing, Stripe rates, tax handling, and card mix can change. Recheck all of them before using billing:stripe-setup --execute.
Pricing Snapshot JSON
{
"generatedAt": "2026-06-17T22:58:44.712Z",
"status": "Modeled margin meets target",
"sources": [
{
"name": "OpenAI API pricing",
"url": "https://platform.openai.com/docs/pricing/",
"notes": "Text token price assumptions use gpt-5-mini standard rates seen on 2026-05-31: $0.25 input and $2.00 output per 1M tokens."
},
{
"name": "Stripe US pricing",
"url": "https://stripe.com/us/pricing",
"notes": "Payment estimate uses standard domestic card rate seen on 2026-05-31: 2.9% plus $0.30 per successful transaction."
}
],
"assumptions": {
"defaultModel": "gpt-5-mini",
"modeledMonthlyPriceCents": 2500,
"chosenMonthlyPriceCents": 2500,
"chosenHostedAiCap": "300 hosted AI messages/month until measured usage proves more headroom",
"includedChatMessages": 300,
"avgInputTokensPerMessage": 1200,
"avgOutputTokensPerMessage": 700,
"inputUsdPerMillionTokens": 0.25,
"outputUsdPerMillionTokens": 2,
"providerBufferPercent": 30,
"targetGrossMarginPercent": 70,
"paymentFeePercent": 2.9,
"paymentFixedCents": 30,
"supportReserveCents": 300,
"infraReserveCents": 100,
"refundDisputeReserveCents": 100
},
"computed": {
"aiCostPerMessageCents": 0.221,
"includedAiCostCents": 67,
"paymentFeeCents": 103,
"nonAiReserveCents": 500,
"variableCostCents": 670,
"netBeforeTaxCents": 1830,
"estimatedGrossMarginPercent": 73.2,
"minimumPriceForConfiguredCapCents": 2300,
"maxMessagesAtTargetMargin": 665,
"recommendedHostedAiCap": "300 hosted AI messages/month until measured usage proves more headroom",
"recommendedStartingPrice": "$23.00",
"modeledMonthlyPrice": "$25.00",
"modeledNetBeforeTax": "$18.30"
},
"warnings": [
"This is a planning model, not tax/accounting advice.",
"Provider and Stripe pricing can change; verify source pages before creating live products.",
"Voice, image, realtime audio, refunds, disputes, support time, and abuse can raise actual costs.",
"BYOK can reduce hosted AI exposure later, but the first paid beta should still cap hosted usage."
]
}