source-cooperative / source-cooperative/source.coop
fix(analytics): use "Requests" instead of "Downloads" where technically appropriate
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 26
- Forks
- 9
- Avg merge
- 1d 7h
- Merged PRs (30d)
- 42
Description
Problem
The analytics UI currently uses the term Downloads throughout. For cloud-native formats (COGs, Zarr, GeoParquet, PMTiles, etc.), users access data via HTTP range requests — not full file downloads. A single "download" of a large COG may generate hundreds of HTTP 206 (partial content) range requests.
Labeling all access as "Downloads" is misleading:
- It implies users retrieved entire files, which is often not the case.
- It understates actual usage (a dataset accessed heavily via range requests looks like zero downloads).
- It conflates two meaningfully different access patterns that the data proxy already distinguishes via `status_code` (200 vs 206).
Proposed Change
Use Requests (or a context-appropriate equivalent) as the primary label for HTTP access counts, reserving Downloads only for cases where a full file transfer is confirmed (HTTP 200, no range request).
Suggested terminology
| Metric | Current label | Proposed label |
|---|---|---|
| Total HTTP access count | Downloads | Requests |
| HTTP 200 (full file) count | Downloads | Downloads |
| HTTP 206 (range request) count | (not shown separately) | Range requests |
The proxy already captures `status_code`, so the data needed to split these is available (see #257).
References
- #257 — the analytics feature where both terms appear; the 200 vs 206 split is called out in the V1 proposal but the UI label was never revisited.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the analytics feature in #257 and tracing how the analytics UI consumes the data proxy's status_code values. Update the terminology so total HTTP access is shown as Requests, full HTTP 200 transfers as Downloads, and HTTP 206 access as Range requests; verify the relevant analytics views and counts distinguish these cases.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- analytics, frontend
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 68/100