How Daybook Computes Career Research Figures

Every salary figure on these pages comes from this process. Last revised 2026-09-21.

1. Source

The only input is the text of job postings published on Daybook.com, a job board for government relations, public policy, political and adjacent careers. Daybook does not collect salaries from employees, surveys or third-party datasets. Each posting contributes at most one observation to any figure.

2. Extraction

Each posting's title, description and stated position level are read once by a language model (claude-haiku-4-5), which returns the minimum and maximum annual salary stated in the text, a confidence score from 0 to 1, a normalized job title and a list of required skills. Hourly rates are converted to annual pay at 2,080 hours per year. When a posting states a single figure it is used as both minimum and maximum. Extractions are stored once and are not re-run for the same posting.

3. What counts as a salary observation

An extraction becomes a salary observation only when all of the following hold:

  • the posting stated a salary and the model's confidence was at least 0.5;
  • the observation is the midpoint of the stated range (or the single stated figure);
  • that midpoint falls between $15,000 and $1,000,000 per year.

Postings that do not state a salary still count toward "postings analyzed" but never toward any dollar figure. Every page states both numbers, for example "42 postings that disclosed salary (of 150 analyzed)".

4. Observation window

Reports cover postings whose posting date falls within the last 12 months. The window is recomputed every night, so postings age out and figures can move without any new posting arriving. Each report records the exact window it was computed over, published as the dataset's temporal coverage.

5. Grouping

Category reports group postings by the category the employer chose when posting. Job title reports group postings by the normalized title from extraction, within one category; spelling variants that reduce to the same slug share one report, and the most common spelling is shown. Up to 20 of the most common titles in a category are considered each night. Experience levels use the level the employer selected: entry, mid or senior. Internships are counted as postings analyzed but are not assigned to a level.

6. Statistics

Median, 10th and 90th percentiles use the nearest-rank method: with n observations sorted ascending, the p-th percentile is the value at rank ⌈p Ɨ nāŒ‰. No interpolation is applied. The 10th and 90th percentiles are withheld when fewer than 10 observations exist, since with very few values they would simply be the smallest and largest. Averages are arithmetic means of the same observations.

7. Publication thresholds

Two independent gates apply, so a page can be live while its salary figures are withheld.

Page gate (is the report published at all?)

  • A category report is published once at least 15 postings in the window were analyzed.
  • A job title report is published once at least 10 postings in the window were analyzed.

Salary gate (are dollar figures shown?)

  • Category salary figures are shown per experience level, once at least 5 postings at that level in the window disclosed a salary; levels below that show their disclosure count and no figure.
  • Job title salary figures are shown once at least 10 postings in the window disclosed a salary.

A report that passes the page gate but not the salary gate stays published with its employers, titles, skills, locations and level mix, states how many postings disclosed pay, and makes no salary claim anywhere on the page or in its structured data. A report that fails the page gate is withdrawn: the page returns a 404 status, is marked not to be indexed, and is removed from the sitemap until the gate is met again.

8. Dates

Every report carries two dates. Published is the first day the report met its publication threshold. Modified is the last day any figure or list in the report changed. Reports are recomputed nightly, but a recompute that produces the same figures leaves both dates unchanged; the dates in the page's structured data, citation metadata and sitemap are these stored dates, not the date of your visit.

9. Generated text

The short summary at the top of each report is written by a language model (claude-sonnet-4-6) from the report's own figures, and is rewritten only when those figures change. If generation fails, or the report's salary figures are withheld, a fixed template sentence built from the same counts is shown instead, so no model ever writes text for a page without figures. The structured question-and-answer text on job title pages is always the template sentence, so it can never disagree with the figures on the page.

10. Limitations

  • Figures describe salaries offered in postings, not salaries paid; employers that disclose pay may differ from those that do not.
  • Daybook's postings are concentrated in Washington, DC and in policy-adjacent employers, so figures may not generalize to other markets.
  • Extraction is automated; a small share of ranges may be misread. The confidence gate and the plausibility bounds reduce but do not eliminate this.
  • Small samples are noisy. Sample sizes are shown next to every figure so readers can weigh them.

To cite a report, use the published and modified dates shown on that page and link to its URL. Questions about the method can be sent through the contact page.