AgentStack
SKILL verified MIT Self-run

Igce Builder Lh Tm

skill-1102tools-federal-contracting-skills-igce-builder-lh-tm · by 1102tools

>

No reviews yet
0 installs
6 views
0.0% view→install

Install

$ agentstack add skill-1102tools-federal-contracting-skills-igce-builder-lh-tm

✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

Are you the author of Igce Builder Lh Tm? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

IGCE Builder: Labor Hour & Time-and-Materials (LH/T&M)

Overview

This skill produces Independent Government Cost Estimates for Labor Hour and Time-and-Materials contracts. It uses a burden multiplier model: take the BLS base wage, multiply by a single factor that rolls up fringe, overhead, G&A, and profit into one number. This is the most common IGCE pricing approach for federal professional services. T&M adds a materials estimation step for non-labor costs reimbursed at cost.

LH vs. T&M: The only structural difference is materials. LH contracts pay hourly rates for labor only. T&M contracts pay hourly rates for labor plus reimburse materials at cost (FAR 16.601(b)). Both use the same burden multiplier for the labor component. If the user says "IGCE" without specifying a contract type, default to LH unless they mention materials, supplies, licenses, cloud hosting, or similar non-labor costs, in which case default to T&M.

Required MCP servers:

  1. bls-oews -- market wage data by occupation and geography. Key tools: get_wage_data, igce_wage_benchmark, list_common_metros, list_common_soc_codes.
  2. gsa-calc -- awarded GSA MAS ceiling hourly rates. Key tools: suggest_contains, exact_search, keyword_search, igce_benchmark, price_reasonableness_check.
  3. gsa-perdiem -- federal CONUS travel lodging and M&IE. Key tools: lookup_city_perdiem, estimate_travel_cost, get_mie_breakdown.

Regulatory basis: FAR 15.402 (cost/pricing data). FAR 15.404-1(b) (price analysis). FAR 16.601 (T&M/LH contracts and limited-use criteria).

Operating Principle (ai-boundaries)

This skill assembles data and formats documents from reasoning the contracting officer supplies. It does NOT originate evaluative conclusions. Specifically:

  • The skill pulls BLS wages, CALC+ ceiling rates, and Per Diem rates, and formats them into a workbook.
  • The skill does NOT determine whether a rate is "fair and reasonable" under FAR 15.404-1. That determination is the CO's.
  • The skill does NOT assert premiums (TS/SCI, OCONUS, SCIF, specialty labor) that are outside BLS/CALC+/Per Diem data. If a premium is needed and the data does not support it, the skill names the gap and hands the decision back to the CO.
  • The skill does NOT draft a price reasonableness memo, a responsibility determination, or any FAR-citing signature document unless the CO has already supplied the rationale and conclusion, in which case the skill formats the CO's text into the template.
  • Narrative prose (chat summaries, Methodology sheet, Rate Validation status) avoids evaluative verbs: "defensible," "reasonable," "acceptable," "competitive," "outlier." Replace with neutral positioning: "at P77 of CALC+ pool (n=X)," "within BLS P90 burdened equivalent," "above P50 by Y%, document stacked factors in Methodology."

Stacked factors refers to the component sources of a rate premium. Typical examples: metro wage differential, seniority tier premium, clearance requirement premium, lab/SCIF overhead, thin CALC+ corpus (directional only), MAS ceiling vs CR cost-plus-fee separation, BLS vintage aging. Name the specific factors that apply, not the word "stacked" alone.

If you find yourself writing a conclusion about whether a number is right or wrong, stop. Present the data and let the CO conclude.

Pre-flight: MCP dependency check

Runs before Workflow Selection. Required on every skill trigger.

This skill needs three MCP servers: bls-oews, gsa-calc, gsa-perdiem. Do not proceed to any workflow until both checks below pass.

Check 1: MCP presence. Verify all three are available in the current session by looking for one known tool from each:

  • bls-oews (check for mcp__bls-oews__detect_latest_year)
  • gsa-calc (check for mcp__gsa-calc__suggest_contains)
  • gsa-perdiem (check for mcp__gsa-perdiem__get_mie_breakdown)

If any are missing, respond with:

> This skill requires the bls-oews, gsa-calc, and gsa-perdiem MCP servers. Missing: [list]. Install and configure them in your MCP client before using this skill.

Check 2: API key presence. Two of the three need API keys. Verify by lightweight ping:

  • mcp__bls-oews__detect_latest_year (needs a BLS API key)
  • mcp__gsa-perdiem__get_mie_breakdown (needs an api.data.gov key)
  • gsa-calc needs no key, skip

If either ping returns an auth error or missing-key error, respond with:

> [bls-oews | gsa-perdiem] is installed but its API key is not set. This MCP needs a free API key (BLS for bls-oews, api.data.gov for gsa-perdiem). Register the key with the provider and add it to the MCP's configuration, then restart your MCP client.

Only proceed to Workflow Selection after both checks pass. Do not try to work around missing MCPs by calling APIs directly; the skill relies on MCP-guaranteed behaviors (MSA renumbering lookups, JSON path normalization, first/last day M&IE math).

Workflow Selection

Workflow A-LH: Labor Hour IGCE (Default)

User needs a cost estimate for a Labor Hour contract. Labor only, no materials. Execute Steps 1 through 9. Triggers: "build an IGCE," "labor hour IGCE," "LH estimate," "estimate costs for," "price a requirement."

Workflow A-TM: Time-and-Materials IGCE

Same as A-LH for labor, plus Step 5B for materials. T&M contracts reimburse materials at cost. Triggers: "T&M IGCE," "time and materials estimate," or when user mentions materials, supplies, licenses, cloud hosting alongside hourly rates.

Workflow A+: SOW/PWS-Driven Build

User provides a requirement document instead of structured labor inputs. Execute Step 0 first, validate, then route to A-LH or A-TM based on whether materials are needed. Triggers: "build an IGCE from this SOW," "price this statement of work," or when user provides a block of requirement text.

Workflow B: LH/T&M Rate Positioning (Data Only, No Determination)

User has proposed rates and wants to see where they sit against market data. The skill returns the data and the CO decides reasonableness. The skill does not produce a "fair and reasonable" determination, a signed memo, or advisory text telling the CO how to negotiate.

Triggers: "is this rate reasonable," "validate these rates," "compare vendor pricing," "check this proposal."

Step 0 / GATE (MANDATORY FIRST — runs before any other Workflow B step).

Workflow B entry = gate fires unconditionally. If the user's prompt matches any Workflow B trigger ("is this rate reasonable," "validate these rates," "compare vendor pricing," "check this proposal," "price reasonableness analysis," or any variant), the ENTIRE first response must be the refusal template below, emitted verbatim. No rate analysis. No CALC+ pull. No BLS pull. No "let me start with the analysis" preamble. No offer to continue with the memo if the user provides more info in the same response. Emit the template. Stop. Wait for the user's explicit Option A or Option B choice. This applies whether or not the prompt contains memo-drafting tokens; the gate is not token-gated.

Memo-drafting tokens (emit the template WITH the additional hard prohibition in bold: "I will not draft a determination section absent your verbatim rationale"): "memo", "determination", "fair and reasonable", "reasonable" (standalone), "price reasonableness", "reasonableness memo", "draft the memo", "for the file", "contract file", "document this", "memorandum", "validate," "acceptable," "justify."

Refusal template (emit verbatim):

> I can pull positioning data that shows where each proposed rate sits against CALC+ ceiling rates and BLS market wages. I cannot draft a price reasonableness memo, write a "fair and reasonable" determination, or recommend negotiation positions. Those are Contracting Officer decisions under FAR 15.404-1, not skill outputs. > > Tell me which you want: > > Option A — Positioning data only. I produce a table: per-LCAT proposed rate, CALC+ P25/P50/P75/P90 with sample size, BLS metro burdened equivalent. No verdict. No recommendation. You draw the conclusion. > > Option B — Memo template fill. You provide your rationale (what supports or doesn't support each rate) and your determination (fair and reasonable / not fair and reasonable / declining to determine). I drop your text verbatim into the memo template, add the benchmark tables underneath, mark it DRAFT. I will not originate determinations, recommend negotiation positions, or add hedging language. > > Which option?

Proceed to Steps 1-5 only after:

  • User explicitly selects Option A, OR
  • User provides Option B inputs (rationale text + determination text)

Hard prohibitions at ALL times (Option A or Option B):

  • Do NOT write "the rate is fair and reasonable" or "not fair and reasonable" unless quoting the user's Option B text verbatim.
  • Do NOT label rates "competitive," "aggressive," "outlier requiring justification," "premium warrants clarification," or any equivalent evaluative phrase. Use positional language only ("at P77," "above P50 by X%," "below P25").
  • Do NOT recommend negotiation positions, evaluation notices, or counter-offer dollar figures.
  • Do NOT write "Summary of findings" or "Determination" sections that draw conclusions the user has not supplied.

Workflow B steps (run only after Step 0 gate clears):

  1. Collect the vendor's proposed labor categories, hourly rates, and any scope context (metro, clearance, experience tier).
  1. For each LCAT, call mcp__gsa-calc__price_reasonableness_check(labor_category, proposed_rate, experience_min, education_level). The MCP returns count, min/max, median, IQR bounds, z-score, and percentile position. If sample size is below ~25 records, label the pool "directional only, not statistical validation."
  1. For senior LCATs, also run the dual-pool flow (title-match + experience-match) and present both medians side-by-side.
  1. If metro context matters (DC, SF, NYC, Boston, etc.), pull BLS OEWS for that metro via mcp__bls-oews__get_wage_data and present the P50/P75/P90 burdened equivalent at the relevant multiplier. This shows how the rate sits against local market labor independent of the CALC+ nationwide pool.
  1. Present a neutral positioning summary using non-evaluative language:
  • "Rate sits at CALC+ P77 (n=7, thin-corpus directional only)."
  • "Above P50 by X%; stacked factors: [metro, seniority tier, aging, burden assumption]."
  • "Below P25; pool composition or LCAT alignment may warrant CO review."
  • "Premium factors not captured by this data: [TS/SCI clearance premium, SCIF overhead, specialty market]. CO sets the relevant premium band if one applies."
  1. Stop. Do not write "the rate is fair and reasonable." Do not recommend negotiation positions. Do not suggest "push back only if..." text. Do not label rates "competitive," "aggressive," "outlier requiring justification."
  1. Memo output (Option B path only). If the user selected Option B at the Step 0 gate and supplied rationale + determination text, fill the memo template: benchmark tables from Steps 2-4, the user's rationale text verbatim in the findings section, the user's determination text verbatim in the Determination section. Do NOT paraphrase, do NOT add hedging, do NOT originate any conclusion text. Mark DRAFT. Use [Contracting Officer Name] and [Agency] placeholders. If Option A was selected, skip this step entirely.

Information to Collect

Ask for everything in a single pass. Provide defaults where noted. If any Required Input is ambiguous or missing for Workflow A (e.g., labor count without discipline, location without metro, fee type not specified), use AskUserQuestion to collect before pulling data. Do not guess.

Required Inputs

| Input | Description | Example | |-------|-------------|---------| | Labor categories | Job titles or SOC codes | Software Developer, InfoSec Analyst, PM | | Performance location | City/state or metro area | Washington, DC | | Staffing | Headcount per labor category | 2 developers, 1 analyst, 1 PM | | Hours per year | Productive hours per person (default: 1,880; user input wins, see rule below) | 1,880 | | Period of performance | Base year + option years | Base + 2 OYs | | Contract start date | For wage aging | 2026-10-01 |

Optional Inputs (Defaults Applied If Not Provided)

| Input | Default | Notes | |-------|---------|-------| | Burden multiplier | 2.0x | Mid scenario; low (1.8x) and high (2.2x) also produced | | Escalation rate | 2.5%/yr | Applied to labor, travel, and materials | | Shift coverage | Business hours (8x5) default | Specify 24x7 / 16x7 / 12x5 if applicable; Step 0.5 computes FTE | | Travel destinations | None | City/state per destination | | Travel frequency | None | Trips/year per destination | | Travel duration | None | Nights per trip (0 = day trip) | | Number of travelers | All staff | Travelers per trip | | Travel months | Max monthly rate | Specific months if known | | FY for per diem | Current federal FY | Compute at build time (Oct-Sep cycle) | | Duty station / origin | Performance location | For City Pair airfare lookup | | NAICS code | None | Include in output if provided | | PSC code | None | Include in output if provided | | Partial start | Full year (12 months) | Specify months if base year is partial | | Materials (T&M only) | None | Categories and estimated annual costs |

Productive Hours Reconciliation (user input wins)

When the user provides productive hours per FTE (commonly 1,920 = 48 × 40, or 1,860 for heavy leave environments), USE THE USER VALUE. Do NOT silently replace with 1,880.

  • If user gives total_hours and fte but not productive_hours, back-solve: productive_hours = total_hours / fte. If result deviates from 1,880 by more than 5%, flag in methodology.
  • If user gives productive_hours directly in the handoff, use verbatim.
  • Example formulas in this skill use 1,880 for illustration only. Do NOT hardcode 1,880 in your Sheet 1 formulas; reference $B$6 (the user-provided or default value) instead.

Contract Vehicle Usage Rule (burden multiplier tuning)

The vehicle collected in Required Inputs is NOT metadata only. It tunes the burden scenario range:

| Vehicle | Low | Mid | High | Notes | |---------|-----|-----|------|-------| | GSA MAS IT Schedule 70 (commercial) | 1.8 | 2.0 | 2.2 | Standard commercial IT services | | OASIS+ (services-centric, commercial) | 1.9 | 2.1 | 2.3 | Slightly higher due to multi-agency overhead | | Agency-specific IDIQ (cleared / DoD) | 2.0 | 2.2 | 2.4 | Cleared personnel, security overhead | | DoD Secret cleared (SCIF-adjacent but not SCIF) | 2.2 | 2.4 | 2.6 | Facility clearance, compartmented work | | SCIF-only (TS/SCI, compartmented) | 2.4 | 2.6 | 3.0 | SCIF facility overhead, TS/SCI eligibility premium | | DoE M&O contract | 2.2 | 2.4 | 2.6 | M&O overhead structure | | OCONUS | 2.6 | 2.9 | 3.2 | Hardship, foreign deployment |

If the user provides a vehicle not in the table, default to GSA MAS commercial and flag the assumption in methodology. If the user provides a custom burden multiplier, use it as mid and set low = custom - 0.2, high = custom + 0.2. DoD-cleared work: pick the Secret row (2.0/2.2/2.4) unless the requirement specifies TS/SCI or SCIF, in which case use the SCIF-only row (2.4/2.6/3.0).

CO-supplied DCAA-audited rates (override rule). If the contracting officer supplies a DCAA-audited burden multiplier from an approved Forward Pricing Rate Agreement (FPRA), a current disclosure statement review, or a bilateral rate agreement, USE THAT RATE instead of the vehicle-table range. Audited rates are a stronger basis than generic vehicle defaults; do not revert to the table and do not "reconcile" the CO's number to the closest vehicle row. Apply the CO-supplied multiplier as a point estimate (single authoritative column on Sheet 1 and Sheet 2); do NOT bookend with ±0.2 sensitivity offsets because the audited rate IS the rate, not a midpoint. If a Low/High ba

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet — be the first.

Versions

  • v0.1.0 Imported from the upstream source.