{
  "slug": "project-quote",
  "title": "Project Quote Calculator",
  "heading": "Project Quote Calculator",
  "category": "financial",
  "url": "https://www.revenuelab.fyi/toolbox/project-quote",
  "summary": "Price a fixed-scope project without losing money.",
  "description": "Fixed-price work fails when scope creep eats the margin. Build in a contingency, price the revisions you know are coming, and quote a number you can still profit on at 130% of the estimated hours.",
  "formula": "Quote = (Hours × Rate + Costs) × (1 + Contingency) × (1 + Margin).",
  "dateModified": "2026-09-30",
  "run_url": "https://www.revenuelab.fyi/api/public/calc?tool=project-quote",
  "inputs": [
    {
      "id": "hours",
      "label": "Estimated hours",
      "kind": "number",
      "hint": null,
      "default": 80,
      "unit": null,
      "min": 1,
      "max": null
    },
    {
      "id": "rate",
      "label": "Your hourly rate",
      "kind": "number",
      "hint": null,
      "default": 110,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "costs",
      "label": "Direct costs and subcontractors",
      "kind": "number",
      "hint": null,
      "default": 1500,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "contingency",
      "label": "Contingency buffer",
      "kind": "number",
      "hint": null,
      "default": 20,
      "unit": "%",
      "min": 0,
      "max": 100
    },
    {
      "id": "margin",
      "label": "Profit margin on top",
      "kind": "number",
      "hint": null,
      "default": 15,
      "unit": "%",
      "min": 0,
      "max": 100
    }
  ],
  "outputs": [
    {
      "id": "quote",
      "label": "Quote the client",
      "format": "currency",
      "hint": null,
      "primary": true
    },
    {
      "id": "deposit",
      "label": "50% deposit to invoice up front",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "base",
      "label": "Raw cost of delivery",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "buffer",
      "label": "Contingency built in",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "profit",
      "label": "Profit if it runs to plan",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "effectiveRate",
      "label": "Effective hourly rate",
      "format": "currency",
      "hint": null,
      "primary": false
    }
  ],
  "worked_example": {
    "inputs": [
      "Estimated hours: 80",
      "Your hourly rate: 110 $",
      "Direct costs and subcontractors: 1500 $",
      "Contingency buffer: 20 %",
      "Profit margin on top: 15 %"
    ],
    "outputs": [
      "Quote the client: $14,214.00",
      "50% deposit to invoice up front: $7,107.00",
      "Raw cost of delivery: $10,300.00",
      "Contingency built in: $2,060.00",
      "Profit if it runs to plan: $3,914.00",
      "Effective hourly rate: $177.67"
    ]
  },
  "how_to": {
    "title": "How to use this",
    "steps": [
      "Enter estimated hours.",
      "Enter your hourly rate ($).",
      "Enter direct costs and subcontractors ($).",
      "Enter contingency buffer (%).",
      "Enter profit margin on top (%).",
      "Read your quote the client on the right — it updates as you type.",
      "Hit Share to keep the scenario or send it to someone."
    ]
  },
  "scenarios": [
    {
      "name": "Conservative",
      "description": "Lower-end numbers — what if things land soft?",
      "values": {
        "hours": 48,
        "rate": 110,
        "costs": 900,
        "contingency": 10,
        "margin": 10
      }
    },
    {
      "name": "Typical",
      "description": "Defaults — the most common real-world setup.",
      "values": {
        "hours": 80,
        "rate": 110,
        "costs": 1500,
        "contingency": 20,
        "margin": 15
      }
    },
    {
      "name": "Ambitious",
      "description": "Higher-end numbers — what if things really pop?",
      "values": {
        "hours": 128,
        "rate": 110,
        "costs": 2400,
        "contingency": 30,
        "margin": 25
      }
    }
  ],
  "limitations": [
    "Results are estimates before tax, fees, and inflation unless an input explicitly covers them.",
    "Rates are treated as fixed for the whole period — variable-rate products will drift from this projection.",
    "This is educational maths, not financial advice. Check anything contractual with the lender or your accountant."
  ],
  "faq": [
    {
      "q": "How does the project quote calculator work?",
      "a": "Fixed-price work fails when scope creep eats the margin. Build in a contingency, price the revisions you know are coming, and quote a number you can still profit on at 130% of the estimated hours. The underlying maths is: Quote = (Hours × Rate + Costs) × (1 + Contingency) × (1 + Margin)."
    },
    {
      "q": "What do I need to enter?",
      "a": "5 values: estimated hours, your hourly rate, direct costs and subcontractors, contingency buffer, and profit margin on top. Each field starts with a sensible default, so you can change one number at a time and watch the result move."
    },
    {
      "q": "What does the quote the client result mean?",
      "a": "It is returned as a money amount in US dollars and updates live as you edit the inputs, so you can compare two or three versions of a scenario in a few seconds."
    },
    {
      "q": "Is this calculator free, and do I need an account?",
      "a": "Yes, it's free, and no account is required. Nothing you type is stored on our servers — the maths runs entirely in your browser."
    },
    {
      "q": "How accurate is the result?",
      "a": "It applies the standard formula exactly, so the arithmetic is precise. Results are estimates before tax, fees, and inflation unless an input explicitly covers them."
    },
    {
      "q": "Who is this tool for?",
      "a": "It's built for anyone comparing money scenarios before committing — budgeting a payment, sanity-checking a quote, or seeing what a change in rate or term actually costs."
    }
  ],
  "related": [
    "https://www.revenuelab.fyi/toolbox/freelance-rate",
    "https://www.revenuelab.fyi/toolbox/agency-utilization",
    "https://www.revenuelab.fyi/toolbox/invoice-late-fee"
  ],
  "license": "CC-BY-4.0",
  "citation": "RevenueLab — Project Quote Calculator (https://www.revenuelab.fyi/toolbox/project-quote)"
}