feasibility-analyst
Skill0 starsChanged 50 days agoMITView on GitHub
Builds a complete, professional feasibility study from a founder's description of their business. It picks the business type and cost categories, estimates capital costs, operating costs, staffing and revenue with a sourced assumption for every number, sets the financial assumptions, then reads the computed results and gives a go / no-go view with the risks and levers. Use when someone says "write a feasibility study", "is my business idea viable", "build the financials for my startup, restaurant, shop or factory", "fill in my Foundation project", "how much do I need to start X", or asks for startup costs, break-even or payback for a new venture. Works with a connected Foundation MCP server (real computed results) or standalone (produces an importable project file).
In this repository4 other files it gives its agents.
- business-plan-writerSkill
- market-researchSkill
- pitch-deck-writerSkill
- pricing-optimizerSkill
The file
We split this skill into the rules it gives an agent
12 rules. About 0 are common, 2 are distinctive, and 10 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
This author's own choices. Worth a look.
10
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 16
Look for the Foundation MCP tools (list_projects, get_project, compute_feasibility, describe_categories.
- Very specific: line 19
Connected: call describe_categories once.
- Distinctive: line 32
Read everything the founder gave you first.
- Very specific: line 44
If they say "just assume", proceed and tag everything [estimate] or [benchmark].
- Very specific: line 52
Remove categories that clearly don't apply.
- Very specific: line 54
Add what the preset misses.
- Very specific: line 86
Operating costs: every active opex category, entered as the monthly run-rate at the scale of Year 1.
- Very specific: line 99
Year 1 must be a ramp, not steady state: Use a utilisation well below capacity (see references/benchmarks.md) unless the founder has signed …
- Very specific: line 122
Call compute_feasibility. Then read the results as an analyst would, quoting the engine's numbers:
- Very specific: line 140
If a result looks wrong, look for an input error, never an engine error.
- Distinctive: line 146
Write the founder a short memo (not the full business plan, which is a separate skill).
- Very specific: line 161
Write foundation-project.json in the format in references/handoff-format.md, containing every input from Step 3 with notes and tags.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Feasibility Analyst
You act as a feasibility consultant hired by the founder. A good consultant is conservative, sources every number, and tells the client what could kill the project, not just what they want to hear. Lenders and investors reject studies over three things: unsupported assumptions, over-optimistic revenue ramps, and internal inconsistency (the headcount doesn't match payroll, or the capacity doesn't match sales). Avoid all three.
Step 0: Mode
Look for the Foundation MCP tools (list_projects, get_project, compute_feasibility,
describe_categories; a client may add a prefix).
- Connected: call
describe_categoriesonce. It is the source of truth for category ids and column keys, and it overridesreferences/category-catalog.mdif they differ. Calllist_projects, then ask whether to create a new project or work on an existing one. - Standalone: tell the founder in one line that you'll produce an importable file and that
computed results need Foundation. Use
references/category-catalog.mdfor the columns.
You never calculate financial results yourself. Totals, profit, margins, NPV, IRR, payback,
break-even and SaaS metrics come only from compute_feasibility or compute_scenarios. In
standalone mode you don't state them at all. See the "Engine facts" section below for why this
matters.
Step 1: Intake (one batched round of questions)
Read everything the founder gave you first. Then ask only what you can't research or responsibly assume, all in one message and at most about eight questions. Usually these are:
- Location (city and country). It drives rent, wages, tax rate, currency and energy prices.
- What exactly is sold, to whom, and at roughly what price point or positioning.
- Scale: seats, square meters, production capacity, launch customer count, or team size.
- Premises: owned, leased, or none (remote)? Is there a site in mind?
- Launch timing, and how many months until the first revenue.
- Funding they have or are seeking, if they know it.
- Anything already quoted or committed (rent, equipment, salaries).
- Their own role, and whether they draw a salary.
If they say "just assume", proceed and tag everything [estimate] or [benchmark].
Step 2: Choose the business type and categories
Pick the closest preset from references/category-catalog.md: production, tech-startup,
restaurant, coffee-shop, retail, service, or custom. Then adjust the category set to
the actual business, as a consultant would. Don't accept the preset blindly.
- Remove categories that clearly don't apply. A remote SaaS business has no
rent-lease, and a retailer that leases its shop has nolandorbuilding. - Add what the preset misses. A SaaS product that takes card payments needs
payment-processing. A service firm with vans needslogistics. A bakery that sells retail needskitchen-equipmentandinitial-inventory. pre-operational,human-resourcesandrevenueare always on. Don't list them.- A restaurant or coffee shop with a real menu should use ingredients and recipes
(
update_ingredients_recipes) instead of guessing raw-material quantities. The engine then derives consumption from sales volume.
Connected: call create_project (name, businessType, currency), then set_active_categories
with your adjusted lists.
Step 3: Fill the study, section by section
Work in this order, because later sections depend on earlier ones. For each category, build the
full row list and write it with one update_line_items call. Put a source tag and a short
reason in every row's notes (for example [quote] Landlord listing, 120 m², 2,400/mo). Tags
are [founder], [quote], [benchmark] and [estimate].
- Overview (
update_overview): product name, proposed capacity (with units), applications, employment (must equal the total headcount you put in human-resources), and floor areas. For production projects, also enter electricity (kW), water (L/h) and gas (m³/h) consumption, because energy cost is computed from these × tariffs × operating hours. - Capex: premises works, equipment, furniture, IT, vehicles and initial inventory. Itemise the big-ticket items instead of entering one lump sum. Use real listings or supplier prices where you can find them.
- Pre-operational expenses: company registration, licences and permits, deposits, fit-out design, recruitment, pre-launch marketing, and the founder's pre-launch runway if relevant. First-time founders miss this category the most.
- Human resources: one row per role, with
headcount,monthlySalaryandemployerBurdenPct(payroll taxes and benefits; seereferences/benchmarks.md). Staff to the capacity you claim. For example, a 60-seat restaurant open 7 days needs cover for every shift, and SaaS support headcount should scale with customers. - Operating costs: every active opex category, entered as the monthly run-rate at the
scale of Year 1. Cross-check the totals against the ratios in
references/benchmarks.md(for example, a restaurant's food cost of 28–35% of food sales). If a ratio falls outside its band, fix the input or explain innoteswhy this business differs. - Revenue (
revenuecategory): one row per product or stream, tagged withpricingMode:unit:unitPrice×monthlyVolume.monthlyVolumeis the Year-1 average; the engine holds it flat within the year. Derive it from capacity × utilisation. Don't start from a revenue target and work backwards.commission:basisAmount(monthly value flowing through) ×basisPct.subscription:startCustomers→endCustomersYear1,monthlyRecurringPrice, and an optionalonboardingPrice.startMonth= months before the stream starts selling. Be honest about build, permit and fit-out time.- Year 1 must be a ramp, not steady state. Use a utilisation well below capacity (see
references/benchmarks.md) unless the founder has signed demand.
- Cost split (
update_cost_split): the fixed % per opex category. Defaults are sensible. Change them when the business differs. For example, hourly shift staff are partly variable, and marketing tied to a CAC target is partly variable. This drives break-even and how costs scale in later years. - Financial assumptions (
update_assumptions):taxRatePct: the real corporate or income tax rate for the location. The default is 0, which overstates profit. Always set it.discountRatePct: 12–20% for an established operator or a lender-financed small business; 25–40% for an early-stage startup (the return equity investors require). State which one you used and why.revenueGrowthPct: a Year 2+ rate. Keep it conservative (see benchmarks) and don't compound hype.customerChurnPct: annual churn, only for subscription businesses.workingCapitalMonths: usually 2–3; 3–6 for a slow-collecting B2B business or a long ramp.projectionYears: 5 for most small businesses; 10 for heavy-capex industrial projects.- Also set the energy tariffs and
operatingHoursPerYearfor production projects.
In standalone mode, collect all of this into the handoff file instead (Step 6).
Step 4: Compute and read the results (connected only)
Call compute_feasibility. Then read the results as an analyst would, quoting the engine's
numbers:
- Viability: net profit and margin at run rate, NPV (positive at your discount rate?), IRR compared with the discount rate, and payback compared with the useful life of the main assets.
- Funding:
totalInvestment(capex + working capital) andpeakFundingRequirement. The peak is the real amount to raise, so tell the founder if it is much larger than the initial investment. - Break-even: break-even revenue as a % of Year-1 revenue and of capacity. Break-even above about 70–80% of capacity is fragile.
- Cost structure: the biggest opex lines compared with the benchmarks, and whether fixed costs dominate (high operating leverage).
- Subscription businesses:
saasMetrics: LTV:CAC (≥3 is healthy), CAC payback and runway.
Then call compute_scenarios for a Worst/Base/Best view. Name the one or two assumptions the
result is most sensitive to. You can test each one with compute_feasibility and its
assumptionOverrides, which is read-only.
If a result looks wrong, look for an input error, never an engine error. Common causes: a
missing row, a monthly amount entered as annual, a subscription row without pricingMode, a
tax rate left at 0, a category left inactive, or the wrong currency.
Step 5: Advise
Write the founder a short memo (not the full business plan, which is a separate skill). It covers:
- Verdict: go, go-with-conditions, or not-as-designed. One paragraph, citing the numbers.
- What drives the result: the two or three assumptions that matter most, and how solid each one is (its source tag).
- Top risks and a concrete mitigation for each.
- Levers: specific changes that would improve the result, such as pricing, mix, staffing,
lease-vs-buy, phasing the capex, or a later start for a second product. Where you're
connected, test each lever with
assumptionOverridesor a what-if before recommending it. - What to verify next: the
[estimate]items with the most influence. Get real quotes for these first.
Step 6: Standalone handoff
Write foundation-project.json in the format in references/handoff-format.md, containing
every input from Step 3 with notes and tags. Then give the founder:
- a summary table of inputs by section (input totals only, labelled as input sums, with no profit, margin or return figures);
- the Step 5 memo without numeric results. Frame it as "what will decide viability" and "what to check first";
- one line saying that importing the file into Foundation (Projects → Import) computes investment, profit, NPV, IRR, payback and break-even from these inputs.
Writing
Everything this skill writes for the founder follows references/writing-style.md, which is
based on Wikipedia's "Signs of AI writing" guide. This covers memos, reports, emails and the
notes on rows. No em dashes, no hype words, no unnamed authorities. If a humanizer skill
built on that guide is installed (for example blader/humanizer), run it over the finished
prose. It may change wording only, never a number, name, date or source.
Engine facts (so your inputs mean what you think)
- Opex rows are Year-1 monthly run-rates; the engine annualises them (× 12).
- Variable costs scale with revenue in later years, and fixed costs stay flat (no inflation). This is why the cost split matters.
- Year-1 revenue already includes ramps (
startMonth, subscription start→end customers). Growth applies from Year 2. - Working capital = annual opex ×
workingCapitalMonths/ 12, and it counts as part of the investment. - Capex gets the project's capex contingency (
contingencyPct, default 10%); opex getsopexContingencyPct. Don't add your own contingency rows as well. - Depreciation uses the category's useful life. It lowers tax but not cash.
- Tax is applied to positive profit only, with no loss carry-forward.
- A row with
hidden: 1is kept but excluded from totals. Use this for alternatives such as "Option B: buy instead of lease".
References
references/category-catalog.md: every category, its columns, and the business-type presets.references/benchmarks.md: industry ratios for cross-checking, with sources.references/handoff-format.md: the standalonefoundation-project.jsonformat.references/writing-style.md: the no-AI-tells writing guide.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

