{
  "schemaVersion": 1,
  "generatedAt": "2026-08-20T00:00:00.000Z",
  "comparisons": [
    {
      "resourceId": "tools-translation-management-systems",
      "criteria": [
        {
          "id": "deployment",
          "label": "Where it runs & where data goes"
        },
        {
          "id": "commercial",
          "label": "How it is sold"
        },
        {
          "id": "developer-flow",
          "label": "Code, API & automation"
        },
        {
          "id": "content",
          "label": "Content it handles"
        },
        {
          "id": "linguistic-assets",
          "label": "Memory & terminology"
        },
        {
          "id": "review-context",
          "label": "Review & context"
        },
        {
          "id": "quality-ai",
          "label": "Quality, MT & AI"
        },
        {
          "id": "portability",
          "label": "How you get your data out"
        }
      ],
      "views": [
        {
          "id": "shortlist",
          "label": "Shortlist",
          "criteria": [
            "deployment",
            "commercial",
            "content",
            "review-context",
            "portability"
          ]
        },
        {
          "id": "workflow",
          "label": "Workflow",
          "criteria": [
            "content",
            "linguistic-assets",
            "review-context",
            "quality-ai"
          ]
        },
        {
          "id": "governance",
          "label": "Integration & governance",
          "criteria": [
            "deployment",
            "developer-flow",
            "quality-ai",
            "portability"
          ]
        },
        {
          "id": "all",
          "label": "All evidence",
          "criteria": []
        }
      ],
      "products": [
        {
          "id": "phrase",
          "name": "Phrase",
          "website": "https://phrase.com/",
          "values": [
            {
              "criterionId": "deployment",
              "value": "Vendor-hosted SaaS.",
              "sourceIds": [
                "phrase-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "commercial",
              "value": "Proprietary; public plan structure with enterprise sales path.",
              "sourceIds": [
                "phrase-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "developer-flow",
              "value": "API, CLI, webhooks, and GitHub, GitLab, and Bitbucket sync.",
              "sourceIds": [
                "phrase-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "content",
              "value": "Software, document, design, and content workflows with broad format support.",
              "sourceIds": [
                "phrase-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "linguistic-assets",
              "value": "Translation memory and term bases.",
              "sourceIds": [
                "phrase-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "review-context",
              "value": "Workflow review, screenshots, in-context editor, and design integrations.",
              "sourceIds": [
                "phrase-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "quality-ai",
              "value": "Automated QA plus configurable MT and AI-assisted workflows.",
              "sourceIds": [
                "phrase-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "portability",
              "value": "API, CLI, file downloads, and linguistic-resource export workflows.",
              "sourceIds": [
                "phrase-docs"
              ],
              "verified": "2026-08-20"
            }
          ]
        },
        {
          "id": "lokalise",
          "name": "Lokalise",
          "website": "https://lokalise.com/",
          "values": [
            {
              "criterionId": "deployment",
              "value": "Vendor-hosted SaaS.",
              "sourceIds": [
                "lokalise-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "commercial",
              "value": "Proprietary; public plans and enterprise sales path.",
              "sourceIds": [
                "lokalise-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "developer-flow",
              "value": "REST API, SDKs, webhooks, CLI, and repository apps.",
              "sourceIds": [
                "lokalise-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "content",
              "value": "Software, document, design-file, and content workflows.",
              "sourceIds": [
                "lokalise-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "linguistic-assets",
              "value": "Translation memory and glossaries.",
              "sourceIds": [
                "lokalise-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "review-context",
              "value": "Review states, screenshots, comments, and design-tool context.",
              "sourceIds": [
                "lokalise-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "quality-ai",
              "value": "Automated checks, MT, and AI features with workspace controls.",
              "sourceIds": [
                "lokalise-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "portability",
              "value": "API and file downloads; verify bulk asset and history export in the target plan.",
              "sourceIds": [
                "lokalise-docs"
              ],
              "verified": "2026-08-20"
            }
          ]
        },
        {
          "id": "crowdin",
          "name": "Crowdin",
          "website": "https://crowdin.com/",
          "values": [
            {
              "criterionId": "deployment",
              "value": "Vendor-hosted Crowdin and a separate Enterprise product.",
              "sourceIds": [
                "crowdin-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "commercial",
              "value": "Proprietary; public plan information.",
              "sourceIds": [
                "crowdin-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "developer-flow",
              "value": "REST API, CLI, webhooks, repository integrations, and configuration files.",
              "sourceIds": [
                "crowdin-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "content",
              "value": "Extensive software and content format support.",
              "sourceIds": [
                "crowdin-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "linguistic-assets",
              "value": "Translation memory and glossaries.",
              "sourceIds": [
                "crowdin-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "review-context",
              "value": "Proofreading, issues, screenshots, and in-context localization.",
              "sourceIds": [
                "crowdin-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "quality-ai",
              "value": "QA checks plus MT and AI provider integrations.",
              "sourceIds": [
                "crowdin-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "portability",
              "value": "API, CLI, builds, file downloads, TM, and glossary exports.",
              "sourceIds": [
                "crowdin-docs"
              ],
              "verified": "2026-08-20"
            }
          ]
        },
        {
          "id": "smartling",
          "name": "Smartling",
          "website": "https://www.smartling.com/",
          "values": [
            {
              "criterionId": "deployment",
              "value": "Vendor-hosted SaaS.",
              "sourceIds": [
                "smartling-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "commercial",
              "value": "Proprietary; pricing is sales-led.",
              "sourceIds": [
                "smartling-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "developer-flow",
              "value": "API, webhook subscriptions, connectors, and a hosted GitHub connector.",
              "sourceIds": [
                "smartling-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "content",
              "value": "Software, websites, documents, and connector-driven content.",
              "sourceIds": [
                "smartling-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "linguistic-assets",
              "value": "Translation memory, glossary, and terminology workflows.",
              "sourceIds": [
                "smartling-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "review-context",
              "value": "Visual context, issues, and configurable review workflow.",
              "sourceIds": [
                "smartling-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "quality-ai",
              "value": "Quality checks plus machine-translation and AI workflow products.",
              "sourceIds": [
                "smartling-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "portability",
              "value": "API, connector, and file retrieval; validate a full program export during procurement.",
              "sourceIds": [
                "smartling-docs"
              ],
              "verified": "2026-08-20"
            }
          ]
        },
        {
          "id": "transifex",
          "name": "Transifex",
          "website": "https://www.transifex.com/",
          "values": [
            {
              "criterionId": "deployment",
              "value": "Vendor-hosted SaaS.",
              "sourceIds": [
                "transifex-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "commercial",
              "value": "Proprietary; public plan information.",
              "sourceIds": [
                "transifex-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "developer-flow",
              "value": "API, CLI, webhooks, GitHub integration, and CI-compatible workflows.",
              "sourceIds": [
                "transifex-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "content",
              "value": "Software, website, and content localization.",
              "sourceIds": [
                "transifex-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "linguistic-assets",
              "value": "Translation memory and glossaries.",
              "sourceIds": [
                "transifex-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "review-context",
              "value": "Review workflow plus live and visual context.",
              "sourceIds": [
                "transifex-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "quality-ai",
              "value": "Translation checks, MT, and AI-assisted translation.",
              "sourceIds": [
                "transifex-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "portability",
              "value": "API, CLI, and file downloads; verify history and linguistic-asset exit needs.",
              "sourceIds": [
                "transifex-docs"
              ],
              "verified": "2026-08-20"
            }
          ]
        },
        {
          "id": "memoq-tms",
          "name": "memoQ TMS",
          "website": "https://www.memoq.com/",
          "values": [
            {
              "criterionId": "deployment",
              "value": "Customer-managed server and hosted-service options.",
              "sourceIds": [
                "memoq-tms-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "commercial",
              "value": "Proprietary; server and hosted terms are quote-based.",
              "sourceIds": [
                "memoq-tms-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "developer-flow",
              "value": "Automation and web-service interfaces; repository sync is not a primary workflow.",
              "sourceIds": [
                "memoq-tms-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "content",
              "value": "Broad translation, localization, and document formats.",
              "sourceIds": [
                "memoq-tms-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "linguistic-assets",
              "value": "Server translation memories, term bases, LiveDocs, and shared resources.",
              "sourceIds": [
                "memoq-tms-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "review-context",
              "value": "Workflow states, web/desktop review, and format-dependent previews.",
              "sourceIds": [
                "memoq-tms-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "quality-ai",
              "value": "QA settings, reports, MT plugins, and workflow configuration.",
              "sourceIds": [
                "memoq-tms-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "portability",
              "value": "Project packages, bilingual files, TMX, TBX, and resource export.",
              "sourceIds": [
                "memoq-tms-docs"
              ],
              "verified": "2026-08-20"
            }
          ]
        },
        {
          "id": "weblate",
          "name": "Weblate",
          "website": "https://weblate.org/",
          "values": [
            {
              "criterionId": "deployment",
              "value": "Self-hosted open-source software or hosted Weblate.",
              "sourceIds": [
                "weblate-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "commercial",
              "value": "Copyleft open-source core; paid hosting and support.",
              "sourceIds": [
                "weblate-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "developer-flow",
              "value": "VCS-native workflow, REST API, webhooks, and continuous localization.",
              "sourceIds": [
                "weblate-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "content",
              "value": "Software localization formats centered on repository-managed files.",
              "sourceIds": [
                "weblate-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "linguistic-assets",
              "value": "Translation memory, glossary, and terminology checks.",
              "sourceIds": [
                "weblate-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "review-context",
              "value": "Browser translation, review states, comments, screenshots, and source links.",
              "sourceIds": [
                "weblate-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "quality-ai",
              "value": "Automated checks, suggestions, and configurable machine-translation services.",
              "sourceIds": [
                "weblate-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "portability",
              "value": "Translations remain in version control; API, file, TMX, and glossary export are documented.",
              "sourceIds": [
                "weblate-docs"
              ],
              "verified": "2026-08-20"
            }
          ]
        },
        {
          "id": "tolgee",
          "name": "Tolgee",
          "website": "https://tolgee.io/",
          "values": [
            {
              "criterionId": "deployment",
              "value": "Open-source self-hosting and vendor-hosted cloud.",
              "sourceIds": [
                "tolgee-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "commercial",
              "value": "Open-source platform with commercial cloud and enterprise tiers.",
              "sourceIds": [
                "tolgee-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "developer-flow",
              "value": "SDKs, CLI, REST API, webhooks, and content delivery.",
              "sourceIds": [
                "tolgee-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "content",
              "value": "Application strings and supported import/export formats; strongest fit is software localization.",
              "sourceIds": [
                "tolgee-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "linguistic-assets",
              "value": "Translation memory and glossary features.",
              "sourceIds": [
                "tolgee-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "review-context",
              "value": "In-context editing, screenshots, comments, and review states.",
              "sourceIds": [
                "tolgee-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "quality-ai",
              "value": "Machine translation and AI translation with edition-dependent controls.",
              "sourceIds": [
                "tolgee-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "portability",
              "value": "API, CLI, and file export; self-hosting provides an additional exit path.",
              "sourceIds": [
                "tolgee-docs"
              ],
              "verified": "2026-08-20"
            }
          ]
        },
        {
          "id": "xtm-cloud",
          "name": "XTM Cloud",
          "website": "https://xtm.cloud/",
          "values": [
            {
              "criterionId": "deployment",
              "value": "Vendor-hosted enterprise cloud platform.",
              "sourceIds": [
                "xtm-cloud-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "commercial",
              "value": "Proprietary; sales-led pricing.",
              "sourceIds": [
                "xtm-cloud-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "developer-flow",
              "value": "API and connectors; exact automation entitlement is plan-dependent.",
              "sourceIds": [
                "xtm-cloud-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "content",
              "value": "Enterprise document, software, CMS, and connector workflows.",
              "sourceIds": [
                "xtm-cloud-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "linguistic-assets",
              "value": "Translation memories and terminology shared across workflows.",
              "sourceIds": [
                "xtm-cloud-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "review-context",
              "value": "Browser workbench, workflow roles, comments, and format-dependent context.",
              "sourceIds": [
                "xtm-cloud-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "quality-ai",
              "value": "QA profiles, MT, and AI-assisted workflow capabilities.",
              "sourceIds": [
                "xtm-cloud-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "portability",
              "value": "Bilingual files and linguistic-resource exports; require an exit rehearsal for connected content.",
              "sourceIds": [
                "xtm-cloud-docs"
              ],
              "verified": "2026-08-20"
            }
          ]
        },
        {
          "id": "localazy",
          "name": "Localazy",
          "website": "https://localazy.com/",
          "values": [
            {
              "criterionId": "deployment",
              "value": "Vendor-hosted SaaS.",
              "sourceIds": [
                "localazy-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "commercial",
              "value": "Proprietary service with public plans.",
              "sourceIds": [
                "localazy-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "developer-flow",
              "value": "CLI, API, webhooks, integrations, and repository-friendly automation.",
              "sourceIds": [
                "localazy-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "content",
              "value": "Application, mobile, web, and structured localization files.",
              "sourceIds": [
                "localazy-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "linguistic-assets",
              "value": "Translation memory and glossary workflows.",
              "sourceIds": [
                "localazy-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "review-context",
              "value": "Browser translation and review with source-key context.",
              "sourceIds": [
                "localazy-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "quality-ai",
              "value": "Automated checks, machine translation, and assisted translation.",
              "sourceIds": [
                "localazy-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "portability",
              "value": "CLI, API, and file export keep application resources recoverable.",
              "sourceIds": [
                "localazy-docs"
              ],
              "verified": "2026-08-20"
            }
          ]
        },
        {
          "id": "poeditor",
          "name": "POEditor",
          "website": "https://poeditor.com/",
          "values": [
            {
              "criterionId": "deployment",
              "value": "Vendor-hosted SaaS.",
              "sourceIds": [
                "poeditor-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "commercial",
              "value": "Proprietary with public plan information and feature limits.",
              "sourceIds": [
                "poeditor-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "developer-flow",
              "value": "REST API, webhooks, and repository integrations.",
              "sourceIds": [
                "poeditor-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "content",
              "value": "Software-localization formats centered on terms, keys, and language files.",
              "sourceIds": [
                "poeditor-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "linguistic-assets",
              "value": "Translation memory and terminology features; availability can depend on plan.",
              "sourceIds": [
                "poeditor-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "review-context",
              "value": "Contributor roles, comments, reference language, and browser review.",
              "sourceIds": [
                "poeditor-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "quality-ai",
              "value": "Automated translation and project checks; verify provider and review controls.",
              "sourceIds": [
                "poeditor-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "portability",
              "value": "API and project exports; rehearse terms, translations, contributors, and linguistic assets.",
              "sourceIds": [
                "poeditor-docs"
              ],
              "verified": "2026-08-20"
            }
          ]
        },
        {
          "id": "simplelocalize",
          "name": "SimpleLocalize",
          "website": "https://simplelocalize.io/",
          "values": [
            {
              "criterionId": "deployment",
              "value": "Vendor-hosted SaaS with translation hosting.",
              "sourceIds": [
                "simplelocalize-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "commercial",
              "value": "Proprietary service with public plans.",
              "sourceIds": [
                "simplelocalize-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "developer-flow",
              "value": "CLI, REST API, GitHub App, webhooks, IDE extensions, and an MCP server.",
              "sourceIds": [
                "simplelocalize-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "content",
              "value": "Application and structured localization files with documented import and export formats.",
              "sourceIds": [
                "simplelocalize-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "linguistic-assets",
              "value": "Translation memory, keys, tags, and project terminology workflows.",
              "sourceIds": [
                "simplelocalize-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "review-context",
              "value": "Browser editor, comments, key metadata, acceptance state, and repository checks.",
              "sourceIds": [
                "simplelocalize-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "quality-ai",
              "value": "Automations, machine translation, AI features, limits, and hard-coded-string checks.",
              "sourceIds": [
                "simplelocalize-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "portability",
              "value": "CLI, API, repository sync, file download, and CDN publishing; export project assets before selection.",
              "sourceIds": [
                "simplelocalize-docs"
              ],
              "verified": "2026-08-20"
            }
          ]
        },
        {
          "id": "lingohub",
          "name": "LingoHub",
          "website": "https://lingohub.com/",
          "values": [
            {
              "criterionId": "deployment",
              "value": "Vendor-hosted SaaS.",
              "sourceIds": [
                "lingohub-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "commercial",
              "value": "Proprietary with public plan information and enterprise options.",
              "sourceIds": [
                "lingohub-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "developer-flow",
              "value": "Repository connections, API, CLI-oriented workflows, webhooks, and integrations.",
              "sourceIds": [
                "lingohub-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "content",
              "value": "Software, mobile, web, and structured localization formats.",
              "sourceIds": [
                "lingohub-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "linguistic-assets",
              "value": "Translation memory, glossary, and style-guide features.",
              "sourceIds": [
                "lingohub-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "review-context",
              "value": "Browser editor, workflow statuses, context, and collaboration.",
              "sourceIds": [
                "lingohub-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "quality-ai",
              "value": "Quality checks, machine translation, and AI-supported workflows.",
              "sourceIds": [
                "lingohub-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "portability",
              "value": "File export plus TMX or CSV translation-memory export; verify history and project-wide exit needs.",
              "sourceIds": [
                "lingohub-docs"
              ],
              "verified": "2026-08-20"
            }
          ]
        }
      ]
    },
    {
      "resourceId": "tools-developer-i18n-frameworks",
      "criteria": [
        {
          "id": "runtime",
          "label": "Runtime & framework fit"
        },
        {
          "id": "message-model",
          "label": "Message model"
        },
        {
          "id": "extraction",
          "label": "Extraction & catalogs"
        },
        {
          "id": "type-safety",
          "label": "Type safety & validation"
        },
        {
          "id": "routing-ssr",
          "label": "Routing, SSR & locale isolation"
        },
        {
          "id": "rich-text",
          "label": "Rich text & translator control"
        },
        {
          "id": "fallback",
          "label": "Fallback & missing messages"
        },
        {
          "id": "portability",
          "label": "Catalog portability"
        }
      ],
      "views": [
        {
          "id": "shortlist",
          "label": "Shortlist",
          "criteria": [
            "runtime",
            "message-model",
            "type-safety",
            "routing-ssr",
            "portability"
          ]
        },
        {
          "id": "workflow",
          "label": "Workflow",
          "criteria": [
            "message-model",
            "extraction",
            "rich-text",
            "fallback"
          ]
        },
        {
          "id": "governance",
          "label": "Integration & governance",
          "criteria": [
            "type-safety",
            "routing-ssr",
            "fallback",
            "portability"
          ]
        },
        {
          "id": "all",
          "label": "All evidence",
          "criteria": []
        }
      ],
      "products": [
        {
          "id": "formatjs",
          "name": "FormatJS / React Intl",
          "website": "https://formatjs.github.io/",
          "values": [
            {
              "criterionId": "runtime",
              "value": "JavaScript libraries and build tooling; React bindings are first-class.",
              "sourceIds": [
                "formatjs-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "message-model",
              "value": "ICU MessageFormat with plural, select, number, and date formatting.",
              "sourceIds": [
                "formatjs-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "extraction",
              "value": "CLI/Babel/TypeScript extraction and compiled-message workflows.",
              "sourceIds": [
                "formatjs-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "type-safety",
              "value": "TypeScript APIs plus extraction and compile validation; IDs are not generated typed functions by default.",
              "sourceIds": [
                "formatjs-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "routing-ssr",
              "value": "Formatting supports SSR; routing and request locale isolation belong to the application.",
              "sourceIds": [
                "formatjs-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "rich-text",
              "value": "Rich-text placeholders map tags to application components.",
              "sourceIds": [
                "formatjs-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "fallback",
              "value": "Default messages and runtime error handling are configurable.",
              "sourceIds": [
                "formatjs-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "portability",
              "value": "JSON and custom formatter outputs; ICU messages are broadly interoperable.",
              "sourceIds": [
                "formatjs-docs"
              ],
              "verified": "2026-08-20"
            }
          ]
        },
        {
          "id": "i18next",
          "name": "i18next",
          "website": "https://www.i18next.com/",
          "values": [
            {
              "criterionId": "runtime",
              "value": "Runtime library with browser, server, mobile, and framework adapters.",
              "sourceIds": [
                "i18next-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "message-model",
              "value": "Keyed resources, interpolation, plural/context variants, and plugin-based ICU support.",
              "sourceIds": [
                "i18next-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "extraction",
              "value": "Resource files and ecosystem tooling; no single mandatory extraction workflow.",
              "sourceIds": [
                "i18next-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "type-safety",
              "value": "TypeScript resource augmentation can type keys; plugin choices affect coverage.",
              "sourceIds": [
                "i18next-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "routing-ssr",
              "value": "Framework adapters and detectors; applications must isolate server request state.",
              "sourceIds": [
                "i18next-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "rich-text",
              "value": "Framework wrappers map message markup to components.",
              "sourceIds": [
                "i18next-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "fallback",
              "value": "Fallback languages, namespaces, missing-key hooks, and save-missing behavior.",
              "sourceIds": [
                "i18next-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "portability",
              "value": "Application-controlled JSON and plugin-defined formats.",
              "sourceIds": [
                "i18next-docs"
              ],
              "verified": "2026-08-20"
            }
          ]
        },
        {
          "id": "lingui",
          "name": "Lingui",
          "website": "https://lingui.dev/",
          "values": [
            {
              "criterionId": "runtime",
              "value": "JavaScript/TypeScript runtime, React integration, compiler, and CLI.",
              "sourceIds": [
                "lingui-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "message-model",
              "value": "ICU-style messages through macros and components.",
              "sourceIds": [
                "lingui-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "extraction",
              "value": "Source extraction into PO or configured catalogs, then compilation.",
              "sourceIds": [
                "lingui-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "type-safety",
              "value": "Macros validate message syntax and variables; catalog typing is not the primary contract.",
              "sourceIds": [
                "lingui-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "routing-ssr",
              "value": "Supports SSR; routing and per-request activation remain application concerns.",
              "sourceIds": [
                "lingui-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "rich-text",
              "value": "Components and macros preserve rich-text structure.",
              "sourceIds": [
                "lingui-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "fallback",
              "value": "Catalog activation and fallback are application-configured.",
              "sourceIds": [
                "lingui-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "portability",
              "value": "PO-centered workflows and configurable catalog formats.",
              "sourceIds": [
                "lingui-docs"
              ],
              "verified": "2026-08-20"
            }
          ]
        },
        {
          "id": "vue-i18n",
          "name": "Vue I18n",
          "website": "https://vue-i18n.intlify.dev/",
          "values": [
            {
              "criterionId": "runtime",
              "value": "Vue plugin with Composition and legacy APIs.",
              "sourceIds": [
                "vue-i18n-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "message-model",
              "value": "Keyed messages, pluralization, linked messages, and custom formatting.",
              "sourceIds": [
                "vue-i18n-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "extraction",
              "value": "JSON/YAML resources and ecosystem tooling; no single required extractor.",
              "sourceIds": [
                "vue-i18n-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "type-safety",
              "value": "TypeScript schemas can type messages; coverage depends on configuration.",
              "sourceIds": [
                "vue-i18n-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "routing-ssr",
              "value": "SSR is supported; Vue/router integration establishes locale and isolation.",
              "sourceIds": [
                "vue-i18n-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "rich-text",
              "value": "Translation component interpolates components without raw HTML.",
              "sourceIds": [
                "vue-i18n-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "fallback",
              "value": "Locale chains, fallback settings, and missing/fallback warnings.",
              "sourceIds": [
                "vue-i18n-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "portability",
              "value": "Application-controlled JSON/YAML resources.",
              "sourceIds": [
                "vue-i18n-docs"
              ],
              "verified": "2026-08-20"
            }
          ]
        },
        {
          "id": "angular-i18n",
          "name": "Angular i18n",
          "website": "https://angular.dev/guide/i18n",
          "values": [
            {
              "criterionId": "runtime",
              "value": "Angular compiler localization plus runtime $localize APIs.",
              "sourceIds": [
                "angular-i18n-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "message-model",
              "value": "Template messages with meaning, descriptions, IDs, and ICU expressions.",
              "sourceIds": [
                "angular-i18n-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "extraction",
              "value": "CLI extraction and localized builds using XLIFF or supported formats.",
              "sourceIds": [
                "angular-i18n-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "type-safety",
              "value": "Compiler validates templates and translation structure; IDs are not typed application functions.",
              "sourceIds": [
                "angular-i18n-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "routing-ssr",
              "value": "Build-time locale deployments and application routing follow Angular architecture.",
              "sourceIds": [
                "angular-i18n-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "rich-text",
              "value": "Template messages preserve component and element structure.",
              "sourceIds": [
                "angular-i18n-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "fallback",
              "value": "Missing-translation behavior is build-configurable; fallback is deployment-driven.",
              "sourceIds": [
                "angular-i18n-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "portability",
              "value": "XLIFF and other extraction formats are repository-controlled.",
              "sourceIds": [
                "angular-i18n-docs"
              ],
              "verified": "2026-08-20"
            }
          ]
        },
        {
          "id": "next-intl",
          "name": "next-intl",
          "website": "https://next-intl.dev/",
          "values": [
            {
              "criterionId": "runtime",
              "value": "Next.js toolkit for App Router and Pages Router.",
              "sourceIds": [
                "next-intl-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "message-model",
              "value": "ICU messages plus date, number, list, and display-name formatting.",
              "sourceIds": [
                "next-intl-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "extraction",
              "value": "JSON messages with extraction and integration workflows.",
              "sourceIds": [
                "next-intl-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "type-safety",
              "value": "TypeScript augmentation can type locales, messages, formats, and arguments.",
              "sourceIds": [
                "next-intl-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "routing-ssr",
              "value": "Localized routing, middleware, Server Components, and request configuration are first-class.",
              "sourceIds": [
                "next-intl-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "rich-text",
              "value": "Rich-text messages map tags to React elements.",
              "sourceIds": [
                "next-intl-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "fallback",
              "value": "Application-defined message loading and error/fallback handling.",
              "sourceIds": [
                "next-intl-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "portability",
              "value": "JSON catalogs remain application-controlled; routing is next-intl-specific.",
              "sourceIds": [
                "next-intl-docs"
              ],
              "verified": "2026-08-20"
            }
          ]
        },
        {
          "id": "fluent",
          "name": "Project Fluent",
          "website": "https://projectfluent.org/",
          "values": [
            {
              "criterionId": "runtime",
              "value": "Open specification with JavaScript, Python, Rust, and React implementations.",
              "sourceIds": [
                "fluent-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "message-model",
              "value": "FTL supports asymmetric translations, selectors, terms, attributes, and locale-specific variants.",
              "sourceIds": [
                "fluent-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "extraction",
              "value": "FTL resources are normally authored directly; extraction depends on the host integration.",
              "sourceIds": [
                "fluent-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "type-safety",
              "value": "Syntax parsers validate resources; generated application types are not the core model.",
              "sourceIds": [
                "fluent-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "routing-ssr",
              "value": "Runtime retranslation is supported; routing and request isolation belong to the host.",
              "sourceIds": [
                "fluent-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "rich-text",
              "value": "Overlay patterns let translations control safe text structure.",
              "sourceIds": [
                "fluent-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "fallback",
              "value": "Implementations expose fallback and robust error handling.",
              "sourceIds": [
                "fluent-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "portability",
              "value": "FTL is open text, with less commercial-tool support than JSON, PO, or XLIFF.",
              "sourceIds": [
                "fluent-docs"
              ],
              "verified": "2026-08-20"
            }
          ]
        },
        {
          "id": "paraglide",
          "name": "Paraglide JS",
          "website": "https://paraglidejs.com/",
          "values": [
            {
              "criterionId": "runtime",
              "value": "Compiler-first ESM functions for Vite, React, SvelteKit, Vue, Astro, routers, and vanilla JS/TS.",
              "sourceIds": [
                "paraglide-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "message-model",
              "value": "Typed functions with variants and locale formatters; ICU and other formats are plugin-backed.",
              "sourceIds": [
                "paraglide-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "extraction",
              "value": "Compiles version-controlled inlang projects and message files into generated modules.",
              "sourceIds": [
                "paraglide-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "type-safety",
              "value": "Generated functions type message keys and parameters.",
              "sourceIds": [
                "paraglide-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "routing-ssr",
              "value": "Localized URL strategies, middleware, SSR, and request-scoped locale handling.",
              "sourceIds": [
                "paraglide-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "rich-text",
              "value": "Typed markup adapters keep components in application control.",
              "sourceIds": [
                "paraglide-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "fallback",
              "value": "Compile/runtime errors and locale strategies are explicit; dynamic keys are a constrained fit.",
              "sourceIds": [
                "paraglide-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "portability",
              "value": "Version-controlled files with plugin paths for JSON, i18next, XLIFF, and ICU.",
              "sourceIds": [
                "paraglide-docs"
              ],
              "verified": "2026-08-20"
            }
          ]
        },
        {
          "id": "django",
          "name": "Django i18n",
          "website": "https://docs.djangoproject.com/en/6.0/topics/i18n/",
          "values": [
            {
              "criterionId": "runtime",
              "value": "Built into the Django Python web framework.",
              "sourceIds": [
                "django-i18n-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "message-model",
              "value": "GNU gettext messages with singular, plural, context, and lazy translation APIs.",
              "sourceIds": [
                "django-i18n-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "extraction",
              "value": "makemessages extracts translatable strings; compilemessages builds binary catalogs.",
              "sourceIds": [
                "django-i18n-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "type-safety",
              "value": "String-based message identifiers; extraction and compilation catch syntax but do not create typed application calls.",
              "sourceIds": [
                "django-i18n-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "routing-ssr",
              "value": "LocaleMiddleware and request-language selection fit server-rendered applications.",
              "sourceIds": [
                "django-i18n-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "rich-text",
              "value": "Template block translation supports variables and controlled markup; application escaping still matters.",
              "sourceIds": [
                "django-i18n-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "fallback",
              "value": "Django and gettext locale fallback behavior depends on active language and catalog availability.",
              "sourceIds": [
                "django-i18n-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "portability",
              "value": "PO and MO catalogs use established gettext tooling.",
              "sourceIds": [
                "django-i18n-docs"
              ],
              "verified": "2026-08-20"
            }
          ]
        },
        {
          "id": "rails",
          "name": "Rails I18n",
          "website": "https://guides.rubyonrails.org/i18n.html",
          "values": [
            {
              "criterionId": "runtime",
              "value": "Built into Ruby on Rails through the Ruby I18n API.",
              "sourceIds": [
                "rails-i18n-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "message-model",
              "value": "Keyed translations, interpolation, pluralization, date and number formats, and replaceable backends.",
              "sourceIds": [
                "rails-i18n-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "extraction",
              "value": "Locale dictionaries are normally maintained in YAML or Ruby; extraction relies on ecosystem tooling.",
              "sourceIds": [
                "rails-i18n-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "type-safety",
              "value": "String or symbol keys are not typed by the framework.",
              "sourceIds": [
                "rails-i18n-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "routing-ssr",
              "value": "Per-request locale patterns and I18n.with_locale are documented; applications own routing and isolation.",
              "sourceIds": [
                "rails-i18n-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "rich-text",
              "value": "HTML-safe key conventions exist, so source trust and escaping rules require care.",
              "sourceIds": [
                "rails-i18n-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "fallback",
              "value": "Default locale and backend fallback can be configured.",
              "sourceIds": [
                "rails-i18n-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "portability",
              "value": "YAML and Ruby catalogs are application-controlled; interchange may require conversion.",
              "sourceIds": [
                "rails-i18n-docs"
              ],
              "verified": "2026-08-20"
            }
          ]
        },
        {
          "id": "laravel",
          "name": "Laravel localization",
          "website": "https://laravel.com/docs/12.x/localization",
          "values": [
            {
              "criterionId": "runtime",
              "value": "Built into the Laravel PHP framework.",
              "sourceIds": [
                "laravel-i18n-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "message-model",
              "value": "Short keyed PHP files or JSON strings with replacement and pluralization.",
              "sourceIds": [
                "laravel-i18n-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "extraction",
              "value": "Language files can be published; no single built-in source extractor defines the workflow.",
              "sourceIds": [
                "laravel-i18n-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "type-safety",
              "value": "String keys are not typed by the framework.",
              "sourceIds": [
                "laravel-i18n-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "routing-ssr",
              "value": "Applications can set and inspect locale per request and configure a fallback locale.",
              "sourceIds": [
                "laravel-i18n-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "rich-text",
              "value": "Messages are strings; safe markup and component structure remain application concerns.",
              "sourceIds": [
                "laravel-i18n-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "fallback",
              "value": "Application locale and fallback locale are explicit configuration.",
              "sourceIds": [
                "laravel-i18n-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "portability",
              "value": "PHP arrays and JSON remain in the application repository.",
              "sourceIds": [
                "laravel-i18n-docs"
              ],
              "verified": "2026-08-20"
            }
          ]
        },
        {
          "id": "flutter",
          "name": "Flutter gen_l10n",
          "website": "https://docs.flutter.dev/ui/internationalization",
          "values": [
            {
              "criterionId": "runtime",
              "value": "Flutter and Dart applications across mobile, desktop, and web.",
              "sourceIds": [
                "flutter-i18n-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "message-model",
              "value": "ARB resources support parameters, plurals, selects, and locale metadata through intl tooling.",
              "sourceIds": [
                "flutter-i18n-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "extraction",
              "value": "The gen_l10n workflow generates localization classes from ARB catalogs; source discovery is application-managed.",
              "sourceIds": [
                "flutter-i18n-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "type-safety",
              "value": "Generated Dart accessors provide typed parameters for declared messages.",
              "sourceIds": [
                "flutter-i18n-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "routing-ssr",
              "value": "Locale resolution and supported locales are first-class; web routing remains application architecture.",
              "sourceIds": [
                "flutter-i18n-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "rich-text",
              "value": "Generated messages return text; rich component composition stays in Dart code.",
              "sourceIds": [
                "flutter-i18n-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "fallback",
              "value": "Supported-locale resolution and a configured default govern fallback.",
              "sourceIds": [
                "flutter-i18n-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "portability",
              "value": "ARB is version-controlled JSON with ICU-style metadata and broad TMS support.",
              "sourceIds": [
                "flutter-i18n-docs"
              ],
              "verified": "2026-08-20"
            }
          ]
        },
        {
          "id": "android",
          "name": "Android resources",
          "website": "https://developer.android.com/guide/topics/resources/localization",
          "values": [
            {
              "criterionId": "runtime",
              "value": "Native Android views and Jetpack Compose through the platform resource system.",
              "sourceIds": [
                "android-i18n-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "message-model",
              "value": "String, string-array, and quantity resources with format arguments and locale qualifiers.",
              "sourceIds": [
                "android-i18n-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "extraction",
              "value": "Resources live in values directories and are compiled by Android build tooling.",
              "sourceIds": [
                "android-i18n-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "type-safety",
              "value": "Generated resource identifiers are compile-time symbols; format-argument compatibility still needs testing.",
              "sourceIds": [
                "android-i18n-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "routing-ssr",
              "value": "The platform selects resources by device and app locale; there is no server-rendering model.",
              "sourceIds": [
                "android-i18n-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "rich-text",
              "value": "Styled strings and application composition are supported within platform constraints.",
              "sourceIds": [
                "android-i18n-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "fallback",
              "value": "A complete default resource set is mandatory; Android applies qualifier precedence.",
              "sourceIds": [
                "android-i18n-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "portability",
              "value": "XML resources are repository-controlled and commonly exchanged with localization platforms.",
              "sourceIds": [
                "android-i18n-docs"
              ],
              "verified": "2026-08-20"
            }
          ]
        },
        {
          "id": "apple-string-catalogs",
          "name": "Apple String Catalogs",
          "website": "https://developer.apple.com/localization/",
          "values": [
            {
              "criterionId": "runtime",
              "value": "Apple-platform applications built with Xcode, SwiftUI, UIKit, or AppKit.",
              "sourceIds": [
                "apple-string-catalog-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "message-model",
              "value": "String Catalogs support variables, plurals, device variants, comments, state, and locale variants.",
              "sourceIds": [
                "apple-string-catalog-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "extraction",
              "value": "Xcode discovers strings from localizable APIs during builds and maintains XCStrings catalogs.",
              "sourceIds": [
                "apple-string-catalog-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "type-safety",
              "value": "Localizable symbols can reduce string-literal use; coverage depends on project configuration and APIs.",
              "sourceIds": [
                "apple-string-catalog-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "routing-ssr",
              "value": "App and system language selection are platform-managed; no SSR model.",
              "sourceIds": [
                "apple-string-catalog-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "rich-text",
              "value": "SwiftUI and attributed-string composition remain in application code with localized resources.",
              "sourceIds": [
                "apple-string-catalog-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "fallback",
              "value": "Development language and bundle lookup govern missing localization behavior.",
              "sourceIds": [
                "apple-string-catalog-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "portability",
              "value": "XCStrings are repository files; Xcode can export and import XLIFF localization catalogs.",
              "sourceIds": [
                "apple-string-catalog-docs"
              ],
              "verified": "2026-08-20"
            }
          ]
        },
        {
          "id": "aspnet-core",
          "name": "ASP.NET Core localization",
          "website": "https://learn.microsoft.com/en-us/aspnet/core/fundamentals/localization",
          "values": [
            {
              "criterionId": "runtime",
              "value": "Server-rendered and API applications on ASP.NET Core.",
              "sourceIds": [
                "dotnet-i18n-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "message-model",
              "value": "IStringLocalizer, IHtmlLocalizer, view localization, data-annotation messages, and culture-aware formatting.",
              "sourceIds": [
                "dotnet-i18n-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "extraction",
              "value": "RESX resources and build tooling are the standard catalog path; source extraction is project-dependent.",
              "sourceIds": [
                "dotnet-i18n-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "type-safety",
              "value": "Localizer access is often string-keyed; strongly typed ResourceManager patterns can be added.",
              "sourceIds": [
                "dotnet-i18n-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "routing-ssr",
              "value": "RequestLocalizationMiddleware selects culture from configured providers per request.",
              "sourceIds": [
                "dotnet-i18n-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "rich-text",
              "value": "IHtmlLocalizer supports localized HTML while encoding parameters; source-resource trust remains important.",
              "sourceIds": [
                "dotnet-i18n-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "fallback",
              "value": ".NET resource lookup uses culture and parent-culture fallback under configured supported cultures.",
              "sourceIds": [
                "dotnet-i18n-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "portability",
              "value": "RESX is repository-controlled XML with common localization-tool support.",
              "sourceIds": [
                "dotnet-i18n-docs"
              ],
              "verified": "2026-08-20"
            }
          ]
        }
      ]
    },
    {
      "resourceId": "tools-cat-terminology-qa",
      "criteria": [
        {
          "id": "platform",
          "label": "Platform & operating model"
        },
        {
          "id": "commercial",
          "label": "Commercial model"
        },
        {
          "id": "formats",
          "label": "Production formats"
        },
        {
          "id": "linguistic-assets",
          "label": "TM, terminology & concordance"
        },
        {
          "id": "qa",
          "label": "Linguistic & technical QA"
        },
        {
          "id": "context",
          "label": "Preview & review context"
        },
        {
          "id": "automation-ai",
          "label": "Automation, MT & AI"
        },
        {
          "id": "interchange",
          "label": "Packages, reports & interchange"
        }
      ],
      "views": [
        {
          "id": "shortlist",
          "label": "Shortlist",
          "criteria": [
            "platform",
            "commercial",
            "formats",
            "qa",
            "interchange"
          ]
        },
        {
          "id": "workflow",
          "label": "Workflow",
          "criteria": [
            "formats",
            "linguistic-assets",
            "qa",
            "context"
          ]
        },
        {
          "id": "governance",
          "label": "Integration & governance",
          "criteria": [
            "platform",
            "automation-ai",
            "interchange"
          ]
        },
        {
          "id": "all",
          "label": "All evidence",
          "criteria": []
        }
      ],
      "products": [
        {
          "id": "trados-studio",
          "name": "Trados Studio",
          "website": "https://www.trados.com/products/trados-studio/",
          "values": [
            {
              "criterionId": "platform",
              "value": "Windows desktop CAT application with connected cloud services.",
              "sourceIds": [
                "trados-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "commercial",
              "value": "Proprietary editions and subscriptions.",
              "sourceIds": [
                "trados-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "formats",
              "value": "Broad document, software, bilingual, and package support.",
              "sourceIds": [
                "trados-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "linguistic-assets",
              "value": "Translation memories, MultiTerm terminology, concordance, and alignment.",
              "sourceIds": [
                "trados-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "qa",
              "value": "Verification profiles cover terminology, consistency, tags, numbers, and formatting.",
              "sourceIds": [
                "trados-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "context",
              "value": "Bilingual editor plus format-dependent previews.",
              "sourceIds": [
                "trados-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "automation-ai",
              "value": "SDK, batch tasks, MT providers, and generative translation capabilities.",
              "sourceIds": [
                "trados-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "interchange",
              "value": "SDLXLIFF, project packages, target files, TMX, and termbase exchange.",
              "sourceIds": [
                "trados-docs"
              ],
              "verified": "2026-08-20"
            }
          ]
        },
        {
          "id": "memoq-translator",
          "name": "memoQ translator pro",
          "website": "https://www.memoq.com/memoq-translator-pro/",
          "values": [
            {
              "criterionId": "platform",
              "value": "Windows desktop CAT application with optional server/cloud collaboration.",
              "sourceIds": [
                "memoq-desktop-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "commercial",
              "value": "Proprietary perpetual or subscription paths.",
              "sourceIds": [
                "memoq-desktop-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "formats",
              "value": "Broad document, software, package, and bilingual formats.",
              "sourceIds": [
                "memoq-desktop-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "linguistic-assets",
              "value": "Translation memories, term bases, LiveDocs, alignment, and concordance.",
              "sourceIds": [
                "memoq-desktop-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "qa",
              "value": "Configurable terminology, tag, consistency, and number checks.",
              "sourceIds": [
                "memoq-desktop-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "context",
              "value": "Translation grid, comments, and format-dependent previews.",
              "sourceIds": [
                "memoq-desktop-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "automation-ai",
              "value": "Templates, automation interfaces, MT plugins, and AI integrations.",
              "sourceIds": [
                "memoq-desktop-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "interchange",
              "value": "MQXLIFF, packages, targets, TMX, TBX, and resource export.",
              "sourceIds": [
                "memoq-desktop-docs"
              ],
              "verified": "2026-08-20"
            }
          ]
        },
        {
          "id": "omegat",
          "name": "OmegaT",
          "website": "https://omegat.org/",
          "values": [
            {
              "criterionId": "platform",
              "value": "Cross-platform desktop application.",
              "sourceIds": [
                "omegat-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "commercial",
              "value": "Open source with no license fee.",
              "sourceIds": [
                "omegat-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "formats",
              "value": "Document and localization formats through file filters.",
              "sourceIds": [
                "omegat-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "linguistic-assets",
              "value": "TMX memories, glossaries, dictionaries, concordance, and team assets.",
              "sourceIds": [
                "omegat-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "qa",
              "value": "Tag validation, spelling, and consistency-oriented checks.",
              "sourceIds": [
                "omegat-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "context",
              "value": "Segment context and format-dependent target review.",
              "sourceIds": [
                "omegat-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "automation-ai",
              "value": "Scripts, plugins, team projects, and MT connectors.",
              "sourceIds": [
                "omegat-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "interchange",
              "value": "TMX, glossary files, projects, and generated targets.",
              "sourceIds": [
                "omegat-docs"
              ],
              "verified": "2026-08-20"
            }
          ]
        },
        {
          "id": "wordfast-pro",
          "name": "Wordfast Pro",
          "website": "https://www.wordfast.com/",
          "values": [
            {
              "criterionId": "platform",
              "value": "Cross-platform desktop CAT application.",
              "sourceIds": [
                "wordfast-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "commercial",
              "value": "Proprietary license with public purchase information.",
              "sourceIds": [
                "wordfast-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "formats",
              "value": "Document and localization formats plus bilingual packages.",
              "sourceIds": [
                "wordfast-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "linguistic-assets",
              "value": "Local and remote translation memories and glossaries.",
              "sourceIds": [
                "wordfast-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "qa",
              "value": "Transcheck covers terminology, consistency, tags, numbers, and formatting.",
              "sourceIds": [
                "wordfast-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "context",
              "value": "Bilingual editor and format-dependent preview.",
              "sourceIds": [
                "wordfast-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "automation-ai",
              "value": "Machine-translation connectors; public automation surface is limited.",
              "sourceIds": [
                "wordfast-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "interchange",
              "value": "Bilingual files, targets, TMX, glossaries, and packages.",
              "sourceIds": [
                "wordfast-docs"
              ],
              "verified": "2026-08-20"
            }
          ]
        },
        {
          "id": "smartcat",
          "name": "Smartcat",
          "website": "https://www.smartcat.com/",
          "values": [
            {
              "criterionId": "platform",
              "value": "Browser-based collaborative language-delivery platform.",
              "sourceIds": [
                "smartcat-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "commercial",
              "value": "Proprietary SaaS with plan-based packaging.",
              "sourceIds": [
                "smartcat-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "formats",
              "value": "Document, localization, subtitle, and other production formats.",
              "sourceIds": [
                "smartcat-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "linguistic-assets",
              "value": "Translation memories, glossaries, search, and shared assets.",
              "sourceIds": [
                "smartcat-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "qa",
              "value": "Automated checks, review stages, comments, and issues.",
              "sourceIds": [
                "smartcat-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "context",
              "value": "Browser editor with file-dependent context and collaboration.",
              "sourceIds": [
                "smartcat-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "automation-ai",
              "value": "AI translation, MT, workflow automation, and integrations.",
              "sourceIds": [
                "smartcat-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "interchange",
              "value": "Target and bilingual downloads plus TM and glossary management; rehearse full exit.",
              "sourceIds": [
                "smartcat-docs"
              ],
              "verified": "2026-08-20"
            }
          ]
        },
        {
          "id": "matecat",
          "name": "MateCat",
          "website": "https://www.matecat.com/",
          "values": [
            {
              "criterionId": "platform",
              "value": "Browser CAT tool and open-source server code.",
              "sourceIds": [
                "matecat-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "commercial",
              "value": "Free hosted use with an open-source codebase; related services are commercial.",
              "sourceIds": [
                "matecat-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "formats",
              "value": "Common document and localization formats.",
              "sourceIds": [
                "matecat-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "linguistic-assets",
              "value": "Private and public TM options, glossaries, and concordance.",
              "sourceIds": [
                "matecat-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "qa",
              "value": "Tag, number, terminology, and consistency checks with review.",
              "sourceIds": [
                "matecat-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "context",
              "value": "Segment editor and file-dependent preview.",
              "sourceIds": [
                "matecat-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "automation-ai",
              "value": "Machine-translation integration and web project automation.",
              "sourceIds": [
                "matecat-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "interchange",
              "value": "Bilingual files, targets, and TMX download paths.",
              "sourceIds": [
                "matecat-docs"
              ],
              "verified": "2026-08-20"
            }
          ]
        },
        {
          "id": "cafetran",
          "name": "CafeTran Espresso",
          "website": "https://www.cafetran.com/",
          "values": [
            {
              "criterionId": "platform",
              "value": "Cross-platform desktop CAT application.",
              "sourceIds": [
                "cafetran-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "commercial",
              "value": "Proprietary trial and subscription/perpetual paths.",
              "sourceIds": [
                "cafetran-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "formats",
              "value": "Documents, localization files, and external CAT packages.",
              "sourceIds": [
                "cafetran-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "linguistic-assets",
              "value": "Local TMs, termbases, glossaries, and concordance.",
              "sourceIds": [
                "cafetran-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "qa",
              "value": "Tags, spelling, consistency, terminology, and number checks.",
              "sourceIds": [
                "cafetran-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "context",
              "value": "Segment context and format-dependent previews.",
              "sourceIds": [
                "cafetran-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "automation-ai",
              "value": "MT connectors, automatic assembly, and configurable actions.",
              "sourceIds": [
                "cafetran-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "interchange",
              "value": "TMX, TBX/glossary, bilingual packages, and targets.",
              "sourceIds": [
                "cafetran-docs"
              ],
              "verified": "2026-08-20"
            }
          ]
        },
        {
          "id": "xbench",
          "name": "ApSIC Xbench",
          "website": "https://www.xbench.net/",
          "values": [
            {
              "criterionId": "platform",
              "value": "Windows desktop QA, terminology, and search application.",
              "sourceIds": [
                "xbench-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "commercial",
              "value": "Proprietary with free and licensed editions.",
              "sourceIds": [
                "xbench-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "formats",
              "value": "Reads many CAT bilingual, memory, and terminology formats.",
              "sourceIds": [
                "xbench-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "linguistic-assets",
              "value": "Cross-project concordance, terminology search, and checklists.",
              "sourceIds": [
                "xbench-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "qa",
              "value": "Cross-file consistency, terminology, numeric, tag, and regex checks.",
              "sourceIds": [
                "xbench-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "context",
              "value": "Issue context and navigation back to supported CAT tools.",
              "sourceIds": [
                "xbench-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "automation-ai",
              "value": "Command-line automation; no reviewed generative-AI workflow.",
              "sourceIds": [
                "xbench-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "interchange",
              "value": "QA reports, checklists, and glossary output; not a full target-file producer.",
              "sourceIds": [
                "xbench-docs"
              ],
              "verified": "2026-08-20"
            }
          ]
        },
        {
          "id": "qa-distiller",
          "name": "QA Distiller",
          "website": "https://www.qa-distiller.com/",
          "values": [
            {
              "criterionId": "platform",
              "value": "Windows desktop linguistic QA application.",
              "sourceIds": [
                "qa-distiller-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "commercial",
              "value": "Proprietary licensing.",
              "sourceIds": [
                "qa-distiller-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "formats",
              "value": "Multiple bilingual and localization formats.",
              "sourceIds": [
                "qa-distiller-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "linguistic-assets",
              "value": "Cross-file consistency and terminology lists.",
              "sourceIds": [
                "qa-distiller-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "qa",
              "value": "Terminology, consistency, numbers, tags, punctuation, and formatting checks.",
              "sourceIds": [
                "qa-distiller-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "context",
              "value": "Issue context within loaded bilingual files.",
              "sourceIds": [
                "qa-distiller-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "automation-ai",
              "value": "Batch QA is the focus; no reviewed AI production workflow.",
              "sourceIds": [
                "qa-distiller-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "interchange",
              "value": "QA report export; it complements rather than replaces a CAT tool.",
              "sourceIds": [
                "qa-distiller-docs"
              ],
              "verified": "2026-08-20"
            }
          ]
        },
        {
          "id": "across-translator",
          "name": "Across Translator Edition",
          "website": "https://www.across.net/en/service-portfolio/products/",
          "values": [
            {
              "criterionId": "platform",
              "value": "Windows standalone CAT environment that can also connect to an Across Language Server.",
              "sourceIds": [
                "across-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "commercial",
              "value": "Proprietary freelancer edition and server-connected workflows.",
              "sourceIds": [
                "across-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "formats",
              "value": "Professional document and localization formats handled through Across projects.",
              "sourceIds": [
                "across-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "linguistic-assets",
              "value": "crossTank translation memory and crossTerm terminology.",
              "sourceIds": [
                "across-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "qa",
              "value": "Configurable checks and terminology control inside the translation workflow.",
              "sourceIds": [
                "across-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "context",
              "value": "Editor access to source, matches, terminology, and project information.",
              "sourceIds": [
                "across-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "automation-ai",
              "value": "Server connections, MT, and Across AI features depend on the deployed product and permissions.",
              "sourceIds": [
                "across-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "interchange",
              "value": "Project packages and standard exchange paths; verify TM, terminology, and target export with the client setup.",
              "sourceIds": [
                "across-docs"
              ],
              "verified": "2026-08-20"
            }
          ]
        },
        {
          "id": "dejavu",
          "name": "Déjà Vu X3",
          "website": "https://dejavux4.com/",
          "values": [
            {
              "criterionId": "platform",
              "value": "Windows desktop CAT application.",
              "sourceIds": [
                "dejavu-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "commercial",
              "value": "Proprietary perpetual-license product.",
              "sourceIds": [
                "dejavu-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "formats",
              "value": "Broad document, software, localization, subtitle, and bilingual-format support documented in the user guide.",
              "sourceIds": [
                "dejavu-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "linguistic-assets",
              "value": "Translation memory, terminology databases, lexicon, and concordance.",
              "sourceIds": [
                "dejavu-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "qa",
              "value": "Terminology, consistency, numeric, formatting, and project checks.",
              "sourceIds": [
                "dejavu-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "context",
              "value": "Bilingual editor with project, file, and match context.",
              "sourceIds": [
                "dejavu-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "automation-ai",
              "value": "Batch and automation features plus MT integration; current AI depth is limited in reviewed documentation.",
              "sourceIds": [
                "dejavu-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "interchange",
              "value": "TMX, XLIFF, external CAT formats, target files, and project assets.",
              "sourceIds": [
                "dejavu-docs"
              ],
              "verified": "2026-08-20"
            }
          ]
        },
        {
          "id": "transit-nxt",
          "name": "Transit NXT",
          "website": "https://www.star-ts.com/software/translation-memory-transit-nxt/",
          "values": [
            {
              "criterionId": "platform",
              "value": "Windows desktop and networked professional translation environment.",
              "sourceIds": [
                "transit-nxt-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "commercial",
              "value": "Proprietary editions with perpetual and subscription paths.",
              "sourceIds": [
                "transit-nxt-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "formats",
              "value": "Document, software-localization, subtitle, project-package, and external bilingual formats.",
              "sourceIds": [
                "transit-nxt-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "linguistic-assets",
              "value": "Reference-file translation memory, TermStar terminology, concordance, and multilingual project reuse.",
              "sourceIds": [
                "transit-nxt-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "qa",
              "value": "Terminology, consistency, formatting, and project-quality functions.",
              "sourceIds": [
                "transit-nxt-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "context",
              "value": "Synchronized source-document and translation context is a central design feature.",
              "sourceIds": [
                "transit-nxt-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "automation-ai",
              "value": "Machine-translation connections and batch workflows; verify automation in the selected edition.",
              "sourceIds": [
                "transit-nxt-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "interchange",
              "value": "Transit packages, XLIFF and external packages, target files, terminology, and reference materials.",
              "sourceIds": [
                "transit-nxt-docs"
              ],
              "verified": "2026-08-20"
            }
          ]
        },
        {
          "id": "verifika",
          "name": "Verifika",
          "website": "https://e-verifika.com/",
          "values": [
            {
              "criterionId": "platform",
              "value": "Standalone and web/API-oriented linguistic QA product.",
              "sourceIds": [
                "verifika-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "commercial",
              "value": "Proprietary licensing and service offerings.",
              "sourceIds": [
                "verifika-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "formats",
              "value": "Bilingual files from multiple CAT and localization platforms.",
              "sourceIds": [
                "verifika-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "linguistic-assets",
              "value": "Terminology lists, word forms, untranslatables, and cross-file analysis.",
              "sourceIds": [
                "verifika-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "qa",
              "value": "Rule-based checks for terminology, consistency, numbers, punctuation, tags, spelling, and custom requirements.",
              "sourceIds": [
                "verifika-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "context",
              "value": "Issue lists link findings to translation units and editable context.",
              "sourceIds": [
                "verifika-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "automation-ai",
              "value": "QA API supports integration and automation; it is not a full translation-production environment.",
              "sourceIds": [
                "verifika-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "interchange",
              "value": "Reports, corrected bilingual files, API results, and platform connections; test the exact format round trip.",
              "sourceIds": [
                "verifika-docs"
              ],
              "verified": "2026-08-20"
            }
          ]
        }
      ]
    },
    {
      "resourceId": "tools-subtitling-audiovisual",
      "criteria": [
        {
          "id": "platform",
          "label": "Platform & working mode"
        },
        {
          "id": "commercial",
          "label": "Commercial model"
        },
        {
          "id": "authoring",
          "label": "Authoring, spotting & translation"
        },
        {
          "id": "timing-qc",
          "label": "Timing, reading speed & QC"
        },
        {
          "id": "accessibility",
          "label": "Captions & accessibility"
        },
        {
          "id": "collaboration",
          "label": "Review & collaboration"
        },
        {
          "id": "automation",
          "label": "ASR, MT & automation"
        },
        {
          "id": "delivery",
          "label": "Delivery formats & integrations"
        }
      ],
      "views": [
        {
          "id": "shortlist",
          "label": "Shortlist",
          "criteria": [
            "platform",
            "commercial",
            "authoring",
            "timing-qc",
            "delivery"
          ]
        },
        {
          "id": "workflow",
          "label": "Workflow",
          "criteria": [
            "authoring",
            "timing-qc",
            "accessibility",
            "collaboration",
            "automation"
          ]
        },
        {
          "id": "governance",
          "label": "Integration & governance",
          "criteria": [
            "platform",
            "collaboration",
            "automation",
            "delivery"
          ]
        },
        {
          "id": "all",
          "label": "All evidence",
          "criteria": []
        }
      ],
      "products": [
        {
          "id": "subtitle-edit",
          "name": "Subtitle Edit",
          "website": "https://www.nikse.dk/subtitleedit",
          "values": [
            {
              "criterionId": "platform",
              "value": "Desktop application, strongest on Windows, with source available.",
              "sourceIds": [
                "subtitle-edit-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "commercial",
              "value": "Open source with no license fee.",
              "sourceIds": [
                "subtitle-edit-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "authoring",
              "value": "Grid, waveform, video, translation, synchronization, and batch tools.",
              "sourceIds": [
                "subtitle-edit-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "timing-qc",
              "value": "Reading-speed, duration, gap, overlap, spelling, and format checks.",
              "sourceIds": [
                "subtitle-edit-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "accessibility",
              "value": "Caption formats, hearing-impaired workflows, waveform, and audio visualization.",
              "sourceIds": [
                "subtitle-edit-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "collaboration",
              "value": "File-based handoff; no native hosted review workspace.",
              "sourceIds": [
                "subtitle-edit-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "automation",
              "value": "Speech recognition, translation, OCR, command-line, and plugins.",
              "sourceIds": [
                "subtitle-edit-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "delivery",
              "value": "Very broad subtitle, caption, broadcast, and text-format import/export.",
              "sourceIds": [
                "subtitle-edit-docs"
              ],
              "verified": "2026-08-20"
            }
          ]
        },
        {
          "id": "aegisub",
          "name": "Aegisub",
          "website": "https://aegisub.org/",
          "values": [
            {
              "criterionId": "platform",
              "value": "Cross-platform desktop subtitle editor.",
              "sourceIds": [
                "aegisub-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "commercial",
              "value": "Open source with no license fee.",
              "sourceIds": [
                "aegisub-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "authoring",
              "value": "Timing, translation, karaoke, styling, and advanced typesetting.",
              "sourceIds": [
                "aegisub-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "timing-qc",
              "value": "Waveform, visual timing, and script inspection; compliance checks are less turnkey.",
              "sourceIds": [
                "aegisub-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "accessibility",
              "value": "Can author caption text, but accessibility workflows are not its primary model.",
              "sourceIds": [
                "aegisub-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "collaboration",
              "value": "File-based collaboration and version control.",
              "sourceIds": [
                "aegisub-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "automation",
              "value": "Lua automation; no first-party hosted ASR/MT service.",
              "sourceIds": [
                "aegisub-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "delivery",
              "value": "Strong ASS/SSA workflow with additional subtitle import/export.",
              "sourceIds": [
                "aegisub-docs"
              ],
              "verified": "2026-08-20"
            }
          ]
        },
        {
          "id": "ooona",
          "name": "OOONA",
          "website": "https://www.ooona.net/",
          "values": [
            {
              "criterionId": "platform",
              "value": "Vendor-hosted professional media-localization platform and tool suite.",
              "sourceIds": [
                "ooona-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "commercial",
              "value": "Proprietary; sales-led and product-dependent.",
              "sourceIds": [
                "ooona-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "authoring",
              "value": "Browser subtitling, translation, dubbing, and media workflows by product.",
              "sourceIds": [
                "ooona-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "timing-qc",
              "value": "Dedicated timing, compliance, QC, and conformance products.",
              "sourceIds": [
                "ooona-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "accessibility",
              "value": "Captioning, SDH, and accessibility workflows across the suite.",
              "sourceIds": [
                "ooona-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "collaboration",
              "value": "Assignments, roles, review, comments, and workflow management.",
              "sourceIds": [
                "ooona-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "automation",
              "value": "Speech-enabled and automation products; capability depends on module.",
              "sourceIds": [
                "ooona-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "delivery",
              "value": "Professional broadcast and streaming formats plus integrations.",
              "sourceIds": [
                "ooona-docs"
              ],
              "verified": "2026-08-20"
            }
          ]
        },
        {
          "id": "eztitles",
          "name": "EZTitles",
          "website": "https://www.eztitles.com/",
          "values": [
            {
              "criterionId": "platform",
              "value": "Windows desktop plus server and automation products.",
              "sourceIds": [
                "eztitles-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "commercial",
              "value": "Proprietary products with public purchase paths.",
              "sourceIds": [
                "eztitles-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "authoring",
              "value": "Professional subtitle/caption authoring, timing, translation, and layout.",
              "sourceIds": [
                "eztitles-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "timing-qc",
              "value": "Compliance profiles, timing, reading speed, positioning, and format checks.",
              "sourceIds": [
                "eztitles-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "accessibility",
              "value": "Closed captions, SDH, teletext, and accessibility delivery.",
              "sourceIds": [
                "eztitles-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "collaboration",
              "value": "File/package workflow; server products add automation rather than browser review.",
              "sourceIds": [
                "eztitles-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "automation",
              "value": "Batch/server and speech capabilities vary by product.",
              "sourceIds": [
                "eztitles-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "delivery",
              "value": "Extensive cinema, broadcast, disc, streaming, and caption formats.",
              "sourceIds": [
                "eztitles-docs"
              ],
              "verified": "2026-08-20"
            }
          ]
        },
        {
          "id": "captionhub",
          "name": "CaptionHub",
          "website": "https://www.captionhub.com/",
          "values": [
            {
              "criterionId": "platform",
              "value": "Vendor-hosted collaborative SaaS.",
              "sourceIds": [
                "captionhub-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "commercial",
              "value": "Proprietary with public plans and enterprise path.",
              "sourceIds": [
                "captionhub-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "authoring",
              "value": "Browser transcription, captioning, translation, and timed editing.",
              "sourceIds": [
                "captionhub-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "timing-qc",
              "value": "Reading-speed, line, timing, and workflow checks.",
              "sourceIds": [
                "captionhub-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "accessibility",
              "value": "Caption and subtitle workflows; conventions are team-controlled.",
              "sourceIds": [
                "captionhub-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "collaboration",
              "value": "Assignments, comments, review, approval, and shared video context.",
              "sourceIds": [
                "captionhub-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "automation",
              "value": "Speech recognition, MT, AI features, API, and integrations.",
              "sourceIds": [
                "captionhub-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "delivery",
              "value": "Caption/subtitle downloads and video-platform integrations.",
              "sourceIds": [
                "captionhub-docs"
              ],
              "verified": "2026-08-20"
            }
          ]
        },
        {
          "id": "amara",
          "name": "Amara",
          "website": "https://amara.org/",
          "values": [
            {
              "criterionId": "platform",
              "value": "Browser-based captioning and subtitling platform.",
              "sourceIds": [
                "amara-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "commercial",
              "value": "Public community service plus commercial team and enterprise offerings.",
              "sourceIds": [
                "amara-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "authoring",
              "value": "Create, synchronize, translate, and review subtitles in a web editor.",
              "sourceIds": [
                "amara-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "timing-qc",
              "value": "Timing editor and team review; validate broadcaster-specific checks separately.",
              "sourceIds": [
                "amara-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "accessibility",
              "value": "Designed for caption and subtitle accessibility programs.",
              "sourceIds": [
                "amara-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "collaboration",
              "value": "Teams, assignments, roles, review, and community workflows.",
              "sourceIds": [
                "amara-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "automation",
              "value": "API and integrations; automatic transcription depends on offering.",
              "sourceIds": [
                "amara-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "delivery",
              "value": "Common subtitle downloads, video-platform connections, and API access.",
              "sourceIds": [
                "amara-docs"
              ],
              "verified": "2026-08-20"
            }
          ]
        },
        {
          "id": "subtitlenext",
          "name": "SubtitleNEXT",
          "website": "https://subtitlenext.com/",
          "values": [
            {
              "criterionId": "platform",
              "value": "Professional desktop and live subtitling software.",
              "sourceIds": [
                "subtitlenext-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "commercial",
              "value": "Proprietary licensing.",
              "sourceIds": [
                "subtitlenext-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "authoring",
              "value": "Offline/live authoring, translation, spotting, and cue management.",
              "sourceIds": [
                "subtitlenext-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "timing-qc",
              "value": "Reading speed, timing, shot change, layout, and rule-based checks.",
              "sourceIds": [
                "subtitlenext-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "accessibility",
              "value": "Closed-caption, SDH, and live accessibility workflows.",
              "sourceIds": [
                "subtitlenext-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "collaboration",
              "value": "Project/file workflow; connected collaboration depends on setup.",
              "sourceIds": [
                "subtitlenext-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "automation",
              "value": "Speech, translation, and automation vary by module and integration.",
              "sourceIds": [
                "subtitlenext-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "delivery",
              "value": "Professional broadcast, streaming, cinema, and subtitle formats.",
              "sourceIds": [
                "subtitlenext-docs"
              ],
              "verified": "2026-08-20"
            }
          ]
        },
        {
          "id": "wincaps",
          "name": "WinCAPS Q4",
          "website": "https://broadstream.com/wincaps/",
          "values": [
            {
              "criterionId": "platform",
              "value": "Windows professional subtitling and captioning application.",
              "sourceIds": [
                "wincaps-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "commercial",
              "value": "Proprietary; sales-led licensing.",
              "sourceIds": [
                "wincaps-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "authoring",
              "value": "Offline preparation, timing, translation, and live-caption support.",
              "sourceIds": [
                "wincaps-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "timing-qc",
              "value": "Timing, reading, layout, and broadcaster-oriented QC.",
              "sourceIds": [
                "wincaps-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "accessibility",
              "value": "Closed captions, teletext, SDH, and broadcast accessibility.",
              "sourceIds": [
                "wincaps-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "collaboration",
              "value": "File and production-system workflow rather than browser review.",
              "sourceIds": [
                "wincaps-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "automation",
              "value": "Speech/live integrations depend on the deployed BroadStream stack.",
              "sourceIds": [
                "wincaps-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "delivery",
              "value": "Broadcast, caption, subtitle, and professional playout formats.",
              "sourceIds": [
                "wincaps-docs"
              ],
              "verified": "2026-08-20"
            }
          ]
        },
        {
          "id": "fab-subtitler",
          "name": "FAB Subtitler",
          "website": "https://www.fab-online.com/subtitling/",
          "values": [
            {
              "criterionId": "platform",
              "value": "Windows professional software family for offline, live, broadcast, and automated subtitling.",
              "sourceIds": [
                "fab-subtitler-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "commercial",
              "value": "Proprietary modules and licenses with product-specific capabilities.",
              "sourceIds": [
                "fab-subtitler-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "authoring",
              "value": "Subtitle preparation, timing, translation support, live operation, and specialized transmission by edition.",
              "sourceIds": [
                "fab-subtitler-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "timing-qc",
              "value": "Subtitle checking, timecode, scene-change and format-conversion workflows.",
              "sourceIds": [
                "fab-subtitler-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "accessibility",
              "value": "Teletext, DVB, closed-caption, open-subtitle, and live accessibility workflows across the product family.",
              "sourceIds": [
                "fab-subtitler-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "collaboration",
              "value": "Workstation, database, network, and file workflows rather than a browser-first review model.",
              "sourceIds": [
                "fab-subtitler-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "automation",
              "value": "Watch folders, server transcription, APIs, cloud speech, and configurable AI services depend on edition.",
              "sourceIds": [
                "fab-subtitler-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "delivery",
              "value": "More than 100 file formats plus broadcast, streaming, disc, digital-cinema, teletext, and DVB paths.",
              "sourceIds": [
                "fab-subtitler-docs"
              ],
              "verified": "2026-08-20"
            }
          ]
        },
        {
          "id": "spot",
          "name": "Spot",
          "website": "https://www.spotsoftware.eu/",
          "values": [
            {
              "criterionId": "platform",
              "value": "Windows desktop professional subtitling application.",
              "sourceIds": [
                "spot-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "commercial",
              "value": "Proprietary rental and lifetime-license paths.",
              "sourceIds": [
                "spot-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "authoring",
              "value": "Subtitle creation, translation, timing, formatting, video preview, comments, and keyboard-led editing.",
              "sourceIds": [
                "spot-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "timing-qc",
              "value": "Timing, reading, line, positioning, interval, and visual-review functions.",
              "sourceIds": [
                "spot-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "accessibility",
              "value": "Closed-caption and positioning workflows are supported; validate the target delivery rules.",
              "sourceIds": [
                "spot-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "collaboration",
              "value": "File-based professional workflow rather than a hosted multi-user workspace.",
              "sourceIds": [
                "spot-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "automation",
              "value": "Macros and productivity functions; no reviewed hosted automation API.",
              "sourceIds": [
                "spot-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "delivery",
              "value": "Professional subtitle and caption format handling; verify the exact broadcaster or platform format in the current edition.",
              "sourceIds": [
                "spot-docs"
              ],
              "verified": "2026-08-20"
            }
          ]
        }
      ]
    },
    {
      "resourceId": "tools-speech-annotation-evaluation",
      "criteria": [
        {
          "id": "deployment",
          "label": "Deployment & data boundary"
        },
        {
          "id": "commercial",
          "label": "Commercial model"
        },
        {
          "id": "modalities",
          "label": "Modalities & task types"
        },
        {
          "id": "schema",
          "label": "Schema & annotation control"
        },
        {
          "id": "automation",
          "label": "Model-assisted labeling"
        },
        {
          "id": "quality",
          "label": "Review, agreement & adjudication"
        },
        {
          "id": "integration",
          "label": "API, SDK & pipeline fit"
        },
        {
          "id": "export",
          "label": "Export & dataset portability"
        }
      ],
      "views": [
        {
          "id": "shortlist",
          "label": "Shortlist",
          "criteria": [
            "deployment",
            "commercial",
            "modalities",
            "quality",
            "export"
          ]
        },
        {
          "id": "workflow",
          "label": "Workflow",
          "criteria": [
            "modalities",
            "schema",
            "automation",
            "quality"
          ]
        },
        {
          "id": "governance",
          "label": "Integration & governance",
          "criteria": [
            "deployment",
            "integration",
            "quality",
            "export"
          ]
        },
        {
          "id": "all",
          "label": "All evidence",
          "criteria": []
        }
      ],
      "products": [
        {
          "id": "label-studio",
          "name": "Label Studio",
          "website": "https://labelstud.io/",
          "values": [
            {
              "criterionId": "deployment",
              "value": "Open-source self-hosting plus commercial cloud and enterprise.",
              "sourceIds": [
                "label-studio-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "commercial",
              "value": "Open-source core with commercial editions.",
              "sourceIds": [
                "label-studio-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "modalities",
              "value": "Text, audio, image, video, time series, and configurable multimodal tasks.",
              "sourceIds": [
                "label-studio-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "schema",
              "value": "Labeling configuration defines interfaces, labels, relations, and behavior.",
              "sourceIds": [
                "label-studio-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "automation",
              "value": "ML backends, predictions, pre-annotations, and active-learning integrations.",
              "sourceIds": [
                "label-studio-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "quality",
              "value": "Review and agreement workflows; advanced controls vary by edition.",
              "sourceIds": [
                "label-studio-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "integration",
              "value": "REST API, SDK, webhooks, cloud storage, and ML backend interface.",
              "sourceIds": [
                "label-studio-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "export",
              "value": "JSON plus converter formats; preserve labeling configuration with data.",
              "sourceIds": [
                "label-studio-docs"
              ],
              "verified": "2026-08-20"
            }
          ]
        },
        {
          "id": "argilla",
          "name": "Argilla",
          "website": "https://argilla.io/",
          "values": [
            {
              "criterionId": "deployment",
              "value": "Self-hosted open-source server with managed/commercial offerings.",
              "sourceIds": [
                "argilla-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "commercial",
              "value": "Open-source platform with commercial services.",
              "sourceIds": [
                "argilla-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "modalities",
              "value": "Text-focused feedback datasets for classification, ranking, generation, and extraction.",
              "sourceIds": [
                "argilla-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "schema",
              "value": "Typed fields, questions, suggestions, responses, metadata, and vectors.",
              "sourceIds": [
                "argilla-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "automation",
              "value": "Model suggestions and programmatic datasets support feedback loops.",
              "sourceIds": [
                "argilla-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "quality",
              "value": "Multi-user responses, status, filtering, and analysis; design adjudication explicitly.",
              "sourceIds": [
                "argilla-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "integration",
              "value": "Python SDK and model/data ecosystem integrations.",
              "sourceIds": [
                "argilla-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "export",
              "value": "SDK-based export and Hugging Face-oriented workflows.",
              "sourceIds": [
                "argilla-docs"
              ],
              "verified": "2026-08-20"
            }
          ]
        },
        {
          "id": "prodigy",
          "name": "Prodigy",
          "website": "https://prodi.gy/",
          "values": [
            {
              "criterionId": "deployment",
              "value": "Locally run annotation application and Python workflow library.",
              "sourceIds": [
                "prodigy-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "commercial",
              "value": "Proprietary per-seat license.",
              "sourceIds": [
                "prodigy-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "modalities",
              "value": "Text, image, audio, video, span, relation, choice, and custom interfaces.",
              "sourceIds": [
                "prodigy-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "schema",
              "value": "Recipe-driven tasks and JSONL records expose the annotation contract.",
              "sourceIds": [
                "prodigy-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "automation",
              "value": "Model-in-the-loop recipes, active learning, pre-annotation, and custom Python.",
              "sourceIds": [
                "prodigy-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "quality",
              "value": "Sessions, review recipes, and agreement analysis require explicit setup.",
              "sourceIds": [
                "prodigy-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "integration",
              "value": "Python APIs, recipes, databases, web app, and spaCy integration.",
              "sourceIds": [
                "prodigy-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "export",
              "value": "JSONL and application-controlled databases keep raw annotations portable.",
              "sourceIds": [
                "prodigy-docs"
              ],
              "verified": "2026-08-20"
            }
          ]
        },
        {
          "id": "elan",
          "name": "ELAN",
          "website": "https://archive.mpi.nl/tla/elan",
          "values": [
            {
              "criterionId": "deployment",
              "value": "Cross-platform desktop research application.",
              "sourceIds": [
                "elan-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "commercial",
              "value": "Free software from the Max Planck Institute.",
              "sourceIds": [
                "elan-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "modalities",
              "value": "Audio/video annotation with aligned hierarchical time tiers.",
              "sourceIds": [
                "elan-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "schema",
              "value": "Controlled vocabularies, linguistic types, tier constraints, and participants.",
              "sourceIds": [
                "elan-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "automation",
              "value": "Recognizers and integrations exist; manual expert annotation remains central.",
              "sourceIds": [
                "elan-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "quality",
              "value": "Comparison is possible; adjudication is file/process-driven.",
              "sourceIds": [
                "elan-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "integration",
              "value": "File interchange and recognizer/tool workflows rather than a hosted API.",
              "sourceIds": [
                "elan-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "export",
              "value": "EAF plus tabular, text, subtitle, Praat, and research formats.",
              "sourceIds": [
                "elan-docs"
              ],
              "verified": "2026-08-20"
            }
          ]
        },
        {
          "id": "cvat",
          "name": "CVAT",
          "website": "https://www.cvat.ai/",
          "values": [
            {
              "criterionId": "deployment",
              "value": "Open-source self-hosting plus CVAT Online and enterprise.",
              "sourceIds": [
                "cvat-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "commercial",
              "value": "Open-source core with commercial products.",
              "sourceIds": [
                "cvat-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "modalities",
              "value": "Image/video vision tasks with boxes, polygons, masks, tracks, and skeletons.",
              "sourceIds": [
                "cvat-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "schema",
              "value": "Project/task labels, attributes, shapes, tracks, and frame controls.",
              "sourceIds": [
                "cvat-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "automation",
              "value": "Automatic annotation, model functions, trackers, and serverless integration.",
              "sourceIds": [
                "cvat-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "quality",
              "value": "Review, issues, consensus, honeypots, and analytics vary by edition.",
              "sourceIds": [
                "cvat-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "integration",
              "value": "REST API, SDK, CLI, cloud storage, and model integration.",
              "sourceIds": [
                "cvat-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "export",
              "value": "Many computer-vision formats plus backups; audio/text are not primary.",
              "sourceIds": [
                "cvat-docs"
              ],
              "verified": "2026-08-20"
            }
          ]
        },
        {
          "id": "doccano",
          "name": "doccano",
          "website": "https://doccano.github.io/doccano/",
          "values": [
            {
              "criterionId": "deployment",
              "value": "Open-source self-hosted web application.",
              "sourceIds": [
                "doccano-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "commercial",
              "value": "Open source with no license fee.",
              "sourceIds": [
                "doccano-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "modalities",
              "value": "Text classification, sequence labeling, and sequence-to-sequence.",
              "sourceIds": [
                "doccano-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "schema",
              "value": "Projects define label sets and task type; metadata and examples are imported.",
              "sourceIds": [
                "doccano-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "automation",
              "value": "Automatic labeling can connect through APIs and clients.",
              "sourceIds": [
                "doccano-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "quality",
              "value": "Roles and collaboration; agreement/adjudication depth is limited.",
              "sourceIds": [
                "doccano-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "integration",
              "value": "REST API and client library support import and automation.",
              "sourceIds": [
                "doccano-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "export",
              "value": "JSONL, CSV, and task-specific formats.",
              "sourceIds": [
                "doccano-docs"
              ],
              "verified": "2026-08-20"
            }
          ]
        },
        {
          "id": "inception",
          "name": "INCEpTION",
          "website": "https://inception-project.github.io/",
          "values": [
            {
              "criterionId": "deployment",
              "value": "Open-source self-hosted web application.",
              "sourceIds": [
                "inception-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "commercial",
              "value": "Open source with no license fee.",
              "sourceIds": [
                "inception-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "modalities",
              "value": "Text annotation for spans, relations, chains, syntax, semantics, and custom layers.",
              "sourceIds": [
                "inception-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "schema",
              "value": "Configurable layers, features, tagsets, constraints, and roles.",
              "sourceIds": [
                "inception-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "automation",
              "value": "Recommenders provide machine assistance and external-model integration.",
              "sourceIds": [
                "inception-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "quality",
              "value": "Curation, agreement, monitoring, and project workflows are first-class.",
              "sourceIds": [
                "inception-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "integration",
              "value": "Formats, recommenders, and remote APIs support research pipelines.",
              "sourceIds": [
                "inception-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "export",
              "value": "UIMA CAS/XMI and NLP formats; test custom-layer interoperability.",
              "sourceIds": [
                "inception-docs"
              ],
              "verified": "2026-08-20"
            }
          ]
        },
        {
          "id": "praat",
          "name": "Praat",
          "website": "https://www.praat.org/",
          "values": [
            {
              "criterionId": "deployment",
              "value": "Cross-platform desktop application with scripting and batch use.",
              "sourceIds": [
                "praat-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "commercial",
              "value": "Free software.",
              "sourceIds": [
                "praat-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "modalities",
              "value": "Speech audio analysis, segmentation, transcription, and TextGrid annotation.",
              "sourceIds": [
                "praat-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "schema",
              "value": "Interval and point tiers; teams define conventions externally.",
              "sourceIds": [
                "praat-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "automation",
              "value": "Rich scripting for analysis, segmentation, measurements, and batches.",
              "sourceIds": [
                "praat-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "quality",
              "value": "No hosted review workflow; quality is script- and protocol-driven.",
              "sourceIds": [
                "praat-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "integration",
              "value": "Command-line and Praat scripting integrate with research pipelines.",
              "sourceIds": [
                "praat-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "export",
              "value": "TextGrid, tables, audio, measurements, and generated data are portable.",
              "sourceIds": [
                "praat-docs"
              ],
              "verified": "2026-08-20"
            }
          ]
        },
        {
          "id": "labelbox",
          "name": "Labelbox",
          "website": "https://labelbox.com/",
          "values": [
            {
              "criterionId": "deployment",
              "value": "Vendor-hosted data-labeling platform with enterprise controls.",
              "sourceIds": [
                "labelbox-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "commercial",
              "value": "Proprietary; plan and service pricing.",
              "sourceIds": [
                "labelbox-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "modalities",
              "value": "Image, video, text, documents, audio, geospatial, and evaluation workflows.",
              "sourceIds": [
                "labelbox-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "schema",
              "value": "Ontologies define classifications, objects, relations, and reusable structure.",
              "sourceIds": [
                "labelbox-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "automation",
              "value": "Model-assisted labeling, pre-labels, embeddings, and automation.",
              "sourceIds": [
                "labelbox-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "quality",
              "value": "Review, consensus, benchmarking, issues, and workforce quality.",
              "sourceIds": [
                "labelbox-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "integration",
              "value": "SDKs, APIs, webhooks, cloud data, and model/data pipelines.",
              "sourceIds": [
                "labelbox-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "export",
              "value": "Programmatic exports; rehearse ontology, metadata, and annotation export together.",
              "sourceIds": [
                "labelbox-docs"
              ],
              "verified": "2026-08-20"
            }
          ]
        },
        {
          "id": "superannotate",
          "name": "SuperAnnotate",
          "website": "https://www.superannotate.com/",
          "values": [
            {
              "criterionId": "deployment",
              "value": "Vendor-hosted data and evaluation platform with external-storage workflows.",
              "sourceIds": [
                "superannotate-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "commercial",
              "value": "Proprietary platform and services.",
              "sourceIds": [
                "superannotate-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "modalities",
              "value": "Multimodal annotation, curation, and generative-AI data workflows; confirm the editor needed for the task.",
              "sourceIds": [
                "superannotate-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "schema",
              "value": "Project components and workflow configuration define the collection interface and records.",
              "sourceIds": [
                "superannotate-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "automation",
              "value": "SDK and AI-pipeline integration support pre-processing, curation, and model-assisted work.",
              "sourceIds": [
                "superannotate-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "quality",
              "value": "Collaborative review and project controls; design independent adjudication for multilingual judgments.",
              "sourceIds": [
                "superannotate-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "integration",
              "value": "Python SDK, APIs, external storage, and AI-pipeline integrations.",
              "sourceIds": [
                "superannotate-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "export",
              "value": "Project downloads and structured exports; CSV has documented limits for complex component values.",
              "sourceIds": [
                "superannotate-docs"
              ],
              "verified": "2026-08-20"
            }
          ]
        },
        {
          "id": "encord",
          "name": "Encord",
          "website": "https://encord.com/",
          "values": [
            {
              "criterionId": "deployment",
              "value": "Vendor-hosted platform with private-cloud data integrations.",
              "sourceIds": [
                "encord-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "commercial",
              "value": "Proprietary platform and enterprise plans.",
              "sourceIds": [
                "encord-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "modalities",
              "value": "Image, video, image-sequence, document, and audio annotation workflows.",
              "sourceIds": [
                "encord-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "schema",
              "value": "Ontologies, classifications, objects, attributes, metadata, and configurable editor layouts.",
              "sourceIds": [
                "encord-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "automation",
              "value": "Automated labeling, model predictions, catalog agents, and custom agent endpoints.",
              "sourceIds": [
                "encord-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "quality",
              "value": "Multi-stage review, edit review, issues, label versions, and event-based analytics.",
              "sourceIds": [
                "encord-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "integration",
              "value": "SDK, API, webhooks, cloud integrations, and model endpoints.",
              "sourceIds": [
                "encord-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "export",
              "value": "Versioned JSON or COCO exports with review and label metadata; rehearse full-fidelity export for the chosen modality.",
              "sourceIds": [
                "encord-docs"
              ],
              "verified": "2026-08-20"
            }
          ]
        },
        {
          "id": "dataloop",
          "name": "Dataloop",
          "website": "https://dataloop.ai/",
          "values": [
            {
              "criterionId": "deployment",
              "value": "Vendor-hosted data platform with cloud-storage and enterprise integration options.",
              "sourceIds": [
                "dataloop-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "commercial",
              "value": "Proprietary platform and services.",
              "sourceIds": [
                "dataloop-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "modalities",
              "value": "Image, video, text, audio, and configurable data-labeling pipelines.",
              "sourceIds": [
                "dataloop-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "schema",
              "value": "Ontologies, labels, attributes, metadata, recipes, and task configuration.",
              "sourceIds": [
                "dataloop-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "automation",
              "value": "Model-assisted annotation, pipelines, SDK automation, and application integrations.",
              "sourceIds": [
                "dataloop-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "quality",
              "value": "Assignments, review tasks, consensus and analytics depend on workflow configuration.",
              "sourceIds": [
                "dataloop-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "integration",
              "value": "Python and JavaScript SDKs, APIs, webhooks, storage, models, and pipelines.",
              "sourceIds": [
                "dataloop-docs"
              ],
              "verified": "2026-08-20"
            },
            {
              "criterionId": "export",
              "value": "Annotation Studio and SDK export paths; validate ontology, metadata, media references, and target format together.",
              "sourceIds": [
                "dataloop-docs"
              ],
              "verified": "2026-08-20"
            }
          ]
        }
      ]
    }
  ]
}
