Set Up Your Freelance Rate and Risk Variables Before Your First Client Scope
Before you can build a defensible proposal for any client, you need a foundation: a written record of your hourly rates, complexity categories, and risk buffer percentages. Most freelancers skip this step and wing it per-project, which leads to wildly inconsistent pricing, forgotten costs, and scope creep that eats your margin. This stage takes 30–45 minutes the first time and requires no tools beyond a spreadsheet or text file.
Why This Step Matters
A rate and risk schema is a single source of truth for how much you charge, what kinds of work you do, and how much uncertainty to bake into your estimates. Without it, you:
- Quote the same work at different rates depending on mood or desperation
- Forget to account for testing, debugging, or client revisions
- Cannot explain your prices to clients without sounding arbitrary
- Spend mental energy re-deciding the same thing for each project
A written schema solves all four. It also makes your subsequent scoping prompts (Stages 1–6) work: they reference your variables to produce estimates that are internally consistent across every client.
What Goes Into the Schema
Your schema needs four sections:
1. Hourly Rates by Skill Level
Define your base hourly rate for each type of work you do. Common categories: frontend development, backend development, DevOps, design, project management, QA. If you work solo, you may have one rate. If you're building a small team or agency, you may have junior, mid, and senior rates. Write the number down. Be honest about what clients actually pay for your market and experience, not what you wish they'd pay.
2. Work Categories and Complexity Levels
You will score tasks by complexity: simple, moderate, complex, or very complex. For each, write a brief definition. Example: "Simple" = routine CRUD forms, template edits, config changes. "Complex" = multi-step integrations, API design, database schema changes. This becomes your rubric in Stage 2 (task decomposition). Without it, you'll score the same type of work differently each time.
3. Risk Buffer Percentage
This is how much extra time you add to your raw estimate to account for unknown unknowns: client delays, scope clarification, bugs discovered late, browser incompatibilities. Typical buffers are 15–35%. Choose based on your risk tolerance. Nervous clients and unclear briefs justify 30–35%. Repeat clients with clear specs, 15–20%. Write the number in your schema. You'll apply it the same way in every estimate.
4. Non-Billable Overhead
Some freelancers add a markup for time not charged directly: invoicing, email, meeting notes, admin. Others don't. Decide once and record it. Example: "5% of billable hours reserved for admin" or "None—I eat it." Consistency matters more than the number you pick.
Common Mistakes in This Step
Setting rates too low out of fear. You will live with these numbers for months. Underpricing yourself feeds resentment and binds you to low-margin work. If you don't know your market rate, spend an hour reading freelancer rate surveys or asking peers in private Slack groups. Then pick a rate you can defend, even if it's higher than your gut says.
Creating too many complexity buckets. Seven categories of work sound precise but become noise when you're trying to estimate under time pressure. Stick to 3–4. You can always refine later.
Setting a risk buffer that is too small. Especially as a solo freelancer, you cannot account for every interruption. A 15% buffer sounds safe but often isn't. Start at 25% and only drop it after two or three projects where you actually tracked hours and found you were overestimating.
Forgetting to include scope boundaries. Write down what is and isn't included in your rates. Example: "Backend rate includes API endpoints, database schema, and unit tests. Does not include DevOps deployment, monitoring, or load testing." This prevents clients from expanding scope without noticing.
How to Verify Your Schema
Once you've drafted it, run this check:
- Can you explain each rate in 1–2 sentences? If you say "I charge $75/hr for backend" but can only mumble about market research, write down why: your experience level, your market, your specialties. If you can't justify it, adjust it.
- Can you score a real past project by complexity and get a sensible total? Pick a project you've already done. Score each task as simple/moderate/complex. Multiply by your rates. Add the risk buffer. Does the total roughly match what you actually charged, or what you wish you'd charged? If it's wildly off, your categories or rates are out of sync.
- Have you written scope boundaries? For each rate category, list 2–3 things that are included and 1–2 that are excluded. This is not set in stone, but it keeps you from accidentally under-scoping.
- Does your risk buffer feel right? Imagine a project with a 40-hour raw estimate. Add your buffer. Do you feel like you have breathing room? If 25% feels stingy, bump it to 30%. You'll fine-tune it with real data later.
When to Update Your Schema
Once written, your schema is stable. Update it only when:
- Your market rate changes (usually annually or after a major skill gain)
- You add a new service category (e.g., you learn Rust and want to offer it)
- Your risk tolerance changes (e.g., you hire a VA to handle admin, so your buffer shrinks)
- You track real projects and find your buffer is consistently too high or too low
Everything else—scope, client communication, proposal tone—changes per-project. This does not.
Output Format
Store your schema in a place you can reference it during scoping (not buried in old emails). A simple Google Doc, a Markdown file in your project folder, or even a pinned message in your own Slack workspace works. Include the date you wrote it and the date you last updated it. When you move to Stage 1 and begin a new scope, you'll reference these exact variables to keep your estimates consistent.
Originally published at Forged Goods. The ready-made version: Freelance Developer Client Scoping & Proposal Prompt Pack.
Top comments (0)