What is Analysis?
Analysis is a Phrase TMS feature that calculates word/character counts and match statistics for a job’s segments, split into bands like translation memory (TM) matches, machine translation (MT) matches, internal fuzzy matches, non-translatables, and repetitions. It’s the basis for quotes, workload estimates, and post-editing effort measurement. For a product-level walkthrough of the Analysis UI, see the Analysis (TMS) support article. This guide covers how to create and interpret analyses via the API, and documents the downloaded export formats in full.Analysis types
See Creating an analysis for how
type and its options map to the create request.
Creating an analysis
Create analysis takes a job selection (jobs — job UIDs from the same project, or jobFilter — project + optional filename/status/targetLangs/workflowStep/provider/dueIn filters) and a type, which picks what gets measured:
Options common to every type:
includeTransMemory / includeMachineTranslationMatches / includeNonTranslatables — which match sources count; includeFuzzyRepetitions / separateFuzzyRepetitions — fold internal fuzzy matches into regular bands or break them out; includeNumbers / includeConfirmedSegments / includeLockedSegments / includeNotConfirmedSegments — which segments count at all; name (supports macros like {projectName}, {sourceLang}, {targetLang}); netRateScheme (see below); useProjectAnalysisSettings to fall back to the project’s default analyse settings instead of specifying everything inline.
To split output instead of getting one combined analysis, either pass analyzeByLanguage/analyzeByProvider on the same request, or use the dedicated Create analyses by languages / Create analyses by providers endpoints for the same job selection — the latter also pre-applies a provider’s net rate scheme, if they have one assigned.
Analysis results are always per language pair, calculated against that pair’s own TM — even when several target languages share one TM.
Working with Analysis via the API
A source file update marks its analyses
outdated; recalculating re-applies the original settings. Vendors can’t recalculate analyses created by the buyer.Interpreting results
Each language pair’s result (analyseLanguageParts[].data) breaks counts into buckets, each carrying segments, words, characters, normalizedPages, percent, and editingTime:
match95 means the 95%–99% band, match85 means 85%–94%, and so on — the label is the band’s lower (exclusive of the next band up) bound, not an exact score. match101 only exists for TM matches, and marks in-context exact matches (same source text and surrounding context, not just the same text).discountedData object with the same shape as data, reflecting the net rate scheme applied to that analysis, if any.
Net rate schemes and discounts
A net rate scheme applies a discount to words/characters/pages in specific match buckets (e.g. TM 100% matches billed at 20% of the normal rate). Applying one populatesdiscountedData alongside the raw data — the UI shows this as the analysis’s Net rate row.
A scheme can also be applied automatically: pass
netRateScheme on Create analysis, or use analyzeByProvider/Create analyses by providers to inherit the provider’s assigned scheme.
Exporting an analysis
Analyses can be downloaded in four formats via Download analysis (format query parameter: CSV, CSV_EXTENDED, LOG, or JSON) — the same formats offered by the Download button in the UI. See Analysis export formats for the full field-by-field reference.