Decision records · Types the tables leave open
D-044 What values does a frequency cap's period take, and is a period a calendar period or a length of time?
What the schemas do
One of the OpenDirect 2.1 Line.frequencyinterval intervals, in the specification's spelling: hour, day, week, month, or flight, OpenDirect's LineDuration. The first four are calendar periods on the line item's clock, so a day runs from midnight to midnight. flight runs from the flight's start to its end, between its two points in time.
Options
Why
The text names period and lists no value for it, and every example writes day. With the open PRs, the text says that period is a calendar period in time_zone, like the calendar Day of OpenDirect 2.1 Line.frequencyinterval, and that weeks start on Monday. A calendar period isn't a length of time: a calendar day runs from midnight to midnight in a zone, so it is 23 or 25 hours long on the day the clocks change, and it resets every count at midnight, where a rolling P1D resets 24 hours after each impression. So the period is a term, not a Duration. OpenDirect 2.1, where a direct buy's line lands, lists the intervals Day, Month, Week, Hour, and LineDuration, and states the calendar meaning for Day. The schema takes those intervals, spelled as the specification spells its terms, with flight for LineDuration, the commitment's flight, so the examples' day stays valid. flight is no calendar period: a flight's start and end are points in time (D-042), so it runs between them, whatever the clock, and only hour, day, week, and month are read on the line item's clock, with weeks from Monday, as the open PRs' text says. The list is closed: a seller can't count against a period a receiver doesn't know how to reset. Whether a period is calendar or rolling is an open question of the PR that adds the clock; the schema reads it as calendar, as that PR's text states, and on main, whose text names no clock, as the same calendar period, so the two locks agree.
What we ask the specification to state
List the values of frequency_cap.period: the OpenDirect 2.1 Line.frequencyinterval intervals, hour | day | week | month | flight. Here flight is OpenDirect's LineDuration, the commitment's flight. Say that hour, day, week, and month are calendar periods on the line item's clock, as #123 does. A day then runs from midnight to midnight, not for 24 hours, and a week starts on Monday. Say that flight runs from the flight's start to its end, which are points in time.
The specification lines it rests on
Each line is quoted as the record pins it. Expand an item to read the quote.
main
§ 5.5, the
frequency_caprow's description: the inline object L261 at 44dfaaf{ max: { min, max }, period, basis: device | household | listener }
With the open PRs
§ 5.5, the
frequency_caprow's description: the inline object L254 on main at 981a74e{ max: { min, max }, period, basis: device | household | listener }
§ 5.5, a sentence L281 in #123
Like the calendar Day of OpenDirect 2.1
Line.frequencyinterval,frequency_cap.periodis a calendar period intime_zone; weeks start on Monday.
What it shapes
main: FrequencyCap, FrequencyCapPeriod, FrequencyCap.basis, FrequencyCap.max, FrequencyCap.period
With the open PRs: FrequencyCap, FrequencyCapPeriod, FrequencyCap.basis, FrequencyCap.max, FrequencyCap.period