diff --git a/spec.bs b/spec.bs
index 65296febd..41a197165 100644
--- a/spec.bs
+++ b/spec.bs
@@ -1772,11 +1772,11 @@ following steps. They return a failure if failing to fetch the script or wasm, o
1. Let |igGenerateBid| be the result of [=building an interest group passed to generateBid=] with
|ig|.
1. Set |browserSignals|["{{BiddingBrowserSignals/joinCount}}"] to the sum of |ig|'s
- [=interest group/join counts=] for all days within the last 30 days.
+ [=interest group/join counts=] for all days within the last 30 days in UTC, inclusive.
1. Set |browserSignals|["{{BiddingBrowserSignals/recency}}"] to the [=current coarsened wall
time=] minus |ig|'s [=interest group/join time=], in milliseconds.
1. [=map/Set=] |browserSignals|["{{BiddingBrowserSignals/bidCount}}"] to the sum of |ig|'s
- [=interest group/bid counts=] for all days within the last 30 days.
+ [=interest group/bid counts=] for all days within the last 30 days in UTC, inclusive.
1. [=map/Set=] |browserSignals|["{{BiddingBrowserSignals/adComponentsLimit}}"] to 40.
1. [=map/Set=] |browserSignals|["{{BiddingBrowserSignals/multiBidLimit}}"] to |multiBidLimit|.
1. Let |prevWins| be a new [=sequence=]<{{PreviousWin}}>
.
@@ -3604,10 +3604,16 @@ A server auction browser signals is a [=struct=] with the following [
: bid count
:: A count of the number of bids for this interest group in the last 30 days.
- Calculated by summing the [=interest group/bid counts=] for all days within the last 30 days.
+ Calculated by summing the [=interest group/bid counts=].
+
+ NOTE: Since bid counts are kept by UTC day, interest groups that live long enough will have
+ early bid history expire before the interest group expires.
: join count
- :: A count of the number of joins for this interest group in the last 30 days.
+ :: A count of the number of joins for this interest group in the last 30 UTC days, inclusive.
Calculated by summing the [=interest group/join counts=].
+
+ NOTE: Since bid counts are kept by UTC day, interest groups that live long enough will have
+ early join history expire before the interest group expires.
: recency ms
:: A [=duration=], in milliseconds, representing the [=current coarsened wall time=] at
the time this object was constructed minus the corresponding [=interest group=]'s
@@ -3846,9 +3852,11 @@ The getInterestGroupAdAuctionData(|configIDL|) m
1. [=list/Append=] |serverPrevWin| to |prevWins|.
1. Let |browserSignals| be a new [=server auction browser signals=] with the following [=struct/items=]:
: [=server auction browser signals/bid count=]
- :: the sum of |ig|'s [=interest group/bid counts=] with a bid day within the last 30 days
+ :: the sum of |ig|'s [=interest group/bid counts=] with a bid day within the last 30 UTC days,
+ inclusive.
: [=server auction browser signals/join count=]
- :: the sum of |ig|'s [=interest group/join counts=] with a join day within the last 30 days
+ :: the sum of |ig|'s [=interest group/join counts=] with a join day within the last 30 UTC
+ days, inclusive.
: [=server auction browser signals/recency ms=]
:: the [=current coarsened wall time=] minus |ig|'s [=interest group/join time=] in
millseconds
@@ -5248,8 +5256,10 @@ dictionary StorageInterestGroup : AuctionAdInterestGroup {
1. Let |encoded| be the result of running [=forgiving-base64 encode=] with |ig|'s [=interest group/additional bid key=].
1. If |encoded| is failure, then return failure.
1. [=map/Set=] |resultIg|["{{AuctionAdInterestGroup/additionalBidKey}}"] to the result of running [=forgiving-base64 encode=] with |ig|'s [=interest group/additional bid key=].
- 1. [=map/Set=] |resultIg|["{{StorageInterestGroup/joinCount}}"] to the sum of |ig|'s [=interest group/join counts=] for all days within the last 30 days.
- 1. [=map/Set=] |resultIg|["{{StorageInterestGroup/bidCount}}"] to the sum of |ig|'s [=interest group/bid counts=] for all days within the last 30 days.
+ 1. [=map/Set=] |resultIg|["{{StorageInterestGroup/joinCount}}"] to the sum of |ig|'s [=interest
+ group/join counts=] for all days within the last 30 UTC days, inclusive.
+ 1. [=map/Set=] |resultIg|["{{StorageInterestGroup/bidCount}}"] to the sum of |ig|'s [=interest
+ group/bid counts=] for all days within the last 30 UTC days, inclusive.
1. Let |resultPrevWins| be a new [=sequence=]<{{PreviousWin}}>
.
1. [=list/For each=] |prevWin| of |ig|'s [=interest group/previous wins=] for all days within the
the last 30 days: