Skip to main content

ReadingSummaryDto

Headline totals for the window.

booksinteger<int64>required
Example: 12
duration objectrequired

Reading time split by how it was arrived at.

Deliberately two numbers rather than one. Time from the compatibility surfaces is reconstructed from the gaps between their writes: it undercounts and cannot see reading done from a downloaded book at all. Presenting a combined figure is fine; hiding that part of it is an estimate is not.

inferredMsinteger<int64>required

Milliseconds reconstructed server-side. An underestimate.

Example: 900000
measuredMsinteger<int64>required

Milliseconds reported by a client that measured its own reading.

Example: 5400000
totalMsinteger<int64>required

Convenience sum of the two, so clients do not each reimplement it.

Example: 6300000
pagesReadinteger<int64>required
Example: 1240
sessionsinteger<int64>required

Distinct sittings, after adjacent writes were merged.

Example: 48
sessionsWithoutDurationinteger<int64>required

Sittings whose client could report no time at all. A large number here explains a total that looks lower than the reading felt.

Example: 3
ReadingSummaryDto
{
"books": 12,
"duration": {
"inferredMs": 900000,
"measuredMs": 5400000,
"totalMs": 6300000
},
"pagesRead": 1240,
"sessions": 48,
"sessionsWithoutDuration": 3
}