Contract signals
Explore published procurement records from France, Colombia and Paraguay.
Runs entirely in your browser: no account, cookies, analytics or uploads. Filters live in the link after #, which browsers never send to a server.
Advanced filters
Your browser may block automatic loading of a local file. Open data/decp-history.json with the file picker below, or serve this folder with python -m http.server 8000.
Read in this browser only, never uploaded. File format.
Signals prompt review, not accusations. A zero or missing label does not mean a contract is clean. How to read these results ↓
| Date | Buyer | Supplier | Subject | CPV sector | Declared amount | Offers | Indicators | Index |
|---|
The indicators flag characteristics for review—not proof of irregularity, favoritism or corruption. Public data can contain errors. A flag does not imply illegal behavior; no flag does not guarantee regularity. The copy button copies only summaries of the current page; large pages may exceed chat limits. Export CSV/JSON downloads every filtered record; an empty index cell means not assessed, not zero. Review personal data before pasting into any external service.
Data scope and limits
Exploratory 24-month history: 2,594 DECP contracts from Paris and Ardèche, notified in 2024–2025. Modifications published may be later than 2025. This is not a guarantee of exhaustiveness of actual purchases.
Datasets are not merged; they may describe the same purchases. Do not add their amounts. “—” means unknown, not safe. Coverage and provenance (JSON).
Sources and how to verify
Index and evidence labels
Index v3 is an editorial sorting aid, not a probability; zero requires an evaluated check and certifies nothing. Unknowns are shown separately. Amounts and official findings never add points.
One French dossier has a dated news report of an investigative step; its current status is unknown. No comparable report is linked in the Colombian or Paraguayan pilots. No contract-specific final corruption judgment is documented in these datasets. French CRC audit observations are not convictions. No match means not established here, not cleared.
Method: vigilance index
Version 3.0. Score = competition maximum (up to 60) + execution/duration maximum (up to 40), with no renormalization by coverage, dataset or filter. Official findings are separate documentary elements, never points. No amount-based uplift. No target proportion of flagged contracts.
Coverage: eight checks, each flagged, evaluated without a threshold crossed, not assessable, or out of scope. The evaluated/established-applicable ratio does not count unknown applicabilities: those are reported in addition, not as negative cases. All conflicting groups, duplicated identifiers and unverified records are excluded. Aggregate audit dossiers receive no individual index. No evaluated check = “Not assessed”, never zero.
Weights: a single offer in an explicitly competitive procedure: 12; direct award: 18, all amounts. Bounded linear progressions rounded to the tenth: single-offer repetition and concentration, 12 at 60 % up to 40 at 100 %; direct repetition, 18 at 3 contracts up to 60 at 10; duration, 8 at 120 months up to 40 at 360 months; relative increase strictly > 20 %, 8 near the threshold up to 40 at +100 %; period < 15 days, 8 near the threshold up to 40 at 3 days. Entry/reliability thresholds remain: a graduated progression does not erase them. No points for an offer expected in a direct award.
Editorial choices, not calibrated to predict irregularity. Comparison v2.1/v3 and ranking sensitivity (JSON). Software verification is not legal or statistical validation. Flagged and unflagged cases must be reviewed. Full method and excerpt review · Colombia pilot method · Countries proposed for upcoming pilots.
SECOP II · Colombia pilot: same v3.0 framework (families, family maxima, “Not assessed” semantics; full method), jurisdiction-specific check set. Four checks: award declared without supplier plurality or under manifest urgency (18); repeated such awards to the same buyer and supplier document (18 at 3 contracts up to 60 at 10); concentration within buyer and contract type (12 at 60 % up to 40 at 100 %, minimum 10 identified contracts and 80 % coverage); declared duration ≥ 36 months (8 at 36 up to 40 at 120, parsed read-only from the published free text). The four offer/timetable/history checks of the French method are out of scope here: no offers table, no publication–deadline chronology, no amendment history. The bare direct-family modality (≈82 % of this cohort) and ordinary justifications — professional services, interadministrative agreements, minimum-amount rules, regime statutes — add no points. Amounts in COP stay visible and sort only. Thresholds are editorial, not Colombian legal ones; no CPI, no country coefficient, no cross-country ranking.
Tours full notices: the declared explanations have procedure-wide scope, possibly on other lots. The criteria displayed come only from the indicated lot; candidate-selection criteria and award criteria are distinct. Weighting codes and values are kept without converting an unknown unit into a percentage. No points for a legal reason or a price weight. Documents without an assessable period display “Not assessed”, not a zero score. Publications and dispatches are distinguished; no merging with DECP.
Six additional municipalities: Rennes, Nantes, Bordeaux, Grenoble, Dijon and Tours, chosen before the scores. Groups with ambiguous versions or identifiers are excluded from all calculations and remain visible. The enriched names are a current snapshot of the legal unit via the Annuaire des entreprises, not a historical verification: SIREN/SIRET and source are kept, with no effect on the score. Every typed SIREN of the six cities and of Paris & Ardèche is looked up; a name is kept only for an exact, fully public register entry, and none is inferred for the others.
Short bidding period: fewer than 15 calendar days, upper bound from midnight UTC on the day of the initial publication to the last explicit deadline, after extensions. Only explicitly open non-accelerated procedure, identified lot and procedure, verified chain without conflict. Reduction, reopening or unknown information: no calculation. Graduated weight from 8 to 40, competition family (maximum, not a sum). Editorial threshold, not legal nor statistically calibrated. Among the 10 imported notices, no period is assessable: corrections may be missing. Result dates are never used as the start.
Concentrated awards: same buyer/CPV to three digits, DECP cohorts 2024–2025 computed separately, at least 10 contracts to the single identified holder, coverage ≥ 80 %, same SIREN receiving ≥ 60 % of the known contracts. Repeated direct awards: at least three distinct contracts explicitly without competition, all amounts, same buyer/CPV/SIREN, same period. Groups in conflict, ambiguous identifiers and unmatched co-holders are excluded. A repetition may have a legal justification; the results describe only the published data of this cohort.
Groupings: CPV = purchase sector, not the company’s activity. Projects are linked only by an explicit documentary match; neither the scores nor the amounts of contracts are summed. The other groupings are navigation tools, not proof of a common project. Groups are ordered by their first contract in the chosen sort, then their contracts follow that sort. The block without a documented project comes after the documented projects. Unknown values come last in the sorts.
Declared amount increase: last newly published amount greater than the initial one by more than 20 %, with no euro threshold, price exclusively declared final and firm, with no conflicts of initial versions and no identified change of holder. A decrease or an ambiguous chronology triggers nothing. Modified amounts are never summed. An increase may fund additional services; it is not a measure of excess cost nor of final spending. The published history may be incomplete.
Repeated low competition: only for single-offer contracts of the DECP cohort. Same buyer, three-digit CPV group, notifications 2024–2025, explicitly competitive procedures: at least 10 contracts with a known number of offers, at least 80 % coverage and at least 60 % at a single offer. Undetermined adapted procedures and groups in conflict are excluded. The statistics are computed over the whole file before filtering; they describe the published purchases retrospectively, not the regularity of a supplier. No repetition computation on the BOAMP sample.
The former thresholds of €100k (direct award) and €50k (absolute increase) no longer enter the score. Unknown values trigger no indicator. Amounts: “≥” indicates a lower bound, “>” a strict bound and “≈” a rounded value; the sort and the filter use the cited numeric value, not an assumed exact amount. These rules do not take account of legal exceptions or the context of each purchase.