bidlint v0.5.0
bidlint v0.5.0
Released: 2026-08-20
v0.5.0 completes the engineering-ecosystem milestone around the deterministic compliance core. It adds explicitly scoped IFC vendor-property inputs, a safe technical-compliance hand-off to supplier-scorecard, and native .xlsx technical bid tabulation.
Highlights
IFC property inputs
Vendor evidence can now come from a local IFC file as well as a PDF.
IFC support is optional:
pip install -e '.[ifc]'Select one vendor element explicitly by GlobalId:
bidlint compare specification.pdf equipment.ifc \
--ifc-guid 1AbCdEfGhIjKlMnOpQrStuOr use an IFC class when the class resolves to exactly one element:
bidlint extract equipment.ifc --kind vendor \
--ifc-class IfcPump \
--ifc-pset Pset_PumpCommonSelected scalar property-set values become ordinary VendorFact records and then flow through the existing terminology matcher, unit conversion and deterministic evaluator.
Safety rules include:
- IFC scope is mandatory
- multi-element class selections are rejected instead of mixed
- complex/list values are skipped
- geometry is not evaluated
- scalar numeric primitives remain unitless unless the source value explicitly includes a unit
- provenance is preserved as
IfcClass:GlobalId/Pset
See docs/IFC.md.
supplier-scorecard technical-compliance contract
A single-vendor comparison can emit a versioned JSON hand-off for the companion supplier-scorecard project:
bidlint compare specification.pdf vendor-a.pdf \
--supplier-name "Supplier A" \
--scorecard-output supplier-a-technical.jsonWhen every finding is deterministically resolved as PASS, DEVIATION or MISSING, the fragment includes bidlint's existing 0–100 compliance score as technical_compliance.
If any finding remains REVIEW, the integration deliberately emits:
{
"technical_compliance": null,
"technical_compliance_status": "REVIEW_REQUIRED"
}This prevents an incomplete technical review from becoming a misleading procurement ranking input. The detailed bidlint report remains the authoritative technical audit.
See docs/SUPPLIER_SCORECARD.md.
Excel technical bid tabulation
Multi-vendor ranking now supports native .xlsx output:
bidlint rank specification.pdf vendor-a.pdf vendor-b.pdf \
--output technical-tabulation.xlsxThe workbook contains:
Ranking— vendor order, compliance scores and status countsMatrix— requirement-by-vendor review matrix with status-specific fillsAudit— long-form evidence, confidence, source page/section and deterministic reason
The workbook uses frozen panes, autofilters, wrapped text and fixed readable widths. It contains no formulas, macros or external links.
The OOXML package is generated with the Python standard library, so the base package gains no spreadsheet runtime dependency. Fixed ZIP timestamps also make identical report data and bidlint version produce byte-identical workbook output.
Existing deterministic core remains authoritative
v0.5.0 does not create new decision engines for IFC, procurement integration or spreadsheets.
PDF / selected IFC property evidence
│
▼
Requirement / VendorFact
│
▼
terminology matcher
│
▼
unit-aware evaluator
│
▼
PASS / DEVIATION / MISSING / REVIEW
│
┌───────┼───────────┐
▼ ▼ ▼
JSON/HTML XLSX supplier-scorecard
The ecosystem adapters consume deterministic results; they do not override them.
Dependency model
The standard installation remains lightweight:
pip install bidlintOptional integrations remain separate:
pip install 'bidlint[mcp]'
pip install 'bidlint[ifc]'XLSX export requires no additional package.
Validation
The release is covered by the existing Python 3.11, 3.12 and 3.13 CI matrix plus regression tests for:
- IFC scalar extraction, ambiguity rejection and provenance
- PDF/IFC deterministic comparison
- supplier-scorecard READY / REVIEW_REQUIRED / NO_REQUIREMENTS contracts
- CLI integration output behavior
- OOXML package structure and worksheet ordering
- XLSX ranking, matrix and audit evidence
- deterministic workbook bytes
rank --output .xlsx
Deliberate limits
This release does not:
- perform IFC geometry compliance
- guess which of multiple IFC elements represents a vendor offer
- infer engineering units missing from IFC values
- turn
REVIEWinto a procurement score - add commercial or price logic to bidlint
- hide workbook calculations in formulas
- change the existing deterministic ranking order
v0.5.0 completes the published roadmap while preserving the core rule: evidence before confidence.