TenderScope

Help

Quick guidance for the main TenderScope screens and how the stored procurement data fits together.

Loading your session...

How TenderScope Is Organized

Five overlapping data programs - notices, awards, plans, plan rows, and interested rows - feeding the same shortlist workflow.

Notices Published procurement notices from KRPP, with attachments and AI review
Awards Signed public contracts (current + pre-CM) for analytics & CSV export — admin only
Plans Procurement plans and their fetched detail files
Plan Rows Flattened contract and item rows across stored plans
Interested Notices Rows you marked for follow-up and their candidate notice matches

Notices

Browse, filter, search, enrich and review KRPP procurement notices.

Columns: ID + flag, Title & Authority + action buttons, Value, Type · Published · Deadline · Detail. The status row carries the detail-fetch, enrichment, AI-analysis and tender-review badges. Filters: title-or-authority free text, document type / section, procedure, flag colour (red / blue / green), active vs inactive, detail-fetch status, enrichment status, "matches my interested rows", published / deadline date ranges, sort, direction. Hybrid search: the second search box queries notice text + attachment chunks (lexical + semantic blended) and tags rows with "matched from …" chips so you see why a hit ranked. Pagination: Page-size dropdown (100 / 200 / 300 / All) plus prev/next under the table. The toolbar status shows "Last scraped …" so you can tell at a glance how fresh the dataset is. Per-row actions: Open on KRPP (external), Download ZIP (proxied tender bundle), Details, Enrich → Re-enrich, Review → Re-review (Claude Sonnet 4.6), Retry on failures, flag colour picker, NEW badge for the most recent scrape run. Admin extras: Scrape notices (live progress toast), Delete all, Export CSV of the currently-filtered set.

Awards (admin only)

Signed public-contract awards from e-prokurimi.rks-gov.net - one row per contract, current + pre-CM datasets in one table.

Datasets: ``current`` (live registry, ~46k rows) and ``pre-cm`` (older / pre-Central Procurement Agency, ~1.2k rows) collapsed under a ``dataset`` discriminator so you can filter or compare on the fly. Columns: Contract number, Title & Authority, Operator, Value, Status · Dates (signed / start / completion). Filters: free-text search across title/number/authority/operator, dataset, authority substring, operator substring, status, contract type, currency, value range, signed-date range, sort. Pagination: 100 / 200 / 300 / 500 / 1000 / All. The summary header shows total contract value, invoiced value, distinct authorities/operators and the date range covered by the current filter. CSV export: streams the full filtered set (no pagination cap) for downstream analytics. Gated on the ``awards.read`` permission - admins implicit, others must be granted.

Plans

Procurement plans are the stored planning records behind the row-level views.

What it shows: one stored plan per row, including year, authority, file/download state, and export state. Why it matters: plan detail files are parsed into stored contracts and items, which later surface in plan rows and the interested-rows matcher. Role note: this screen is admin-only; users see plan-derived data via Plan Rows / Interested.

Plan Rows

The analysis-ready row view across all stored plans.

What it shows: flattened parent contract rows and child lot/item rows with authority, timing, classification, descriptions, and estimated value fields. What users do there: filter by year, authority, section, plan, text, or timing, then mark rows as interested for follow-up.

Interested Notices

Your saved shortlist of plan rows plus the notices that match them.

What it shows: the rows you marked as interested, plan context, timing, value, and any notice matches the deterministic matcher has linked. Scope: users see only their own interested rows; admins see across every user's selections. Loop: the "Matches my interested rows" toggle on the Notices page filters that view down to notices the matcher has linked back to your shortlist.

Authorities

Canonical contracting-authority registry that ties notices, plans and plan rows together.

What it shows: the deduplicated set of authorities seen across notices and plans, with normalisation hints. Why it matters: filtering by authority on Notices / Plan Rows joins through this canonical view, so name variants ("KOMUNA E PRIZRENIT" vs "KUVENDI KOMUNAL I PRIZRENIT") still match correctly.

Tender Review & AI Analysis

Claude-powered review per notice + lighter OpenAI tagging used by the search ranker.

Enrichment lifecycle: Basic → Queued → Downloading → Extracting → Enriching → Enriched (or Failed). Click Enrich on any "Basic" notice to download attachments and extract text/keywords; Re-enrich after the source files change. Tender Review: once a notice is enriched, the Review button generates a deep tender review with Claude Sonnet 4.6 (conditions, qualifications, ToR). After completion the row gains a "Reviewed" status badge and the button becomes Re-review; failures show Retry review. AI analysis badge: a lighter OpenAI pass tags every enriched notice with category labels used by the hybrid search; the badge shows the current state. Permission gates: ``notices.enrich``, ``notices.review``, ``awards.read`` etc. - admins hold them all implicitly; standard users must be granted explicitly via the Users screen.

Typical Flow

A practical way to use the system day to day.

1. Review Notices for newly published procurement activity. Use the page-size dropdown + filters to narrow down; check "Last scraped" to see freshness. 2. Use Notices hybrid search across notice text + attachments to surface non-obvious matches. 3. Open Plan Rows to filter the stored plan data, then mark relevant rows as interested. 4. Return to Interested Notices to monitor your shortlist and the deterministic notice matches. 5. On promising notices, click Enrich then Review to get the deep Claude review with conditions / qualifications / ToR. 6. For aggregate analytics on signed contracts (volumes, top authorities/operators, year-over-year), use Awards + the Export CSV button.