An open calculator for the 36-month total cost of a website in Spain: complete formula, source-verified variables with dates, deductible vs. non-deductible VAT, and internal team hours.
The Aura Design 36-month total cost calculator sums up what a website quote in Spain usually misses: domain and hosting renewals, licenses in dollars, gateway commissions, your team's internal hours, a major mid-life update, and non-deductible VAT. It provides three figures: total, monthly, and per-order.
This is not an article about costs: it is the tool itself. Below, you will find the complete formula, variables with their default values and sources, the UI text, and the schema for the downloadable CSV. You can rebuild it in a spreadsheet in twenty minutes without asking for our permission or leaving your email address.
What this calculator includes and what it doesn't
It sums up five blocks. The first is the only one that appears in a standard quote. We label them in Spanish: construction (paid once) and recurring (paid monthly) (what English spreadsheets label as CAPEX and OPEX).
| Item | Figure | Note |
|---|---|---|
| CONSTRUCTION · design, content, and migration: paid once | 1 | The only block that almost the entire sector quotes |
| RECURRING · paid every month for 36 months | 2 | Domain, hosting, email, licenses, consent |
| VARIABLE · transaction commissions | 3 | Only if you sell: gateway, platform, currency |
| INTERNAL · your team's hours | 4 | — |
| EVOLUTION · maintenance and one major change | 5 | The mid-life overhaul that nobody budgets for |
— = data being measured; we will publish it once we have our own sample.
It does not include advertising, campaigns, marketing salaries, or the opportunity cost of not having a website. Measuring the cost of the tool and measuring the cost of the channel are two different exercises; mixing them results in numbers that serve no decision-making purpose.
The industry norm: The budget is closed at the construction price, and the conversation ends there. Fourteen months later, renewals at triple the price appear, along with a license billed in dollars and eight hours a month from someone on your team that no one accounted for.
Our criteria: The decision-making number is the 36-month one. The first block is agreed upon with a fixed price per phase, and the other four are put in writing, even if some are paid to third parties rather than us.
The five variables that almost no Spanish quote includes
The initial price is not the renewal price. The cleanest case is domains: Arsys lists the .es at €1 for the first year and €25 for the renewal, excluding VAT (arsys.net/domains/prices, consulted on 08-27-2026). That is a 25-fold difference between year 1 and year 2. The calculator requires filling in both fields separately.
Licenses in dollars are paid in euros. The Spanish Shopify pricing page quotes in dollars: $39/month for the Basic plan with monthly billing and $29/month with annual billing (shopify.com/es/precios, consulted on 08-27-2026). Vercel Pro is $20/month (vercel.com/pricing, same date). Your actual cost depends on the exchange rate on the day of the charge and the margin applied by your bank. It must be estimated, not assumed.
Commissions are not just a percentage; they are a percentage plus a fixed portion. And that fixed portion is what hurts small tickets.
Internal hours are a cost. The person uploading products, answering forms, and chasing the provider earns a salary. If you don't include them in the formula, the result is propaganda.
VAT is a cost for some and not for others. This is the part that no English-language calculator can provide.
VAT: when it is a cost and when it is not
The general rate applicable to web design and development services is 21% (VAT Law 37/1992, art. 90).
The calculator asks you only one thing: whether you deduct the input VAT. If you are a freelancer or a company with taxable and non-exempt activity, the website's VAT is a cash flow, not a cost, and the decision-making number is the taxable base. If your activity is exempt—education, health, insurance, etc., as per Art. 20 of Law 37/1992—or if you are contracting as an individual, that 21% is a pure cost and must be multiplied within. A medical office and a consultancy pay the same price but bear different costs.
There is a third case, and it is the one most often overlooked: tools billed from outside of Spain. With an EU provider, the invoice arrives without VAT, and you self-assess via the reverse charge mechanism, with the corresponding recapitulative declaration. This is not a saving: it is a ledger entry. The calculator marks it with a checkbox so you don't confuse it with a discount.
The complete formula
CT36 = CONSTRUCTION + REC36 + VAR36 + INT36 + EVO36
CONSTRUCTION = P_design + P_content + P_migration + L_perpetual
REC36 = REC_y1 + REC_y2 + REC_y3
REC_y1 = Σ_i ( initial_price_i × active_months_i_year1 / periodicity_i )
REC_y2 = Σ_i ( renewal_price_i × 12 / periodicity_i ) × (1 + g)
REC_y3 = REC_y2 × (1 + g)
VAR36 = Σ_j ( V36_j × p_j + n36_j × f_j )
V36_j = turnover attributed to gateway j
n36_j = number of orders attributed to gateway j
p_j = percentage commission of gateway j
f_j = fixed commission per operation for gateway j
With a single gateway: VAR36 = V36 × p + n36 × f
INT36 = h_month × 36 × c_internal_hour
EVO36 = M_monthly × 36 + C_major
Currency conversion:
cost_eur = cost_usd / exchange_rate × (1 + fx_margin)
VAT Adjustment (only if vat_deductible = NO):
CT36_final = Σ_p ( item_p × (1 + vat_rate_p) )
vat_rate_p = 0 for INT36 (own labor cost, not subject) and for
VAR36 (gateway commissions, exempt per
art. 20.Uno.18 of Law 37/1992)
vat_rate_p = 0.21 for CONSTRUCTION, REC36, and EVO36, unless the supplier
invoice indicates another rate
Outputs:
CT_month = CT36 / 36
CT_per_order = CT36 / n36 (only if n36 > 0)
Δ_vs_budget = CT36 / CONSTRUCTION (how many times the initial budget)
The last output is the important one. We don't want you to look at the total; we want you to look at the multiplier. A project with a 1.4 multiplier and another with 3.1 are different decisions even if the initial budget is identical.
Variables, default values, and their sources
Every default value with a source is a public price verified on August 27, 2026. Every value with a placeholder is our own data that we have not yet published: we leave it empty rather than filling it with a plausible figure.
| Variable | Symbol | Default Value | Source or Status |
|---|---|---|---|
| Design and construction price | P_design | empty, you enter it | Your actual budget, taxable base |
| Content (texts, photography, translation) | P_content | empty | — |
| Migration from previous website | P_migration | empty | Depends on number of URLs with traffic |
.es domain initial / renewal | d_initial / d_ren | €1 / €25 per year, excl. VAT | arsys.net/domains/prices · 08-27-2026 |
| Managed WordPress hosting in Spain | h_host | from €8.95/mo, excl. VAT | raiolanetworks.com/hosting-wordpress · 08-27-2026 |
| App hosting (Vercel Pro) | h_app | $20/mo | vercel.com/pricing · 08-27-2026 |
| E-commerce platform (Shopify Basic) | h_plat | $39/mo monthly · $29/mo annual | shopify.com/es/precios · 08-27-2026 |
| Gateway commission (Stripe, standard EEA card) | p_j / f_j | 1.5% + €0.25 | stripe.com/es/pricing · 08-27-2026 |
| Gateway commission (Stripe, international card) | p_j / f_j | 3.15% + €0.25, plus 2% if currency change | stripe.com/es/pricing · 08-27-2026 |
| Redsys commission | p_j / f_j | empty: negotiated by your bank, no public rate | See Redsys and Bizum in your online store |
| Annual services increase | g | 0% by default, adjust it | — |
| Internal hours per month | h_month | empty | — |
| Cost of internal hour | c_internal_hour | empty | Company cost of the person, not their gross salary |
| Monthly maintenance | M_monthly | empty | — |
| Mid-life major change | C_major | empty | — |
| EUR/USD exchange rate | exchange_rate | daily rate, from ECB | Change it on the day you use it |
| Bank currency margin | fx_margin | 0%, increase if bank charges | Check your statement, not our estimate |
| VAT rate for each item | vat_rate_item | 0.21 on construction, recurring, and evolution · 0 on internal and variable | Law 37/1992, art. 90 and art. 20.Uno.18 · consulted 08-27-2026 |
| Deductible VAT | vat_deductible | yes | Law 37/1992, arts. 90 and 20 |
— = data being measured; we will publish it once we have our own sample.
If you don't have a budget on the table to fill in P_design, use our public rates as a reference: from €3,000 for a brand website, from €4,500 for a website with interactive experiences and automations, and from €9,000 for full branding with proprietary CRM, AI, sales funnels, nurturing, and automations. These figures include VAT: the industry advertises excluding VAT and the invoice arrives 21% higher; we state the final number. No surprise hours and no surprise VAT. If you find quotes below €3,000, they are market segments, not Aura's offerings: our floor is €3,000.
Platform, hosting, and gateway prices in this table were verified on August 27, 2026, on each provider's official pages. They change without notice and some are published in dollars even on their Spanish websites. Before making a decision with this calculator, reopen the three or four sources that matter most in your case.
A reasoned estimate, marked as such
An example of how to fill in the internal hours block without making things up. If the person managing the website has a company cost of about €22/hour —an estimate, not data: a gross salary of €30,000 plus employer social security contributions of about 31% (common contingencies, unemployment, FOGASA, professional training, and MEI) is about €39,300 in company cost, divided by the 1,780 annual labor agreement hours we use as a reference— and dedicates 4 hours per month, the internal block is 22 × 4 × 36 = €3,168 over three years. With 8 hours per month, €6,336. That range decides more projects than the difference between two construction quotes.
Mark it in the spreadsheet as an estimate. An estimated figure that is noted is valid; an estimated figure disguised as a measurement is not.
How to read the result
Three numbers, in this order.
- Total cost at 36 months. This is what you take to the meeting.
- Cost per month. This is what you compare with what you are paying today.
- Multiplier over the initial budget. This tells you if you were sold a website or a subscription.
And a technical check that costs no money but requires decisions: if your website does not meet the Core Web Vitals thresholds —LCP in 2.5 seconds, INP in 200 milliseconds, and CLS in 0.1, measured at the 75th percentile of visits (web.dev/articles/vitals, consulted 08-27-2026)—, part of the expense for the next 36 months is already committed to fixing it. Add it to C_major before signing, not after.
The same applies to accessibility. The requirements of Title I of Law 11/2023, which transposes Directive (EU) 2019/882, are enforceable as of June 28, 2025. If your website falls within the scope of the standard and does not comply today, adapting it is a 36-month cost item, not an optional extra.
UI text, literal
This is what is written on the screen. No unnecessary instructions, no unused fields.
Header
- Title: Total cost of your website at 36 months
- Subtitle: Fill in what you know. Leave empty what you don't. The calculator will tell you what is missing to make the number reliable.
Step 1 — Construction
Design and development budget (excl. VAT)· help: The taxable base of the budget you have on the table.Content: texts, photography, and translation· help: If the studio does it, go here. If your team does it, go to Step 4.Migration of previous website· help: Redirects, contents, and emails. Zero if it is a new project.
Step 2 — Recurring services
Domain: initial price/Domain: renewal price· help: They are almost never the same. Look it up before filling it in.Hosting or platform: monthly price+ selectorCurrency: EUR / USDProfessional email: price per mailbox and month×Number of mailboxesAnnual licenses: templates, extensions, fontsCookie consent platformEstimated annual increase of these services (%)· help: If you don't know, leave 0 and note that it is a floor, not a forecast.
Step 3 — Sales
Estimated turnover at 36 months·Number of orders at 36 monthsGateway percentage commission·Fixed commission per operation- Inline notice: With Redsys, the commission is negotiated by your bank and there is no public rate. Ask for it in writing before filling this in.
Step 4 — Your team
Hours per month your team will dedicate to the websiteCompany cost per hour for that person· help: Company cost, not gross salary. Add social security contributions.
Step 5 — Evolution
Monthly maintenance feeBudget reserved for a major change between month 12 and 30· help: If you enter zero, you are betting that your business will not change in three years.
Step 6 — Tax
Do you deduct input VAT?· Yes / No · help: If your activity is exempt from VAT or you are contracting as an individual, mark No: 21% is a cost.Is any tool billed from outside Spain?· Yes / No · help: Mark Yes so the calculator reminds you of the reverse charge mechanism. It is not a discount.
Results
Total cost at 36 months: —Cost per month: —Cost per order: —Your initial budget multiplied by: —- Footer: This number is only as good as the data you have entered. Fields you left empty appear below.
Empty states and errors
- No data: There is nothing to sum yet. Start with the construction budget.
- Missing mandatory field: The renewal price is missing. Without it, year 2 and year 3 will be wrong.
- Warning: internal hours at zero: You have entered zero internal hours. This happens rarely. If it is real, leave it.
- Warning: major change at zero: Without a reservation for changes, the result is a floor, not a forecast.
Downloadable version: CSV schema
The sheet is also published as a CSV so you can import it into your own template. One row per item.
| Column | Type | Description |
|---|---|---|
item | text | Name of the cost line |
block | enum | construction · recurring · variable · internal · evolution |
provider | text | Empty if internal cost |
currency | enum | EUR · USD |
initial_price | decimal | Price for the first period |
renewal_price | decimal | Price from the second period onwards |
periodicity_months | integer | 1, 12 or 0 for one-time payment |
applicable_months | integer | How many of the 36 it is paid |
vat_rate | decimal | 0.21 unless justified exception: 0 in internal and variable block rows |
vat_deductible | boolean | Determines if VAT enters the total |
invoice_origin | enum | ES · EU · non-EU |
source_url | text | Mandatory if price is public |
verification_date | date | ISO 8601 |
note | text | Assumptions, placeholders, or data limits |
Methodological sheet
-
What it measures. The accumulated expenditure attributable to a website during 36 months from its production, in euros and taxable base, with optional conversion to cost including VAT.
-
What it does not measure. Advertising investment, marketing salaries, return on investment, and opportunity cost.
-
Window. 36 months because it is the horizon in which a well-built site reaches its first structural change. It is not a fiscal or accounting term.
-
Accounting treatment. The calculator is cash-based: it distributes disbursements, not amortizations. If your tax advisor treats the website as an intangible asset, the accounting distribution will differ from the cash distribution: the intangible asset with a defined useful life is amortized according to that life (Corporate Tax Law 27/2014, art. 12). Consult with your tax advisor on the coefficient that applies to your case.
-
Public prices. Collected manually from the provider's official page, with URL and date in each row. No aggregators or comparison sites with affiliate links are used.
-
Proprietary data. Fields marked with "—" will be published with n, date window, and method, or not published at all.
-
License and review. Free use by citing the source. Price review every quarter, with the verification date visible in the CSV header.
-
The quote explicitly says "plus VAT" and not just a round number
-
The initial and renewal price for domain, hosting, and licenses are in writing
-
You know in which currency each tool is billed and who bears the exchange rate difference
-
You have the gateway commission in writing, including the fixed portion per operation
-
Someone has estimated the hours your team will dedicate per month and put them in the sheet
-
There is a figure reserved for the major change from month 12 to 30, even if it is conservative
-
The contract names the code, source files, and design in the assignment of rights
-
You know what happens to all this if the studio disappears: who has the keys and where the repository is
A website quote is a photograph; the 36-month cost is the movie. We prefer to discuss the movie before filming, even if the number is scary and even if part of that number doesn't end up in our invoice. Does this way of working fit you?
Frequently asked questions
Why 36 months and not 12 or 60?
Because at twelve months almost nothing has been renewed yet, and at sixty you have already redesigned. Thirty-six is the segment where you see both renewals and the first structural change, and it is a horizon that a small business can truly plan for.
Does it work for an online store and a corporate website?
It works for both: in the corporate site, the variable block stays at zero and the weight shifts to internal hours. What it doesn't do is estimate your sales for you; if you don't have a forecast of turnover and number of orders, the cost per order won't appear.
What if my website is paid for by a grant?
The calculator sums the cost, not who pays it: enter the full amount and note the subsidized part separately. A grant normally covers the first block and sometimes twelve months of service, so you pay for year 2 and year 3 anyway.
Do you use this calculator in your proposals?
Yes, we fill it out with the client before signing, including items they don't pay to us. If the 36-month total doesn't fit with what the project can return, we tell you and we don't move forward.
Why are there empty fields with placeholders in the default values table?
Because they are our averages that we haven't measured with enough n to publish them. We prefer to deliver the tool with a marked gap than with an invented figure that looks like data.
Keep reading
- How much does a website cost in Spain in 2026: breakdown by item, with VAT and 3-year cost
- Total cost of a website at 36 months: the number almost no one gives you
- Web Price Observatory Spain 2026, with n, date, and method
- How to audit a website budget: 14 signs you are being sold smoke
- Do website prices include VAT? How to read a quote as a freelancer or SME
- Redsys and Bizum in your online store: how they integrate and what commissions they have
Transparency note. Some of our own data in this guide is still being measured on real projects, with a single method. We will publish it with its sample size and date range once the sample is large enough; until then, every figure you see carries its source and date of consultation.
Verified sources
- https://stripe.com/es/pricing — verified commissions: 1.5% + €0.25 standard EEA card, 2.8% + €0.25 premium EEA, 3.15% + €0.25 international, plus 2% for currency conversion (consulted 08-27-2026)
- https://www.shopify.com/es/precios — plans quoted in dollars on the Spanish website: Basic $39/mo monthly and $29/mo annual, Grow 105/79, Advanced 399/299 (consulted 08-27-2026)
- https://vercel.com/pricing — Hobby $0/mo, Pro $20/mo with 1 TB transfer included (consulted 08-27-2026)
- https://www.arsys.net/domains/prices — .es domain at €1 for the first year and €25 renewal, prices excluding VAT; the initial/renewal jump is the article's central example (consulted 08-27-2026)
- https://www.raiolanetworks.com/hosting-web/ — Spanish shared hosting from €8.95/mo excl. VAT, data centers in Madrid (consulted 08-27-2026)
- https://web.dev/articles/vitals — Core Web Vitals thresholds: LCP 2.5s, INP 200ms, CLS 0.1, evaluated at 75th percentile (consulted 08-27-2026)
- https://www.boe.es/buscar/act.php?id=BOE-A-2023-11022 — Law 11/2023, transposition of Directive (EU) 2019/882; Title I enforceable as of June 28, 2025
- VAT Law 37/1992, arts. 90 and 20 — general rate of 21% and exemption cases that turn VAT into a non-deductible cost
- Corporate Tax Law 27/2014, art. 12 — amortization of intangible assets; cited without specific coefficient as it refers to tax advisory
Want to see this thinking applied to a real project?
