Skip to contents

Drops tenders that are not a fit for a research institute, two ways:

  1. title contains a building/maintenance term (see tender_excludes()) and no strong water keyword rescues it (so a "Grundwasser..." title is kept);

  2. CPV shows a works / maintenance / cleaning code (45... Bau, 50... Reparatur/Wartung, 9046/9047/9061/9064/9091... Reinigung) without an engineering-services code (71...); hard veto, so even "Neubau Klaeranlage" or "Reinigung Faulbehaelter" is dropped while "Ingenieurleistungen ..." stays.

Sets is_relevant = FALSE and records the reason in an excluded column. Matching folds umlauts / is case-insensitive.

Usage

apply_title_excludes(
  df,
  title_cols = c("Kurzbezeichnung", "Bezeichnung", "Titel"),
  keywords = tender_keywords(),
  excludes = tender_excludes()
)

Arguments

df

A scored tibble (must contain is_relevant).

title_cols

Candidate title columns (those present are used).

keywords

Keyword groups, for the strong-keyword rescue (default tender_keywords()).

excludes

Exclusion list (default tender_excludes()).

Value

df with vetoed rows' is_relevant set FALSE and an excluded column.