{
  "model_id": "baobab-ga",
  "model_version": "2026.10.national",
  "phase": "national",
  "status": "national_surface_shipped",
  "tiers": [
    {
      "id": "public_demo",
      "name": "Public demo",
      "who": "Citizens, press, students (unauthenticated demos)",
      "auth": "None — soft abuse controls on demo speech",
      "maps_to_plan": null,
      "endpoints": [
        "GET /v1/models/baobab-ga",
        "GET /v1/baobab/ga/national",
        "POST /v1/demo/speech"
      ],
      "limits": {
        "translate_chars_daily_hint": "Authenticated translate required for production MT",
        "demo_speech": "400 requests / 10 minutes / IP (demo controller)",
        "rate_limit_note": "Demo speech returns rate_limited when exceeded"
      },
      "controls": [
        "honest en-GH remap when Ga speech is offline (paired Ghanaian English accent)",
        "ISO gaa headers — never Irish ga"
      ],
      "residency_preference": null,
      "audit": false,
      "commercial_nc_clean_tts_required": false
    },
    {
      "id": "education",
      "name": "Education / free",
      "who": "Students, UG / KNUST labs, research orgs on Free/Pro plans",
      "auth": "Org API key (TranslateAuthGuard) — Free or Pro plan",
      "maps_to_plan": "free|pro",
      "endpoints": [
        "POST /v1/translate",
        "POST /v1/tts/synthesize",
        "POST /v1/audio/transcriptions (when ASR keyed)",
        "GET /v1/models/baobab-ga"
      ],
      "limits": {
        "translate_chars_daily_hint": "Free: BILLING_FREE_TRANSLATE_CHARS_QUOTA (default 50k); Pro: BILLING_PRO_TRANSLATE_CHARS_QUOTA",
        "demo_speech": null,
        "rate_limit_note": "RATE_LIMIT_FREE_PER_KEY / RATE_LIMIT_PRO_PER_KEY via existing RateLimitGuard"
      },
      "controls": [
        "UsageService metering",
        "BillingService.assertWithinQuota"
      ],
      "residency_preference": "GH",
      "audit": true,
      "commercial_nc_clean_tts_required": false
    },
    {
      "id": "ministry",
      "name": "Ministry production",
      "who": "Ghana government services (Ga / Greater Accra citizen channels)",
      "auth": "Ministry-keyed org API key — Business plan mapping",
      "maps_to_plan": "business",
      "endpoints": [
        "POST /v1/translate",
        "POST /v1/tts/synthesize",
        "MeetingBridge Ghana corridor",
        "GET /v1/residency",
        "GET /v1/metrics/translate"
      ],
      "limits": {
        "translate_chars_daily_hint": "Business translate quota (BILLING_BUSINESS_TRANSLATE_CHARS_QUOTA)",
        "demo_speech": null,
        "rate_limit_note": "RATE_LIMIT_BUSINESS_PER_KEY / PER_ORG"
      },
      "controls": [
        "AuditService on translate.completed",
        "Org retention / vendor-training settings",
        "Residency preference GH (affinity, not hard geo-fence)"
      ],
      "residency_preference": "GH",
      "audit": true,
      "commercial_nc_clean_tts_required": false
    },
    {
      "id": "enterprise",
      "name": "Enterprise",
      "who": "Banks, telcos, NGOs serving Greater Accra",
      "auth": "Paid Enterprise keys",
      "maps_to_plan": "enterprise",
      "endpoints": [
        "POST /v1/translate (+ TM / quality)",
        "Speech + MeetingBridge",
        "Fine-tunes / marketplace where plan allows"
      ],
      "limits": {
        "translate_chars_daily_hint": "Enterprise translate quota",
        "demo_speech": null,
        "rate_limit_note": "RATE_LIMIT_ENTERPRISE_PER_KEY / PER_ORG"
      },
      "controls": [
        "SLA targets (documented; contractual SLA separate)",
        "Commercial TTS path must be NC-clean for redistribution of corpus TTS assets",
        "Audit + retention"
      ],
      "residency_preference": "AF",
      "audit": true,
      "commercial_nc_clean_tts_required": true
    }
  ],
  "residency": {
    "serving_today": "jnb",
    "serving_today_label": "Africa-primary Fly region Johannesburg (jnb)",
    "affinity_target": "af-west-1",
    "affinity_city": "Accra",
    "affinity_country": "GH",
    "accra_gpu_island": false,
    "accra_gpu_island_status": "deferred",
    "hard_geo_fence": false,
    "preference_model": "affinity_not_hard_fence",
    "ministry_affinity_pin": "af-west-1",
    "affinity_enforcement": "soft_preference_recorded",
    "accra_island_runbook": "docs/baobab/ACCRA_RESIDENCY.md",
    "note": "Inference prefers matching person/org residency to nearby model hosting when ready — affinity, not a hard geo-fence. Accra (af-west-1) is the Ghana affinity target; live serving for verbalab + lugemi-ga is jnb today. No Accra GPU island is deployed. Ministry requests record X-Lugemi-Residency-Affinity soft pin."
  },
  "sla": {
    "status": "targets_not_contractual_sla",
    "health": "GET /v1/health (API) · speech service /health on lugemi-ga",
    "translate_latency_metrics": "GET /v1/metrics/translate",
    "language_pack_rollback": "Pin previous language_pack_version (gaa-accra-pack-*) via release rollback — not an automatic mesh canary",
    "note": "Figures below are operational targets for national partners, not a signed SLA unless separately contracted."
  },
  "open_eval": {
    "partnership_pack": "docs/baobab/PARTNERSHIP_OPEN_EVAL.md",
    "live_model_card": "GET /v1/models/baobab-ga",
    "live_national": "GET /v1/baobab/ga/national",
    "live_research": "GET /v1/baobab/ga/research",
    "corridor_report": "en-gaa-accra",
    "corridor_scripts": "apps/api/eval/corridors/en-gaa-accra/test-scripts.json",
    "native_review_rubric": "apps/api/eval/corridors/en-gaa-accra/native-review-rubric.json",
    "training_leakage": "forbidden_while_trainingEligible_false",
    "note": "Ministry / UG open-eval: start with PARTNERSHIP_OPEN_EVAL.md + live endpoints. Corridor scripts + rubrics remain the eval core. trainingEligible=false until community reconfirm."
  },
  "partnership_checklist": {
    "open_evaluation": "Share corridor EVALUATION_REPORT + goldens; keep blind set outside training exports",
    "sovereign_africa_hosting": "Document jnb interim + Accra af-west-1 affinity; no Accra GPU fiction in MoU",
    "student_research": "Language Kit workflow + paid Accra Ga annotation; ISO gaa orthography notes",
    "public_free_tier": "Rate-limited POST /v1/demo/speech + Free/Pro translate quotas via UsageService",
    "ministry_production_api": "Business-plan org keys, TranslateAuthGuard, AuditService, retention settings, residency preference GH",
    "ga_not_irish_ga": "ISO 639-3 gaa / gaa-GH only — Irish ga / ga-IE must never resolve to Baobab Ga"
  },
  "license_warnings": [
    "Ga corpus TTS (ghanaopenai/ga-multispeaker-speech-text-20k unit bank) is CC-BY-NC-4.0 — unrestricted commercial redistribution of those assets is blocked.",
    "Whisper-medium Ga ASR (obour/whisper-medium-ga-multispeaker-ghana) — pin versions and attribute per model card.",
    "Meta MMS has Ga NLP only — facebook/mms-tts-gaa does not exist; do not invent MMS-TTS claims.",
    "Phrase/lexical Baobab MT covers reviewed corridor domains; neural_nmt is false (no Ga NLLB service shipped)."
  ],
  "varieties": {
    "accra": "gaa-gh",
    "dangme_interchangeable": false,
    "irish_ga_interchangeable": false
  },
  "response_contract": {
    "model_id": "baobab-ga",
    "fields": [
      "request_id",
      "model_id",
      "model_version",
      "language_pack_version",
      "variety_id",
      "status",
      "license_warnings",
      "residency",
      "national_tier"
    ],
    "note": "No invented confidence scores. Accra GPU island never claimed live. ISO gaa ≠ Irish ga."
  },
  "as_of": "2026-10-23T10:27:29.202Z"
}