mirror of https://github.com/ghostfolio/ghostfolio
1 changed files with 178 additions and 0 deletions
@ -0,0 +1,178 @@ |
|||||
|
# AI Cost Analysis |
||||
|
|
||||
|
## Model Used |
||||
|
|
||||
|
**Claude claude-sonnet-4-5** (`claude-sonnet-4-5-20251001`) |
||||
|
|
||||
|
--- |
||||
|
|
||||
|
## Per-Request Cost Breakdown |
||||
|
|
||||
|
### Token Assumptions |
||||
|
|
||||
|
| Component | Tokens | Notes | |
||||
|
| ---------------------------------- | ---------- | --------------------------------------------- | |
||||
|
| System prompt | ~800 | Tool registry + citation rules + instructions | |
||||
|
| Conversation history (avg 3 turns) | ~200 | Rolled-up prior messages | |
||||
|
| User message | ~100 | Average query length | |
||||
|
| Tool call result | ~300 | Structured JSON from tool | |
||||
|
| **Total input** | **~1,200** | | |
||||
|
| Response generation | **~400** | Typical financial explanation | |
||||
|
|
||||
|
### Claude Sonnet Pricing |
||||
|
|
||||
|
| Token Type | Rate | Cost per Request | |
||||
|
| ------------------- | ------------------ | ------------------------------- | |
||||
|
| Input | $3.00 / 1M tokens | 1,200 × $0.000003 = **$0.0036** | |
||||
|
| Output | $15.00 / 1M tokens | 400 × $0.000015 = **$0.006** | |
||||
|
| **Total per query** | | **$0.0096 ≈ $0.01** | |
||||
|
|
||||
|
--- |
||||
|
|
||||
|
## Development & Testing Costs |
||||
|
|
||||
|
### Development Estimate |
||||
|
|
||||
|
| Activity | Queries | Cost | |
||||
|
| ------------------------------------------- | ---------- | -------- | |
||||
|
| Agent prototyping (classify, route, format) | ~500 | ~$5.00 | |
||||
|
| Tool development + debugging | ~600 | ~$6.00 | |
||||
|
| Eval suite creation + validation | ~400 | ~$4.00 | |
||||
|
| UI integration + end-to-end testing | ~300 | ~$3.00 | |
||||
|
| Deployment + final polish | ~200 | ~$2.00 | |
||||
|
| **Total estimated development** | **~2,000** | **~$20** | |
||||
|
|
||||
|
### Infrastructure Costs (Development) |
||||
|
|
||||
|
| Service | Cost | |
||||
|
| ------------------------ | ------------------------------- | |
||||
|
| LangSmith | Free tier (10,000 traces/month) | |
||||
|
| Railway deployment | Free tier (sufficient for MVP) | |
||||
|
| **Total infrastructure** | **$0** | |
||||
|
|
||||
|
### Total Development Cost |
||||
|
|
||||
|
**~$20** (API calls only) |
||||
|
|
||||
|
--- |
||||
|
|
||||
|
## Production Cost Projections |
||||
|
|
||||
|
### Assumptions |
||||
|
|
||||
|
- 5 queries per user per day (realistic for a personal finance assistant) |
||||
|
- 1,600 tokens average per query (input + output with tool call overhead) |
||||
|
- 1.2× multiplier for tool call metadata overhead |
||||
|
- Effective cost per query: **$0.012** (after overhead) |
||||
|
|
||||
|
### Scale Projections |
||||
|
|
||||
|
| Scale | Monthly Users | Daily Queries | Monthly Queries | Monthly API Cost | |
||||
|
| ---------- | ------------- | ------------- | --------------- | ---------------- | |
||||
|
| Starter | 100 | 500 | 15,000 | **~$18** | |
||||
|
| Growth | 1,000 | 5,000 | 150,000 | **~$180** | |
||||
|
| Scale | 10,000 | 50,000 | 1,500,000 | **~$1,800** | |
||||
|
| Enterprise | 100,000 | 500,000 | 15,000,000 | **~$18,000** | |
||||
|
|
||||
|
### Cost Per Feature |
||||
|
|
||||
|
| Feature | Avg Input Tokens | Avg Output Tokens | Cost/Query | |
||||
|
| ---------------------------- | ---------------- | ----------------- | ----------- | |
||||
|
| Portfolio analysis | 1,000 | 400 | ~$0.009 | |
||||
|
| Property tracking (CRUD) | 600 | 200 | ~$0.005 | |
||||
|
| Strategy simulation | 1,400 | 600 | ~$0.013 | |
||||
|
| Life decision advisor | 1,600 | 800 | ~$0.016 | |
||||
|
| Wealth gap visualizer | 900 | 300 | ~$0.008 | |
||||
|
| Relocation runway | 1,200 | 500 | ~$0.011 | |
||||
|
| Family planner | 1,100 | 450 | ~$0.010 | |
||||
|
| **Average across all tools** | **1,114** | **464** | **~$0.010** | |
||||
|
|
||||
|
--- |
||||
|
|
||||
|
## Cost Optimization Strategies |
||||
|
|
||||
|
### 1. Query-Level Caching (saves ~30%) |
||||
|
|
||||
|
Common queries like "Austin market data", "Federal Reserve benchmarks", and "What is my portfolio?" |
||||
|
can be cached with a 24-hour TTL. This reduces repeat Claude API calls for identical inputs. |
||||
|
|
||||
|
- Estimated savings at 1,000 users: ~$54/month |
||||
|
- Implementation: Redis or simple in-memory LRU cache |
||||
|
|
||||
|
### 2. Model Tiering (saves ~70% on classification) |
||||
|
|
||||
|
Use Claude Haiku for the classify_node (~10x cheaper than Sonnet) and reserve Sonnet only for |
||||
|
the format_node where response quality matters. |
||||
|
|
||||
|
- Classification cost with Haiku: ~$0.0003/request (vs $0.003 with Sonnet) |
||||
|
- Saves: $0.0027 per request × 15,000/month = ~$40/month at Starter tier |
||||
|
|
||||
|
### 3. Conversation Compaction (saves ~20%) |
||||
|
|
||||
|
Summarize conversation history older than 3 turns instead of sending raw messages. |
||||
|
This reduces input tokens for multi-turn conversations from ~800 to ~200. |
||||
|
|
||||
|
- Savings: 600 tokens × $0.000003 × 15,000/month ≈ $27/month at Starter |
||||
|
|
||||
|
### 4. Tool Result Truncation (saves ~10%) |
||||
|
|
||||
|
Real estate listings and portfolio data can be pre-summarized before LLM formatting. |
||||
|
Reduces average output from 400 to 300 tokens for data-heavy responses. |
||||
|
|
||||
|
### Combined Optimization Impact |
||||
|
|
||||
|
At 1,000 users/month, implementing all 4 strategies reduces cost from ~$180 to ~$85/month — |
||||
|
a **53% reduction**. |
||||
|
|
||||
|
--- |
||||
|
|
||||
|
## Break-Even Analysis |
||||
|
|
||||
|
### SaaS Pricing Model |
||||
|
|
||||
|
| Subscription Price | Monthly Cost at 1,000 users | Gross Margin | |
||||
|
| ------------------ | --------------------------- | -------------------------------- | |
||||
|
| $9.99/month | $180 API + $0 infra | **55%** (with optimization: 91%) | |
||||
|
| $14.99/month | $180 API + $0 infra | **70%** (with optimization: 94%) | |
||||
|
| $19.99/month | $180 API + $0 infra | **78%** (with optimization: 96%) | |
||||
|
|
||||
|
At **$15/month** subscription and 150 queries/month per user: |
||||
|
|
||||
|
- Revenue per user: $15.00 |
||||
|
- API cost per user: $0.18 (150 × $0.012) |
||||
|
- Gross margin: **98.8%** before infrastructure and support |
||||
|
|
||||
|
### When to Pay for Infrastructure |
||||
|
|
||||
|
| Milestone | Infrastructure Needed | Estimated Monthly Cost | |
||||
|
| --------------- | ------------------------------------ | ---------------------- | |
||||
|
| 0–500 users | Railway free tier + LangSmith free | $0 | |
||||
|
| 500–5,000 users | Railway $5 + LangSmith Developer $39 | $44/month | |
||||
|
| 5,000+ users | Railway Pro $20 + LangSmith Plus $99 | $119/month | |
||||
|
|
||||
|
--- |
||||
|
|
||||
|
## Observability Cost |
||||
|
|
||||
|
| Tool | Plan | Cost | |
||||
|
| ---------------------- | -------------------------- | ------------ | |
||||
|
| LangSmith | Free (10,000 traces/month) | $0 | |
||||
|
| Railway | Free tier | $0 | |
||||
|
| **Total at MVP scale** | | **$0/month** | |
||||
|
|
||||
|
LangSmith free tier covers ~333 traced requests/day — sufficient for beta testing and |
||||
|
submission demo. Production would require the Developer plan at $39/month. |
||||
|
|
||||
|
--- |
||||
|
|
||||
|
## Summary |
||||
|
|
||||
|
| Phase | Monthly Cost | |
||||
|
| -------------------------------- | ------------- | |
||||
|
| Development (one-time) | ~$20 total | |
||||
|
| MVP (100 users) | ~$2 API | |
||||
|
| Early stage (1,000 users) | ~$18–$180 API | |
||||
|
| Growth (10,000 users, optimized) | ~$900 API | |
||||
|
| Infrastructure at scale | ~$120/month | |
||||
|
|
||||
|
The model is **profitable from day one** at any subscription price above $1/month per user. |
||||
Loading…
Reference in new issue