---
oa_review_kit: v1
guide_slug: es-return-assembly
guide_version: es-return-assembly@2026-04-13T17:56:31.614Z
archetype: personal_income
---

# Review kit: ES Return Assembly

Thank you for reviewing this Guide. This kit is one file with three parts: how
to use it, an interview prompt for your AI, and the Guide itself.

## How to use this kit (3 steps, about 15 minutes)

1. Open the AI you already use (ChatGPT, Claude, Gemini, anything that reads
   markdown) and paste in everything from "INTERVIEW PROMPT" below, including
   the Guide at the end.
2. Your AI interviews you like a colleague, one question at a time. Just talk:
   war stories, walk-throughs, the mistakes you catch. No writing required.
3. Your AI writes your answers up as a single markdown file. Hand it back at
   openaccountants.com/skills/es-return-assembly/handback (also linked from the Guide
   page: "Hand back your file"). What you added is published under your name
   and credential.

If your AI cannot produce the exact output format, hand back whatever you have:
a revised Guide file, a worksheet, or plain notes. We take those too, and a
person reviews them by hand. The format below is the one we can apply straight
away.

---

# INTERVIEW PROMPT (paste from here down into your AI)

You are interviewing a practising accountant about how they actually do the
work covered by the attached Guide ("ES Return Assembly", slug `es-return-assembly`).
Interview them like a colleague doing a handover. Do not lecture. Ask ONE
question at a time and wait for the answer. Chase war stories and specifics:
what kind of client, which portal step, how big the penalty was.

The rates, thresholds, and citations are our job; we refresh those from primary
sources. Capture ONLY what is NOT derivable from law:

- order of operations, and what a wrong order corrupts
- what to ask a client before computing anything
- what to assume when a fact is unknown, and how it gets flagged
- the most-missed traps, with penalty size and who falls in
- how the portal or filing channel actually behaves
- what has to reconcile before anyone signs
- when to refuse the work and hand it to a human specialist

If the accountant corrects a rate, threshold, or deadline in the Guide along
the way, record it in the FACT CORRECTIONS table, but do not steer the
interview toward numbers.

## Questions to work through

Ask these in order, one at a time. Skip any the accountant has already covered;
follow up where a story has specifics worth pinning down. Each question is
tagged with the method slot(s) it feeds.

1. [intake_questions] A new personal-tax client sits down. What are your first five questions before you touch a number?
2. [intake_questions] [conservative_default] Which of those answers, if missing, makes you stop rather than estimate?
3. [evidence] Which documents do you insist on seeing, and which do you take the client's word for?
4. [sequence] In what order do you build the return, and what goes wrong when someone does it backwards?
5. [trap] What deduction or relief do clients most often believe they're entitled to but aren't?
6. [trap] What computation does software or AI most often get wrong on returns you've reviewed?
7. [judgment_rule] When the law gives two routes (regime choice, standard vs itemized, allowance vs actuals), how do you actually pick, and what do you write down about the choice?
8. [cross_check] What triggers the tax authority's mismatch letters in your experience, and what do you reconcile up front to prevent them?
9. [edge_case] Tell me about a client whose side income (platform, rental, foreign) changed the whole shape of the return. What did you do differently?
10. [filing_mechanics] Walk me through the e-filing itself: the verification step, the deadline nobody knows, what happens if the client doesn't do their part.
11. [scope_gate] What kind of personal-tax client do you turn away or send to a specialist?
12. [handback_protocol] What exactly do you hand the client before anything is filed? What's in your working paper?

## Method slots (for tagging the write-up)

- `scope_gate` (Scope gate and refusals): when to stop and send the client to a human
- `sequence` (Order of operations): what order to do things in, and what a wrong order corrupts
- `intake_questions` (Client intake questions): what to ask a client before computing
- `evidence` (Documents and evidence): which documents to insist on, and what is draft-grade vs file-grade
- `judgment_rule` (Judgment rules): how a practitioner actually picks when the law allows two routes
- `conservative_default` (Conservative defaults): what to assume when a fact is unknowable at draft time
- `trap` (Traps and most-missed items): the mistakes everyone makes, what they cost, and who falls in
- `filing_mechanics` (Portal and filing mechanics): how submission actually works: channel, order, what locks
- `cross_check` (Cross-checks before signing): what has to reconcile with what before delivery, and how close is close enough
- `pattern_library` (Pattern library): how messy real-world data (bank lines, payout platforms) maps to tax categories
- `edge_case` (Edge-case playbook): the client situations that change the method, not just the numbers
- `unsettled_law` (Unsettled-law flags): what not to finalise right now, and why
- `handback_protocol` (Hand-back protocol): what the finished working paper contains and who reviews it

## Output format: oa-handback v1

When the interview is done, write the answers up as ONE markdown file in
exactly this shape. Fill in the reviewer's real name, credential, and email
(ask for them at the end if they have not come up). Every method block gets a
`### [method:<slot>]` heading where `<slot>` is one of the 13 slot ids
above. Keep `guide_slug` and `guide_version` exactly as given. Omit any
section the interview produced nothing for, but keep the headings that remain
exactly as shown. The `fact_key` column may be left blank when unknown.

```markdown
---
oa_handback: v1
guide_slug: es-return-assembly
guide_version: es-return-assembly@2026-04-13T17:56:31.614Z
reviewer_name: <full name>
reviewer_credential: <credential>        # free text: CPA, EA, ACCA, Steuerberater...
reviewer_email: <email>
verdict: <approve | corrections | unable>
---

## METHOD

### [method:filing_mechanics] <short title for this block>
<prose: the method block, written in second person, imperative>

### [method:intake_questions] <short title for this block>
- <question 1>
- ...

## FACT CORRECTIONS
| fact_key | current | correct | source |
|---|---|---|---|
| <fact key if known, else blank> | <value in the Guide> | <correct value> | <cite> |

## FLAGS
- [unsettled] <what not to finalise, and why>
- [refer] <situations to escalate to a human>

## NOTES
<anything that did not fit a method slot or a fact correction>
```

If for any reason you cannot produce this exact format, output the accountant's
corrections and methods as clear plain notes instead. The hand-back page
accepts plain notes and revised Guide files too; this format is an
optimization, never a gate.

---

# THE GUIDE UNDER REVIEW

<!-- guide: es-return-assembly · version: es-return-assembly@2026-04-13T17:56:31.614Z -->

---
name: es-return-assembly
description: Final orchestrator skill that assembles the complete Spain filing package for Spain-resident self-employed individuals (autónomos). Consumes outputs from all Spain content skills (spain-vat-return for Modelo 303, es-income-tax for IRPF Modelo 100, es-social-contributions for RETA, es-estimated-tax for Modelo 130 pagos fraccionados) to produce a single unified reviewer package containing every worksheet, every form, every brief section, all cross-skill reconciliations, and the final action list with payment instructions, filing instructions, and next-year planning. This is the capstone skill that runs last and produces the final deliverable. MUST be loaded alongside all Spain content skills listed above. Spain full-year residents only. Autónomos (self-employed individuals) only.
jurisdiction: ES
domain: income-tax
tax_year: 2025
---

# es-return-assembly

## Spain Return Assembly Skill v0.1

## CRITICAL EXECUTION DIRECTIVE -- READ FIRST

**When this skill is invoked, you have already passed through intake. The user has consented to the full workflow. Execute all steps without pausing for permission.**

Specifically:

- **Do NOT ask the user "how deep do you want me to go"** or "do you want the full package" or any variant. The user asked for their tax returns. They want their tax returns. Produce them.
- **Do NOT announce how many tokens or tool calls this will take.** Execute.
- **Do NOT ask which deliverables to prioritise.** Produce all deliverables listed in Section 4. If you run out of context mid-execution, finish the computation work first (numbers, positions, flags) then produce whatever formatted outputs you can, and at the very end state clearly which deliverables were not produced and why.
- **Do NOT re-validate scope that intake already validated.** If `es-freelance-intake` produced an intake package, trust it. You can cross-check specific numbers during reconciliation but do not re-interrogate the user about residency, business structure, or anything else intake already captured.
- **Do NOT pause between content skills to check in.** Run them in dependency order (Section 2) without prose status updates between each one. A single status message at the end is fine.
- **Self-checks are targets, not blockers.** If a self-check fails, note it in the reviewer brief's open flags section and continue. Do NOT halt the entire workflow because one self-check had an ambiguous answer.
- **Primary source citations go in the final reviewer brief, not in intermediate computation steps.**

**The user has already been told (by the intake skill) that the final package requires asesor fiscal signoff before filing. State it once in the final output and move on.**

**Failure mode to avoid:** The skill halts mid-execution and asks the user a meta-question about workflow pacing. If you feel the urge to ask "how should I proceed," the correct action is to pick the most defensible path and proceed, flagging the decision in the reviewer brief so the reviewer can challenge it.

## What this file is

The final capstone skill for Spain self-employed returns. Every Spain content skill feeds into this one. The output is the complete reviewer package that an asesor fiscal can review, sign off on, and deliver to the client along with filing instructions.

This skill coordinates execution of the content skills, verifies cross-skill consistency, and assembles the final deliverable.

## Section 1 -- Scope

- **Scope of package** — Produces the complete Spain filing package for: Full-year Spanish residents (territorio común -- excludes País Vasco and Navarra foral regimes); Autónomos (self-employed individuals, personas físicas); Tax year 2025; Filing Modelo 303 (IVA trimestral), IRPF Modelo 100, RETA reconciliation, Modelo 130 (pagos fraccionados)  _(Section 1 -- Scope)_

## Section 2 -- Execution order and dependency chain

- **spain-vat-return step (Modelo 303)** — Runs first because IVA base imponible feeds into the IRPF. For Q4 2025: prepare Modelo 303 if not yet filed; verify Q1-Q3 figures. Reconcile facturas emitidas (output IVA) with facturas recibidas (input IVA). Handle intracomunitarias (reverse charge, Modelo 349). Output: Modelo 303 box values, IVA devengado, IVA soportado deducible, result (a ingresar / a compensar / a devolver)  _(Section 2 -- Execution order and dependency chain)_
- **es-income-tax step (IRPF Modelo 100)** — Depends on IVA output: rendimiento íntegro de actividades económicas must use base imponible (ex-IVA) from Modelo 303. Compute rendimiento neto: ingresos - gastos deducibles - amortización - RETA cuotas. Apply gastos de difícil justificación (5%, max EUR 2,000) for simplificada. Apply reducciones (if applicable). Compute base imponible general + base del ahorro. Apply escala estatal + autonómica. Deduct retenciones, pagos fraccionados (Modelo 130). Output: Modelo 100 key boxes, cuota líquida, resultado de la declaración  _(Section 2 -- Execution order and dependency chain)_
- **es-social-contributions step (RETA)** — Depends on IRPF: RETA cuotas are a gasto deducible in the rendimiento neto computation. Reconcile actual cuotas paid vs the new income-based contribution system (since 2023). Verify base de cotización is appropriate for income level. Flag if regularisation is expected (TGSS adjusts RETA based on actual income, with potential refund or additional payment). Output: annual RETA paid, base de cotización, regularisation estimate, deductibility confirmation  _(Section 2 -- Execution order and dependency chain)_
- **es-estimated-tax step (Modelo 130)** — Depends on IRPF: pagos fraccionados are computed as 20% of rendimiento neto acumulado minus retenciones acumuladas. Status check: es-estimated-tax is currently a Q4 stub. If the stub has substantive computation content, use it. If it is still a placeholder, compute Modelo 130 using the standard formula (Art. 110 LIRPF: 20% x rendimiento neto acumulado - retenciones - pagos fraccionados anteriores) and flag in the reviewer brief that the dedicated skill was not available. Output: Q4 2025 Modelo 130 computation, and 2026 quarterly schedule. If any upstream content skill fails to produce validated output, the assembly skill notes the failure in the reviewer brief and continues with available data rather than halting entirely.  _(Section 2 -- Execution order and dependency chain, Art. 110 LIRPF)_

## Section 3 -- Cross-skill reconciliation

### Cross-check 1: Modelo 303 base imponible = IRPF ingresos de actividades económicas

**Cross-check 1 table**  _(Cross-check 1: Modelo 303 base imponible = IRPF ingresos de actividades económicas)_

| IVA Output | IRPF Input | Rule |
| --- | --- | --- |
| Modelo 303 total base imponible (annual) | Modelo 100 rendimiento íntegro actividades económicas | Must match within EUR 1 |
| Domestic supplies base imponible | IRPF ingresos with IVA repercutido | Ex-IVA amount |
| Intracomunitarias (reverse charge) | IRPF ingresos | Included in income, IVA neutral |
| Exportaciones (non-EU) | IRPF ingresos | Included in income, IVA exempt with right to deduction |

- **If mismatch (cross-check 1)** — Flag for reviewer. Common causes: timing differences (devengo vs cobro if using criterio de caja), autoconsumo, corrective invoices (facturas rectificativas).  _(Cross-check 1: Modelo 303 base imponible = IRPF ingresos de actividades económicas)_

### Cross-check 2: RETA cuotas = gasto deducible in IRPF

**Cross-check 2 table**  _(Cross-check 2: RETA cuotas = gasto deducible in IRPF)_

| RETA Output | IRPF Input | Rule |
| --- | --- | --- |
| Total RETA cuotas paid in 2025 | Gastos de Seguridad Social in Modelo 100 | Must match exactly |
| Tarifa plana months (if applicable) | Lower cuota for those months | Correctly reflected |
| Regularisation payment/refund | Included in year paid / received | Adjusts deductible amount |

- **If mismatch (cross-check 2)** — Verify months of alta. Part-year alta means prorated cuotas. If regularisation happened in 2025 for prior year, it is deductible in 2025.  _(Cross-check 2: RETA cuotas = gasto deducible in IRPF)_

### Cross-check 3: Retenciones credit against final IRPF cuota

**Cross-check 3 table**  _(Cross-check 3: Retenciones credit against final IRPF cuota)_

| Source | Amount | Treatment |
| --- | --- | --- |
| Retenciones soportadas on facturas emitidas | Sum from facturas / Modelo 190 data | Credit against cuota íntegra in Modelo 100 |
| Retenciones from employment (if any) | From nómina / Modelo 190 | Credit against cuota íntegra |
| Retenciones from capital income (if any) | From bank certificates | Credit against cuota íntegra |

- **Rule (cross-check 3)** — Total retenciones deducted in Modelo 100 must equal the sum of all retenciones from all sources. If retenciones exceed cuota íntegra, the result is a devolver (refund).  _(Cross-check 3: Retenciones credit against final IRPF cuota)_
- **If mismatch (cross-check 3)** — Common cause is retención not actually withheld (client paid gross despite invoice showing retención). Flag for reviewer: income still declared at gross, but retención credit requires actual withholding.  _(Cross-check 3: Retenciones credit against final IRPF cuota)_

### Cross-check 4: Modelo 130 pagos fraccionados credit against final IRPF

**Cross-check 4 table**  _(Cross-check 4: Modelo 130 pagos fraccionados credit against final IRPF)_

| Source | Amount | Treatment |
| --- | --- | --- |
| Modelo 130 Q1-Q4 payments | Sum of four quarterly payments | Credit against cuota líquida in Modelo 100 |
| Formula: 20% x rendimiento neto acumulado - retenciones acumuladas - pagos anteriores | Per quarter | Standard computation |

- **Rule (cross-check 4)** — If retenciones on professional invoices cover > 70% of income, Modelo 130 filing is not required (Art. 110.3.c RIRPF). Check this condition.  _(Art. 110.3.c RIRPF)_
- **If mismatch (cross-check 4)** — Flag for reviewer. If underpaid, no separate penalty (it washes into the annual IRPF), but cash flow impact. If overpaid, credit against IRPF.  _(Cross-check 4: Modelo 130 pagos fraccionados credit against final IRPF)_

## Section 4 -- Final reviewer package contents

### Documents

1. **Executive summary** -- one-page overview: filing status, income, tax liability, IVA position, RETA, pagos fraccionados, resultado de la declaración
2. **Modelo 303 worksheet** -- box-by-box with formulas (Q4 2025 or annual reconciliation)
3. **IRPF Modelo 100 worksheet** -- rendimiento neto computation, base imponible, escala estatal + autonómica, cuota líquida, resultado
4. **Amortisation schedule** -- asset register with cost, date, coefficient máximo, annual amortisation, valor neto contable
5. **RETA reconciliation** -- cuotas paid, base de cotización, regularisation estimate
6. **Modelo 130 worksheet** -- Q4 2025 computation and 2026 quarterly schedule
7. **Cross-skill reconciliation summary** -- all four cross-checks with pass/fail and notes
8. **Reviewer brief** -- comprehensive narrative with positions, citations, flags, self-check results
9. **Client action list** -- what the client needs to do, with dates and amounts

```markdown
# Complete Return Package: [Client Name] -- Tax Year 2025

## Executive Summary
- Filing status: [Individual -- Resident]
- Comunidad autónoma: [Madrid / Cataluña / etc.]
- Business: Autónomo, estimación directa [simplificada / normal]
- IVA registration: Standard (régimen general)
- Modelo 303 Q4 position: EUR X a ingresar / a compensar
- IRPF rendimiento neto actividades: EUR X
- IRPF base imponible general: EUR X
- IRPF cuota íntegra: EUR X
- Retenciones: EUR X
- Pagos fraccionados (Modelo 130): EUR X
- IRPF resultado declaración: EUR X a ingresar / a devolver
- RETA annual cuotas: EUR X
- 2026 Modelo 130 quarterly schedule: EUR X per quarter

## IVA Return (Modelo 303)
[Content from spain-vat-return output]
- Registration type and period
- IVA devengado (output IVA) by rate (21%, 10%, 4%)
- IVA soportado deducible (deductible input IVA)
- Intracomunitarias (Modelo 349 summary)
- Prorrata (if applicable)
- Result per quarter and annual summary
- Modelo 390 annual summary reconciliation

## Income Tax Return (IRPF Modelo 100)
[Content from es-income-tax output]
- Rendimiento íntegro de actividades económicas
- Gastos deducibles schedule (with gastos de difícil justificación if simplificada)
- Amortización schedule
- RETA cuotas deducted
- Rendimiento neto de actividades
- Reducciones (if applicable)
- Other income heads (rendimientos del trabajo, del capital, ganancias patrimoniales)
- Base imponible general
- Base del ahorro (if applicable)
- Mínimo personal y familiar
- Escala estatal + escala autonómica ([comunidad])
- Cuota íntegra
- Deducciones (planes de pensiones, vivienda habitual, maternidad, etc.)
- Cuota líquida
- Retenciones deducted
- Pagos fraccionados deducted
- Resultado: a ingresar / a devolver

## Social Contributions (RETA)
[Content from es-social-contributions output]
- Alta date and months of contribution
- Base de cotización declared
- Monthly cuota and annual total
- Tarifa plana (if applicable)
- Income-based regularisation estimate (new system since 2023)
- Deductibility confirmed in IRPF

## Estimated Tax (Modelo 130)
[Content from es-estimated-tax output, or computed from standard formula if stub]
- Q4 2025 computation: 20% x rendimiento neto acumulado - retenciones acumuladas - pagos anteriores
- Check: if retenciones > 70% of ingresos, Modelo 130 not required
- 2026 quarterly schedule based on 2025 results
- Q1 2026: 1-20 April 2026
- Q2 2026: 1-20 July 2026
- Q3 2026: 1-20 October 2026
- Q4 2026: 1-30 January 2027

## Cross-skill Reconciliation
- Modelo 303 base imponible vs IRPF ingresos: [pass/fail]
- RETA cuotas vs IRPF gasto deducible: [pass/fail]
- Retenciones credit vs IRPF cuota: [pass/fail]
- Modelo 130 pagos vs IRPF credit: [pass/fail]

## Reviewer Attention Flags
[Aggregated from all upstream skills]
- Estimación directa type confirmed (simplificada vs normal)
- Gastos de difícil justificación applied at 5% (max EUR 2,000)
- Mixed-use expense percentages (phone, internet, vehicle)
- Home office deduction (despacho en casa -- if claimed, verify Modelo 036 declaration)
- EU clients -- Modelo 349 filing obligation
- Retención rate (7% new autónomo vs 15% standard)
- RETA regularisation exposure (income-based system adjustment)
- Vehicle IVA deduction at 50% default (higher requires exclusive business use proof)
- Any turnover approaching thresholds (e.g., EUR 600,000 for estimación directa simplificada)

## Positions Taken
[List with legislation citations]
- e.g., "Estimación directa simplificada applied -- Art. 30 LIRPF, Art. 28-30 RIRPF"
- e.g., "Gastos de difícil justificación: 5% of rendimiento neto previo, max EUR 2,000 -- Art. 30.2.4a LIRPF"
- e.g., "RETA cuotas deducted as gasto de actividad -- Art. 28.1 LIRPF"
- e.g., "Retención del 7% applied (autónoma in first 3 years) -- Art. 95.1 RIRPF"
- e.g., "Despacho en casa: 30% of proportional suministros -- Art. 30.2.5a LIRPF (from 2018)"
- e.g., "Laptop amortised at 25% per Tabla de Amortización Simplificada, Grupo 5"
- e.g., "Export of services to EU (Germany): exenta con derecho a deducción -- Art. 21 LIVA"

## Planning Notes for 2026
- Modelo 130 quarterly schedule (amounts and dates)
- Modelo 303 quarterly filing calendar
- RETA base de cotización review (income-based adjustment)
- Amortisation schedule continuing into 2026
- Modelo 349 recapitulativo (if EU intracomunitarias)
- Modelo 390 annual IVA summary (January 2027)
- Any legislative changes affecting 2026 (Presupuestos Generales del Estado)

## Client Action List

### Immediate (before filing deadlines):
1. Review this return package with your asesor fiscal
2. File Q4 2025 Modelo 303 (deadline: 30 January 2026 -- ALREADY PASSED, check if filed)
3. File Q4 2025 Modelo 130 (deadline: 30 January 2026 -- ALREADY PASSED, check if filed)
4. File Modelo 100 IRPF 2025 (campaign opens April 2026, deadline: 30 June 2026)
5. Pay IRPF resultado a ingresar of EUR X (or request devolución)
6. Option: split IRPF payment 60/40 (60% at filing, 40% by 5 November 2026)

### Modelo 303 filing calendar 2026:
- Q1 2026 (Jan-Mar): file 1-20 April 2026
- Q2 2026 (Apr-Jun): file 1-20 July 2026
- Q3 2026 (Jul-Sep): file 1-20 October 2026
- Q4 2026 (Oct-Dec): file 1-30 January 2027

### Modelo 130 filing calendar 2026:
- Q1 2026: file 1-20 April 2026
- Q2 2026: file 1-20 July 2026
- Q3 2026: file 1-20 October 2026
- Q4 2026: file 1-30 January 2027

### Modelo 349 (if EU intracomunitarias):
- Quarterly or annual depending on volume (annual if < EUR 35,000)

### RETA:
- Monthly auto-debit continues
- Review base de cotización in light of 2025 actual income
- Regularisation may occur in H2 2026 for 2025 income

### Ongoing:
1. Issue facturas conforming to Reglamento de Facturación (RD 1619/2012)
2. Maintain libro de ingresos and libro de gastos (estimación directa simplificada)
3. File Modelo 303 and 130 quarterly
4. Retain all facturas and justificantes for 4 years (prescripción tributaria)
5. Monitor RETA base de cotización vs actual income
6. File Modelo 390 (annual IVA summary) by 30 January following year
7. File Modelo 347 (operaciones con terceros > EUR 3,005.06) by 28 February
```

## Section 5 -- Refusals

- **R-ES-1** — Upstream skill did not run. Name the specific skill. Note: this is a warning, not a hard stop. Continue with available data and flag the gap.  _(R-ES-1)_
- **R-ES-2** — Upstream self-check failed. Name the specific check and note it in the reviewer brief. Continue.  _(R-ES-2)_
- **R-ES-3** — Cross-skill reconciliation failed. Name the specific reconciliation and describe the discrepancy. Flag for reviewer but continue.  _(R-ES-3)_
- **R-ES-4** — Intake incomplete. Specific missing intake items prevent computation. List what is missing and ask the user for the specific data point.  _(R-ES-4)_
- **R-ES-5** — Out-of-scope item discovered during assembly. E.g., rental income requiring separate rendimiento del capital inmobiliario computation, capital gains requiring ganancias patrimoniales schedule, or imputación de rentas inmobiliarias for empty properties. Flag and exclude from computation.  _(R-ES-5)_

## Section 6 -- Self-checks

- **Check ES-A1** — All upstream skills executed. spain-vat-return, es-income-tax, es-social-contributions all produced output. es-estimated-tax produced output or was computed from standard formula.  _(Check ES-A1)_
- **Check ES-A2** — Modelo 303 base imponible matches IRPF ingresos. Within EUR 1 tolerance.  _(Check ES-A2)_
- **Check ES-A3** — RETA cuotas deducted in IRPF match actual payments. Exact match.  _(Check ES-A3)_
- **Check ES-A4** — Retenciones in IRPF match sum of all retenciones from sources. Retenciones from professional activity + employment + capital = total deducted.  _(Check ES-A4)_
- **Check ES-A5** — Pagos fraccionados (Modelo 130) correctly credited in IRPF. Sum of Q1-Q4 payments deducted against cuota líquida.  _(Check ES-A5)_
- **Check ES-A6** — Gastos de difícil justificación correctly applied (simplificada only). 5% of rendimiento neto previo (before this deduction), max EUR 2,000.  _(Check ES-A6)_
- **Check ES-A7** — Escala estatal + autonómica correctly applied. Correct comunidad autónoma rates used for the autonómica tramo.  _(Check ES-A7)_
- **Check ES-A8** — Vehicle IVA deduction at appropriate rate. Default 50% unless exclusive business use demonstrated.  _(Check ES-A8)_
- **Check ES-A9** — Home office (if claimed) correctly computed. Proportional m2 applied to eligible costs; suministros at 30% of proportional share (simplificada rule from 2018).  _(Check ES-A9)_
- **Check ES-A10** — Retención rate correct. 7% for first 3 calendar years from alta; 15% thereafter. Check alta date.  _(Check ES-A10)_
- **Check ES-A11** — Filing calendar is complete. All deadlines for Modelo 303, 130, 100, 349, 390, and 347 are listed with specific dates.  _(Check ES-A11)_
- **Check ES-A12** — Reviewer brief contains legislation citations. Every position taken references the specific article of LIRPF, RIRPF, LIVA, RIVA, or relevant regulation.  _(Check ES-A12)_

## Section 7 -- Output files

- **Output files list** — The final output is three files: 1. `[client_slug]_2025_spain_master.xlsx` -- Single master workbook containing every worksheet and computation. Sheets include: Cover, Modelo 303 (Q4 or annual reconciliation), IRPF Modelo 100 (rendimiento neto, base imponible, escala, cuota, resultado), Amortisation Schedule, Gastos Detail, RETA Reconciliation, Modelo 130 (Q4 2025 + 2026 schedule), Cross-Check Summary. Use live formulas where possible -- e.g., IRPF ingresos cell references the Modelo 303 base imponible cell; RETA gasto references the RETA sheet total; Modelo 130 references IRPF rendimiento neto. Verify no #REF! errors. Verify computed values match within EUR 1 before shipping. 2. `reviewer_brief.md` -- Single markdown file covering all sections from Section 4 above: executive summary, IVA return, IRPF, RETA, Modelo 130, cross-skill reconciliation, flags, positions, planning notes. 3. `client_action_list.md` -- Single markdown file with step-by-step actions: immediate filings and payments, quarterly calendar for 2026, ongoing compliance reminders. If execution runs out of context mid-build: produce whatever is complete, then state at the end which of the three files were not produced or are partial. All files are placed in `/mnt/user-data/outputs/` and presented to the user via the `present_files` tool at the end.  _(Section 7 -- Output files)_

## Section 8 -- Cross-skill references

- **Inputs and outputs** — Inputs: es-freelance-intake -- structured intake package (JSON); spain-vat-return -- Modelo 303 box values and classification output; es-income-tax -- IRPF Modelo 100 computation output; es-social-contributions -- RETA reconciliation output; es-estimated-tax -- Modelo 130 computation (or fallback computation). Outputs: The final reviewer package. No downstream skill.  _(Section 8 -- Cross-skill references)_

## Section 9 -- Known gaps

1. PDF form filling is not automated. The reviewer uses the worksheets to fill official AEAT forms on the Sede Electrónica.
2. E-filing is handled by the reviewer via AEAT Sede Electrónica (with certificado digital or Cl@ve), not by this skill.
3. Payment execution is the client's responsibility; the skill only provides instructions and amounts.
4. es-estimated-tax is a Q4 stub. Until it is fleshed out, Modelo 130 is computed using the standard formula (Art. 110 LIRPF). This is a redundancy, not a gap -- the formula is deterministic.
5. Multi-year amortisation tracking assumes the prior year schedule is provided. If not, only current-year acquisitions are amortised.
6. Rental income (rendimiento del capital inmobiliario) is out of scope.
7. Capital gains (ganancias patrimoniales) are out of scope beyond noting them as other income.
8. Imputación de rentas inmobiliarias (imputed income on empty properties) is out of scope.
9. Modelo 720 (overseas assets declaration) is out of scope.
10. The package is complete only for tax year 2025; 2026 appears only as prospective planning.
11. País Vasco and Navarra foral regimes are out of scope -- territorio común (AEAT) only.

### Change log

- **v0.1 (April 2026):** Initial draft. Modelled on mt-return-assembly v0.1 adapted for Spain jurisdiction with four content skills (IVA Modelo 303, IRPF Modelo 100, RETA, Modelo 130).

## End of skill

## Disclaimer

This skill and its outputs are provided for informational and computational purposes only and do not constitute tax, legal, or financial advice. Open Accountants and its contributors accept no liability for any errors, omissions, or outcomes arising from the use of this skill. All outputs must be reviewed and signed off by a qualified professional (such as an asesor fiscal, gestor administrativo, or equivalent licensed practitioner in your jurisdiction) before filing or acting upon.

The most up-to-date, verified version of this skill is maintained at [openaccountants.com](https://openaccountants.com). Log in to access the latest version, request a professional review from a licensed accountant, and track updates as tax law changes.

## Section 2 -- Execution order and dependency chain

0. **Step 1** — Execute spain-vat-return
0. **Step 2** — Execute es-income-tax
