Safiul Azam Data & Information Management
Power BIDAXOpen data

Bangladesh Police — Crime Analysis & Law Enforcement Effectiveness

A decade of national crime statistics — 1.09 million cases across eleven categories — analysed to test whether enforcement activity actually kept pace with crime.

RoleAnalyst & dashboard developer
OrganisationIndependent project
Year2026
ToolsPower BI · DAX · Power Query

This project can be shown in full. It uses a public dataset with no sensitive content, so every figure, method and result on this page is the real thing — the visuals are screenshots of the working output, not rebuilds.

Context

Bangladesh Police publish yearly case counts by reporting unit. The Kaggle mirror of that data covers 2010–2018 with eleven crime categories and four recovery categories — arms, explosives, narcotics and smuggling — which together stand in for enforcement activity.

Two things needed settling before any analysis. First, the file mixes three different kinds of reporting unit: eight Ranges, eight Metropolitan units, and one Railway Range. Treating them as one list would double-count Dhaka, which appears as both. Second, I did not want to build on a dataset I had not checked.

Approach

  • Verify the source first. I sampled rows against the official statistics published at police.gov.bd and found an exact match. That is the difference between “a Kaggle file said so” and a finding I am willing to put my name to.
  • Separate the unit types. Ranges, Metropolitan units and the Railway Range are handled as distinct geo levels with an explicit filter, so Dhaka Range and Dhaka Metropolitan are never silently summed.
  • Enforcement against crime on one chart. Total crimes and total recoveries share an axis so the crossover point — where recovery activity overtakes reported crime in 2017 — is visible rather than inferred.
  • Exclude what is incomplete. The 2019 records are partial; including them would have manufactured a spurious final-year collapse, so they are excluded and the exclusion is stated on the canvas.

The report

Built on Bangladesh Police reported cases 2010–2018 (Kaggle), verified against police.gov.bd. Real screenshot of the working report.

Real output · public dataset Power BI dashboard showing total crimes, recovery cases, crimes against women and children, crime change and speedy trial cases across Bangladesh
One page, six views. 1.09M total crimes, 573K recovery cases, a 19.46% decline across the decade. The key-insight panel on the left states the three findings in words, because a reader who only looks for five seconds should still leave with something.

Outcome

−19.46% crime across the decade

Crime fell 19.46% between 2010 and 2018, peaking in 2012, while enforcement recovery activity roughly tripled over the same period. The two moving in opposite directions is the headline, though the data cannot prove one caused the other.

Two structural findings matter more for resourcing. Dhaka division alone accounts for 237K cases and Dhaka Metropolitan on its own outranks four entire divisions. And violent crime moves almost in lockstep with crimes against women and children — r ≈ 0.94 — which means the two are not separate problems needing separate task forces.

What I’d do differently

Everything here is raw counts, not rates. The brief case for per-capita normalisation is obvious, but the dataset carries no population figures and the mixed Range/Metropolitan structure makes attaching them unreliable. I chose to state that limitation rather than publish a rate I could not stand behind.

One finding I would want to interrogate further: narcotics now absorbs 87% of all recovery activity. That could mean the drug problem grew, or that enforcement attention shifted and arms and smuggling are being quietly under-resourced in its shadow. The data shows the ratio; it cannot tell you which explanation is right.