Skip to main content

Text edits report

The report is a JSON object with these properties:

counts

An array of records according to the groupby parameter: With Global, there will be a single record. With ByUser there will be 1 record per user, etc.

object[]

locales

A dictionary with all locales(src and trg properties) appearing in this report together with the print name.

object

users

A dictionary with all users appearing in this report (uid property) together with id, name, company id and company name.

object

documents

A dictionary with all documents referenced in this report (did property) together with id, name, company id and company name.

object

parameters

Enumerates the parameters used for creating the report, see their description here: resources/segments/textedits

object

Each element in counts aggregates edit details as per the groupby and aggregationMode parameters when creating the report:

texts

Total number of texts edited.

int

edits

Total number of edits.
Value edits can be greater than value texts. For example there may be the initial translation (edit 1) and then a revision (edit 2). The aggregationMode also influences this value.

int

Edit distance

Edit distances are calculated with the Levenshtein algoritm. See an example of how it is calculated here: Text edits example

editDistance

The total normalized edit distance (“ED”) for all events aggregated in this row. The ED is a value between 0 (no edits at all) and 1 (completely reworked text). The formula is:

CODE
editDistance = editDistanceSum / editDistanceSumLengths

decimal

editDistanceSum

Sum of all (non-normalized) edit distances. For example if the initial translation is empty and a user changed to “abcd” then this contributes 4. If the reviser then changes the text to “abcdef” it adds 2 on top.

int

editDistanceSumLengths

Sum of text lengths of all edits. If text “ab” is changed to “abcd” then we add 4 which is the maximum of initial/edited lengths 2 and 4.

int

editDistanceSumNormalized

With each individual edit, the system calculates the normalized ED: Edit distance of individual edit divided by the maximum length of initial and changed texts. To obtain the average normalized ED of all records in this record use. See also Text edits example

CODE
average edit distance = editDistanceSumNormalized / edits

decimal

Adjusted word counts

words

The number of source words adjusted by the normalized edit distance of the edited text.

The result is stored with two decimals and always rounded up.

The idea is simple, if the source text has 10 words and the translator had to write the translation from scratch, we count 10 words. On the other hand, if the translator started off with a pre-translation and made 20% changes, then we will count only 2 words.

The % is given by the normalized edit distance. An ED of 0 means no change was done and we count nothing. An ED of 1 points to a translation from scratch and the full source words need to be counted. Any value in between means more or less effort that was required by the worker.

decimal

chars

Similar to words. See above.

decimal

wordsTarget

Same as words except that we apply the ED % to the number of target words (after editing). This information is useful for example if work shall be measured in terms of translated words/chars rather than source words/chars.

decimal

charsTarget

Similar to wordsTarget. See above.

decimal

Date range

Date information for all the edits we have aggregated in this record

dateMin

UTC date of earliest edit.

datetime

dateMax

UTC date of latest edit.

datetime

Group by

Data is aggregated according to the “groupby” parameter. The following properties tell the group’s properties.

did

The document id if we aggregate by document ID.

int?

uid

The editing user id if we aggregate by document ID.

int?

src

The segment’s source language if we aggregate by languages.

string?

trg

The target language of edits if we aggregate by languages.

string?

ed

The Last Editor (Enumeration) if we aggregate by it.

int?

EXAMPLES

Report “Global”

A single row is returned:

CODE
{
    "counts": [
        {
            "texts": 4,
            "edits": 11,
            "editDistance": 0.36,
            "editDistanceSum": 97,
            "editDistanceSumLengths": 272,
            "editDistanceSumNormalized": 5.25,
            "words": 22.03,
            "chars": 118.10,
            "wordsTarget": 14.03,
            "charsTarget": 73.10,
            "dateMin": "2020-03-26T10:22:12.8457033Z",
            "dateMax": "2020-04-04T14:30:50.2094891Z"
        }
    ],
    "locales": {},
    "users": {},
    "documents": {},
    "parameters": {
        "groupby": "Global",
        "dateFrom": null,
        "dateTo": null,
        "aggregationMode": "SingleActionPerUser",
        "src": null,
        "trgs": null
    }
}

Report “By User”

One row per user:

CODE
{
	"counts": [
		{
			"texts": 4,
			"edits": 11,
			"editDistance": 0.36,
			"editDistanceSum": 97,
			"editDistanceSumLengths": 272,
			"editDistanceSumNormalized": 5.25,
			"words": 22.03,
			"chars": 118.1,
			"wordsTarget": 14.03,
			"charsTarget": 73.1,
			"dateMin": "2020-03-26T10:22:12.8457033Z",
			"dateMax": "2020-04-04T14:30:50.2094891Z",
			"uid": 505
		},
		{
			"texts": 2,
			"edits": 4,
			"editDistance": 0.36,
			"editDistanceSum": 97,
			"editDistanceSumLengths": 272,
			"editDistanceSumNormalized": 5.25,
			"words": 22.03,
			"chars": 118.1,
			"wordsTarget": 14.03,
			"charsTarget": 73.1,
			"dateMin": "2020-02-26T10:22:12.8457033Z",
			"dateMax": "2020-05-04T14:30:50.2094891Z",
			"uid": 231
		}
	],
	"locales": {},
	"users": {
		"505": {
			"uid": 505,
			"uname": "Mike",
			"cid": 537,
			"cname": "team"
		},
		"231": {
			"uid": 231,
			"uname": "John",
			"cid": 536,
			"cname": "another team"
		}
	},
	"documents": {},
	"parameters": {
		"groupby": "ByUser",
		"dateFrom": null,
		"dateTo": null,
		"aggregationMode": "SingleActionPerUser",
		"src": null,
		"trgs": null
	}
}

Report “ByLocale

One row per source and target language couple:

CODE
{
    "counts": [
        {
            "texts": 2,
            "edits": 9,
            "editDistance": 0.34,
            "editDistanceSum": 91,
            "editDistanceSumLengths": 266,
            "editDistanceSumNormalized": 3.25,
            "words": 12.03,
            "chars": 67.10,
            "wordsTarget": 12.03,
            "charsTarget": 67.10,
            "dateMin": "2020-03-26T10:22:12.8457033Z",
            "dateMax": "2020-04-04T14:30:50.2094891Z",
            "src": "en",
            "trg": "en"
        },
        {
            "texts": 2,
            "edits": 2,
            "editDistance": 1.0,
            "editDistanceSum": 6,
            "editDistanceSumLengths": 6,
            "editDistanceSumNormalized": 2.0,
            "words": 10.0,
            "chars": 51.0,
            "wordsTarget": 2.0,
            "charsTarget": 6.0,
            "dateMin": "2020-04-16T09:00:28.6727929Z",
            "dateMax": "2020-04-16T09:00:28.6727929Z",
            "src": "en",
            "trg": "es"
        }
    ],
    "locales": {
        "en": "English",
        "es": "Spanish"
    },
    "users": {},
    "documents": {},
    "parameters": {
        "groupby": "ByLocale",
        "dateFrom": null,
        "dateTo": null,
        "aggregationMode": "SingleActionPerUser",
        "src": null,
        "trgs": null
    }
}

There are many more grouping options, see resources/segments/textedits

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.