Vwu Pricing Spec
Ecosistema completo para organización y gestión de contenido con interfaces espaciales
Vitto Work Unit (VWU) Pricing Specification
Status: Draft Author: S202 Engineering Review Date: 2026-03-11 Type: Product Specification (design doc, not implementation)
1. What is a VWU?
A Vitto Work Unit is the outcome-based billing unit for Vitto's AI capabilities. Users pay for successful outcomes, not raw API calls or token consumption. This aligns revenue with user-perceived value and makes costs predictable.
Principle: A VWU is only charged when Vitto delivers a verifiable outcome. Failed tasks, retries, and internal overhead are absorbed by the platform.
2. Actions That Count as VWUs
| Action | VWU Weight | Verification Method |
|---|---|---|
| Simple chat Q&A | 1 | Response generated without error |
| Chat with tool use (1-2 tools) | 2 | All tool calls resolved successfully |
| Complex multi-tool task (3+ tools) | 3 | Task completed (all tools resolved) |
| Module generation (per module) | 5 | Module files committed to GitLab |
| Full platform generation (5+ modules) | 20 | All modules committed + app shell generated |
| Deployment to Cloudflare | 3 | Deployment URL returns 200 |
| Studio file edit + commit | 1 | GitLab commit created |
| Proactive alert sent | 0.5 | Channel message delivered |
| Computer use session (per 5-min block) | 2 | At least one screenshot + action completed |
| Document/report generation | 3 | Document content exceeds 500 chars |
Not charged:
- System prompt assembly, dossier hydration, memory extraction (internal overhead)
- Failed tool calls that are retried internally
- Rate-limited requests that return errors
- Health check / observatory endpoints
- SSE event delivery (infrastructure cost)
3. Pricing Tiers
| Tier | Monthly VWUs | Price | Cost-per-VWU Ceiling |
|---|---|---|---|
| Free | 50 | $0 | N/A (subsidized for adoption) |
| Pro | 500 | $29/mo | $0.058 |
| Business | 2,000 | $99/mo | $0.050 |
| Enterprise | Custom | Custom | Negotiated |
Overage: Pro/Business users can purchase additional VWU packs:
- 100 VWUs: $8 ($0.08/VWU)
- 500 VWUs: $35 ($0.07/VWU)
Free tier purpose: Acquisition funnel. 50 VWUs = ~30 chat messages + 1 module generation. Enough to experience value, not enough to run a business.
4. Cost-per-VWU Target (Internal)
For viable margins, the platform cost per VWU must be below 50% of the charge price.
| Tier | Charge/VWU | Target Cost/VWU | Target Margin |
|---|---|---|---|
| Pro | $0.058 | < $0.029 | > 50% |
| Business | $0.050 | < $0.025 | > 50% |
| Overage | $0.07-0.08 | < $0.035 | > 50% |
Current estimated costs (from Observatory data, S201):
- Simple chat: ~$0.003-0.01 LLM cost (well within margin)
- Module generation: ~$0.08-0.15 LLM cost (5 VWU = $0.25-0.29 revenue at Pro, marginal)
- Computer use: ~$0.05-0.10 per 5-min block (2 VWU = $0.10-0.12 revenue, tight)
Risk: Module generation and computer use are near break-even at Pro pricing. Mitigation: response caching (S201), scaffold fallback (reduces LLM calls), and model cost decreases over time.
5. Dispute Window
Window: 60 minutes from VWU charge.
If a user triggers an action and immediately undoes it (e.g., deletes a generated module within 60 minutes), the VWU is refunded. This prevents charging for accidental or experimental work.
Implementation notes:
- Each VWU charge has a
chargedAttimestamp andstatus(pending | confirmed | refunded) - After 60 minutes, status moves from
pendingtoconfirmed(cron job) - Undo/delete actions within the window trigger automatic refund
- Refunded VWUs are added back to the user's monthly balance
6. Measurement Method
How Vitto detects "successful completion":
| Action | Success Signal |
|---|---|
| Chat | response.content.length > 0 (non-error response) |
| Tool call | Tool returns result without error |
| Module generation | GitLab commit SHA returned |
| Deployment | Cloudflare deployment ID returned |
| Computer use | At least one action_taken in the session |
| File edit | Commit SHA returned from GitLab |
| Proactive alert | Channel API returns 200/201 |
Counting rules:
- One VWU per outcome, not per API call. If a chat needs 3 retries internally, it's still 1 VWU.
- Compound tasks (e.g., "generate 5 modules and deploy") charge for each sub-outcome independently.
- Background tasks charge when they complete, not when they start.
- Cancelled tasks are not charged (no outcome delivered).
7. Data Model (Schema Sketch)
VwuCharge {
userId: string
spaceId: string
action: string // 'chat', 'module_generation', 'deployment', etc.
weight: number // VWU weight for this action
status: 'pending' | 'confirmed' | 'refunded'
chargedAt: Date
confirmedAt?: Date // Set after dispute window closes
refundedAt?: Date
taskId?: string // Link to the task that generated this charge
metadata: {
actualCostUsd: number // Internal LLM cost for margin tracking
model: string
tokensUsed: number
}
}
VwuBalance {
userId: string
tier: 'free' | 'pro' | 'business' | 'enterprise'
monthlyAllowance: number
used: number
overage: number
billingCycleStart: Date
billingCycleEnd: Date
}
8. Open Questions for Product Review
Should free-tier users see VWU counts? Showing "3/50 VWUs used" creates awareness and upgrade pressure, but might feel transactional.
Should module generation charge per-module or per-generation? Per-module (current proposal) is fairer but creates billing complexity for partial failures (3/5 modules succeed).
Should computer use be time-based or action-based? Time-based (current: per 5-min block) is simpler but penalizes slow connections. Action-based is fairer but harder to measure.
Should proactive alerts count as VWUs at all? They're initiated by Vitto, not the user. Charging for them might create negative perception ("Vitto is spending my credits without asking").
Enterprise custom pricing: Should enterprise include unlimited VWUs, or always be metered with volume discounts?
This is a product specification. Implementation requires schema creation, billing integration, and frontend VWU counter. Estimated effort: 2-3 sessions after product approval.