Draft (unpublished)
Freelance Goal Setting Framework
Freelance goal setting that breaks an income target into rate x projects x capacity, then into monthly, weekly, and daily work. Worked $120k example.
- Freelancing
- Goal management
The revenue target you set in January rarely survives to December, because nothing connects revenue (a result) to the work you actually do on a Tuesday. This article builds that connection, using a worked example and real screens from a goal management app.
Freelance goal setting starts with rate x projects x capacity
A freelance income target becomes daily work when you break it down in this order.
- Set the annual revenue target by working backwards from living expenses, business costs, taxes, and savings
- Give each revenue stream a monthly target — client work, your own product, writing — by turning each one into rate x projects x capacity, then splitting it across twelve months into a project count and a number of working days
- Split the month into weekly goals — selling (to win projects), delivery (the billable work), and skill building (to raise your rate)
- Turn the week into today's tasks — one to three tasks under the current week's goal
Once you decide which term on the right-hand side you are growing this year, you know where your hours should go.
The four-layer breakdown itself is covered in how to set annual goals.
Why freelance goals stall at "hit $X this year"
There is no manager and no performance review to catch a badly designed goal, so a flaw in the design goes unnoticed until the year is over.
The revenue number never gets converted into action
"$120,000 this year" is a perfectly good goal, but you cannot put it on today's calendar. Revenue is settled after the fact, once work is won and delivered. Today's actions are things like "send one estimate" or "write a proposal." Without a formula between the result and the action, you still have a goal, but no way to decide what to do today — so the year becomes whatever lands in your inbox.
Selling and learning never make it into the plan
While a client project is running, delivery eats the day and selling and learning slide into "once things calm down." Selling has a long lag, so the cost of pausing it also shows up late — usually in the month after a project ends, when the pipeline is empty.
Review frequency follows the workload
Freelance capacity swings hard from month to month. If your review rhythm follows that swing, you skip the busy months and, in the quiet ones, anxiety pushes you to rewrite the goal entirely. Keep the review decoupled from workload: same day, every week, fifteen minutes.
Step 1: Work backwards to an annual revenue target
- Living expenses — rent, food, insurance, everything it takes to live for a year
- Business expenses — software subscriptions, hardware, subcontractors, coworking
- Taxes — income tax, self-employment tax, and health insurance premiums if you buy your own. Estimate from last year's return, or from a projection by your accountant or bookkeeping software
- Savings and investment — a runway fund for the month a project ends, plus a hardware replacement fund
Those four add up to the revenue you need at minimum. Add the amount you want to grow this year on top, and that is your annual target. Knowing the floor first also tells you how far you can revise the target down later without breaking anything.
Then write the target as a single sentence you can answer yes or no to in December. Something like "Bill $120,000 in revenue, counting work delivered through December" — spelling out the basis (billed vs. collected, and the cutoff) removes the year-end argument with yourself about whether you hit it.
Step 2: Turn each revenue stream into rate x projects x capacity
One number is still not something you can act on. Next, split it by revenue stream and give each stream its own formula.
Split into two or three streams and write a formula for each
Freelance income tends to come from a few different places: client projects, a product or template you sell, writing and speaking, retainers and consulting. "Rate," "projects," and "capacity" mean different things in each, so lumping them into one target makes the breakdown impossible.
- Client work — rate (revenue per project) x number of projects per year. Capacity is billable days per project
- Your own product — price (monthly or one-time) x number of customers. Capacity is days spent building and improving
- Writing and speaking — fee per piece x number of pieces
Once each stream has a slice of the annual target and a formula of its own, you can see which term you are growing this year. $96,000 of client work is the same number whether it is "$12,000 x 8 projects" or "$8,000 x 12 projects" — but the selling volume and the days required are completely different. Only the formula lets you pick the combination your calendar can actually absorb.
Split into twelve months: project count and working days
Once the formula exists, spread the projects and days across the year. Eight client projects become "one won and delivered roughly every six weeks." For a product, use something countable at month end, like paid customers on the last day of the month.
Months do not have to be equal. Most niches have a busy season and a dead one, so if you have last year's revenue by month, distribute the projects to match it. Loading a slow month with the same project count starts a losing streak that usually ends with you no longer looking at the goal at all.
Step 3: Split the month into selling, delivery, and learning
Once the month is expressed as a project count and a number of working days, break it into weekly goals. A weekly goal is not a to-do list for the week — it is a small outcome you reach by Friday. For freelancers, keep three kinds in play.
- Selling (wins projects) — sending estimates, updating the portfolio, checking in with past clients, applying on platforms
- Delivery (the billable capacity) — the actual work on signed projects
- Learning (raises the rate) — new skills, written case studies, credentials and proof of work
The split exists because deadline-bound delivery always wins the day, and anything without its own slot gets postponed. When you write the week's goals, reserve the selling and learning slots first, then fill the remainder with delivery.
Cap it at eight weekly goals per monthly goal — eight for the whole month, not eight per week. A month is four to five weeks, so that works out to one or two per week. Spend one of the eight on selling and one on learning, and each is guaranteed to move at least once a month.
For a September target of "win three projects," you might put "pitch five prospects" and "finish the design for project A" in week 1, "finish the build for project A" in week 2, and so on — keeping September's total at eight or fewer.
Write each weekly goal so you can answer yes or no on Friday. Not "do more selling" but "email three past clients with my availability." Not "learn Rust" but "finish chapter 3 of the official tutorial."
Step 4: Bring it down to today
Finally, put one to three tasks under the current week's goal. Do not invent new goals here — only the work that moves this week's goal forward.
A freelance day gets derailed by client messages and urgent fixes. So pick the one task that has to finish today. If it does, the day counted, whatever else happened. Leave three tasks side by side with equal weight and an interrupted day ends with all three half-done.
It is fine for today's tasks to be lopsided — a selling day, then delivery days. Assigning roles to weekdays (Monday for selling, Tuesday through Thursday for delivery, Friday for learning and the weekly review) gives all three kinds somewhere to live.
Worked example: $120,000 down to today's task
The numbers below are illustrative, meant to show the shape of the breakdown. They describe a freelance engineer with two revenue streams: client work and a small product.
<!-- TODO(decision): decide whether to swap this worked example for the operator's real numbers or publish the illustration as is. - A) Keep the illustration: leave the "The numbers below are illustrative…" note above unchanged. Nothing else to do - B) Swap in real data: update all of the following to match actuals. - "Year (YAP)": the backwards math ($60,000 living / $16,000 business / $24,000 taxes / $12,000 savings = $112,000 needed, $120,000 target) and the stream table (client work $96,000 = $12,000 x 8 projects, 20 billable days each / own product $24,000 = $20/mo x 100 customers avg / 200 of 220 available days) - "Month (MAP)": the monthly distribution and September's goals (110 paid customers, 106 last month, etc.) - "Week (WAP)": the eight weekly goals table, and "Day (DAP)": the task example - The H2 "Worked example: $120,000 down to today's task", the frontmatter description ("Worked $120k example"), and the image alt text for assets/en/breakdown-example.svg - Rewrite the "illustrative" note above to say the numbers are real - Keep ja.md in sync: the same figures there are in JPY (600 万円 example), so convert consistently rather than translating the dollar figures literally Not a fact-check item — this is the operator's editorial call, so the fact-check pass leaves it open. -->Year (YAP): the target and a formula per stream
Working backwards as in step 1: $60,000 living expenses, $16,000 business expenses, $24,000 taxes, and $12,000 savings add up to $112,000 needed. Adding the growth we want on top puts the annual target at $120,000. The streams break down like this.
| Revenue stream | Annual target | Formula | Capacity |
|---|---|---|---|
| Client work | $96,000 | $12,000 x 8 projects | 20 billable days per project |
| Own product | $24,000 | $20/mo x 100 customers avg x 12 | 40 days of build and improve |
| Total | $120,000 | 200 of 220 available days |
Of 220 working days, 160 go to client work and 40 to the product, leaving 20 days for selling and learning — one or two days a month outside delivery. In this example the $12,000 rate is held flat from last year; what grows is the project count (six last year to eight) and paid customers (80 at the start of the year to 120 by December, averaging 100).
Month (MAP): projects and working days
The eight client projects follow last year's pattern (demand spikes around the end of the fiscal year and the holidays): three in January through March, two across April to August, three from September to December. September's monthly goals come out as:
- Client work: win one project starting in October (at least two estimates submitted). Ship the project currently in progress
- Product: 110 paid customers at month end (106 last month)
- Learning: build one sample of the technology I want to pitch next year, to support a higher rate
Learning exists to raise the client rate, so it lives under the client work annual goal and its weekly goals count against that stream's eight slots.
Week (WAP): allocating September
Because this example splits the annual target by revenue stream, client work and the product each get their own set of eight. Here is client work for September.
| Week | Weekly goal | Kind |
|---|---|---|
| Week 1 | Email three past clients about availability from October | Selling |
| Week 1 | Finish the admin screens on the current project | Delivery |
| Week 2 | Submit estimates for the two inbound inquiries | Selling |
| Week 2 | Apply the review feedback on the current project | Delivery |
| Week 3 | Ship the current project | Delivery |
| Week 3 | Build the auth piece of next year's pitch sample | Learning |
| Week 4 | Sign the contract for the October project | Selling |
| Week 4 | Add one case study from the shipped project to the portfolio | Learning |
Three selling, three delivery, two learning — eight in total. The product's September goal (110 paid customers) gets its own eight: "fix one drop-off point in onboarding," "send the paid-plan email," and so on.
Day (DAP): today's tasks
Under week 1's goal — email three past clients — sit three daily tasks: email A, email B, email C. On Monday you take one to three of them as today's work. When today's task is done, the day moved the $120,000 target forward. You can see that chain work end to end in the demo on the landing page by completing a single action for today.
At month end, check which of the three terms slipped
Once the breakdown exists, keeping it alive through December takes one short check at month end. The question is not "did revenue hit the target" but which of rate, projects, or capacity slipped.
- Projects short: check whether selling volume (estimates sent, clients contacted) was actually there, and add selling slots to next month's weekly goals
- Rate slipping: look at why you took the cheap work (fear of a gap, couldn't say no) and reset your rate floor
- Capacity over plan: your billable-days estimate per project was optimistic, so reduce the project count in the following months
Knowing which term moved tells you exactly what to change next month. The weekly version of this check — fifteen minutes, three questions, same day every week — is in how to run a weekly review.
Making the system stick in an app
A spreadsheet handles the year and the month fine. The week and the day are where it gets painful.
- With a monthly goal per revenue stream, a flat table makes it hard to see which monthly goal a given weekly goal belongs to
- Finishing today's task does not automatically roll up into the week, the month's project count, or the annual target
- When a deadline slips, carrying last month's unfinished goals and tasks into this month's plan is manual work you redo every month
How far different tools go on those three points is compared in the best goal management apps.
Abstria is a goal management app built around exactly this breakdown: Year Action Plan (YAP), Month Action Plan (MAP), Week Action Plan (WAP), and today's Daily Action Plan (DAP).
You can hold several annual goals at once, so the example above maps directly onto the product — one annual goal per revenue stream, "$96,000 from client work" alongside "$24,000 from the product." The way you split streams in step 2 becomes the structure of the app.

When you complete today's action, the status propagates up to the week, the month, and the year (a parent completes once all of its children do). You can see how far the annual goal has moved without doing any tallying. The Today screen is a kanban of not started, in progress, and done — so Monday's selling task moves to in progress first thing and to done once the emails are out.

For the very freelance problem of deadlines slipping and last month's work spilling over, there is the Review screen. It lists the actions from before this month that never got finished so you can pull them into this month's weekly goals, instead of hand-copying them on the first of the month.
The structure in the example above fits inside the Free plan (3 annual goals, 100 active items, as of September 2026). The demo uses a marathon goal, but the hierarchy and the way completion propagates work identically for a revenue target.
FAQ
Q. What do freelancers most often miss when setting goals?
A ceiling on working days. Rate x projects can add up perfectly while the billable days required exceed the days you can actually work in a year, which makes the goal impossible from day one. Decide your available days per year and your billable days per project before you decide the project count.
Q. What should I set goals on besides revenue?
Selling volume and the specific skills that raise your rate. Work backwards from "what would let me charge more" and make learning judgeable by an artifact — a sample, a case study, a talk deck. Make selling countable at month end: estimates sent this month, past clients contacted.
Q. What do I do after a month I missed?
Leave the annual goal alone and change only next month's weekly goals. Question the annual goal itself only when the same term slips three months in a row. A single missed month is often just seasonality, and cutting the revenue target there means chasing the goal downward every season.
Q. Does this work for part-time or moonlighting freelancers?
Yes, with one change: set available days first and let them cap the project count. Side income is constrained by capacity far more than by rate or demand, so run step 1 on the revenue you need from the side work alone, and treat the number of evenings and weekends you can commit as a hard input rather than a variable.
You can build this exact breakdown as one annual goal per revenue stream. Start with no account and watch a single task from today move the annual goal.
Try the demo on the landing page (no signup)
Abstria is invite-only as of September 2026. To try it, request access at /invite. If you already have an invite code, you can sign up directly — the free tier covers 3 annual goals and 100 active items. Plan limits are listed on the pricing page.
<!-- TODO(release): once invite-only ends, delete "Abstria is invite-only as of September 2026. To try it, request access at [/invite](/invite). If you already have an invite code, you can" from the paragraph above and rewrite the rest as "[Sign up](/signup) to start using it — the free tier covers 3 annual goals and 100 active items." Keep the /pricing sentence as is. - Trigger: the /signup invite gate in apps/web/middleware.ts (unauthenticated requests without a `referral_pending` cookie are redirected to /invite) is removed - As of 2026-09-23 the gate is still in place at apps/web/middleware.ts:93, so the paragraph is accurate and must stay - When you make the change, update the matching paragraph in ja.md at the same time - If the gate is removed after September 2026, also update the "as of September 2026" wording -->