How every number on this site is computed. One page. No black boxes.
This site analyses only two groups of officials: Members of the Kosovo Assembly (every MP across every party) and Presidency officials (the President and office holders in the Office of the President). Ministers, municipal officials, agency heads, public-enterprise directors, and political advisors are out of scope — even when they appear in the source register.
The narrowing is deliberate. MPs have a stable, publicly known parliamentary salary — the denominator of the wealth-vs-income math is uncontested. Presidency office holders operate in a small, fully identifiable group. Beyond these two bands, salary scales diverge, side-incomes multiply, and the cleanness of the arithmetic suffers.
Of 17,576 officials in the full register, 17,565 are in scope — — MPs and — Presidency officials, across the terms 2011–2026. 17,230 are excluded: 9,114 executive-branch officials (Qeveria), 4,502 municipal, 2,372 independent institutions, 1,194 public-enterprise officials, and 44 Assembly staff (advisors, directors, experts — not MPs).
Coverage gap to be transparent about: the Serb bloc (Srpska Lista and predecessor Serb parties) is under-represented in the source data. Over 2011–2026, each Assembly term guaranteed 10 seats to the Serb community — yet only three Serb-surnamed MPs appear in the full register. The reason is documented historical boycotts of the asset-declaration process during periods of Brussels-dialogue breakdown. This site reports what was filed; what was not filed cannot appear.
Every figure is drawn from signed asset declarations filed with Kosovo's Anti-Corruption Agency under Law No. 08/L-108, published in the public register at apk-rks.net. 99,243 declaration PDFs covering the years 2011 to 2026 were parsed row-by-row and deduplicated into 17,576 distinct officials; the scope filter above then reduces the analytical set to 17,565.
Parsing uses pdfplumber's table-grid extractor — nothing is inferred from context. If a row is missing a numeric value in the filing, it is missing in the analysis. The source files are read-only input.
Every official profile is built on five measurements. Each one is a division or a comparison of numbers the official themselves declared.
Not every large wealth-to-income ratio is a corruption story — some officials were wealthy businesspeople before they entered politics, and the register makes that visible rather than hiding it. To avoid crowning a pre-office fortune as the "indefensible" headline, the home page picks its hero from a narrower pool:
- End-of-tenure declared wealth ≥ €500,000
- Declared annual income ≥ €3,000 (so the ratio isn't noise)
- At least three years in office
- At least one year where wealth grew more than 5× that year's declared income
- In-office wealth growth of at least €250,000
- Starting wealth less than half of ending wealth (majority accumulated during office)
- Peak wealth never exceeded €10M (excludes businessman-class fortunes already present before politics)
17,565 officials are in scope. — pass this stricter gate. The largest raw gap in the register — the biggest number regardless of whether the wealth came from politics or pre-existing business — is separately named on the home page too, under the caveat. Nothing is hidden.
Proration note. years_in_office equals the count of distinct declaration years for that official. Annual income equals the mean of non-zero income years. An MP who served one partial year is prorated on that one year; a full four-year mandate is prorated on four. No mandate-duration hardcoding — what the filings contain is what the math uses.
The arithmetic is only as good as the filings. Some limitations apply to every number on the site, and readers should know them:
- Missing values. Roughly 41% of asset rows and 50% of income rows leave the numeric EUR field blank in the filing. Those rows contribute nothing to the totals — neither wealth nor income. The ratios shown are therefore lower bounds on the real mismatch, not upper bounds.
- Ownership. Declarations attribute each item to the declarant, a spouse, children, parents, or the household jointly. When enough household data exists, the household scope is used; otherwise declarant-only.
- Inflation and revaluation. A house declared at its 2012 purchase price is not the same euro as a house declared at its 2025 market value. The site treats declared values as face-value throughout — that is what the official chose to put on the form.
- Identity matching. ~800 officials share a common-name collision with another declarant. These are disambiguated by institution and year; a disambiguation suffix is kept only in the URL, never in the display name.
- Arithmetic is not an accusation. This site makes no claim of criminal conduct. Questions of legality belong to competent authorities.
All parameters used above are stored in the computed dataset and can be inspected. The canonical values are:
- Savings rate
- 40%
- EUR → USD
- 1.08
- Kosovo median annual wage
- €6,000
- Ratio flag threshold
- 10×
- YoY flag multiple
- 5×
Changes to any of these values would move every number on the site. They are not quietly tuned to produce a dramatic headline — they are set once, written down here, and applied uniformly. Go back to the home page or browse the register.