Tools · CLIN 0001 Pricing & cost accounting
Indirect Rate Estimator
PlannedTurn your cost pools and allocation bases into fringe, overhead and G&A rates.
This tool is planned. There is nothing to open yet. What follows is the plan, and it can change before the tool ships. The guide below covers the same job by hand in the meantime. Jump to the full specification.
What it will do
Enter your annual cost pools and the base each one is divided by. The tool works out the fringe, overhead and G&A rates, shows the division behind each, and lets you compare allocation bases, such as a total cost input base against a value-added base for G&A.
You bring
- Direct and indirect labor dollars for the year
- The totals of your fringe, overhead and G&A pools
- The allocation base for each pool
You get
- Fringe, overhead and G&A rates, with the arithmetic shown
- The same pools on different bases, side by side
Built from
- FAR Part 31, especially 31.201-2, 31.202 and 31.203
- FAR Subpart 42.7, “Indirect Cost Rates”
- DCAA, “Information for Contractors” (DCAA Manual 7641.90)
Only material the government has officially released to the public. Where the rules live shows how to find and cite each one.
Do it by hand today
- Labor rates and wrap rates · Turn pools into ratesHow a wage becomes a billing rate: direct and indirect costs, fringe, overhead, G&A and fee, with a worked example you can check by hand.
True of every tool
- Free and open source.
- No paid tier, no ads, and the code is public.
- Runs in your browser.
- What you type or open is not sent anywhere.
- No tracking.
- No accounts, cookies or analytics.
- Shows its sources.
- Each result names the rule it rests on, so you can check it.
- Says what it does not do.
- It is an aid for your own work, not professional advice.
What happens to what you type shows how to confirm this yourself, and Check a tool’s answer is the method for verifying a result.
Want it sooner?
Requests decide what is built first. Say what you would use it for, and what you do by hand today.
Issues are public. Leave out real contract data, real rates and anything controlled. How to write a useful request.
Specification · draft
How it is meant to work, in detail
The inputs, the logic, the checks the tool has to pass and the worked examples it is tested against. It is a draft, and the tool is built from it, so it can change until the tool ships.
3 min readLast revised November 2026Source of this specification
Overview & Role#
The Indirect Rate Estimator (indirect-rate-estimator, CLIN 0001: Pricing & cost accounting) is a standalone, MIT-licensed static browser utility generated by Moldloft using the deterministic calculator stack template. It takes a contractor's annual direct labor, indirect labor, and indirect cost pools (fringe, overhead, and G&A) and calculates the resulting indirect rates under selectable allocation base conventions.
Because indirect rates are meaningless without their allocation bases, the tool enforces explicit base selection and displays the exact numerator and denominator for every rate. It executes 100% in browser memory with zero backend servers, zero runtime AI, and zero outbound network requests.
Governing Regulations & Sources#
| Authority | Citation | Role in Tool |
|---|---|---|
| FAR Part 31 | FAR 31.201-2, 31.202, 31.203 | Defines cost allowability, direct costs, indirect cost pools, and consistent allocation bases. |
| FAR 31.205 Cost Principles | FAR 31.205-1, -3, -8, -14, -15, -20, -22, -51 | Lists expressly unallowable costs (advertising, bad debts, donations, entertainment, fines, interest, lobbying, alcohol) that must be excluded from every pool. |
| FAR Subpart 42.7 & Clause 52.216-7 | FAR 42.703-1, 42.705, 52.216-7 | Governs fiscal-year indirect cost rate pools, provisional billing rates, and annual incurred cost submissions. |
| Cost Accounting Standards (CAS) | 48 CFR 9903.201-1, 9904.410 | Notes the small-business CAS exemption while referencing standard Total Cost Input (TCI) vs. Value-Added G&A base definitions. |
| DCAA Manual 7641.90 | Information for Contractors | Standard reference for three-pool (Fringe, Overhead, G&A) and two-pool (Fringe, G&A) small-business rate structures. |
Inputs, Calculation Logic & Outputs#
Inputs
| Field | Type | Constraints / Options | Default |
|---|---|---|---|
Direct Labor Dollars (DL) | Currency ($) | >= 0.00 | 600,000.00 |
Indirect Labor Dollars (IL) | Currency ($) | >= 0.00 | 100,000.00 |
Fringe Pool (P_fringe) | Currency ($) | >= 0.00 (allowable fringe costs only) | 210,000.00 |
Overhead Pool (P_oh) | Currency ($) | >= 0.00 (allowable overhead costs only) | 156,000.00 |
| Overhead Base Convention | Enum | dl_plus_fringe (direct labor + fringe on direct labor) or dl_only (direct labor alone) | dl_plus_fringe |
G&A Pool (P_ga) | Currency ($) | >= 0.00 (allowable G&A costs only) | 112,320.00 |
| G&A Base Convention | Enum | total_cost_input (all costs beneath G&A) or value_added (excludes subcontracts & direct materials/ODCs) | total_cost_input |
Subcontracts & Direct Materials / ODCs (Sub_ODC) | Currency ($) | >= 0.00 (included in G&A base under total_cost_input, excluded under value_added) | 0.00 |
Calculation Logic
- Fringe Rate (
R_fringe):fringe_base = DL + ILR_fringe = P_fringe / fringe_base(expressed as%,0.00%iffringe_base == 0)
- Fringe Allocated to Direct Labor (
F_dl):F_dl = DL * R_fringe
- Overhead Base (
B_oh) & Overhead Rate (R_oh):- If
dl_plus_fringe:B_oh = DL + F_dl - If
dl_only:B_oh = DL R_oh = P_oh / B_oh(expressed as%,0.00%ifB_oh == 0)
- If
- G&A Base (
B_ga) & G&A Rate (R_ga):- If
total_cost_input:B_ga = DL + F_dl + P_oh + Sub_ODC - If
value_added:B_ga = DL + F_dl + P_oh R_ga = P_ga / B_ga(expressed as%,0.00%ifB_ga == 0)
- If
Outputs
- Calculated Rates: Fringe Rate (
%), Overhead Rate (%), and G&A Rate (%) rounded to 2 decimal places (XX.XX%), with full-precision ratios shown in the formula breakdown. - Pool-and-Base Breakdown Table: Shows each pool's numerator, exact denominator components, and resulting rate.
- Unallowable Cost Reminder: Checklist reminding users to segregate unallowable expenses (FAR 31.205) into separate general-ledger accounts before entering pool totals.
- Handoff Summary: Displays the three resulting rates formatted for direct entry into the Wrap Rate Calculator.
Clean-Room & 5-Condition QA Requirements#
- Offline Execution: All math and regulatory reference tables run locally in browser memory with zero external scripts, fonts, or network requests.
- Strict Content Security Policy: Enforces
default-src 'self'; connect-src 'self'; form-action 'none'so sensitive company pool figures never leave the browser. - Zero Tracking or Accounts: Zero sign-in walls, analytics, cookies, or visitor counters. Optional
localStoragedraft saving must be disclosed with an explicit Clear Data button. - Worked-Example Assertions & Synthetic Fixtures: Automated tests verify exact rate calculations against synthetic fixtures and boundary cases (
fringe_base = 0,B_oh = 0,total_cost_inputvs.value_addedwith non-zeroSub_ODC). Real contractor financial data is strictly forbidden. - Citations, Scope Limits & MIT License: Cites FAR Part 31 and DCAA Manual 7641.90 inline, states scope limits (does not audit general ledgers, validate CAS disclosure statements, or replace CPA/DCAA review), includes a non-advice disclaimer, and carries an
MITLICENSEfile.
Worked Example & Verification#
Primary Fixture (from Labor rates and wrap rates)
- Inputs:
DL = $600,000,IL = $100,000,P_fringe = $210,000,P_oh = $156,000(dl_plus_fringe),P_ga = $112,320(total_cost_input),Sub_ODC = $0. - Expected Output:
- Fringe Rate:
$210,000 / ($600,000 + $100,000) = $210,000 / $700,000=30.00% - Direct Labor with Fringe:
$600,000 × 1.30=$780,000(F_dl = $180,000) - Overhead Rate:
$156,000 / $780,000=20.00% - G&A Base (TCI):
$600,000 + $180,000 + $156,000=$936,000 - G&A Rate:
$112,320 / $936,000=12.00%
- Fringe Rate:
Boundary & Convention Fixtures
- Value-Added vs. TCI Check: Adding
Sub_ODC = $100,000withP_ga = $112,320:- Under
total_cost_input:B_ga = $1,036,000→R_ga = 10.84% - Under
value_added:B_ga = $936,000→R_ga = 12.00%
- Under
- Zero Base Guard: Entering
DL = 0andIL = 0displays0.00%(orN/A — zero base) withoutNaNor runtime errors.