# Financial Review

> Margin check, tax awareness, and viability review for a proposal. Reviews every proposal against the Law of Margin. Produces quarterly tax prep and cashflow projections.

- Skill: `markbaindesign/financial-review` (Agent Skill)
- Install (CLI): `npx skillmds@latest add markbaindesign/financial-review`
- Raw SKILL.md: https://api.skillmd.com/api/skills/markbaindesign/financial-review/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: markbaindesign (https://skillmd.com/u/markbaindesign)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/markbaindesign/financial-review

---


# Financial Review

The studio's financial gate on a proposal: not whether the work is beautiful or buildable (that's Athena and Hephaestus's call) — only whether the studio can afford to say yes, and what it will actually make.

Runs at two moments in every project: early, a margin check on Athena's scope doc before it becomes a proposal (the Law of Margin: no proposal leaves without clearing this check); and late, raising the invoice after delivery. Between those moments, expenses are tracked against the project so the final margin calculation is never a surprise.

Every quarter, without being asked, this produces three documents: a profit-per-project summary, a cash flow projection, and a tax preparation pack for Modelo 303 (IVA) and Modelo 130 (IRPF).

---

## Steps

### 0. Load business context

Read `/media/data/Dropbox/Work/Admin/Financial/Accounting/aletheia-codex.md` before anything else. This document is the authoritative record of account topology, money flow, IVA/IRPF methodology, and tax conventions. Do not make assumptions about how money moves through the business — read the Codex.

### 1. Load the brief (or Athena report)

Read the Athena report from `{CONTENT_DIR}/pipeline/athena/{slug}-{date}.md`. If the slug is not specified in the prompt, ask Mark to provide one or to paste it inline.

If an Athena report is provided inline, save it to `{CONTENT_DIR}/pipeline/athena/{slug}-{date}.md` before proceeding.

Extract the key fields from the **Estimate** section:
- Estimated hours (low, mid, high scenario)
- Budget type (fixed-price or hourly)
- Price per scenario
- Timeline
- Client sector and rating
- Verdict

### 2. Margin check

**Load configuration:**
- Read `/media/data/Dropbox/Work/Admin/Financial/Accounting/config/rates.yaml` — studio rate (€60/hr), Upwork rate ($65/hr), minimum margin threshold (30%), platform fee structure
- Read `/media/data/Dropbox/Work/Admin/Financial/Accounting/config/overheads.yaml` — monthly fixed costs (API credits €20, autónomo quota €300)

**Calculate gross revenue:**
- For fixed-price projects: use the **mid-range estimate** (unless Mark specifies otherwise)
- For Upwork hourly: assume the budgeted hours at the stated rate
- If budget is unknown or insufficient: flag as "insufficient scope clarity for margin check" and skip to step 4

**Deduct platform fees (Upwork only):**
- If the project came through Upwork: apply the tiered fee (20% on first $500, 10% on next $9,500, 5% above)
- If direct or referral: no platform fee

**Allocate monthly overhead:**
- Divide total monthly overheads (€320) by estimated active projects
- For a solo project, allocate full monthly overhead
- For concurrent projects, allocate proportionally

**Calculate net margin:**
```
Margin % = (Revenue - Platform Fee - Overhead Allocation) / Revenue × 100
```

**Flag result:**
- If margin ≥ 30%: ✓ PASS — margin is healthy
- If margin < 30%: ⚠ BELOW THRESHOLD — flag for Mark's review before approving

Output: margin percentage, PASS/BELOW THRESHOLD status, and the breakdown (revenue, fees, overhead share, net).

### 3. Tax adjustment

**Assess tax context:**
- Is this a Spanish B2B client? IVA applies (21% added).
- Is this a Spanish professional services invoice? IRPF applies (15% withheld on payment).
- Is this Upwork or international? No IVA or IRPF.

**Calculate pre-tax income:**
The "gross revenue" from step 2.

**Calculate tax burden:**
- **IVA (if Spanish B2B):** Revenue × 0.21. This is collected from the client and forwarded to the Spanish tax authority quarterly (Modelo 303).
- **IRPF (if Spanish professional services):** Revenue × 0.15. This is withheld by the payer and sent to the tax authority. Mark receives the net.
- **Autónomo quota:** €300/month × (estimated project duration in months). This is a mandatory social security contribution.

**Produce net take-home estimate:**
```
Net take-home = (Revenue - Autónomo Quota) - IRPF withheld
(IVA is collected, not kept by Mark)
```

Output: pre-tax revenue, IVA collected (if any), IRPF withheld (if any), autónomo quota share, and net take-home.

### 4. Cashflow projection — Viability check

Models risk before it arrives: income vs. outgoings, break-even, and runway over the next 90 days.

**Read the financial snapshot:**
Read `/media/data/Dropbox/Work/Admin/Financial/Accounting/accounts.json` — this is the live GnuCash snapshot written by the gnucash_collector. If it does not exist or is more than 24 hours old, run `python3 studio/collectors/gnucash_collector.py` to refresh it.

Key fields to read:
- `total_eur` — current total bank balance in EUR
- `upcoming_30d` — bills due in the next 30 days (array with label, date, amount)
- `upcoming_30d_total` — total obligations in the next 30 days
- `balance_after_30d` — cash remaining after all 30-day obligations
- `monthly_pl_recent` — last 3 months of income/expenses/net
- `current_month` — current month P&L (may be incomplete)
- `recent_income` — last 10 income entries (for pipeline context)
- `breakeven_allin` — €4,115/month (covers all costs + owner's draw)
- `fixed_costs` — €717.38/month fixed overhead

**Assess capacity and timing:**
- Is this a solo project (only active engagement right now) or concurrent with other work?
- What is the current monthly utilisation? (e.g., if three projects are active, each takes 1/3 of capacity)
- Does the project timeline align with when cash is needed? (e.g., long unpaid waiting period is risky)

**Model cashflow risk:**
- If total monthly revenue across all active projects < €2,000 (covers €320 overhead + living): flag "break-even risk"
- If project is 3+ months with no interim payment milestone: flag "late-payment risk"
- If project is concurrent with 2+ others at 100% capacity: flag "capacity conflict"

**Viability note:**
Produce 2-3 bullets capturing the key risk or opportunity. Example:
- ✓ Strong fit: solo project, healthy margin, payment on delivery
- ⚠ Timing risk: starts during another project's final phase; coordinate handoff
- ✗ Break-even concern: total active revenue dips below minimum during month 2

### 5. Gate prep — Assemble the report

Never overwrites Athena's work — always appends.

**Append a new section to the Athena report:**

```markdown
---

## Financial Review

**Margin:** X% [PASS / BELOW THRESHOLD]

**Breakdown:**
- Revenue: €Y
- Platform fee (if Upwork): €Z
- Overhead allocation: €A
- Net margin: €B (X%)

**Tax and take-home:**
- Pre-tax revenue: €Y
- IVA (if Spanish B2B): €C (collected, not kept)
- IRPF (if Spanish services): €D (withheld)
- Autónomo quota: €E (€300/month × project duration)
- Net take-home estimate: €F

**Viability:**
[2-3 bullet note on capacity, timing, or risk]

**Recommendation:** [APPROVE / REVIEW WITH MARK / REQUEST HIGHER RATE]
```

This skill does not gate the proposal — that is Mark's domain (the Law of the Gate). It provides Mark with the numbers so Mark can decide.

---

## Output format

```
Financial review complete.
Margin: X% — [PASS / BELOW THRESHOLD]
Report updated: {CONTENT_DIR}/pipeline/athena/{slug}-{date}.md
Status: Ready for proposal gate
```

---

## Guard rails

- **No guessing:** If scope or budget is unclear, flag it and ask Mark rather than extrapolating.
- **Rates are immutable:** Never change the rate in rates.yaml without Mark's explicit instruction. Use the configured rate.
- **No invention:** If a cost field (overhead, fee) is not in the config files, do not invent it. Flag as "unknown cost" and skip.
- **Append only:** Never delete or rewrite Athena's content. This section is always an addition.
- **Spain-specific:** The tax logic (IVA, IRPF, autónomo quota) assumes Spanish self-employed status. If the client or context is different, flag this.
- **Quarterly reports:** Tax prep and profit summaries are quarterly-only. Single-project margin checks do not attempt full tax analysis.

---

## Notes

**The Law of Margin:** No proposal leaves without clearing a margin check. Beauty without margin is charity. The studio is a business.

**Financial persistence:** Every time a project's finances change (scope updated, hours revised, expense added), re-run this skill to recalculate margin. The ledger grows with the project. Nothing is finalised until the actuals are checked.

**Related skills:** `/raise-invoice`, `/tax-prep`, and `/cashflow-projection` cover the rest of the studio's money handling — raising invoices, quarterly filing, and runway respectively. This skill is the pre-proposal gate; those are downstream.

