OT Cost Analysis
Purpose and operating boundary
Build an auditable, formula-driven cost analysis organized by OT milestone. Separate total project cost, the non-Federal contribution, any consortium or administrative fee, the proposed payment amount, and the Government funding requirement. Use market evidence and arithmetic to support the Agreements Officer without originating the authority path, eligibility finding, significant-participation finding, successful-completion finding, or price-reasonableness determination.
Do not:
- Decide whether 10 U.S.C. 4021, 4022, or 4022(f) applies.
- Decide whether a participant is a nontraditional defense contractor, nonprofit research institution, small business, or significant participant.
- Invent a cost-share ratio, exceptional-circumstances determination, consortium fee, learning curve, indirect-rate structure, or proposed-price basis.
- State that a proposed amount is fair, reasonable, acceptable, competitive, aggressive, premium, or justified.
- Treat a BLS or CALC+ benchmark as the performer's required rate.
- Call the output a FAR 15.404 analysis or an IGCE.
When a sentence would conclude the Agreements Officer's judgment, replace it with the source data, the variance, the scenario range, and the decision left open.
Reference map
Load only the references needed for the active workflow:
- authority-and-cost-sharing.md before classifying or applying a cost share.
- labor-and-costing-methods.md before deriving labor, materials, scenarios, ceilings, fees, or funding timing.
- data-source-operations.md before mapping SOCs or calling BLS, CALC+, or Per Diem operations.
- workbook-specification.md in full before generating the workbook.
- professional-product-standard.md before generating the workbook.
- validation-gates.md before building and again before delivery.
- runtime-adaptation.md when collecting structured answers, locating tools, selecting a calculation engine, or delivering files.
Non-negotiable gates
- Authority is supplied, not inferred: Require the user or Agreements Officer to identify Research OT under 10 U.S.C. 4021, Prototype OT under 10 U.S.C. 4022, or follow-on production under 10 U.S.C. 4022(f). Explain differences but do not choose.
- Correct 4022(d) paths: Path A is significant participation by at least one nontraditional defense contractor or nonprofit research institution. Path B requires all significant non-Government participants to be small businesses or nontraditional defense contractors. Path C requires at least one-third of total project cost from non-Federal sources. Path D is a senior procurement executive's written exceptional-circumstances determination. There is no 4022(d)(1)(D) "competition commitment" path.
- Research OT contribution: For 10 U.S.C. 4021, record that Government funds should, to the extent the Secretary determines practicable, not exceed the total provided by other parties. Do not translate that into an automatic 50/50 rule or automatic 100% Government funding. Require the approved arrangement.
- Production follow-on contribution: Section 4022(d) does not apply to a follow-on under 4022(f). Do not automatically carry the prototype ratio, and do not automatically set Government funding to 100%. Require the negotiated production arrangement.
- Proposed-amount basis: Before comparing numbers, confirm whether each proposed amount represents total project cost, the requested Government payment, a milestone payment, or a cost-type ceiling. Never compare unlike bases.
- Cost-share denominator: Apply a performer ratio to total project cost. For Path C, the non-Federal share must be at least one-third of total project cost. Keep Government share plus performer share equal to the same total project-cost basis before separately treated fees.
- Fee basis: Use a consortium or administrative fee only when the user supplies its rate or fixed amount, base, timing, and cost-share treatment. Default to zero, not five percent.
- CALC+ signature: Use
/v3/api/ceilingrates/ with keyword= when keyword search is required. Never use q=. Preserve aggregations.labor_category.buckets[*].key and doc_count when discovery is used.
- BLS vintage and aging: Call
detect_latest_year at runtime. Store BLS vintage and agreement start as YYYY-MM; use VALUE(LEFT(...)) and VALUE(MID(...)) for month gap. Never trust a stale constant, use YEAR() on text, or substitute DATEDIF.
- Formula-driven workbook: User-adjustable assumptions remain inputs. Calculated labor, escalation, ceilings, cost shares, fees, variances, scenarios, and cumulative funding remain formulas that reference those inputs.
- Cost-type branch: Show both independent should-cost and the user-approved ceiling basis. Government maximum exposure and planned performer contribution at ceiling must use the same ceiling basis. Do not represent either as actual incurred cost.
- Independent validation: Run formula structure, independent Python recomputation, and real-engine verification when available. Openpyxl does not calculate formulas.
- AI boundary: Workflow B returns neutral comparison data unless the user supplies the exact determination text for a controlled memo fill. Never originate the conclusion.
- Staged approval: A derived milestone or staffing model must end at its confirmation question and wait. Do not self-approve or begin data calls while approval is pending.
- Credentialed API pacing: Serialize keyed federal API calls and leave at least three seconds between calls. Honor longer server retry instructions and stop rather than rapidly retrying a rate limit.
Pre-flight: capabilities and dependencies
When this skill is entered immediately after a numbered Other Transaction Agent cost-analysis selection and the current assistant response has not already shown the orchestrator's outcome preview, emit these exact four lines before milestone intake, the proposed-amount boundary, or a capability check:
Begin line 1 with Recommended outcome:. Do not precede the block with a heading, acknowledgement, selection recap, routing narration, or code fence.
Recommended outcome: Milestone-based OT Cost Analysis `.xlsx`
Includes: milestone should-cost, labor and market benchmarks, materials, travel, ODCs, fees, contribution treatment, funding profile, scenarios, and validation
Boundary/default: approved milestones are the default basis; do not infer authority, statutory path, cost share, payment type, ceiling, or a price-reasonableness conclusion
Next: collect approved milestones or concept, authority facts, and missing cost inputs
This is a routing fallback, not a second preview. Do not repeat it when the orchestrator already rendered the four lines in the current assistant response. The fixed Workflow B determination boundary still follows immediately when the supplied context directly triggers it; never replace the preview with intake alone.
Select the workflow and begin useful intake before testing dependencies. Do not make workbook authoring or provider availability the first response after selection. A read-only or artifact-limited session may still reuse supplied facts, identify missing inputs, and develop or review the milestone structure. Inspect only the capabilities the route actually needs immediately before its first dependent MCP call or before promising or beginning workbook generation. Workflow B's fixed boundary takes precedence and must be shown before any pre-flight or tool call.
- Call
bls-oews.get_access_status before any BLS data call. For limited_fallback, tell the user BLS_API_KEY is not configured and v1 is limited to 25 requests per day and 10 years per query; continue only when the workload fits. A missing status operation means an outdated or incomplete MCP or shared host profile.
- When travel is in scope, call
gsa-perdiem.get_access_status before Per Diem data. For limited_fallback, tell the user PERDIEM_API_KEY is not configured and DEMO_KEY is limited to approximately 10 requests per hour. A missing status operation means an outdated or incomplete MCP or host profile.
- Treat
configured_unverified as presence only. Classify a later 401/403 as rejected credentials and 429 as rate limiting, not an outage. Never retry automatically or ask for a key in chat. Direct setup to https://1102tools.com/setup#credentials and require a restart.
- For a build, require
bls-oews operations detect_latest_year, get_wage_data, metro lookup, and SOC lookup plus gsa-calc operations suggest_contains, exact_search, keyword_search, and igce_benchmark or equivalent schemas.
- Require
gsa-perdiem operations estimate_travel_cost, lookup_city_perdiem, and get_mie_breakdown only when travel is in scope.
- Require an
.xlsx authoring path and Python 3.10 or later with openpyxl for the bundled validators. Prefer a real spreadsheet engine for formula execution.
- For a build, test
detect_latest_year before wage retrieval. Test Per Diem only when travel first becomes necessary. Apply the three-second keyed-call spacing to tests and production calls.
- If an operation is unavailable, inspect the same server for a semantically equivalent operation. Do not silently replace an MCP with an ad hoc public API request.
- Stop and report missing, unauthenticated, unavailable, or outdated/incomplete capabilities before beginning dependent work. Preserve completed intake so it is not requested again after the capability is restored. Do not expose credentials.
Select a workflow
Workflow A: build from approved milestones
Use when the user supplies a milestone table or the approved handoff from ot-project-description-builder. Preserve milestone IDs, descriptions, deliverables, success criteria, dates, payment type, and user overrides. Ask only for missing cost inputs.
Workflow A+: build from a concept
Use when no approved milestone table exists. Derive a candidate milestone structure from the prototype or research objective, TRL progression when relevant, delivery evidence, and schedule. Present the table, ask the user to confirm or amend it, end at that question, and wait. Do not call pricing MCPs before approval.
Workflow B: proposed-amount comparison
On the first response, make no tool call. Emit this boundary and stop:
I can build an independent OT should-cost and show the proposed amount's basis, variance, scenario position, and market benchmarks. I cannot originate the Agreements Officer's price-reasonableness determination or negotiation position.
Choose one:
Option A: Comparison data only. I produce neutral tables and a methodology record with no verdict.
Option B: Controlled memo fill. You provide the exact rationale and determination text. I reproduce it verbatim in a DRAFT section and place the neutral evidence beneath it.
Which option?
For Option B, proceed only after the user supplies both the rationale and determination text. Never expand or strengthen it.
Collect and confirm inputs
Use the host's structured question tool when available. Otherwise use numbered choices and accept numbers, labels, or free text. Batch related missing inputs.
Required before cost-share math:
- Authority: 4021 research, 4022 prototype, or 4022(f) follow-on production
- For 4022 prototype, user-confirmed subsection (d) path A, B, C, or D
- Approved performer contribution ratio, cash/in-kind composition, and source
- Performer structure, locations, and Agreements Officer-confirmed status facts
- Proposed-amount basis when a proposal exists
- Consortium or administrative fee facts, or explicit zero
Required before a build:
- Approved milestones with duration, success evidence, payment type, and timing
- Labor categories, staffing or hours, performance location, and start month
- Materials, travel, ODC, and escalation bases
- Productive hours, burden basis, and payment/funding convention
- For cost-type milestones, the approved ceiling or ceiling-margin assumption
Do not guess the authority, statutory path, cost share, location, milestone payment type, fee, proposed-amount basis, or cost-type ceiling.
Consume an approved OT project handoff
Treat a table labeled MILESTONE HANDOFF TABLE and identified for OT Cost Analysis as user-reviewed input.
- Preserve every milestone field, derivation, pending decision, and override.
- Do not repeat milestone decomposition.
- Reconcile contradictions between the handoff and current instruction in a short table and wait for the user to choose.
- Ask the remaining cost inputs in one stage and end at its question.
Orchestration
Step 0: derive milestones only when required
For Workflow A+:
- Hard stop if the project objective is absent.
- Identify expected evidence of completion, schedule, technical progression, Government decisions, and performance location.
- Use TRL only when the project actually uses TRL. Do not force research, software, business-process, or service prototypes into an unsupported TRL ladder.
- Propose milestone ID, objective, duration, entry conditions, completion evidence, payment type marked
PENDING unless supplied, and funding timing.
- Ask the user to confirm or amend the milestone structure. End immediately after the question and wait.
Step 1: validate authority and economics
Read authority-and-cost-sharing.md.
- Restate the user-supplied authority and path without converting facts into a legal determination.
- Validate the cost-share arithmetic and source. For 4022 Path C, reject a non-Federal ratio below one-third.
- Record whether each contribution is cash or in kind and how it will be valued and tracked.
- Confirm proposed-amount basis and fee treatment.
- For 4022(f), record the predecessor prototype and user-supplied competitive-selection and successful-completion facts, but do not make the follow-on eligibility finding.
Step 2: benchmark labor
Read data-source-operations.md and labor-and-costing-methods.md.
- Map each labor category to the best-supported SOC and record proxies.
- Call
detect_latest_year, then retrieve metro, state, or national BLS percentiles using the documented fallback ladder.
- Age the selected direct wage to the agreement start through assumption cells.
- Apply the user-approved burden method. It is a scenario benchmark, not an audit-approved indirect rate.
- For institutions with supplied billing rates or approved indirect structures, preserve those rates and label the source. Do not invent academic billing ranges.
- Keep each performer and location separate. Do not average unlike MSAs or organizations without an approved allocation.
Step 3: obtain CALC+ positioning
Use the discovery-first operation flow. Keep title-match and experience-match pools separate when useful. Record the pool, count, percentiles, and query date. Sparse or absent results remain a disclosed limitation; they do not authorize an invented specialty premium.
Step 4: price materials, travel, and ODCs
Use user-supplied bills of material, quotes, analogous prices, quantities, and escalation bases. Apply materials escalation from project start to each milestone start using month-based compounding. A production learning curve is used only when the user supplies the method and factor.
Use GSA Per Diem for authorized CONUS travel and the operation rules in the data-source reference. Keep airfare, local transportation, and OCONUS travel on their supplied source bases.
Step 5: build milestone should-cost
For each milestone:
labor = sum(category hours * category burdened benchmark)
materials = sum(quantity * unit cost * approved escalation)
travel = sum(validated trip costs)
ODCs = sum(other direct cost inputs)
total project cost = labor + materials + travel + ODCs
performer share = total project cost * approved performer ratio
Government share = total project cost - performer share
fee = approved fee base * approved fee rate, or approved fixed amount
Government funding requirement = Government share + Government-paid fee
For cost-type milestones, calculate the same columns at independent should-cost and at the approved ceiling. Label the ceiling view as maximum exposure, not expected actual cost.
Present the per-milestone build and ask for confirmation before final workbook assembly when staffing, materials, or cost allocation was derived rather than supplied.
Step 6: scenario analysis
Vary only assumptions with a documented basis. Keep low, working, and high labor burden, materials, and escalation inputs in workbook cells. Do not ship generic 1.8/2.0/2.2 or materials multipliers as facts unless the user approves them for this analysis.
Step 7: build the workbook
Read professional-product-standard.md and workbook-specification.md in full. Build the seven required sheets and preserve the formal calculation controls, while making the default summary and print experience concise and decision-centered:
- Blank proposed-amount cells when no proposal exists, with conditional variance formulas.
- Formula-driven labor, escalation, ceiling, share, fee, scenario, and cumulative-funding cells.
- Derived milestone labor hours: each priced labor row carries FTE loading, weeks, and hours-per-FTE-week input cells and computes hours as a formula over them, each milestone carries a formula reconciliation returning
OK or MISMATCH, and any sheet restating those hours references the Milestone Detail cells. Never write hours as a literal or demote the reconciliation to prose.
- Separate performer and Government contributions that reconcile to total project cost.
- Cost-type should-cost and ceiling views using the same contribution basis.
- Compact, reproducible raw-data records rather than full API payloads.
- Neutral methodology language and user-supplied Option B text verbatim when applicable.
Step 7.5: validate before delivery
Read validation-gates.md.
- Run
scripts/validate_workbook.py <workbook> --expected <inputs.json> --engine none.
- Run
scripts/recompute_expected_values.py <inputs.json>.
- If LibreOffice is available, rerun the validator with
--engine auto or --engine libreoffice; require the engine layer to reject cached spreadsheet errors anywhere in the recalculated workbook before mapped values are accepted.
- Inspect every worksheet for formulas, units, source notes, input formatting, broken references, and leaked internal instructions.
- Verify the workbook as a ZIP and, when practical, open or render it in a real spreadsheet application.
- Fix failures and repeat all layers.
Delivery gate: the workbook must pass the validate_workbook.py structural audit with the canonical seven-sheet layout before delivery. Bespoke sheet layouts are not permitted even when the content is correct. A failing validator blocks delivery; never deliver a rejected workbook.
If no spreadsheet engine is available, state exactly:
Formula structure and independent calculations passed. Formula execution was not independently verified in Excel or LibreOffice.
Step 8: deliver
State which validation layers ran. Summarize the authority and contribution facts as user-supplied inputs, the should-cost range, the Government funding range, key sensitivities, missing evidence, and refresh dates. Do not state a price-reasonableness conclusion unless it is the user's verbatim Option B text, visibly marked DRAFT.
Out of scope
- FAR-based IGCEs and FAR 15.404 determinations
- Authority, eligibility, significant-participation, exceptional-circumstances, or successful-completion findings
- Certified cost or pricing data demands
- Unsupported indirect-rate, profit, fee, learning-curve, or specialty-premium assumptions
- Grants, cooperative agreements, and OT project descriptions
- OCONUS per diem without a supplied State Department or other approved source
MIT © James Jenrette / 1102tools. Source: github.com/1102tools-dev/federal-contracting-skills
1---2name: ot-cost-analysis3description: Trigger for: Other Transaction or OT should-cost, cost estimate, cost-share analysis, milestone pricing, funding profile, proposed-price comparison, prototype price analysis, research OT budget, production follow-on OT estimate, or OT price-reasonableness support under 10 U.S.C. 4021 or 4022. Build auditable milestone-based .xlsx workbooks using BLS OEWS wages, CALC+ positioning, GSA Per Diem, materials, cost sharing, and agreement-specific fees. Use for pre-solicitation budgets and proposal comparisons. Do NOT use for FAR-based IGCEs, OT project descriptions, grants, or an Agreements Officer's determination. Requires the bls-oews, gsa-calc, and, when travel applies, gsa-perdiem MCP servers.4---56# OT Cost Analysis78## Purpose and operating boundary910Build an auditable, formula-driven cost analysis organized by OT milestone. Separate total project cost, the non-Federal contribution, any consortium or administrative fee, the proposed payment amount, and the Government funding requirement. Use market evidence and arithmetic to support the Agreements Officer without originating the authority path, eligibility finding, significant-participation finding, successful-completion finding, or price-reasonableness determination.1112Do not:1314- Decide whether 10 U.S.C. 4021, 4022, or 4022(f) applies.15- Decide whether a participant is a nontraditional defense contractor, nonprofit research institution, small business, or significant participant.16- Invent a cost-share ratio, exceptional-circumstances determination, consortium fee, learning curve, indirect-rate structure, or proposed-price basis.17- State that a proposed amount is fair, reasonable, acceptable, competitive, aggressive, premium, or justified.18- Treat a BLS or CALC+ benchmark as the performer's required rate.19- Call the output a FAR 15.404 analysis or an IGCE.2021When a sentence would conclude the Agreements Officer's judgment, replace it with the source data, the variance, the scenario range, and the decision left open.2223## Reference map2425Load only the references needed for the active workflow:2627- [authority-and-cost-sharing.md](references/authority-and-cost-sharing.md) before classifying or applying a cost share.28- [labor-and-costing-methods.md](references/labor-and-costing-methods.md) before deriving labor, materials, scenarios, ceilings, fees, or funding timing.29- [data-source-operations.md](references/data-source-operations.md) before mapping SOCs or calling BLS, CALC+, or Per Diem operations.30- [workbook-specification.md](references/workbook-specification.md) in full before generating the workbook.31- [professional-product-standard.md](references/professional-product-standard.md) before generating the workbook.32- [validation-gates.md](references/validation-gates.md) before building and again before delivery.33- [runtime-adaptation.md](references/runtime-adaptation.md) when collecting structured answers, locating tools, selecting a calculation engine, or delivering files.3435## Non-negotiable gates36371. **Authority is supplied, not inferred:** Require the user or Agreements Officer to identify Research OT under 10 U.S.C. 4021, Prototype OT under 10 U.S.C. 4022, or follow-on production under 10 U.S.C. 4022(f). Explain differences but do not choose.382. **Correct 4022(d) paths:** Path A is significant participation by at least one nontraditional defense contractor or nonprofit research institution. Path B requires all significant non-Government participants to be small businesses or nontraditional defense contractors. Path C requires at least one-third of total project cost from non-Federal sources. Path D is a senior procurement executive's written exceptional-circumstances determination. There is no 4022(d)(1)(D) "competition commitment" path.393. **Research OT contribution:** For 10 U.S.C. 4021, record that Government funds should, to the extent the Secretary determines practicable, not exceed the total provided by other parties. Do not translate that into an automatic 50/50 rule or automatic 100% Government funding. Require the approved arrangement.404. **Production follow-on contribution:** Section 4022(d) does not apply to a follow-on under 4022(f). Do not automatically carry the prototype ratio, and do not automatically set Government funding to 100%. Require the negotiated production arrangement.415. **Proposed-amount basis:** Before comparing numbers, confirm whether each proposed amount represents total project cost, the requested Government payment, a milestone payment, or a cost-type ceiling. Never compare unlike bases.426. **Cost-share denominator:** Apply a performer ratio to total project cost. For Path C, the non-Federal share must be at least one-third of total project cost. Keep Government share plus performer share equal to the same total project-cost basis before separately treated fees.437. **Fee basis:** Use a consortium or administrative fee only when the user supplies its rate or fixed amount, base, timing, and cost-share treatment. Default to zero, not five percent.448. **CALC+ signature:** Use `/v3/api/ceilingrates/` with `keyword=` when keyword search is required. Never use `q=`. Preserve `aggregations.labor_category.buckets[*].key` and `doc_count` when discovery is used.459. **BLS vintage and aging:** Call `detect_latest_year` at runtime. Store BLS vintage and agreement start as `YYYY-MM`; use `VALUE(LEFT(...))` and `VALUE(MID(...))` for month gap. Never trust a stale constant, use `YEAR()` on text, or substitute `DATEDIF`.4610. **Formula-driven workbook:** User-adjustable assumptions remain inputs. Calculated labor, escalation, ceilings, cost shares, fees, variances, scenarios, and cumulative funding remain formulas that reference those inputs.4711. **Cost-type branch:** Show both independent should-cost and the user-approved ceiling basis. Government maximum exposure and planned performer contribution at ceiling must use the same ceiling basis. Do not represent either as actual incurred cost.4812. **Independent validation:** Run formula structure, independent Python recomputation, and real-engine verification when available. Openpyxl does not calculate formulas.4913. **AI boundary:** Workflow B returns neutral comparison data unless the user supplies the exact determination text for a controlled memo fill. Never originate the conclusion.5014. **Staged approval:** A derived milestone or staffing model must end at its confirmation question and wait. Do not self-approve or begin data calls while approval is pending.5115. **Credentialed API pacing:** Serialize keyed federal API calls and leave at least three seconds between calls. Honor longer server retry instructions and stop rather than rapidly retrying a rate limit.5253## Pre-flight: capabilities and dependencies5455When this skill is entered immediately after a numbered Other Transaction Agent cost-analysis selection and the current assistant response has not already shown the orchestrator's outcome preview, emit these exact four lines before milestone intake, the proposed-amount boundary, or a capability check:5657Begin line 1 with `Recommended outcome:`. Do not precede the block with a heading, acknowledgement, selection recap, routing narration, or code fence.5859```text60Recommended outcome: Milestone-based OT Cost Analysis `.xlsx`61Includes: milestone should-cost, labor and market benchmarks, materials, travel, ODCs, fees, contribution treatment, funding profile, scenarios, and validation62Boundary/default: approved milestones are the default basis; do not infer authority, statutory path, cost share, payment type, ceiling, or a price-reasonableness conclusion63Next: collect approved milestones or concept, authority facts, and missing cost inputs64```6566This is a routing fallback, not a second preview. Do not repeat it when the orchestrator already rendered the four lines in the current assistant response. The fixed Workflow B determination boundary still follows immediately when the supplied context directly triggers it; never replace the preview with intake alone.6768Select the workflow and begin useful intake before testing dependencies. Do not make workbook authoring or provider availability the first response after selection. A read-only or artifact-limited session may still reuse supplied facts, identify missing inputs, and develop or review the milestone structure. Inspect only the capabilities the route actually needs immediately before its first dependent MCP call or before promising or beginning workbook generation. Workflow B's fixed boundary takes precedence and must be shown before any pre-flight or tool call.69701. Call `bls-oews.get_access_status` before any BLS data call. For `limited_fallback`, tell the user `BLS_API_KEY` is not configured and v1 is limited to 25 requests per day and 10 years per query; continue only when the workload fits. A missing status operation means an outdated or incomplete MCP or shared host profile.712. When travel is in scope, call `gsa-perdiem.get_access_status` before Per Diem data. For `limited_fallback`, tell the user `PERDIEM_API_KEY` is not configured and `DEMO_KEY` is limited to approximately 10 requests per hour. A missing status operation means an outdated or incomplete MCP or host profile.723. Treat `configured_unverified` as presence only. Classify a later 401/403 as rejected credentials and 429 as rate limiting, not an outage. Never retry automatically or ask for a key in chat. Direct setup to `https://1102tools.com/setup#credentials` and require a restart.734. For a build, require `bls-oews` operations `detect_latest_year`, `get_wage_data`, metro lookup, and SOC lookup plus `gsa-calc` operations `suggest_contains`, `exact_search`, `keyword_search`, and `igce_benchmark` or equivalent schemas.745. Require `gsa-perdiem` operations `estimate_travel_cost`, `lookup_city_perdiem`, and `get_mie_breakdown` only when travel is in scope.756. Require an `.xlsx` authoring path and Python 3.10 or later with openpyxl for the bundled validators. Prefer a real spreadsheet engine for formula execution.767. For a build, test `detect_latest_year` before wage retrieval. Test Per Diem only when travel first becomes necessary. Apply the three-second keyed-call spacing to tests and production calls.778. If an operation is unavailable, inspect the same server for a semantically equivalent operation. Do not silently replace an MCP with an ad hoc public API request.789. Stop and report missing, unauthenticated, unavailable, or outdated/incomplete capabilities before beginning dependent work. Preserve completed intake so it is not requested again after the capability is restored. Do not expose credentials.7980## Select a workflow8182### Workflow A: build from approved milestones8384Use when the user supplies a milestone table or the approved handoff from `ot-project-description-builder`. Preserve milestone IDs, descriptions, deliverables, success criteria, dates, payment type, and user overrides. Ask only for missing cost inputs.8586### Workflow A+: build from a concept8788Use when no approved milestone table exists. Derive a candidate milestone structure from the prototype or research objective, TRL progression when relevant, delivery evidence, and schedule. Present the table, ask the user to confirm or amend it, end at that question, and wait. Do not call pricing MCPs before approval.8990### Workflow B: proposed-amount comparison9192On the first response, make no tool call. Emit this boundary and stop:9394> I can build an independent OT should-cost and show the proposed amount's basis, variance, scenario position, and market benchmarks. I cannot originate the Agreements Officer's price-reasonableness determination or negotiation position.95>96> Choose one:97>98> **Option A: Comparison data only.** I produce neutral tables and a methodology record with no verdict.99>100> **Option B: Controlled memo fill.** You provide the exact rationale and determination text. I reproduce it verbatim in a DRAFT section and place the neutral evidence beneath it.101>102> Which option?103104For Option B, proceed only after the user supplies both the rationale and determination text. Never expand or strengthen it.105106## Collect and confirm inputs107108Use the host's structured question tool when available. Otherwise use numbered choices and accept numbers, labels, or free text. Batch related missing inputs.109110Required before cost-share math:111112- Authority: 4021 research, 4022 prototype, or 4022(f) follow-on production113- For 4022 prototype, user-confirmed subsection (d) path A, B, C, or D114- Approved performer contribution ratio, cash/in-kind composition, and source115- Performer structure, locations, and Agreements Officer-confirmed status facts116- Proposed-amount basis when a proposal exists117- Consortium or administrative fee facts, or explicit zero118119Required before a build:120121- Approved milestones with duration, success evidence, payment type, and timing122- Labor categories, staffing or hours, performance location, and start month123- Materials, travel, ODC, and escalation bases124- Productive hours, burden basis, and payment/funding convention125- For cost-type milestones, the approved ceiling or ceiling-margin assumption126127Do not guess the authority, statutory path, cost share, location, milestone payment type, fee, proposed-amount basis, or cost-type ceiling.128129### Consume an approved OT project handoff130131Treat a table labeled `MILESTONE HANDOFF TABLE` and identified for OT Cost Analysis as user-reviewed input.1321331. Preserve every milestone field, derivation, pending decision, and override.1342. Do not repeat milestone decomposition.1353. Reconcile contradictions between the handoff and current instruction in a short table and wait for the user to choose.1364. Ask the remaining cost inputs in one stage and end at its question.137138## Orchestration139140### Step 0: derive milestones only when required141142For Workflow A+:1431441. Hard stop if the project objective is absent.1452. Identify expected evidence of completion, schedule, technical progression, Government decisions, and performance location.1463. Use TRL only when the project actually uses TRL. Do not force research, software, business-process, or service prototypes into an unsupported TRL ladder.1474. Propose milestone ID, objective, duration, entry conditions, completion evidence, payment type marked `PENDING` unless supplied, and funding timing.1485. Ask the user to confirm or amend the milestone structure. End immediately after the question and wait.149150### Step 1: validate authority and economics151152Read [authority-and-cost-sharing.md](references/authority-and-cost-sharing.md).1531541. Restate the user-supplied authority and path without converting facts into a legal determination.1552. Validate the cost-share arithmetic and source. For 4022 Path C, reject a non-Federal ratio below one-third.1563. Record whether each contribution is cash or in kind and how it will be valued and tracked.1574. Confirm proposed-amount basis and fee treatment.1585. For 4022(f), record the predecessor prototype and user-supplied competitive-selection and successful-completion facts, but do not make the follow-on eligibility finding.159160### Step 2: benchmark labor161162Read [data-source-operations.md](references/data-source-operations.md) and [labor-and-costing-methods.md](references/labor-and-costing-methods.md).1631641. Map each labor category to the best-supported SOC and record proxies.1652. Call `detect_latest_year`, then retrieve metro, state, or national BLS percentiles using the documented fallback ladder.1663. Age the selected direct wage to the agreement start through assumption cells.1674. Apply the user-approved burden method. It is a scenario benchmark, not an audit-approved indirect rate.1685. For institutions with supplied billing rates or approved indirect structures, preserve those rates and label the source. Do not invent academic billing ranges.1696. Keep each performer and location separate. Do not average unlike MSAs or organizations without an approved allocation.170171### Step 3: obtain CALC+ positioning172173Use the discovery-first operation flow. Keep title-match and experience-match pools separate when useful. Record the pool, count, percentiles, and query date. Sparse or absent results remain a disclosed limitation; they do not authorize an invented specialty premium.174175### Step 4: price materials, travel, and ODCs176177Use user-supplied bills of material, quotes, analogous prices, quantities, and escalation bases. Apply materials escalation from project start to each milestone start using month-based compounding. A production learning curve is used only when the user supplies the method and factor.178179Use GSA Per Diem for authorized CONUS travel and the operation rules in the data-source reference. Keep airfare, local transportation, and OCONUS travel on their supplied source bases.180181### Step 5: build milestone should-cost182183For each milestone:184185```text186labor = sum(category hours * category burdened benchmark)187materials = sum(quantity * unit cost * approved escalation)188travel = sum(validated trip costs)189ODCs = sum(other direct cost inputs)190total project cost = labor + materials + travel + ODCs191performer share = total project cost * approved performer ratio192Government share = total project cost - performer share193fee = approved fee base * approved fee rate, or approved fixed amount194Government funding requirement = Government share + Government-paid fee195```196197For cost-type milestones, calculate the same columns at independent should-cost and at the approved ceiling. Label the ceiling view as maximum exposure, not expected actual cost.198199Present the per-milestone build and ask for confirmation before final workbook assembly when staffing, materials, or cost allocation was derived rather than supplied.200201### Step 6: scenario analysis202203Vary only assumptions with a documented basis. Keep low, working, and high labor burden, materials, and escalation inputs in workbook cells. Do not ship generic 1.8/2.0/2.2 or materials multipliers as facts unless the user approves them for this analysis.204205### Step 7: build the workbook206207Read [professional-product-standard.md](references/professional-product-standard.md) and [workbook-specification.md](references/workbook-specification.md) in full. Build the seven required sheets and preserve the formal calculation controls, while making the default summary and print experience concise and decision-centered:208209- Blank proposed-amount cells when no proposal exists, with conditional variance formulas.210- Formula-driven labor, escalation, ceiling, share, fee, scenario, and cumulative-funding cells.211- Derived milestone labor hours: each priced labor row carries FTE loading, weeks, and hours-per-FTE-week input cells and computes hours as a formula over them, each milestone carries a formula reconciliation returning `OK` or `MISMATCH`, and any sheet restating those hours references the Milestone Detail cells. Never write hours as a literal or demote the reconciliation to prose.212- Separate performer and Government contributions that reconcile to total project cost.213- Cost-type should-cost and ceiling views using the same contribution basis.214- Compact, reproducible raw-data records rather than full API payloads.215- Neutral methodology language and user-supplied Option B text verbatim when applicable.216217### Step 7.5: validate before delivery218219Read [validation-gates.md](references/validation-gates.md).2202211. Run `scripts/validate_workbook.py <workbook> --expected <inputs.json> --engine none`.2222. Run `scripts/recompute_expected_values.py <inputs.json>`.2233. If LibreOffice is available, rerun the validator with `--engine auto` or `--engine libreoffice`; require the engine layer to reject cached spreadsheet errors anywhere in the recalculated workbook before mapped values are accepted.2244. Inspect every worksheet for formulas, units, source notes, input formatting, broken references, and leaked internal instructions.2255. Verify the workbook as a ZIP and, when practical, open or render it in a real spreadsheet application.2266. Fix failures and repeat all layers.227228Delivery gate: the workbook must pass the `validate_workbook.py` structural audit with the canonical seven-sheet layout before delivery. Bespoke sheet layouts are not permitted even when the content is correct. A failing validator blocks delivery; never deliver a rejected workbook.229230If no spreadsheet engine is available, state exactly:231232> Formula structure and independent calculations passed. Formula execution was not independently verified in Excel or LibreOffice.233234### Step 8: deliver235236State which validation layers ran. Summarize the authority and contribution facts as user-supplied inputs, the should-cost range, the Government funding range, key sensitivities, missing evidence, and refresh dates. Do not state a price-reasonableness conclusion unless it is the user's verbatim Option B text, visibly marked DRAFT.237238## Out of scope239240- FAR-based IGCEs and FAR 15.404 determinations241- Authority, eligibility, significant-participation, exceptional-circumstances, or successful-completion findings242- Certified cost or pricing data demands243- Unsupported indirect-rate, profit, fee, learning-curve, or specialty-premium assumptions244- Grants, cooperative agreements, and OT project descriptions245- OCONUS per diem without a supplied State Department or other approved source246247---248249*MIT © James Jenrette / 1102tools. Source: github.com/1102tools-dev/federal-contracting-skills*