GSA Schedule Rates
Awarded GSA Schedule labor-rate ceilings.
Source, grain and coverage
Published rates linked to contract holders and SINs. Ceiling rates are not necessarily invoiced or negotiated rates.
Schedule rate observations retain maximum ceilings at a reduced contract/category/date grain and can lose experience, education or SIN variants. Holder UEIs are not collected. Published ceilings are distinct from invoiced or negotiated rates.
Collection schedule: Weekly.
Records describe public source observations. Missing values remain unknown; historical observations do not establish current status.
Definitions audited . Use source status and the returned watermarks to inspect current collection health.
REST and MCP access
Use a credential with intelligence scope and enable that data domain in your workspace.
curl 'https://www.govbiz.ai/api/v2/catalogue/sources/gsa-elibrary-rates-refresh/records?limit=2' \ -H "Authorization: Bearer $GOVBIZ_API_KEY"
The primary dataset is schedule_rate_ceilings. Select another dataset from this source with dataset_id. Supported field names can be used as exact filters; the versioned query endpoint also supports declared ranges and list operators.
Through canonical /mcp, use govbiz_discover_datasets, govbiz_describe_dataset, govbiz_search_records, and govbiz_get_evidence. Cross-source relationships use govbiz_get_related_records and require access to every involved domain.
API contracts · MCP setup · Workspace data domains
Query this source →Schedule Rate Ceilings
schedule_rate_ceilings · Schema 1
One retained reduced maximum-ceiling observation per contract, labor category and effective-date grouping, identified by id; labor variants can have been discarded.
Search modes: structured, lexical. History: Current retained projection; exact historical reconstruction is unsupported.
Measures: record_count. Monetary values use decimal strings with declared units. Unknown amounts do not become zero.
Field definitions and supported filters · 12 fields
| Field | Type / unit | Meaning | Availability and filters |
|---|---|---|---|
id | integer | GovBiz surrogate row identifier; interpret together with its relation, not as a source-native key.Storage and value limits: Signed 32-bit integer; logical domain constraints can be narrower. | Values can be missingeq, in, is_null, gte, lte |
contract_number | string | Source contract/holder number; relate with issuer and vehicle context.Storage and value limits: Maximum 100 characters; identifier rules can be narrower. | Values can be missingeq, in, is_null, contains |
sin_code | string | Schedule Special Item Number; not a unique contract or labor-category identifier.Storage and value limits: Maximum 50 characters; identifier rules can be narrower.Classification overlap is contextual, not record identity. | Values can be missingeq, in, is_null, contains |
holder_name | string | Vehicle/rate holder label.Storage and value limits: Maximum 300 characters; identifier rules can be narrower. | Values can be missingeq, in, is_null, contains |
holder_uei | string | Source UEI identifying the holder participant; missing/empty values cannot support an exact entity join.Storage and value limits: Maximum 20 characters; identifier rules can be narrower.Logical UEI length is 12; a wider varchar is not broader identity support. Every audited value is null; current entity joins are blocked. | Not collected; returned as unknowneq, in, is_null, contains |
labor_category | string | Published labor title/category; equal wording is not proof of equal job duties or required skills.Storage and value limits: Maximum 300 characters; identifier rules can be narrower. | Values can be missingeq, in, is_null, contains |
hourly_rate_ceiling | decimal / USD | Awarded Schedule maximum hourly rate, not an invoiced, negotiated or predicted bid rate.Storage and value limits: Precision 8, scale 2; absolute value below 10^6; rounding on assignment; checks can narrow the range. | Values can be missingeq, in, is_null, gte, lte |
unit | string | Measurement unit of a published rate; current derived Schedule rates use HOURLY.Storage and value limits: Maximum 20 characters; identifier rules can be narrower. | Values can be missingeq, in, is_null, contains |
effective_date | date | Derived rate grouping date, currently CALC+ contract_start or a collection-date fallback; not an independently sourced price-effective date.Storage and value limits: Calendar date without time of day or timezone; source precision can be month/quarter instead. | Values can be missingeq, in, is_null, gte, lte |
expiration_date | date | Published agreement/vehicle/rate expiry when supplied; absent is not perpetual validity.Storage and value limits: Calendar date without time of day or timezone; source precision can be month/quarter instead. | Values can be missingeq, in, is_null, gte, lte |
schedule_name | string | Published/derived Schedule label on a ceiling-rate row.Storage and value limits: Maximum 200 characters; identifier rules can be narrower. | Values can be missingeq, in, is_null, contains |
ingested_at | datetime | Producer ingestion timestamp; some relations store ISO text and others timestamp without time zone.Storage and value limits: Instant with timezone only if declared; otherwise local/producer time must be explicitly interpreted. Do not invent clock precision. | Values can be missingeq, in, is_null, gte, lte |