Home › Tools for webmasters
Tools for webmasters
Four widgets you can put on your own site. Every one is free, needs no account, sets no cookies, and sends us nothing about your readers. The pay ones carry figures for 1,681 agencies across 50 states, DC and territories — each read from that agency’s own published document.
The police pay map
One dot per agency, colored by level of government, on land shaded by what the middle agency in that jurisdiction starts an officer on. Hover a dot for the agency and its pay; click one to open its record. States are clickable too.
Live preview — the widget itself, running on this page.
Interactive widget
Paste into an HTML block. Works on Blogger, self-hosted WordPress, Ghost, Squarespace code blocks and any plain HTML page.
<script src="https://www.policecalendarapp.com/embed/pay-map.js?v=d88ce0a7" async></script>
Image version
A picture inside a link, no JavaScript at all — for Substack, WordPress.com, Medium and anywhere else that strips scripts.
<a href="https://www.policecalendarapp.com/police-pay/?utm_source=embed&utm_medium=image&utm_campaign=pay-map" target="_blank" rel="noopener">
<img src="https://www.policecalendarapp.com/embed/pay-map.svg" width="100%"
alt="Map of US police starting pay by agency">
</a>
<p><small>Source: <a href="https://www.policecalendarapp.com/police-pay/?utm_source=embed&utm_medium=image&utm_campaign=pay-map" target="_blank" rel="noopener">BlueShifts police pay data</a></small></p>
The shift rotation calendar
Pick a rotation and the day it starts, and the calendar draws — day shifts, nights and 24-hour tours, month by month. Twenty-two rotations, from Pitman and Panama to DuPont and the Kelly. Nothing about it is police-only: it works the same for fire, EMS, nursing, dispatch, manufacturing, or a custody schedule.
Live preview — the widget itself, running on this page.
Interactive widget
Paste into an HTML block. Works on Blogger, self-hosted WordPress, Ghost, Squarespace code blocks and any plain HTML page.
<script src="https://www.policecalendarapp.com/embed/shift-rotation.js?v=d88ce0a7" async></script>
Image version
Not availableThis one is interactive, so a picture of it would do nothing when tapped. For Substack, WordPress.com and Medium, use the pay map or pay by state — both have image versions.
The pay finder
A reader types their own department, a state, or an abbreviation like LAPD or FHP, and gets what that agency starts an officer on, where it sits in the national order, and when we last checked it. Every reader gets a different answer, which is what makes it worth keeping on a page.
Live preview — the widget itself, running on this page.
Interactive widget
Paste into an HTML block. Works on Blogger, self-hosted WordPress, Ghost, Squarespace code blocks and any plain HTML page.
<script src="https://www.policecalendarapp.com/embed/pay-finder.js?v=d88ce0a7" async></script>
Image version
Not availableThis one is interactive, so a picture of it would do nothing when tapped. For Substack, WordPress.com and Medium, use the pay map or pay by state — both have image versions.
Pay by state
All 57 jurisdictions, sorted four ways, each showing how many departments the figure rests on. Tap a row and it opens in place with the lowest and highest in that state.
Live preview — the widget itself, running on this page.
BlueShifts. Plan Your Year. Own Your Time.
The shift calendar built for your rotation, off-duty work, and life on and off the clock.
Save your shift schedule once and BlueShifts fills the rest of the year in.
Interactive widget
Paste into an HTML block. Works on Blogger, self-hosted WordPress, Ghost, Squarespace code blocks and any plain HTML page.
<script src="https://www.policecalendarapp.com/embed/pay-by-state.js?v=d88ce0a7" async></script>
Image version
A picture inside a link, no JavaScript at all — for Substack, WordPress.com, Medium and anywhere else that strips scripts.
<a href="https://www.policecalendarapp.com/police-pay/?utm_source=embed&utm_medium=image&utm_campaign=pay-map" target="_blank" rel="noopener">
<img src="https://www.policecalendarapp.com/embed/pay-by-state.svg" width="100%"
alt="Table of US police starting pay by state">
</a>
<p><small>Source: <a href="https://www.policecalendarapp.com/police-pay/?utm_source=embed&utm_medium=image&utm_campaign=pay-map" target="_blank" rel="noopener">BlueShifts police pay data</a></small></p>
Police pay near you
A reader types their ZIP code and picks how far they would travel, and gets the agencies inside that circle ranked by what they start an officer on. Highway patrol and other statewide agencies are matched to the reader’s state rather than to a distance, because they cover all of it.
Live preview — the widget itself, running on this page.
Interactive widget
Paste into an HTML block. Works on Blogger, self-hosted WordPress, Ghost, Squarespace code blocks and any plain HTML page.
<script src="https://www.policecalendarapp.com/embed/pay-near-you.js?v=d88ce0a7" async></script>
Image version
Not availableThis one is interactive, so a picture of it would do nothing when tapped. For Substack, WordPress.com and Medium, use the pay map or pay by state — both have image versions.
Nothing here takes your reader away
Tapping inside a widget never navigates. A search result opens inside the widget, a state row expands where it sits, the calendar just redraws. The link to us is offered underneath, afterwards, and it opens in a new tab — so your article is still there when the reader comes back. That is deliberate: a widget that hijacks a click gets removed, and then it is no use to either of us.
Which platforms these work on
If you can paste a <script> tag and have it survive, use the
interactive version. If it does not appear after you publish, your platform stripped
it — that is common and it is silent.
Substack and WordPress.com strip scripts, and Substack does not accept custom HTML at all. On those, the pay map and the state table have image versions you can upload and link by hand. The rotation calendar and the pay finder are things a reader uses, so there is no honest picture of them — we would rather say that than have you paste something that quietly does nothing.
Rules, such as they are
- Free to use, commercially or not. No account and no key.
- Keep the source link. It is how readers reach the underlying figures, and it is the only thing we ask in return.
- Do not re-host the file — point at the URL given, so the figures stay current on your page as agencies publish new ones.
- No cookies, no tracking script, nothing sent to us about your readers.
How current is it?
Each figure is the base starting salary for an officer with no prior service, taken from the agency’s own pay plan, contract or recruiting page, with the date we checked it recorded on that agency’s page. Agencies raise pay at different times of year; the widget updates when we do, so an embed does not go stale the way a screenshot would.
Common questions
Are these widgets free?
Yes. All four are free to use, commercially or not. There is no account, no API key and no cost. The only thing asked in return is that you keep the source link.
Where does the police pay data come from?
Every figure is the base starting salary for an officer with no prior service, read from that agency’s own pay plan, contract or recruiting page. 1,681 agencies across 50 states, DC and the territories, each with the date it was last checked.
Do the widgets track my readers?
No. They set no cookies, load no tracking script and send nothing to us about anyone who visits your page.
Which shift rotations does the calendar cover?
Twenty-two, including Pitman, Panama, DuPont, Kelly, Continental, Southern swing, 4 on 4 off, 5-2 5-3, 24/48, 24/72 and 9/80. It is not police-specific and works the same for fire, EMS, nursing, dispatch and manufacturing schedules.
Something else you need?
If you want a single state, a narrower sidebar size, or a rotation we have not covered, say so — those are straightforward to add and it helps to know which are actually wanted.
The app behind the data
The same team that keeps these figures current builds the shift calendar officers use to track rotations, court dates, off-duty jobs and leave.
Scan to install

