tractatus/docs/PHASE-2-COST-ESTIMATES.md
TheFlow 2298d36bed fix(submissions): restructure Economist package and fix article display
- Create Economist SubmissionTracking package correctly:
  * mainArticle = full blog post content
  * coverLetter = 216-word SIR— letter
  * Links to blog post via blogPostId
- Archive 'Letter to The Economist' from blog posts (it's the cover letter)
- Fix date display on article cards (use published_at)
- Target publication already displaying via blue badge

Database changes:
- Make blogPostId optional in SubmissionTracking model
- Economist package ID: 68fa85ae49d4900e7f2ecd83
- Le Monde package ID: 68fa2abd2e6acd5691932150

Next: Enhanced modal with tabs, validation, export

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-24 08:47:42 +13:00

510 lines
14 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Phase 2 Cost Estimates: Hosting + API Usage
**Project**: Tractatus AI Safety Framework Website
**Phase**: 2 of 3
**Created**: 2025-10-07
**Currency**: USD (approximate NZD conversion: ×1.65)
**Planning Horizon**: 3 months (Phase 2 duration)
---
## Table of Contents
1. [Executive Summary](#executive-summary)
2. [One-Time Costs](#one-time-costs)
3. [Monthly Recurring Costs](#monthly-recurring-costs)
4. [OVHCloud Hosting Options](#ovhcloud-hosting-options)
5. [Claude API Pricing](#claude-api-pricing)
6. [Usage Scenarios](#usage-scenarios)
7. [Cost Optimization Strategies](#cost-optimization-strategies)
8. [Budget Recommendations](#budget-recommendations)
---
## Executive Summary
### Total Phase 2 Costs (3 months)
| Scenario | One-Time | Monthly | 3-Month Total | Notes |
|----------|----------|---------|---------------|-------|
| **Minimal** | $50 | $80 | $290 | Basic VPS, light API usage |
| **Standard** | $100 | $150 | $550 | Recommended for soft launch |
| **High Usage** | $200 | $300 | $1,100 | Heavy AI features, peak traffic |
**Recommended Budget**: **$550 USD** (~$900 NZD) for 3-month Phase 2
**Ongoing Monthly** (post-launch): $150-200 USD (~$250-330 NZD)
---
## One-Time Costs
### Initial Setup (First Month Only)
| Item | Cost (USD) | Notes |
|------|------------|-------|
| **Domain Registration** | $15-30/year | `agenticgovernance.digital` (if not already owned) |
| **SSL Certificate** | $0 | Let's Encrypt (free) |
| **Development Tools** | $0 | Open source (Git, Node.js, MongoDB) |
| **Migration Services** | $0 | Self-managed deployment |
| **Security Audit Tools** | $0-50 | Free tier (npm audit, Trivy) or paid scans |
| **Load Testing Tools** | $0-50 | k6 (free), Artillery (free tier) |
| **Email Setup** | $0 | ProtonMail existing account |
| **Analytics Setup** | $0 | Self-hosted Plausible/Matomo |
| **Backup Storage** | $0-20 | Initial backup storage (if off-server) |
| **Contingency** | $50 | Unexpected setup costs |
**Total One-Time**: **$50-200 USD**
---
## Monthly Recurring Costs
### Breakdown by Service
#### 1. Hosting (OVHCloud VPS)
| Tier | Specs | Price/Month | Use Case |
|------|-------|-------------|----------|
| **VPS Starter** | 1 vCore, 2GB RAM, 20GB SSD | $7-10 | Development/testing only |
| **VPS Value** | 1 vCore, 2GB RAM, 40GB SSD | $10-15 | Light traffic (<1000 visitors/month) |
| **VPS Essential** | 2 vCore, 4GB RAM, 80GB SSD | $20-30 | **Recommended for soft launch** |
| **VPS Comfort** | 2 vCore, 8GB RAM, 160GB SSD | $40-50 | Moderate traffic (1000-5000 visitors/month) |
| **VPS Elite** | 4 vCore, 16GB RAM, 320GB SSD | $80-100 | High traffic (5000+ visitors/month) |
**Recommendation**: Start with **VPS Essential ($20-30)**, upgrade if needed.
#### 2. Claude API (Anthropic)
**Pricing Model** (as of 2025):
- **Claude Sonnet 4.5**:
- Input: $3.00 per million tokens
- Output: $15.00 per million tokens
- Context: 200K tokens
**Estimated Usage**:
| Feature | Requests/Month | Tokens/Request (avg) | Monthly Cost |
|---------|----------------|----------------------|--------------|
| **Blog Topic Suggestions** | 100 | 5K input + 1K output | $2.00 |
| **Blog Outline Generation** | 30 | 10K input + 5K output | $3.00 |
| **Media Inquiry Triage** | 50 | 3K input + 500 output | $0.75 |
| **Case Study Analysis** | 20 | 15K input + 3K output | $2.00 |
| **Moderation Assistance** | 50 | 5K input + 1K output | $1.50 |
| **Miscellaneous** | 50 | 5K input + 1K output | $1.50 |
**Total API Cost (Light Usage)**: **$10-15/month**
**Total API Cost (Standard)**: **$30-50/month**
**Total API Cost (Heavy)**: **$100-200/month**
#### 3. Additional Services
| Service | Cost/Month | Notes |
|---------|------------|-------|
| **Bandwidth** | $0-5 | Usually included in VPS, overage rare |
| **Backups (Off-site)** | $0-10 | OVHCloud Snapshot or Backblaze B2 |
| **Domain Renewal** | $1-3 | Amortized annual cost |
| **Email (ProtonMail)** | $0 | Existing account (free tier) |
| **Analytics (Self-hosted)** | $0 | Plausible/Matomo on same VPS |
| **Error Tracking** | $0-10 | Sentry free tier (5K events/month) or self-hosted |
| **Uptime Monitoring** | $0-5 | UptimeRobot free tier or self-hosted |
| **CDN (Optional)** | $0-20 | Cloudflare Free tier or paid |
**Total Additional**: **$0-50/month**
---
## OVHCloud Hosting Options
### Recommended Configuration: VPS Essential
**Specs**:
- 2 vCores (Intel Xeon or AMD EPYC)
- 4GB RAM
- 80GB SSD NVMe
- 500 Mbps bandwidth (unlimited traffic)
- 1 IPv4 + 1 IPv6
- Anti-DDoS protection included
**Price**: **$20-30/month** (varies by region)
**Justification**:
- Handles MongoDB (2GB RAM minimum recommended)
- Supports Node.js application + Nginx
- Room for Plausible Analytics
- Suitable for 1,000-5,000 visitors/month
- Upgrade path available (scale vertically)
### Alternative: Hetzner Cloud (European Hosting)
If OVHCloud is unavailable or too expensive:
**Hetzner CX21**:
- 2 vCPU
- 4GB RAM
- 40GB SSD
- 20TB traffic
- **€4.90/month (~$5.30 USD)**
**Hetzner CX31**:
- 2 vCPU
- 8GB RAM
- 80GB SSD
- 20TB traffic
- **€8.90/month (~$9.65 USD)**
**Note**: Hetzner has excellent pricing but may have fewer NZ/Oceania users. OVHCloud has better global presence.
---
## Claude API Pricing
### Pricing Tiers (Anthropic - 2025)
| Model | Input (per 1M tokens) | Output (per 1M tokens) | Context Window |
|-------|----------------------|------------------------|----------------|
| **Claude Haiku 4.0** | $0.25 | $1.25 | 200K |
| **Claude Sonnet 4.5** | $3.00 | $15.00 | 200K |
| **Claude Opus 4.0** | $15.00 | $75.00 | 200K |
**Recommendation**: **Claude Sonnet 4.5** (best balance of quality and cost)
### Token Usage Estimation
**Average Request Breakdown**:
1. **Blog Topic Suggestion**:
- Input: 3K tokens (recent news summaries)
- Output: 500 tokens (5-10 topic suggestions)
- Cost per request: $0.02
2. **Blog Outline Generation**:
- Input: 8K tokens (topic + guidelines + examples)
- Output: 3K tokens (detailed outline)
- Cost per request: $0.07
3. **Media Inquiry Triage**:
- Input: 2K tokens (inquiry text + classification criteria)
- Output: 300 tokens (classification + priority + draft response)
- Cost per request: $0.01
4. **Case Study Analysis**:
- Input: 10K tokens (submission + Tractatus framework docs)
- Output: 2K tokens (relevance analysis + categorization)
- Cost per request: $0.06
### Monthly Usage Scenarios
#### Scenario 1: Light Usage (Soft Launch)
- 30 blog topic checks
- 10 blog outlines
- 20 media inquiries
- 10 case study analyses
- **Total**: ~$5-10/month
#### Scenario 2: Standard Usage (Active Moderation)
- 100 blog topic checks
- 30 blog outlines
- 50 media inquiries
- 20 case study analyses
- **Total**: ~$30-50/month
#### Scenario 3: Heavy Usage (Full Production)
- 300 blog topic checks
- 100 blog outlines
- 150 media inquiries
- 50 case study analyses
- **Total**: ~$100-200/month
---
## Usage Scenarios
### Scenario 1: Minimal (Development/Testing)
**Use Case**: Low traffic, testing AI features
| Cost Item | Amount |
|-----------|--------|
| VPS (Value tier) | $15 |
| Claude API (light) | $10 |
| Backups | $5 |
| Domain (amortized) | $2 |
| **Monthly Total** | **$32** |
| **3-Month Total** | **$96** |
**Limitations**:
- 500-1,000 visitors/month max
- Limited AI usage (testing only)
- Single-server (no redundancy)
---
### Scenario 2: Standard (Recommended for Soft Launch)
**Use Case**: Soft launch with 20-50 users, moderate AI usage
| Cost Item | Amount |
|-----------|--------|
| VPS (Essential tier) | $30 |
| Claude API (standard) | $50 |
| Backups | $10 |
| Error tracking | $10 |
| Domain (amortized) | $2 |
| **Monthly Total** | **$102** |
| **3-Month Total** | **$306** |
| **With setup costs** | **$406** |
**Capabilities**:
- 1,000-5,000 visitors/month
- 30 blog posts/month (AI-assisted)
- 50 media inquiries/month
- 20 case studies/month
- Monitoring and error tracking
**Recommendation**: **This is the sweet spot for Phase 2**
---
### Scenario 3: High Usage (Peak Production)
**Use Case**: High traffic, heavy AI features
| Cost Item | Amount |
|-----------|--------|
| VPS (Comfort tier) | $50 |
| Claude API (heavy) | $200 |
| Backups | $15 |
| Error tracking | $10 |
| CDN | $20 |
| Domain (amortized) | $2 |
| **Monthly Total** | **$297** |
| **3-Month Total** | **$891** |
| **With setup costs** | **$1,091** |
**Capabilities**:
- 5,000-10,000 visitors/month
- 100+ blog posts/month
- 150+ media inquiries/month
- 50+ case studies/month
- CDN for global performance
**When to use**: Phase 3 (public launch) or if soft launch exceeds expectations
---
## Cost Optimization Strategies
### 1. API Cost Reduction
**Techniques**:
- **Caching**: Cache AI responses for identical queries (30-day TTL)
- **Batch Processing**: Group similar requests (e.g., weekly topic suggestions)
- **Haiku for Simple Tasks**: Use Claude Haiku for media triage (5x cheaper)
- **Rate Limiting**: Cap AI requests per user/day
- **Human Overrides**: Allow admins to skip AI for trivial cases
**Savings**: 30-50% reduction in API costs
### 2. Hosting Cost Reduction
**Techniques**:
- **Start Small**: Begin with VPS Value, upgrade as needed
- **Annual Billing**: OVHCloud offers ~20% discount for annual payment
- **Resource Optimization**: Optimize database queries, enable caching
- **Self-Host Everything**: Analytics, error tracking, monitoring (no SaaS fees)
- **Cloudflare Free Tier**: CDN + DDoS protection at no cost
**Savings**: 20-30% reduction in hosting costs
### 3. Bandwidth Optimization
**Techniques**:
- **Image Optimization**: WebP format, lazy loading
- **Compression**: Gzip/Brotli for all text assets
- **CDN**: Offload static assets to Cloudflare
- **Minimize Dependencies**: No unnecessary JavaScript libraries
**Savings**: Avoid bandwidth overage fees
---
## Budget Recommendations
### Phase 2 Budget Allocation
**Total Recommended Budget**: **$550 USD** (~$900 NZD)
**Breakdown**:
- **Setup costs**: $100 (one-time)
- **Month 1**: $150 (infrastructure + initial AI usage)
- **Month 2**: $150 (AI features rollout)
- **Month 3**: $150 (soft launch)
### Contingency Planning
**Recommended Buffer**: **+20%** ($110 USD / ~$180 NZD)
**Reasons**:
- Unexpected traffic spikes
- API usage higher than estimated
- Additional tools/services needed
- Domain/email issues
**Total with Contingency**: **$660 USD** (~$1,090 NZD)
---
## Monthly Budget Template (Post-Launch)
### Baseline Monthly Costs (Standard Usage)
```
Fixed Costs:
VPS Essential (OVHCloud) $30
Domain (amortized annual) $2
Backups (off-site) $10
Error Tracking (Sentry free) $0
Analytics (self-hosted) $0
─────────────────────────────────────
Subtotal Fixed $42
Variable Costs:
Claude API (30-50 requests/day) $50
Bandwidth (if overage) $0
CDN (Cloudflare Free) $0
Support/Maintenance $0
─────────────────────────────────────
Subtotal Variable $50
Total Monthly (Standard) $92
Rounded Budget Recommendation: $100/month
```
### Annual Cost Projection (Year 1)
```
Phase 2 (3 months): $550
Phase 3 (9 months): $900 (assuming $100/month average)
─────────────────────────────
Year 1 Total: $1,450 USD (~$2,400 NZD)
```
---
## Cost Comparison: Self-Hosted vs. Cloud Services
### Option 1: Self-Hosted (Recommended)
| Service | Provider | Cost |
|---------|----------|------|
| Hosting | OVHCloud VPS | $30/month |
| Analytics | Plausible (self-hosted) | $0 |
| Error Tracking | GlitchTip (self-hosted) | $0 |
| Monitoring | Self-hosted scripts | $0 |
| Backups | OVHCloud Snapshots | $10/month |
| **Total** | | **$40/month** |
### Option 2: Cloud Services
| Service | Provider | Cost |
|---------|----------|------|
| Hosting | Vercel/Netlify | $20/month |
| Database | MongoDB Atlas | $25/month |
| Analytics | Plausible (cloud) | $9/month |
| Error Tracking | Sentry (cloud) | $26/month |
| Monitoring | UptimeRobot Pro | $7/month |
| **Total** | | **$87/month** |
**Savings with Self-Hosted**: **$47/month** ($564/year)
**Tradeoff**: More setup/maintenance effort, but better privacy and cost control.
---
## Payment Methods & Billing
### OVHCloud Payment Options
- Credit/Debit Card (Visa, MasterCard)
- PayPal
- Bank Transfer (for annual plans)
- Cryptocurrency (some regions)
### Anthropic Claude API
- Credit/Debit Card
- Pay-as-you-go (monthly billing)
- Enterprise plans (prepaid credits)
### Billing Schedule
- **VPS**: Monthly (or annual for discount)
- **Claude API**: Monthly (arrears)
- **Domain**: Annual
- **Backups**: Monthly
---
## Currency Conversion (NZD)
**Exchange Rate** (as of 2025-10-07): **1 USD = ~1.65 NZD**
| USD Amount | NZD Equivalent |
|------------|----------------|
| $50 | ~$83 |
| $100 | ~$165 |
| $150 | ~$248 |
| $300 | ~$495 |
| $550 | ~$908 |
| $1,000 | ~$1,650 |
**Note**: Exchange rates fluctuate. Add 5-10% buffer for volatility.
---
## Approval Checklist
Before proceeding with Phase 2, confirm:
- [ ] **Budget approved**: $550-660 USD (~$900-1,090 NZD) for 3 months
- [ ] **Monthly ongoing**: $100-150 USD (~$165-250 NZD) acceptable
- [ ] **Payment method**: Credit card or PayPal available
- [ ] **OVHCloud account**: Created and verified
- [ ] **Anthropic account**: API access approved
- [ ] **Currency**: USD or NZD budget confirmed
- [ ] **Contingency**: 20% buffer accepted ($110 USD / ~$180 NZD)
---
## Appendix: Cost Calculator
### Interactive Budget Calculator (Conceptual)
```javascript
// Example usage:
const monthlyBudget = calculateMonthlyCost({
vps: 'essential', // $30
apiRequests: 500, // ~$50
backups: true, // $10
cdn: false, // $0
errorTracking: 'free' // $0
});
console.log(monthlyBudget); // $90
```
**Implementation**: Could be added to admin dashboard for real-time cost tracking.
---
## Revision History
| Date | Version | Changes |
|------|---------|---------|
| 2025-10-07 | 1.0 | Initial cost estimates for Phase 2 |
---
**Document Owner**: John Stroh
**Last Updated**: 2025-10-07
**Next Review**: Monthly (during Phase 2)
**Contributors**: Claude Code (Anthropic Sonnet 4.5)