# 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)
