Skip to content

feat(awards): group the award list by funder, and lead with the funder - #541

Merged
robsv merged 1 commit into
mainfrom
feature-awards-grouping
Oct 8, 2026
Merged

robsv merged 1 commit into
mainfrom
feature-awards-grouping

Conversation

@robsv

@robsv robsv commented Oct 8, 2026

Copy link
Copy Markdown
Collaborator

The award table now reads Funder, Award, DOIs. The funder is what someone scans for, and it was in the second column.

Adds a grouped view at /awards?group=funder: one row per funder with its award count and the number of distinct DOIs those awards produced, 667 rows against 3,840. The funder links through to /awards?funder=, which already existed, so the grouped view is a way in rather than a new report.

The view switch follows the house pattern - a bold label and the other view as a link - rather than a pair of Bootstrap buttons. The view you are on is plain text: a primary button linking to the page it is already on reads as an action and does nothing. It is only offered on the unfiltered page, since narrowed to one funder, grouping by funder is a table of one row.

Grouping resolves a funder three ways, in order:

By ID, where the deposit carried one.

By exact name, where it did not: an entry named "Medical Research Council" with no identifier is not a second council, and it used to sit beside the real one as its own row. Exact string equality only, never similarity - that is what keeps "Wellcome" (100004440) out of "Wellcome Trust" (100010269), which are different registry entries. This folds 67 award rows into the funder they belong to.

Not at all, for the eight registry names that belong to two funders apiece. "Human Frontier Science Program" is both 100004412 and 501100000854 and nothing in a deposit says which was meant, so those stay unresolved rather than being assigned to whichever came back first.

An identified group is labelled with the registry's own name rather than whichever spelling a deposit used. Two deposits can both type "Wellcome Trust" while carrying different IDs, which rendered as two identical rows with no way to tell them apart; the registry calls those Wellcome Trust and Wellcome. Where a registry name genuinely is shared, the row carries its ID.

245 groups still have no identifier - "NIH" among them, ninth with 104 awards across 45 DOIs. That is a real gap in the harvested data, and the page shows it rather than papering over it in the presentation layer. Resolving it belongs in the funder lookup, where it would also correct the /funders totals and funder membership.

Each view downloads its own file, and both carry the funder ID as a column. The table conveys it by linking the funder name; a file cannot, and without it an unidentified row reads the same as a resolved one - "NIH 104 45" beside "National Institutes of Health 804 458" - so anything summing the file would count that funder twice.

@stuarteberg

The award table now reads Funder, Award, DOIs. The funder is what someone
scans for, and it was in the second column.

Adds a grouped view at /awards?group=funder: one row per funder with its
award count and the number of distinct DOIs those awards produced, 667 rows
against 3,840. The funder links through to /awards?funder=<id>, which
already existed, so the grouped view is a way in rather than a new report.

The view switch follows the house pattern - a bold label and the other view
as a link - rather than a pair of Bootstrap buttons. The view you are on is
plain text: a primary button linking to the page it is already on reads as
an action and does nothing. It is only offered on the unfiltered page, since
narrowed to one funder, grouping by funder is a table of one row.

Grouping resolves a funder three ways, in order:

By ID, where the deposit carried one.

By exact name, where it did not: an entry named "Medical Research Council"
with no identifier is not a second council, and it used to sit beside the
real one as its own row. Exact string equality only, never similarity -
that is what keeps "Wellcome" (100004440) out of "Wellcome Trust"
(100010269), which are different registry entries. This folds 67 award
rows into the funder they belong to.

Not at all, for the eight registry names that belong to two funders apiece.
"Human Frontier Science Program" is both 100004412 and 501100000854 and
nothing in a deposit says which was meant, so those stay unresolved rather
than being assigned to whichever came back first.

An identified group is labelled with the registry's own name rather than
whichever spelling a deposit used. Two deposits can both type "Wellcome
Trust" while carrying different IDs, which rendered as two identical rows
with no way to tell them apart; the registry calls those Wellcome Trust and
Wellcome. Where a registry name genuinely is shared, the row carries its ID.

245 groups still have no identifier - "NIH" among them, ninth with 104
awards across 45 DOIs. That is a real gap in the harvested data, and the
page shows it rather than papering over it in the presentation layer.
Resolving it belongs in the funder lookup, where it would also correct the
/funders totals and funder membership.

Each view downloads its own file, and both carry the funder ID as a column.
The table conveys it by linking the funder name; a file cannot, and without
it an unidentified row reads the same as a resolved one - "NIH 104 45"
beside "National Institutes of Health 804 458" - so anything summing the
file would count that funder twice.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@robsv robsv self-assigned this Oct 8, 2026
@robsv robsv added the enhancement New feature or request label Oct 8, 2026
@robsv
robsv merged commit aa3e9de into main Oct 8, 2026
2 checks passed
@robsv
robsv deleted the feature-awards-grouping branch October 8, 2026 14:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant