{
  "model_id": "baobab-ha-ng",
  "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-ha-ng",
        "GET /v1/baobab/ha-ng/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-NG remap when speech offline (paired Nigerian English accent)",
        "spectral_gate_v2 clarity on live neural WAV",
        "variety headers — ha-ng-kano (not Ghana Zongo)"
      ],
      "residency_preference": null,
      "audit": false,
      "commercial_nc_clean_tts_required": false
    },
    {
      "id": "education",
      "name": "Education / free",
      "who": "Students, BUK / ABU 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-ha-ng"
      ],
      "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": "NG",
      "audit": true,
      "commercial_nc_clean_tts_required": false
    },
    {
      "id": "ministry",
      "name": "Ministry production",
      "who": "Nigeria government services (Kano / Northern Nigeria citizen channels)",
      "auth": "Ministry-keyed org API key — Business plan mapping",
      "maps_to_plan": "business",
      "endpoints": [
        "POST /v1/translate",
        "POST /v1/tts/synthesize",
        "MeetingBridge Nigeria 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": "NG",
      "audit": true,
      "commercial_nc_clean_tts_required": false
    },
    {
      "id": "enterprise",
      "name": "Enterprise",
      "who": "Banks, telcos, NGOs serving Kano / Northern Nigeria",
      "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 MMS 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": "Kano",
    "affinity_country": "NG",
    "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. Kano is the Nigeria residency preference; Africa-west affinity pin remains af-west-1. Live serving for verbalab + lugemi-hausa is jnb today. No Accra GPU island is deployed."
  },
  "sla": {
    "status": "targets_not_contractual_sla",
    "health": "GET /v1/health (API) · speech service /health on lugemi-hausa",
    "translate_latency_metrics": "GET /v1/metrics/translate",
    "language_pack_rollback": "Pin previous language_pack_version (ha-ng-kano-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-ha-ng",
    "live_national": "GET /v1/baobab/ha-ng/national",
    "live_research": "GET /v1/baobab/ha-ng/research",
    "corridor_report": "en-ha-kano",
    "corridor_scripts": "apps/api/eval/corridors/en-ha-kano/test-scripts.json",
    "native_review_rubric": "apps/api/eval/corridors/en-ha-kano/native-review-rubric.json",
    "training_leakage": "forbidden_while_trainingEligible_false",
    "note": "Ministry / UG open-eval: start with PARTNERSHIP_OPEN_EVAL.md + live endpoints. 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 Hausa (Kano / Nigeria) annotation",
    "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 NG",
    "variety_honesty": "Katsina (ha-ng-katsina) is a secondary Nigerian variety — not the Nigeria regional national default."
  },
  "license_warnings": [
    "Hausa MMS-TTS (facebook/mms-tts-hau) is CC-BY-NC-4.0 — unrestricted commercial redistribution of those assets is blocked.",
    "Whisper ASR for Hausa corridor — pin versions and attribute per model card.",
    "Kano / Northern Nigeria is the product default via prosody + labels on shared Hausa-general weights — not an exclusive Kano-only speech finetune.",
    "Phrase/lexical Baobab MT covers reviewed corridor domains; neural_nmt is false (no Hausa NLLB national service shipped)."
  ],
  "varieties": {
    "primary": "ha-ng-kano",
    "audio_clean": "spectral_gate_v2",
    "interchangeable": false
  },
  "response_contract": {
    "model_id": "baobab-ha-ng",
    "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. Clarity: spectral_gate_v2."
  },
  "as_of": "2026-10-23T10:30:10.358Z"
}