{"schema":1,"generated_at":"2026-07-14T10:07:34+00:00","coverage":{"cards":[{"id":"topic-history","label":"Topic history","status":"census + live","value":"32 tracked topics","detail":"2007–2026 annual title shares; 8 tracked topics have no linked forward-capture story."},{"id":"frontpage","label":"Front-page paths","status":"directional","value":"24 captured days","detail":"Top 30 only; 2,111 stories; 1 missing UTC dates."},{"id":"surfaces","label":"Ask / Show / Jobs","status":"accruing","value":"63.2 observed hours","detail":"196 snapshots; 7- and 30-day comparisons remain gated until reached."},{"id":"comments","label":"Comment themes","status":"directional sample","value":"1,816 embedded comments","detail":"19 yearly samples through 2025."},{"id":"community","label":"Community structure","status":"aggregate only","value":"Data through 2026-07-14","detail":"No handles, individual rankings, inferred identities, or public comment text."},{"id":"semantic","label":"Open-vocabulary discovery","status":"experimental","value":"2,500 embedded titles","detail":"10 reviewed candidates shown; 14 unreviewed clusters withheld. They complement—never replace—the stable curated topic series."},{"id":"linked-sources","label":"Linked articles","status":"aggregate descriptive","value":"177,007 local summaries","detail":"264,856 fetch attempts; framing measures lexical title-to-summary overlap only."},{"id":"jobs","label":"Jobs intelligence","status":"historical descriptive","value":"114,418 analyzed records","detail":"Official HN Jobs and top-level Who is hiring? entries remain separate; no posting text or handles are published."}],"not_observable":["Historical front-page rank paths before capture began","Impressions, clicks, voter identities, or vote timing","Why an item was moderated, flagged, deleted, or downranked","Time outside the captured top 30"]},"lifecycle":{"status":"directional","funnel":[{"label":"Captured in top 30","n":2111},{"label":"Multiple observations","n":1975},{"label":"Velocity eligible","n":1968},{"label":"Continuous segment 12+ hours","n":250}],"distributions":[{"id":"time_to_best_hours","label":"Cumulative observed time to best rank","unit":"hours","n":2111,"p10":0.0,"p25":0.17,"p50":0.49,"p75":1.08,"p90":2.1},{"id":"after_best_hours","label":"Cumulative observed time after best rank","unit":"hours","n":2111,"p10":0.0,"p25":0.72,"p50":3.44,"p75":8.5,"p90":14.31},{"id":"reentries","label":"Capture re-entries","unit":"count","n":2111,"p10":0.0,"p25":0.0,"p50":0.0,"p75":1.0,"p90":3.0},{"id":"rank_direction_changes","label":"Rank-direction changes","unit":"count","n":2111,"p10":0.0,"p25":1.0,"p50":6.0,"p75":14.0,"p90":23.0},{"id":"score_half_hours","label":"Cumulative observed time to half score gain","unit":"hours","n":1936,"p10":0.26,"p25":0.72,"p50":1.79,"p75":3.42,"p90":5.15},{"id":"comment_half_hours","label":"Cumulative observed time to half comment gain","unit":"hours","n":1851,"p10":0.36,"p25":0.84,"p50":1.95,"p75":3.78,"p90":5.73},{"id":"discussion_lag_hours","label":"Comment half-gain lag vs score","unit":"hours","n":1845,"p10":-0.73,"p25":-0.18,"p50":0.0,"p75":0.54,"p90":1.36}],"by_post_type":[{"id":"link","stories":1854,"median_best_rank":8.0,"median_observed_hours":4.68,"median_time_to_best_hours":0.53,"median_comments":36.0},{"id":"show","stories":173,"median_best_rank":12.0,"median_observed_hours":3.68,"median_time_to_best_hours":0.43,"median_comments":14.0},{"id":"text","stories":60,"median_best_rank":12.5,"median_observed_hours":0.0,"median_time_to_best_hours":0.0,"median_comments":1.0},{"id":"ask","stories":24,"median_best_rank":14.0,"median_observed_hours":1.52,"median_time_to_best_hours":0.36,"median_comments":36.5}],"by_pattern":[{"id":"steady-climb","stories":1059,"median_best_rank":8.0,"median_observed_hours":6.53,"median_time_to_best_hours":0.72,"median_comments":36.0},{"id":"brief-visibility","stories":591,"median_best_rank":17.0,"median_observed_hours":0.53,"median_time_to_best_hours":0.0,"median_comments":4.0},{"id":"long-burn","stories":235,"median_best_rank":3.0,"median_observed_hours":16.52,"median_time_to_best_hours":0.92,"median_comments":110.0},{"id":"debate-heavy","stories":130,"median_best_rank":2.0,"median_observed_hours":2.34,"median_time_to_best_hours":0.4,"median_comments":156.0},{"id":"fast-breakout","stories":96,"median_best_rank":3.0,"median_observed_hours":1.08,"median_time_to_best_hours":0.36,"median_comments":36.0}],"coverage":{"first":"2026-06-19","last":"2026-07-13","captured_days":24,"missing_dates":["2026-07-05"],"scope":"Forward-captured top 30 only; elapsed times use only within-segment observation. Gaps contribute zero and are never interpolated."},"timing_basis":"Cumulative observation clock: only adjacent points inside the same capture segment advance elapsed time."},"comments":{"status":"directional","themes":[{"id":0,"label":"Consumer platforms","raw_label":"iphone · microsoft · windows","series":[7.95,19.79,9.38,15.62,6.25,14.58,10.42,10.42,11.46,9.38,12.5,9.38,15.62,12.5,8.33,9.38,6.25,5.21,6.25],"latest_share":6.25,"earliest_share":7.95,"change_points":-1.7,"peak_share":19.79,"peak_year":2008},{"id":1,"label":"Careers and startups","raw_label":"hiring · intern · startup","series":[21.59,14.58,10.42,10.42,14.58,9.38,6.25,5.21,6.25,7.29,7.29,10.42,3.12,9.38,12.5,5.21,7.29,2.08,5.21],"latest_share":5.21,"earliest_share":21.59,"change_points":-16.38,"peak_share":21.59,"peak_year":2007},{"id":2,"label":"Programming languages","raw_label":"syntax · c++ · code.","series":[10.23,7.29,13.54,7.29,11.46,10.42,10.42,14.58,11.46,13.54,10.42,7.29,6.25,11.46,7.29,4.17,13.54,16.67,16.67],"latest_share":16.67,"earliest_share":10.23,"change_points":6.44,"peak_share":16.67,"peak_year":2024},{"id":3,"label":"Web infrastructure","raw_label":"api · server · static","series":[12.5,4.17,11.46,7.29,16.67,7.29,5.21,14.58,9.38,5.21,4.17,9.38,6.25,11.46,6.25,8.33,4.17,10.42,6.25],"latest_share":6.25,"earliest_share":12.5,"change_points":-6.25,"peak_share":16.67,"peak_year":2011},{"id":4,"label":"Economics and policy","raw_label":"income · money · tax","series":[6.82,10.42,14.58,10.42,6.25,9.38,10.42,10.42,13.54,11.46,22.92,11.46,17.71,11.46,15.62,13.54,17.71,13.54,14.58],"latest_share":14.58,"earliest_share":6.82,"change_points":7.76,"peak_share":22.92,"peak_year":2017},{"id":5,"label":"Communities and identity","raw_label":"reddit · identify · grade","series":[14.77,14.58,10.42,15.62,9.38,12.5,13.54,5.21,10.42,7.29,8.33,10.42,6.25,4.17,10.42,11.46,3.12,11.46,5.21],"latest_share":5.21,"earliest_share":14.77,"change_points":-9.56,"peak_share":15.62,"peak_year":2010},{"id":6,"label":"Government and society","raw_label":"crime · government · police","series":[3.41,4.17,4.17,5.21,9.38,6.25,15.62,10.42,9.38,15.62,11.46,11.46,9.38,13.54,13.54,15.62,7.29,10.42,11.46],"latest_share":11.46,"earliest_share":3.41,"change_points":8.05,"peak_share":15.62,"peak_year":2013},{"id":7,"label":"Personal experience","raw_label":"pain · touched · routine","series":[4.55,10.42,4.17,5.21,6.25,8.33,8.33,10.42,12.5,8.33,10.42,10.42,10.42,12.5,11.46,14.58,18.75,13.54,14.58],"latest_share":14.58,"earliest_share":4.55,"change_points":10.03,"peak_share":18.75,"peak_year":2023},{"id":8,"label":"Security and abuse","raw_label":"attack · reddit · password","series":[10.23,8.33,6.25,11.46,11.46,10.42,8.33,11.46,8.33,11.46,9.38,10.42,11.46,8.33,8.33,11.46,13.54,8.33,9.38],"latest_share":9.38,"earliest_share":10.23,"change_points":-0.85,"peak_share":13.54,"peak_year":2023},{"id":9,"label":"Sources and evidence","raw_label":"news.ycombinator.com · en.wikipedia.org · web.archive.org","series":[7.95,6.25,15.62,11.46,8.33,11.46,11.46,7.29,7.29,10.42,3.12,9.38,13.54,5.21,6.25,6.25,8.33,8.33,10.42],"latest_share":10.42,"earliest_share":7.95,"change_points":2.47,"peak_share":15.62,"peak_year":2009}],"years":[{"year":2007,"sample_n":88,"drift":null,"shares":[7.95,21.59,10.23,12.5,6.82,14.77,3.41,4.55,10.23,7.95]},{"year":2008,"sample_n":96,"drift":0.0542,"shares":[19.79,14.58,7.29,4.17,10.42,14.58,4.17,10.42,8.33,6.25]},{"year":2009,"sample_n":96,"drift":0.0669,"shares":[9.38,10.42,13.54,11.46,14.58,10.42,4.17,4.17,6.25,15.62]},{"year":2010,"sample_n":96,"drift":0.031,"shares":[15.62,10.42,7.29,7.29,10.42,15.62,5.21,5.21,11.46,11.46]},{"year":2011,"sample_n":96,"drift":0.0504,"shares":[6.25,14.58,11.46,16.67,6.25,9.38,9.38,6.25,11.46,8.33]},{"year":2012,"sample_n":96,"drift":0.0395,"shares":[14.58,9.38,10.42,7.29,9.38,12.5,6.25,8.33,10.42,11.46]},{"year":2013,"sample_n":96,"drift":0.0222,"shares":[10.42,6.25,10.42,5.21,10.42,13.54,15.62,8.33,8.33,11.46]},{"year":2014,"sample_n":96,"drift":0.0431,"shares":[10.42,5.21,14.58,14.58,10.42,5.21,10.42,10.42,11.46,7.29]},{"year":2015,"sample_n":96,"drift":0.0165,"shares":[11.46,6.25,11.46,9.38,13.54,10.42,9.38,12.5,8.33,7.29]},{"year":2016,"sample_n":96,"drift":0.0212,"shares":[9.38,7.29,13.54,5.21,11.46,7.29,15.62,8.33,11.46,10.42]},{"year":2017,"sample_n":96,"drift":0.0367,"shares":[12.5,7.29,10.42,4.17,22.92,8.33,11.46,10.42,9.38,3.12]},{"year":2018,"sample_n":96,"drift":0.04,"shares":[9.38,10.42,7.29,9.38,11.46,10.42,11.46,10.42,10.42,9.38]},{"year":2019,"sample_n":96,"drift":0.0356,"shares":[15.62,3.12,6.25,6.25,17.71,6.25,9.38,10.42,11.46,13.54]},{"year":2020,"sample_n":96,"drift":0.0497,"shares":[12.5,9.38,11.46,11.46,11.46,4.17,13.54,12.5,8.33,5.21]},{"year":2021,"sample_n":96,"drift":0.0264,"shares":[8.33,12.5,7.29,6.25,15.62,10.42,13.54,11.46,8.33,6.25]},{"year":2022,"sample_n":96,"drift":0.0199,"shares":[9.38,5.21,4.17,8.33,13.54,11.46,15.62,14.58,11.46,6.25]},{"year":2023,"sample_n":96,"drift":0.0625,"shares":[6.25,7.29,13.54,4.17,17.71,3.12,7.29,18.75,13.54,8.33]},{"year":2024,"sample_n":96,"drift":0.0524,"shares":[5.21,2.08,16.67,10.42,13.54,11.46,10.42,13.54,8.33,8.33]},{"year":2025,"sample_n":96,"drift":0.0193,"shares":[6.25,5.21,16.67,6.25,14.58,5.21,11.46,14.58,9.38,10.42]}],"sample_n":1816,"sample_contract":{"version":"monthly8-mod97-v1","per_month_target":8,"years":[2007,2025],"note":"fixed monthly-stratified sample; shares only across eras"},"method":"Editorial display names summarize the artifact's three dominant cluster terms; they are navigation labels, not ground-truth classifications. The fixed sample selects up to eight retained comments of at least 80 characters per calendar month using a stable ID bucket; yearly denominators are shown and no population-level uncertainty interval is implied. Topic shares describe the fixed comment sample, not all HN comments. Cross-year comparisons use normalized shares within the same capture/sample contract."},"thread_evolution":[{"year":2007,"total":72534,"d1_pct":48.5,"d2_pct":24.1,"d3_pct":12.8,"d4plus_pct":14.6,"reply_pct":38.8},{"year":2008,"total":245850,"d1_pct":43.0,"d2_pct":25.1,"d3_pct":14.4,"d4plus_pct":17.5,"reply_pct":41.0},{"year":2009,"total":484733,"d1_pct":37.9,"d2_pct":26.5,"d3_pct":15.9,"d4plus_pct":19.7,"reply_pct":43.0},{"year":2010,"total":838691,"d1_pct":35.4,"d2_pct":26.7,"d3_pct":16.7,"d4plus_pct":21.1,"reply_pct":43.4},{"year":2011,"total":1032983,"d1_pct":34.3,"d2_pct":26.8,"d3_pct":16.9,"d4plus_pct":22.1,"reply_pct":43.0},{"year":2012,"total":1241397,"d1_pct":31.4,"d2_pct":26.9,"d3_pct":17.5,"d4plus_pct":24.2,"reply_pct":43.7},{"year":2013,"total":1655044,"d1_pct":28.7,"d2_pct":26.1,"d3_pct":17.9,"d4plus_pct":27.2,"reply_pct":44.5},{"year":2014,"total":1505930,"d1_pct":28.5,"d2_pct":26.6,"d3_pct":18.2,"d4plus_pct":26.7,"reply_pct":44.4},{"year":2015,"total":1643549,"d1_pct":27.0,"d2_pct":25.8,"d3_pct":18.3,"d4plus_pct":28.8,"reply_pct":45.0},{"year":2016,"total":2093052,"d1_pct":23.4,"d2_pct":24.4,"d3_pct":18.8,"d4plus_pct":33.4,"reply_pct":46.1},{"year":2017,"total":2362168,"d1_pct":21.9,"d2_pct":24.3,"d3_pct":19.1,"d4plus_pct":34.8,"reply_pct":46.3},{"year":2018,"total":2384593,"d1_pct":21.4,"d2_pct":24.2,"d3_pct":19.4,"d4plus_pct":35.0,"reply_pct":46.4},{"year":2019,"total":2754928,"d1_pct":20.9,"d2_pct":24.0,"d3_pct":19.4,"d4plus_pct":35.6,"reply_pct":46.2},{"year":2020,"total":3244054,"d1_pct":20.7,"d2_pct":23.4,"d3_pct":19.2,"d4plus_pct":36.7,"reply_pct":46.2},{"year":2021,"total":3763751,"d1_pct":20.4,"d2_pct":23.1,"d3_pct":19.0,"d4plus_pct":37.5,"reply_pct":46.3},{"year":2022,"total":4057429,"d1_pct":22.0,"d2_pct":23.3,"d3_pct":18.7,"d4plus_pct":36.0,"reply_pct":45.6},{"year":2023,"total":4219674,"d1_pct":21.8,"d2_pct":23.6,"d3_pct":18.9,"d4plus_pct":35.8,"reply_pct":45.7},{"year":2024,"total":3344354,"d1_pct":24.0,"d2_pct":23.5,"d3_pct":18.1,"d4plus_pct":34.3,"reply_pct":45.2},{"year":2025,"total":3492121,"d1_pct":23.2,"d2_pct":22.7,"d3_pct":18.0,"d4plus_pct":36.1,"reply_pct":45.1}],"semantic_topics":{"status":"experimental","embedded_titles":2500,"topics":[{"label":"AI and agent systems","size":143,"share":5.7,"avg_score":377.4,"coherence":0.757,"examples":["Expertise in the age of AI","AI is code – and can't be prompted into being smarter","AI has a multiplying effect on existing technical skills"],"raw_label":"ai · google · agent","review_state":"human-reviewed"},{"label":"Open-source work and sustainability","size":142,"share":5.7,"avg_score":278.8,"coherence":0.734,"examples":["Show HN: Open-source Workspace (mail,docs,spreadsheet,drive) web/iOS","Show HN: Homebrew 6.0.0","Show HN: HN Resume to Jobs – AI Powered Job Matching Tailored to Your Resume"],"raw_label":"open-source · hired · web","review_state":"human-reviewed"},{"label":"Open-source tools and GitHub","size":116,"share":4.6,"avg_score":262.0,"coherence":0.7,"examples":["Lore – Open source version control system designed for scalability","Codex for open source","Czech Republic: Petition for open source in public administration"],"raw_label":"source · open-source · github","review_state":"human-reviewed"},{"label":"Web platforms and browsers","size":109,"share":4.4,"avg_score":285.0,"coherence":0.671,"examples":["Web Applications from the Future: A Database in the Browser","The modern web on a slow connection (2017)","Show HN: Uruky (EU-based Kagi alternative) now has Image Search and URL Rewrites"],"raw_label":"web · browser · google","review_state":"human-reviewed"},{"label":"Health and science","size":98,"share":3.9,"avg_score":274.8,"coherence":0.679,"examples":["In a small trial, drugs seemed to rejuvenate the body’s ‘epigenetic clock’ (2019)","Scientists Discover Ways of Making Old Blood New Again","LSD microdosing does not appear to improve mood or cognitive ability: study"],"raw_label":"brain · study · cancer","review_state":"human-reviewed"},{"label":"Apple and macOS","size":87,"share":3.5,"avg_score":347.3,"coherence":0.713,"examples":["Apple unveils new Mac Studio and brings Apple Silicon to Mac Pro","WWDC 2026: Apple is Folding","Apple Vision Pro: Apple’s first spatial computer"],"raw_label":"apple · macos · pro","review_state":"human-reviewed"},{"label":"Games and engines","size":84,"share":3.4,"avg_score":303.9,"coherence":0.671,"examples":["TinyWind: A pixel pirate sailing game with real wind physics (380k+ kms sailed)","Pirates, a naval warfare game inspired by Sid Meier's Pirates","Earthion: A New Mega Drive-Style Shoot-Em-Up"],"raw_label":"game · games · engine","review_state":"human-reviewed"},{"label":"Linux and systems","size":63,"share":2.5,"avg_score":286.7,"coherence":0.698,"examples":["A monolithic operating system in 512 bytes of x86 machine code","Unicorn – The Ultimate CPU Emulator","Linux Basics for Hackers (2019)"],"raw_label":"linux · intel · system","review_state":"human-reviewed"},{"label":"Claude and coding tools","size":55,"share":2.2,"avg_score":358.9,"coherence":0.693,"examples":["Claude Code – Everything you can configure that the docs don't tell you","Claude Code as a Daily Driver: Claude.md, Skills, Subagents, Plugins, and MCPs","Claude: Elevated errors across many models [resolved]"],"raw_label":"claude · code · fable","review_state":"human-reviewed"},{"label":"Rust and language tooling","size":30,"share":1.2,"avg_score":226.5,"coherence":0.752,"examples":["From Rust to Ruby","Announcing Rust 1.96","One year of Roto, a compiled scripting language for Rust"],"raw_label":"rust · ruby · hard","review_state":"human-reviewed"}],"reviewed_topics":10,"withheld_topics":14,"method":"Spherical k-means over the dominant retained title-embedding space. Examples are the titles nearest each cluster center. Only coherent candidates with human-reviewed display names are shown; unreviewed clusters are withheld. This is a discovery queue, not a complete census or stable longitudinal taxonomy."},"source_framing":{"status":"aggregate descriptive","attempted_links":264856,"summarized_links":177007,"availability":[{"label":"Readable live","n":176836,"share_pct":66.8},{"label":"Readable via archive","n":171,"share_pct":0.1},{"label":"Paywall / thin page","n":21153,"share_pct":8.0},{"label":"Denied / rate-limited","n":29856,"share_pct":11.3},{"label":"Unavailable","n":17300,"share_pct":6.5},{"label":"Non-article / empty","n":3991,"share_pct":1.5},{"label":"Other fetch error","n":15549,"share_pct":5.9}],"alignment":[{"label":"High lexical alignment","n":102907,"share_pct":58.1},{"label":"Partial lexical alignment","n":49335,"share_pct":27.9},{"label":"Low lexical alignment","n":20615,"share_pct":11.6},{"label":"Insufficient title terms","n":4150,"share_pct":2.3}],"framing_cues":[{"label":"No selected cue","stories":113520,"median_alignment_pct":66.7,"average_score":209.6,"average_comments":108.8,"breakout_pct":75.3},{"label":"Contains a number","stories":39730,"median_alignment_pct":66.7,"average_score":201.1,"average_comments":107.8,"breakout_pct":75.0},{"label":"First person","stories":10523,"median_alignment_pct":50.0,"average_score":264.3,"average_comments":146.4,"breakout_pct":80.8},{"label":"How / why","stories":6031,"median_alignment_pct":50.0,"average_score":195.4,"average_comments":109.4,"breakout_pct":75.7},{"label":"Question","stories":5987,"median_alignment_pct":50.0,"average_score":195.8,"average_comments":143.9,"breakout_pct":72.8},{"label":"Quoted","stories":1216,"median_alignment_pct":60.0,"average_score":208.3,"average_comments":130.6,"breakout_pct":75.8}],"framing_cue_assignment":{"exclusive":true,"priority":["Question","First person","How / why","Quoted","Contains a number","No selected cue"],"note":"Each title receives the first matching cue; No selected cue is the fallback."},"domains":[{"domain":"github.com","summaries":14775,"attempts":16005,"summary_coverage_pct":92.3,"median_alignment_pct":75.0},{"domain":"techcrunch.com","summaries":3271,"attempts":3318,"summary_coverage_pct":98.6,"median_alignment_pct":66.7},{"domain":"theguardian.com","summaries":2549,"attempts":2559,"summary_coverage_pct":99.6,"median_alignment_pct":57.1},{"domain":"bbc.com","summaries":2104,"attempts":2136,"summary_coverage_pct":98.5,"median_alignment_pct":60.0},{"domain":"wikipedia.org","summaries":1585,"attempts":1591,"summary_coverage_pct":99.6,"median_alignment_pct":100.0},{"domain":"arxiv.org","summaries":1516,"attempts":1543,"summary_coverage_pct":98.3,"median_alignment_pct":75.0},{"domain":"theverge.com","summaries":1362,"attempts":1379,"summary_coverage_pct":98.8,"median_alignment_pct":66.7},{"domain":"twitter.com","summaries":1302,"attempts":2949,"summary_coverage_pct":44.2,"median_alignment_pct":66.7},{"domain":"bbc.co.uk","summaries":1283,"attempts":1320,"summary_coverage_pct":97.2,"median_alignment_pct":62.5},{"domain":"google.com","summaries":1205,"attempts":2337,"summary_coverage_pct":51.6,"median_alignment_pct":62.5},{"domain":"npr.org","summaries":1166,"attempts":1176,"summary_coverage_pct":99.1,"median_alignment_pct":57.1},{"domain":"theatlantic.com","summaries":1130,"attempts":1158,"summary_coverage_pct":97.6,"median_alignment_pct":42.9},{"domain":"nature.com","summaries":1121,"attempts":1185,"summary_coverage_pct":94.6,"median_alignment_pct":62.5},{"domain":"wired.com","summaries":1034,"attempts":1499,"summary_coverage_pct":69.0,"median_alignment_pct":50.0}],"publisher_titles":{"status":"accruing","promoted":false,"promotion_threshold":5000,"remaining_to_promotion":2550,"captured":2450,"coverage_pct":1.38,"yearly_minimum":50,"yearly_withheld_pairs":121,"yearly":[{"year":2016,"pairs":126,"share_pct":5.1,"median_overlap_pct":60.0,"low_overlap_pct":31.0},{"year":2017,"pairs":160,"share_pct":6.5,"median_overlap_pct":71.4,"low_overlap_pct":26.2},{"year":2018,"pairs":189,"share_pct":7.7,"median_overlap_pct":66.7,"low_overlap_pct":30.2},{"year":2019,"pairs":229,"share_pct":9.3,"median_overlap_pct":61.5,"low_overlap_pct":23.1},{"year":2020,"pairs":266,"share_pct":10.9,"median_overlap_pct":66.7,"low_overlap_pct":26.7},{"year":2021,"pairs":267,"share_pct":10.9,"median_overlap_pct":75.0,"low_overlap_pct":22.5},{"year":2022,"pairs":236,"share_pct":9.6,"median_overlap_pct":68.3,"low_overlap_pct":23.3},{"year":2023,"pairs":280,"share_pct":11.4,"median_overlap_pct":66.7,"low_overlap_pct":20.7},{"year":2024,"pairs":143,"share_pct":5.8,"median_overlap_pct":75.0,"low_overlap_pct":23.8},{"year":2025,"pairs":201,"share_pct":8.2,"median_overlap_pct":66.7,"low_overlap_pct":23.9},{"year":2026,"pairs":232,"share_pct":9.5,"median_overlap_pct":61.3,"low_overlap_pct":25.9}],"alignment":[{"label":"Near-identical","n":921,"share_pct":37.6},{"label":"High overlap","n":457,"share_pct":18.7},{"label":"Partial overlap","n":457,"share_pct":18.7},{"label":"Low overlap","n":615,"share_pct":25.1}],"transformations":[{"label":"Question added","n":21,"share_pct":0.9},{"label":"First person added","n":64,"share_pct":2.6},{"label":"Number added","n":175,"share_pct":7.1},{"label":"HN title much shorter","n":569,"share_pct":23.2},{"label":"HN title much longer","n":288,"share_pct":11.8}],"method":"Direct comparison uses publisher og:title or document title captured from the same live or archived page. Overlap is token-set Jaccard similarity. Annual rows use UTC submission year and require at least 50 usable pairs. Uneven capture makes annual values a coverage audit, not a time trend. Length and cue changes are descriptive transformations, not judgments."},"method":"This is a coverage-biased corpus, not a probability sample: the acquisition queue has prioritized higher-scoring linked stories at configurable thresholds, so its engagement rates are not representative of all Hacker News submissions. Lexical alignment is the share of meaningful HN-title terms found in the locally generated article summary. It measures wording overlap—not accuracy, editorial intent, clickbait, or whether the HN title matches the publisher's original headline. Framing cues are mutually exclusive and use Question → First person → How / why → Quoted → Contains a number → No selected cue priority. Engagement differences are descriptive and confounded."},"jobs":{"status":"historical descriptive","corpora":[{"id":"official-jobs","label":"Official HN Jobs","records":17456,"years":[2007,2026],"last_full_year":2025,"yearly_minimum":100,"recent_window":[2021,2025],"recent_records":4331,"skills":[{"label":"JavaScript / TypeScript","mentions":208,"share_pct":4.8,"change_points":2.41},{"label":"AI / ML","mentions":168,"share_pct":3.88,"change_points":1.19},{"label":"React","mentions":114,"share_pct":2.63,"change_points":-1.37},{"label":"Python","mentions":80,"share_pct":1.85,"change_points":0.25},{"label":"SQL / Postgres","mentions":79,"share_pct":1.82,"change_points":1.32},{"label":"Rust","mentions":73,"share_pct":1.69,"change_points":1.2},{"label":"Cloud infrastructure","mentions":71,"share_pct":1.64,"change_points":0.75},{"label":"Mobile","mentions":69,"share_pct":1.59,"change_points":-1.14},{"label":"C / C++","mentions":17,"share_pct":0.39,"change_points":0.14},{"label":"Java / Kotlin","mentions":16,"share_pct":0.37,"change_points":-0.17},{"label":"Go","mentions":11,"share_pct":0.25,"change_points":-0.43}],"work_modes":[{"label":"Hybrid","count":10,"share_pct":0.2},{"label":"Remote mentioned","count":704,"share_pct":16.3},{"label":"On-site mentioned","count":88,"share_pct":2.0},{"label":"Not stated","count":3529,"share_pct":81.5}],"signals":{"compensation_pct":4.4,"visa_pct":1.1,"senior_pct":17.3,"early_career_pct":0.8},"geography":[{"label":"London","mentions":150,"share_pct":3.46},{"label":"San Francisco Bay Area","mentions":133,"share_pct":3.07},{"label":"New York City","mentions":72,"share_pct":1.66},{"label":"Paris","mentions":39,"share_pct":0.9},{"label":"Berlin","mentions":31,"share_pct":0.72},{"label":"India","mentions":20,"share_pct":0.46},{"label":"Boston","mentions":11,"share_pct":0.25},{"label":"Singapore","mentions":7,"share_pct":0.16},{"label":"Amsterdam","mentions":5,"share_pct":0.12},{"label":"Chicago","mentions":5,"share_pct":0.12}],"compensation":{"dollar_records":12,"dollar_coverage_pct":0.28,"dollar_bands":[{"label":"Under 100k","records":3,"share_pct":25.0},{"label":"100–149k","records":1,"share_pct":8.3},{"label":"150–199k","records":4,"share_pct":33.3},{"label":"200–249k","records":2,"share_pct":16.7},{"label":"250k+","records":2,"share_pct":16.7}],"other_currency_records":{"€":0,"£":13}},"yearly":[{"year":2007,"records":27,"remote_pct":0.0,"hybrid_pct":0.0,"compensation_pct":11.1,"visa_pct":0.0},{"year":2008,"records":44,"remote_pct":0.0,"hybrid_pct":0.0,"compensation_pct":18.2,"visa_pct":0.0},{"year":2009,"records":85,"remote_pct":3.5,"hybrid_pct":0.0,"compensation_pct":18.8,"visa_pct":0.0},{"year":2010,"records":220,"remote_pct":0.5,"hybrid_pct":0.0,"compensation_pct":8.2,"visa_pct":0.0},{"year":2011,"records":496,"remote_pct":1.8,"hybrid_pct":0.2,"compensation_pct":15.7,"visa_pct":0.2},{"year":2012,"records":695,"remote_pct":3.5,"hybrid_pct":0.7,"compensation_pct":24.0,"visa_pct":0.4},{"year":2013,"records":1056,"remote_pct":3.4,"hybrid_pct":0.5,"compensation_pct":27.1,"visa_pct":0.5},{"year":2014,"records":1552,"remote_pct":3.4,"hybrid_pct":0.0,"compensation_pct":16.7,"visa_pct":0.5},{"year":2015,"records":2183,"remote_pct":4.9,"hybrid_pct":0.4,"compensation_pct":8.6,"visa_pct":0.4},{"year":2016,"records":1513,"remote_pct":6.3,"hybrid_pct":0.1,"compensation_pct":4.0,"visa_pct":0.3},{"year":2017,"records":1576,"remote_pct":4.9,"hybrid_pct":0.4,"compensation_pct":4.6,"visa_pct":0.2},{"year":2018,"records":1469,"remote_pct":6.6,"hybrid_pct":0.1,"compensation_pct":7.6,"visa_pct":0.4},{"year":2019,"records":1117,"remote_pct":8.9,"hybrid_pct":0.0,"compensation_pct":6.1,"visa_pct":0.3},{"year":2020,"records":891,"remote_pct":14.9,"hybrid_pct":0.0,"compensation_pct":1.6,"visa_pct":1.3},{"year":2021,"records":1405,"remote_pct":17.8,"hybrid_pct":0.0,"compensation_pct":2.8,"visa_pct":0.1},{"year":2022,"records":981,"remote_pct":16.4,"hybrid_pct":0.3,"compensation_pct":4.6,"visa_pct":0.0},{"year":2023,"records":682,"remote_pct":19.8,"hybrid_pct":0.1,"compensation_pct":6.5,"visa_pct":3.2},{"year":2024,"records":733,"remote_pct":15.6,"hybrid_pct":0.3,"compensation_pct":4.8,"visa_pct":2.9},{"year":2025,"records":530,"remote_pct":8.3,"hybrid_pct":0.8,"compensation_pct":5.1,"visa_pct":0.4},{"year":2026,"records":201,"remote_pct":3.5,"hybrid_pct":0.5,"compensation_pct":4.5,"visa_pct":0.5}]},{"id":"who-is-hiring","label":"Who is hiring?","records":96962,"years":[2010,2026],"last_full_year":2025,"yearly_minimum":100,"recent_window":[2021,2025],"recent_records":30616,"skills":[{"label":"React","mentions":8545,"share_pct":27.91,"change_points":-9.77},{"label":"JavaScript / TypeScript","mentions":8371,"share_pct":27.34,"change_points":0.27},{"label":"Cloud infrastructure","mentions":7979,"share_pct":26.06,"change_points":-5.04},{"label":"Python","mentions":6888,"share_pct":22.5,"change_points":2.88},{"label":"SQL / Postgres","mentions":5813,"share_pct":18.99,"change_points":-1.51},{"label":"AI / ML","mentions":4052,"share_pct":13.23,"change_points":8.59},{"label":"Mobile","mentions":3104,"share_pct":10.14,"change_points":-5.66},{"label":"Java / Kotlin","mentions":2506,"share_pct":8.19,"change_points":-5.34},{"label":"Rust","mentions":1739,"share_pct":5.68,"change_points":2.75},{"label":"C / C++","mentions":1631,"share_pct":5.33,"change_points":-1.61},{"label":"Go","mentions":1364,"share_pct":4.46,"change_points":-1.88}],"work_modes":[{"label":"Hybrid","count":3347,"share_pct":10.9},{"label":"Remote mentioned","count":20748,"share_pct":67.8},{"label":"On-site mentioned","count":3442,"share_pct":11.2},{"label":"Not stated","count":3079,"share_pct":10.1}],"signals":{"compensation_pct":24.7,"visa_pct":6.2,"senior_pct":42.1,"early_career_pct":1.7},"geography":[{"label":"San Francisco Bay Area","mentions":3407,"share_pct":11.13},{"label":"New York City","mentions":2741,"share_pct":8.95},{"label":"London","mentions":1775,"share_pct":5.8},{"label":"Boston","mentions":1033,"share_pct":3.37},{"label":"Berlin","mentions":1024,"share_pct":3.34},{"label":"Seattle","mentions":817,"share_pct":2.67},{"label":"Amsterdam","mentions":635,"share_pct":2.07},{"label":"India","mentions":614,"share_pct":2.01},{"label":"Chicago","mentions":498,"share_pct":1.63},{"label":"Toronto","mentions":494,"share_pct":1.61},{"label":"Los Angeles","mentions":461,"share_pct":1.51},{"label":"Denver / Boulder","mentions":422,"share_pct":1.38},{"label":"Austin","mentions":382,"share_pct":1.25},{"label":"Paris","mentions":355,"share_pct":1.16},{"label":"Singapore","mentions":230,"share_pct":0.75},{"label":"Vancouver","mentions":225,"share_pct":0.73},{"label":"Sydney / Melbourne","mentions":222,"share_pct":0.73},{"label":"Zurich","mentions":155,"share_pct":0.51},{"label":"Japan","mentions":152,"share_pct":0.5},{"label":"Dublin","mentions":106,"share_pct":0.35}],"compensation":{"dollar_records":447,"dollar_coverage_pct":1.46,"dollar_bands":[{"label":"Under 100k","records":69,"share_pct":15.4},{"label":"100–149k","records":142,"share_pct":31.8},{"label":"150–199k","records":169,"share_pct":37.8},{"label":"200–249k","records":55,"share_pct":12.3},{"label":"250k+","records":12,"share_pct":2.7}],"other_currency_records":{"€":21,"£":44}},"yearly":[{"year":2010,"records":242,"remote_pct":26.9,"hybrid_pct":0.0,"compensation_pct":8.3,"visa_pct":0.8},{"year":2011,"records":2026,"remote_pct":13.6,"hybrid_pct":0.1,"compensation_pct":11.0,"visa_pct":0.8},{"year":2012,"records":2705,"remote_pct":16.5,"hybrid_pct":0.6,"compensation_pct":15.3,"visa_pct":1.7},{"year":2013,"records":3546,"remote_pct":17.3,"hybrid_pct":0.4,"compensation_pct":18.2,"visa_pct":1.7},{"year":2014,"records":4432,"remote_pct":21.5,"hybrid_pct":0.5,"compensation_pct":19.6,"visa_pct":5.6},{"year":2015,"records":7477,"remote_pct":19.5,"hybrid_pct":0.6,"compensation_pct":16.0,"visa_pct":8.9},{"year":2016,"records":8255,"remote_pct":20.8,"hybrid_pct":0.8,"compensation_pct":18.4,"visa_pct":9.5},{"year":2017,"records":9643,"remote_pct":21.7,"hybrid_pct":1.0,"compensation_pct":19.4,"visa_pct":11.5},{"year":2018,"records":9891,"remote_pct":25.1,"hybrid_pct":0.9,"compensation_pct":22.6,"visa_pct":12.0},{"year":2019,"records":8596,"remote_pct":31.2,"hybrid_pct":0.9,"compensation_pct":19.8,"visa_pct":11.5},{"year":2020,"records":7199,"remote_pct":58.8,"hybrid_pct":1.4,"compensation_pct":16.5,"visa_pct":9.0},{"year":2021,"records":10383,"remote_pct":77.4,"hybrid_pct":3.4,"compensation_pct":19.1,"visa_pct":6.2},{"year":2022,"records":7632,"remote_pct":77.8,"hybrid_pct":9.4,"compensation_pct":24.3,"visa_pct":6.7},{"year":2023,"records":4380,"remote_pct":60.2,"hybrid_pct":15.4,"compensation_pct":25.2,"visa_pct":6.6},{"year":2024,"records":4066,"remote_pct":52.0,"hybrid_pct":19.1,"compensation_pct":27.8,"visa_pct":6.3},{"year":2025,"records":4155,"remote_pct":48.5,"hybrid_pct":20.0,"compensation_pct":35.8,"visa_pct":4.6},{"year":2026,"records":2334,"remote_pct":47.0,"hybrid_pct":19.2,"compensation_pct":38.1,"visa_pct":6.2}]}],"definitions":[{"label":"AI / ML","terms":["artificial intelligence","machine learning","deep learning","llm","llms","pytorch","tensorflow","generative ai"]},{"label":"Python","terms":["python","django","flask","fastapi"]},{"label":"JavaScript / TypeScript","terms":["javascript","typescript","node.js","nodejs","next.js","nextjs"]},{"label":"React","terms":["react","react.js","reactjs"]},{"label":"Go","terms":["golang","go developer","go engineer"]},{"label":"Rust","terms":["rust","rustlang"]},{"label":"Java / Kotlin","terms":["java","kotlin","spring boot"]},{"label":"C / C++","terms":["c++","cpp","embedded c"]},{"label":"SQL / Postgres","terms":["sql","postgres","postgresql","mysql"]},{"label":"Cloud infrastructure","terms":["aws","azure","gcp","kubernetes","docker","terraform"]},{"label":"Mobile","terms":["ios","android","swift","react native"]}],"location_definitions":[{"label":"San Francisco Bay Area","terms":["san francisco","sf bay area","bay area","palo alto","south bay"]},{"label":"New York City","terms":["new york city","new york, ny","nyc"]},{"label":"Boston","terms":["boston","cambridge, ma"]},{"label":"Seattle","terms":["seattle"]},{"label":"Los Angeles","terms":["los angeles"]},{"label":"Austin","terms":["austin, tx","austin texas"]},{"label":"Chicago","terms":["chicago"]},{"label":"Denver / Boulder","terms":["denver","boulder"]},{"label":"Toronto","terms":["toronto"]},{"label":"Vancouver","terms":["vancouver"]},{"label":"London","terms":["london"]},{"label":"Berlin","terms":["berlin"]},{"label":"Amsterdam","terms":["amsterdam"]},{"label":"Paris","terms":["paris"]},{"label":"Dublin","terms":["dublin"]},{"label":"Zurich","terms":["zurich","zürich"]},{"label":"Singapore","terms":["singapore"]},{"label":"Sydney / Melbourne","terms":["sydney","melbourne"]},{"label":"India","terms":["india","bengaluru","bangalore","hyderabad"]},{"label":"Japan","terms":["japan","tokyo"]}],"work_mode_assignment":{"exclusive":true,"priority":["Hybrid","Remote mentioned","On-site mentioned","Not stated"],"note":"Each record receives the first matching work-mode label; Not stated is the fallback."},"method":"Case-insensitive whole-term matches over job titles/text and top-level comments in monthly Ask HN: Who is hiring? threads. The two corpora remain separate. Percentages use analyzed records in complete years; a missing phrase means not stated, not absent in reality. Work mode is mutually exclusive and uses Hybrid → Remote mentioned → On-site mentioned → Not stated priority. Geography uses explicit reviewed place-name terms. Compensation bands use annual-looking currency amounts within pay/salary context; dollar, euro, and pound records remain separate. No posting text, author handle, company ranking, or individual profile is published."},"surfaces":{"status":"accruing","rows":[{"id":"ask","label":"Ask HN","historical":{"count":182780,"average_score":12.73,"average_comments":12.19,"breakout_rate_pct":2.32,"score_n":182780,"comments_n":182777},"live":{"visible_items":12,"median_observed_minutes":286.0,"median_score_delta":0.5,"median_comment_delta":2.0}},{"id":"show","label":"Show HN","historical":{"count":171742,"average_score":16.34,"average_comments":5.99,"breakout_rate_pct":4.01,"score_n":171742,"comments_n":171741},"live":{"visible_items":12,"median_observed_minutes":199.5,"median_score_delta":9.0,"median_comment_delta":4.0}},{"id":"job","label":"Jobs","historical":{"count":17176,"average_score":1.64,"average_comments":null,"breakout_rate_pct":0.09,"score_n":17175,"comments_n":0},"live":{"visible_items":12,"median_observed_minutes":2131.0,"median_score_delta":0.0,"median_comment_delta":null}}],"last_full_year":2025,"forward_capture":{"first":"2026-07-11T17:48:22Z","latest":"2026-07-14T09:01:25Z","hours":63.22,"snapshots":196,"milestones":{"24h":{"target_hours":24,"state":"reached","reached_at":"2026-07-12T17:51:15Z"},"7d":{"target_hours":168,"state":"accruing","reached_at":null},"30d":{"target_hours":720,"state":"accruing","reached_at":null}}},"method":"Historical values use complete census years through the last full year and final stored counters. Live values describe only the latest visible Ask, Show, and Jobs lists. Median observed minutes are cumulative only across adjacent snapshots inside each item's capture segments; capture gaps and intervening snapshots where the item is absent contribute zero. These are not historical rank reconstruction or comparable cohorts."}}