Translation Quality Estimation (TQE, part of the OpenAI plugin) can now run in two modes:
Why MQM mode: the result is transparent (every deduction is a visible MQM tag in the editor, with type, severity and reason), correctable (a reviewer can delete tags, add tags or mark false positives - the score follows), and configurable (the PM decides what a terminology error costs versus a style error). The scoring follows the official MQM scorecard model of the MQM Council (https://themqm.org/).
The mode is one config value:
Config | Values | Default | Levels |
|---|---|---|---|
|
|
| system, client, import |
The mode is deliberately not overridable at task level: it is fixed for a task at import, so a finished task's score can never change because someone later switched the config.
Everything else stays as in classic TQE: the same TQE resource panel in the task properties, the same resource assignment, the same worker and batching. Only the job given to the AI changes.
qmflag tags a human linguist places, stored the same way. The reviewer sees them in the editor and can edit, delete or mark them as false positives, exactly like manual MQM tags. If a quote cannot be located reliably in the segment, that issue is discarded and logged - positions are never guessed.The calculation implements the Raw Quality Score of the official MQM scorecard (https://themqm.org/ - see the attached Excel files):
score = max(0, (1 - penalty points / word count) * 100) |
severity multiplier x error type weight penalty points. Example with the default multipliers: a major (multiplier 5) terminology issue with weight 2 costs 10 penalty points.The reasoning text of each segment lists every counted issue with its penalty, e.g. MQM: 2 issues, 6.0 penalty points / 25 words - Terminology/major (5.0), Style/minor (1.0, 72%) - the percentage is the AI's reported probability when it was below 100%.
The scoring weights live directly in the MQM criteria XML - the same XML that has always defined the task's MQM issue tree. Three attributes were added:
Attribute | Where | Meaning | Default |
|---|---|---|---|
| root element | penalty multiplier per severity; the names follow | 1 |
| any | error type weight (relative importance of this issue type); children inherit the parent value | 1 |
| any | acceptance threshold in percent (0-100): AI-reported issues of this type below the threshold are discarded - neither tagged nor scored; children inherit the parent value | 0 (= accept all) |
Example:
<issues severity-critical="25" severity-major="5" severity-minor="1">
<issue type="Accuracy" level="0" display="yes" weight="2" probability="60">
<!-- children inherit weight 2 and the 60% threshold unless they override -->
<issue type="Terminology" level="1" display="yes" weight="3"/>
</issue>
</issues>
|
runtimeOptions.editor.qmFlagXmlContent - if this config value is not empty, its XML is used and the file hierarchy below is skipped. The value is edited in a validating XML editor window directly in the translate5 configuration UI and is overridable at system, client and import level. This is the recommended way to maintain customer-specific scorecards.runtimeOptions.editor.qmFlagXmlFileName, default QM_Subsegment_Issues.xml).client-specific/public/modules/editor/QM_Subsegment_Issues.xml.public/modules/editor/QM_Subsegment_Issues.xml (in the translate5 installation directory).translate5 ships three catalog variants in public/modules/editor/, selectable via qmFlagXmlFileName; all three carry the default scorecard attributes and an explanatory comment:
QM_Subsegment_Issues.xml - the active default, a compact MQM subset (20 issue types)QM_Subsegment_Issues_core.xml - the official MQM Core typology with the official descriptionsQM_Subsegment_Issues-EN.xml - a large English full-typology variant (72 issue types)Note: the parsed XML is frozen into the task at import (LEK_task.qmSubsegmentFlags). Changing the XML later affects only newly imported tasks.
The AI reports a probability (confidence) for every issue it marks. This probability is used as a gate only: an issue whose probability is below the probability threshold of its issue type is thrown away during the run - it does not become an MQM tag and does not cost penalty points. Issues at or above the threshold count fully. The reported probability of a counted issue stays visible in the segment's reasoning text (as a percentage).
The same run can be started three ways:
LEK_workflow_action for the action class MittagQI\Translate5\Plugins\OpenAI\Workflow\Actions\QueueTqeAction (method queueTqe), choosing workflow and trigger. Deactivation = deleting the row. A user-facing "Automation Manager" UI for this is a separate, future feature.In MQM mode, the presence of the assigned AI resource controls what "Start TQE" (and the workflow action) does:
With runtimeOptions.plugins.OpenAI.qualityScoreSegmentCheck enabled (default: enabled), saving a segment in the editor recalculates that segment's MQM score immediately from its current MQM tags - purely a calculation, the AI is never called on save, regardless of the assigned resource. So a reviewer who deletes a wrong tag sees the score follow with the save.
Note on TrackChanges: an MQM tag deleted as a tracked change (the deletion is still pending in the text as strike-through) still counts for the score until the tracked deletion is actually applied.
File | What it is | |
|---|---|---|
| The shipped default MQM catalog, including the scorecard attributes with their default values and an explanatory XML comment | |
MQM-2.0-Dual-Scorecard-2025-05-09.xlsx | The current official MQM scorecard (https://www.themqm.org/resources/downloads/). The implementation follows its Raw Quality Score model (identical severity multipliers, weights and formula). The additional "Calibrated Quality Score" of this file is not implemented. | |
| The 2022 distribution of the official MQM Scoring Model Calculator (by Sue Ellen Wright, MQM Council), formerly hosted on themqm.org - the file the implementation was originally built and verified against. Optional/historical. |