Effort: standard
Some sub-fields are accelerating (new hypothesis-per-week rate
spiking, new debates being spawned, new papers ingested), some
are dormant. Research funders, journalists, and senior PIs all
want to know "where is the action moving?" — but SciDEX surfaces
no per-sub-field velocity signal.
Build a Research-Front Velocity Meter: a per-sub-field
scalar (hypotheses per week + papers per week + debates per week,
weighted) plus a 12-week trend, plus a "hot fronts" leaderboard.
The meter drives the hero of whats-changed and gives every
intro page a "field heat" badge.
scidex/atlas/research_front_velocity.py:compute_velocity(field_slug: str, window_weeks: int = 4)
-> dict returns {velocity_score, components:
{new_hyps_per_week, new_papers_per_week,
new_debates_per_week, new_open_questions_per_week},
trend_12w: list[float], pct_rank_among_all_fields,
velocity_band: 'cold'|'warm'|'hot'|'red-hot'}.recompute_all_fields() walks the field registry andfield_velocity_snapshots.
field_velocity_snapshots with (field_slug,(field_slug, computed_at DESC).
velocity = 0.4 z(new_hyps) + 0.3 z(new_papers) +
0.2 z(new_debates) + 0.1 z(new_open_questions)cold, 25-50 = warm,hot, 80+ = red-hot.
GET /research-fronts page shows leaderboard of all/intro/{field-slug}.
/intro/{field-slug}/field-trends/{field-slug} (q-time-field-time-series)scidex-field-velocity-daily.timersenate_alerts.
q-edu-intro-to-field.
scipy.stats.zscore if available, else aq-synth-whats-changed.
q-edu-intro-to-field — field registry.q-time-field-time-series — embeds the badge.q-synth-whats-changed — sparkline component reuse.