@jjlmoya/utils-finance 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (133) hide show
  1. package/package.json +64 -0
  2. package/src/category/i18n/en.ts +159 -0
  3. package/src/category/i18n/es.ts +159 -0
  4. package/src/category/i18n/fr.ts +159 -0
  5. package/src/category/index.ts +24 -0
  6. package/src/category/seo.astro +15 -0
  7. package/src/components/PreviewNavSidebar.astro +116 -0
  8. package/src/components/PreviewToolbar.astro +143 -0
  9. package/src/data.ts +11 -0
  10. package/src/env.d.ts +5 -0
  11. package/src/index.ts +32 -0
  12. package/src/layouts/PreviewLayout.astro +117 -0
  13. package/src/pages/[locale]/[slug].astro +146 -0
  14. package/src/pages/[locale].astro +251 -0
  15. package/src/pages/index.astro +4 -0
  16. package/src/tests/faq_count.test.ts +19 -0
  17. package/src/tests/locale_completeness.test.ts +39 -0
  18. package/src/tests/mocks/astro_mock.js +2 -0
  19. package/src/tests/no_h1_in_components.test.ts +48 -0
  20. package/src/tests/schemas_fulfillment.test.ts +23 -0
  21. package/src/tests/seo_length.test.ts +23 -0
  22. package/src/tests/title_quality.test.ts +55 -0
  23. package/src/tests/tool_validation.test.ts +17 -0
  24. package/src/tool/compoundInterest/bibliography.astro +14 -0
  25. package/src/tool/compoundInterest/component.astro +697 -0
  26. package/src/tool/compoundInterest/i18n/en.ts +212 -0
  27. package/src/tool/compoundInterest/i18n/es.ts +212 -0
  28. package/src/tool/compoundInterest/i18n/fr.ts +212 -0
  29. package/src/tool/compoundInterest/index.ts +34 -0
  30. package/src/tool/compoundInterest/logic.ts +40 -0
  31. package/src/tool/compoundInterest/seo.astro +14 -0
  32. package/src/tool/compoundInterest/ui.ts +19 -0
  33. package/src/tool/courtFeeCalculator/bibliography.astro +14 -0
  34. package/src/tool/courtFeeCalculator/component.astro +427 -0
  35. package/src/tool/courtFeeCalculator/i18n/en.ts +268 -0
  36. package/src/tool/courtFeeCalculator/i18n/es.ts +268 -0
  37. package/src/tool/courtFeeCalculator/i18n/fr.ts +268 -0
  38. package/src/tool/courtFeeCalculator/index.ts +33 -0
  39. package/src/tool/courtFeeCalculator/logic.ts +86 -0
  40. package/src/tool/courtFeeCalculator/seo.astro +14 -0
  41. package/src/tool/courtFeeCalculator/ui.ts +31 -0
  42. package/src/tool/debtSnowball/bibliography.astro +14 -0
  43. package/src/tool/debtSnowball/component.astro +1052 -0
  44. package/src/tool/debtSnowball/i18n/en.ts +288 -0
  45. package/src/tool/debtSnowball/i18n/es.ts +288 -0
  46. package/src/tool/debtSnowball/i18n/fr.ts +288 -0
  47. package/src/tool/debtSnowball/index.ts +37 -0
  48. package/src/tool/debtSnowball/logic.ts +156 -0
  49. package/src/tool/debtSnowball/seo.astro +14 -0
  50. package/src/tool/debtSnowball/ui.ts +49 -0
  51. package/src/tool/fireCalculator/bibliography.astro +14 -0
  52. package/src/tool/fireCalculator/component.astro +689 -0
  53. package/src/tool/fireCalculator/i18n/en.ts +261 -0
  54. package/src/tool/fireCalculator/i18n/es.ts +261 -0
  55. package/src/tool/fireCalculator/i18n/fr.ts +261 -0
  56. package/src/tool/fireCalculator/index.ts +33 -0
  57. package/src/tool/fireCalculator/logic.ts +108 -0
  58. package/src/tool/fireCalculator/seo.astro +14 -0
  59. package/src/tool/fireCalculator/ui.ts +33 -0
  60. package/src/tool/ibanBicSwiftConverter/bibliography.astro +14 -0
  61. package/src/tool/ibanBicSwiftConverter/component.astro +581 -0
  62. package/src/tool/ibanBicSwiftConverter/i18n/en.ts +167 -0
  63. package/src/tool/ibanBicSwiftConverter/i18n/es.ts +216 -0
  64. package/src/tool/ibanBicSwiftConverter/i18n/fr.ts +167 -0
  65. package/src/tool/ibanBicSwiftConverter/index.ts +33 -0
  66. package/src/tool/ibanBicSwiftConverter/logic.ts +101 -0
  67. package/src/tool/ibanBicSwiftConverter/seo.astro +14 -0
  68. package/src/tool/ibanBicSwiftConverter/ui.ts +17 -0
  69. package/src/tool/inflation/bibliography.astro +14 -0
  70. package/src/tool/inflation/component.astro +400 -0
  71. package/src/tool/inflation/i18n/en.ts +301 -0
  72. package/src/tool/inflation/i18n/es.ts +301 -0
  73. package/src/tool/inflation/i18n/fr.ts +301 -0
  74. package/src/tool/inflation/index.ts +34 -0
  75. package/src/tool/inflation/logic.ts +92 -0
  76. package/src/tool/inflation/seo.astro +14 -0
  77. package/src/tool/inflation/ui.ts +17 -0
  78. package/src/tool/lateInterest/bibliography.astro +14 -0
  79. package/src/tool/lateInterest/component.astro +655 -0
  80. package/src/tool/lateInterest/i18n/en.ts +255 -0
  81. package/src/tool/lateInterest/i18n/es.ts +224 -0
  82. package/src/tool/lateInterest/i18n/fr.ts +224 -0
  83. package/src/tool/lateInterest/index.ts +34 -0
  84. package/src/tool/lateInterest/logic.ts +89 -0
  85. package/src/tool/lateInterest/seo.astro +14 -0
  86. package/src/tool/lateInterest/ui.ts +33 -0
  87. package/src/tool/legalInterestRate/bibliography.astro +14 -0
  88. package/src/tool/legalInterestRate/component.astro +650 -0
  89. package/src/tool/legalInterestRate/i18n/en.ts +159 -0
  90. package/src/tool/legalInterestRate/i18n/es.ts +159 -0
  91. package/src/tool/legalInterestRate/i18n/fr.ts +159 -0
  92. package/src/tool/legalInterestRate/index.ts +33 -0
  93. package/src/tool/legalInterestRate/logic.ts +29 -0
  94. package/src/tool/legalInterestRate/seo.astro +14 -0
  95. package/src/tool/legalInterestRate/ui.ts +23 -0
  96. package/src/tool/lotteryOptimizer/bibliography.astro +14 -0
  97. package/src/tool/lotteryOptimizer/component.astro +863 -0
  98. package/src/tool/lotteryOptimizer/i18n/en.ts +188 -0
  99. package/src/tool/lotteryOptimizer/i18n/es.ts +281 -0
  100. package/src/tool/lotteryOptimizer/i18n/fr.ts +188 -0
  101. package/src/tool/lotteryOptimizer/index.ts +33 -0
  102. package/src/tool/lotteryOptimizer/logic.ts +133 -0
  103. package/src/tool/lotteryOptimizer/seo.astro +14 -0
  104. package/src/tool/lotteryOptimizer/ui.ts +33 -0
  105. package/src/tool/mortgage/bibliography.astro +14 -0
  106. package/src/tool/mortgage/component.astro +1030 -0
  107. package/src/tool/mortgage/i18n/en.ts +227 -0
  108. package/src/tool/mortgage/i18n/es.ts +227 -0
  109. package/src/tool/mortgage/i18n/fr.ts +227 -0
  110. package/src/tool/mortgage/index.ts +34 -0
  111. package/src/tool/mortgage/logic.ts +118 -0
  112. package/src/tool/mortgage/seo.astro +14 -0
  113. package/src/tool/mortgage/ui.ts +35 -0
  114. package/src/tool/percentageCalculator/bibliography.astro +14 -0
  115. package/src/tool/percentageCalculator/component.astro +640 -0
  116. package/src/tool/percentageCalculator/i18n/en.ts +233 -0
  117. package/src/tool/percentageCalculator/i18n/es.ts +233 -0
  118. package/src/tool/percentageCalculator/i18n/fr.ts +233 -0
  119. package/src/tool/percentageCalculator/index.ts +34 -0
  120. package/src/tool/percentageCalculator/logic.ts +48 -0
  121. package/src/tool/percentageCalculator/seo.astro +14 -0
  122. package/src/tool/percentageCalculator/ui.ts +30 -0
  123. package/src/tool/rentIncreaseCalculator/bibliography.astro +14 -0
  124. package/src/tool/rentIncreaseCalculator/component.astro +587 -0
  125. package/src/tool/rentIncreaseCalculator/i18n/en.ts +159 -0
  126. package/src/tool/rentIncreaseCalculator/i18n/es.ts +220 -0
  127. package/src/tool/rentIncreaseCalculator/i18n/fr.ts +159 -0
  128. package/src/tool/rentIncreaseCalculator/index.ts +33 -0
  129. package/src/tool/rentIncreaseCalculator/logic.ts +43 -0
  130. package/src/tool/rentIncreaseCalculator/seo.astro +14 -0
  131. package/src/tool/rentIncreaseCalculator/ui.ts +19 -0
  132. package/src/tools.ts +16 -0
  133. package/src/types.ts +74 -0
@@ -0,0 +1,261 @@
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { FIRECalculatorUI } from '../ui';
4
+
5
+ const slug = 'four-percent-rule-fire-calculator-spain';
6
+ const title = 'FIRE Calculator Spain: 4% Rule';
7
+ const description = 'Calculate your financial independence number in Spain using the 4% rule. Plan your early retirement and visualize your path to financial freedom.';
8
+
9
+ const faqData = [
10
+ {
11
+ question: 'What is the 4% Rule?',
12
+ answer: 'The 4% Rule is a retirement strategy based on the Trinity Study indicating you can withdraw 4% of your portfolio the first year, adjusted for inflation thereafter, without depleting funds over 30 years.',
13
+ },
14
+ {
15
+ question: 'What is FIRE?',
16
+ answer: 'FIRE stands for Financial Independence, Retire Early. It\'s a movement seeking financial freedom through aggressive saving and intelligent investing to retire before traditional retirement age.',
17
+ },
18
+ {
19
+ question: 'What is my magic number?',
20
+ answer: 'Your magic number is the total wealth needed to live off investment returns without working. It\'s calculated by dividing your annual expenses by the safe withdrawal rate (typically 4%).',
21
+ },
22
+ {
23
+ question: 'What\'s the difference between Lean, Barista, and Fat FIRE?',
24
+ answer: 'Lean FIRE means living with minimal expenses (70% of current spending), Barista FIRE is working part-time with investments covering the rest (50%), and Fat FIRE is comfortable living (150% of expenses).',
25
+ },
26
+ {
27
+ question: 'Is the 4% Rule realistic?',
28
+ answer: 'The 4% Rule has a 95% historical success rate in a 50/50 stock-bond portfolio over 30 years. However, it doesn\'t account for sequence-of-returns risk and is primarily based on US market data.',
29
+ },
30
+ ];
31
+
32
+ const howToData = [
33
+ {
34
+ name: 'Calculate your monthly expenses',
35
+ text: 'Analyze what you really spend each month including housing, food, services, and entertainment.',
36
+ },
37
+ {
38
+ name: 'Choose your safe withdrawal rate',
39
+ text: 'The 4% Rule is standard, but adjust between 2.5% (conservative) and 6% (aggressive) based on your risk tolerance.',
40
+ },
41
+ {
42
+ name: 'Enter your current net worth',
43
+ text: 'Sum your investments, savings, and income-generating assets.',
44
+ },
45
+ {
46
+ name: 'Visualize your progress',
47
+ text: 'See the wealth growth chart and freedom milestones (Lean, Barista, Fat FIRE) to understand when you\'ll reach your goal.',
48
+ },
49
+ ];
50
+
51
+ const bibliographyData = [
52
+ {
53
+ name: 'Trinity Study: Portfolio Survivability',
54
+ url: 'https://en.wikipedia.org/wiki/Trinity_study',
55
+ },
56
+ {
57
+ name: 'Early Retirement Forum Discussion',
58
+ url: 'https://www.bogleheads.org/forum/',
59
+ },
60
+ {
61
+ name: 'Shiller CAPE Index',
62
+ url: 'https://www.multpl.com/shiller-pe',
63
+ },
64
+ {
65
+ name: 'Bank of Spain - Financial Guidance',
66
+ url: 'https://www.bde.es/bde/en/',
67
+ },
68
+ ];
69
+
70
+ const faqSchema: WithContext<FAQPage> = {
71
+ '@context': 'https://schema.org',
72
+ '@type': 'FAQPage',
73
+ mainEntity: faqData.map((item) => ({
74
+ '@type': 'Question',
75
+ name: item.question,
76
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
77
+ })),
78
+ };
79
+
80
+ const howToSchema: WithContext<HowTo> = {
81
+ '@context': 'https://schema.org',
82
+ '@type': 'HowTo',
83
+ name: title,
84
+ description,
85
+ step: howToData.map((step, i) => ({
86
+ '@type': 'HowToStep',
87
+ position: i + 1,
88
+ name: step.name,
89
+ text: step.text,
90
+ })),
91
+ };
92
+
93
+ const appSchema: WithContext<SoftwareApplication> = {
94
+ '@context': 'https://schema.org',
95
+ '@type': 'SoftwareApplication',
96
+ name: title,
97
+ description,
98
+ applicationCategory: 'FinanceApplication',
99
+ operatingSystem: 'All',
100
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
101
+ inLanguage: 'en',
102
+ };
103
+
104
+ export const content: ToolLocaleContent<FIRECalculatorUI> = {
105
+ slug,
106
+ title,
107
+ description,
108
+ faqTitle: 'Frequently Asked Questions',
109
+ faq: faqData,
110
+ bibliographyTitle: 'Sources and References',
111
+ bibliography: bibliographyData,
112
+ howTo: howToData,
113
+ schemas: [faqSchema, howToSchema, appSchema],
114
+ seo: [
115
+ {
116
+ type: 'title',
117
+ text: '4% Rule: The Holy Grail of Early Retirement',
118
+ level: 2,
119
+ },
120
+ {
121
+ type: 'paragraph',
122
+ html: 'Discover how to calculate the wealth needed to live off investment returns forever. The <strong>4% Rule</strong> emerged from the Trinity Study, conducted in 1998 by three finance professors. They analyzed market data since 1926 to determine what percentage could be withdrawn annually without depleting the portfolio in 30 years.',
123
+ },
124
+ {
125
+ type: 'stats',
126
+ columns: 4,
127
+ items: [
128
+ { value: '95%', label: 'Historical Success' },
129
+ { value: '50/50', label: 'Stock/Bond Mix' },
130
+ { value: '30', label: 'Year Horizon' },
131
+ { value: '4%', label: 'Safe Withdrawal' },
132
+ ],
133
+ },
134
+ {
135
+ type: 'title',
136
+ text: 'What is the FIRE Movement?',
137
+ level: 3,
138
+ },
139
+ {
140
+ type: 'list',
141
+ items: [
142
+ 'FIRE stands for Financial Independence, Retire Early.',
143
+ 'Seeks the freedom to choose how to spend your time without financial constraints.',
144
+ 'Based on optimizing savings and intelligent investment strategies.',
145
+ 'Aims for your assets to generate sufficient cash flow to cover living expenses.',
146
+ ],
147
+ },
148
+ {
149
+ type: 'title',
150
+ text: 'Types of Financial Freedom',
151
+ level: 3,
152
+ },
153
+ {
154
+ type: 'comparative',
155
+ columns: 3,
156
+ items: [
157
+ {
158
+ title: 'Lean FIRE',
159
+ description: 'Minimalist lifestyle covering only basic survival expenses.',
160
+ points: ['Extreme saving', 'Very low spending', 'Frugal freedom'],
161
+ },
162
+ {
163
+ title: 'Barista FIRE',
164
+ description: 'Hybrid situation where investments cover half your expenses.',
165
+ points: ['Work by choice', 'Social coverage secured', 'Less stress'],
166
+ },
167
+ {
168
+ title: 'Fat FIRE',
169
+ description: 'Comfortable retirement with budget for luxuries and travel.',
170
+ points: ['High net worth', 'No restrictions', 'Family legacy'],
171
+ },
172
+ ],
173
+ },
174
+ {
175
+ type: 'title',
176
+ text: 'How to Use Our FIRE Calculator',
177
+ level: 3,
178
+ },
179
+ {
180
+ type: 'list',
181
+ items: [
182
+ '<strong>Expense Tracking:</strong> Analyze your actual monthly spending.',
183
+ '<strong>Safe Withdrawal Rate:</strong> Choose your retirement withdrawal percentage.',
184
+ '<strong>Current Net Worth:</strong> Enter your investment and asset values.',
185
+ '<strong>Savings Capacity:</strong> Calculate how long until you reach your goal.',
186
+ '<strong>Visual Analysis:</strong> See your wealth growth trajectory and milestones.',
187
+ ],
188
+ },
189
+ {
190
+ type: 'title',
191
+ text: 'Analyzing the 4% Rule',
192
+ level: 3,
193
+ },
194
+ {
195
+ type: 'comparative',
196
+ columns: 2,
197
+ items: [
198
+ {
199
+ title: 'Advantages',
200
+ description: 'Why the 4% rule works',
201
+ points: [
202
+ 'Simple mathematics for quick planning.',
203
+ 'Based on nearly a century of historical data.',
204
+ 'Adaptable to any spending level.',
205
+ ],
206
+ },
207
+ {
208
+ title: 'Limitations',
209
+ description: 'What the 4% rule doesn\'t cover',
210
+ points: [
211
+ 'Doesn\'t account for sequence-of-returns risk.',
212
+ 'Primarily based on US market data.',
213
+ 'Ignores major tax law changes.',
214
+ ],
215
+ },
216
+ ],
217
+ },
218
+ {
219
+ type: 'title',
220
+ text: 'Critical Factor: Inflation',
221
+ level: 3,
222
+ },
223
+ {
224
+ type: 'paragraph',
225
+ html: 'Remember that €1,000 today won\'t buy the same amount in the future. It\'s vital to use real returns (adjusted for inflation) so your projections maintain current purchasing power. The 4% Rule assumes you adjust withdrawals annually for inflation.',
226
+ },
227
+ ],
228
+ ui: {
229
+ labelTitle: 'FIRE Calculator: 4% Rule',
230
+ labelDescription: 'Calculate your magic number for financial independence and visualize your path to financial freedom.',
231
+ labelMonthlyExpenses: 'Monthly Expenses',
232
+ labelSWR: 'Safe Withdrawal Rate (SWR)',
233
+ labelCurrentWorth: 'Current Net Worth',
234
+ labelMonthlySavings: 'Monthly Savings Capacity',
235
+ labelAnnualReturn: 'Estimated Annual Return (Net)',
236
+ labelFreedomMilestones: 'Freedom Milestones',
237
+ labelLeanFIRE: 'Lean FIRE (70% survival)',
238
+ labelBaristaFIRE: 'Barista FIRE (50% income)',
239
+ labelFatFIRE: 'Fat FIRE (150% luxury)',
240
+ labelMagicNumber: 'Your Magic Number for Freedom',
241
+ labelMagicNumberDesc: 'Capital needed to live off returns',
242
+ labelTimeRemaining: 'Time to financial freedom',
243
+ labelTimeRemainingFormat: 'You have {years} years and {months} months left',
244
+ labelAlreadyFI: 'You\'ve already achieved financial freedom!',
245
+ labelUnachievable: 'Goal unachievable with this savings rate',
246
+ labelHiddenCostsChecklist: 'Hidden Costs Checklist',
247
+ labelHealth: 'Health Insurance (+€200)',
248
+ labelTaxes: 'Taxes (+€150)',
249
+ labelHome: 'Home Maintenance (+€100)',
250
+ labelTravel: 'Travel and Leisure (+€300)',
251
+ labelEmergency: 'Emergency Fund (+€100)',
252
+ labelSubscriptions: 'Subscriptions (+€50)',
253
+ labelAdded: 'Added:',
254
+ labelSavePlan: 'Save Plan',
255
+ labelSWRTooltip: 'Safe Withdrawal Rate: The percentage of your savings you can withdraw each year without running out of money.',
256
+ labelReturnTooltip: 'Annual market return (adjusted for inflation). The historical standard is 7%.',
257
+ currencySymbol: '$',
258
+ currencyCode: 'USD',
259
+ currencyLocale: 'en-US',
260
+ },
261
+ };
@@ -0,0 +1,261 @@
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { FIRECalculatorUI } from '../ui';
4
+
5
+ const slug = 'calculadora-regla-4-por-ciento-fire';
6
+ const title = 'Calculadora FIRE: Regla del 4% para tu Libertad Financiera';
7
+ const description = 'Calcula tu número mágico de independencia financiera usando la regla del 4%. Planifica tu jubilación anticipada y visualiza tu camino hacia la libertad económica.';
8
+
9
+ const faqData = [
10
+ {
11
+ question: '¿Qué es la Regla del 4%?',
12
+ answer: 'La Regla del 4% es una estrategia de retiro basada en el Estudio Trinity que indica que puedes retirar el 4% de tu patrimonio el primer año de jubilación, ajustando por inflación en años posteriores, sin agotar tus fondos en 30 años.',
13
+ },
14
+ {
15
+ question: '¿Qué es FIRE?',
16
+ answer: 'FIRE significa Financial Independence, Retire Early (Independencia Financiera, Retiro Temprano). Es un movimiento que busca alcanzar la libertad económica mediante una combinación agresiva de ahorro e inversión inteligente.',
17
+ },
18
+ {
19
+ question: '¿Cuál es mi número mágico?',
20
+ answer: 'Tu número mágico es el patrimonio total que necesitas acumular para poder vivir de los rendimientos sin trabajar. Se calcula dividiendo tus gastos anuales entre la tasa de retiro segura (usualmente 4%).',
21
+ },
22
+ {
23
+ question: '¿Qué diferencia hay entre Lean, Barista y Fat FIRE?',
24
+ answer: 'Lean FIRE es vivir con gastos mínimos (70% de gastos actuales), Barista FIRE es trabajar a tiempo parcial mientras los rendimientos cubren el resto (50% de gastos), y Fat FIRE es tener un estilo de vida holgado (150% de gastos).',
25
+ },
26
+ {
27
+ question: '¿Es realista la Regla del 4%?',
28
+ answer: 'La Regla del 4% tiene un 95% de probabilidad histórica de éxito en un portafolio 50/50 acciones-bonos durante 30 años. Sin embargo, no contempla el riesgo de secuencia de retornos y se basa principalmente en datos del mercado estadounidense.',
29
+ },
30
+ ];
31
+
32
+ const howToData = [
33
+ {
34
+ name: 'Calcula tus gastos mensuales',
35
+ text: 'Analiza cuánto gastas realmente cada mes incluyendo vivienda, alimentos, servicios y entretenimiento.',
36
+ },
37
+ {
38
+ name: 'Elige tu tasa de retiro segura',
39
+ text: 'La Regla del 4% es estándar, pero puedes ajustar entre 2.5% (más conservador) y 6% (más agresivo) según tu tolerancia al riesgo.',
40
+ },
41
+ {
42
+ name: 'Introduce tu patrimonio actual',
43
+ text: 'Suma el total de tus inversiones, ahorros y activos que generan ingresos pasivos.',
44
+ },
45
+ {
46
+ name: 'Visualiza tu progreso',
47
+ text: 'Observa el gráfico de crecimiento y los hitos de libertad (Lean, Barista, Fat FIRE) para entender cuándo alcanzarás tu meta.',
48
+ },
49
+ ];
50
+
51
+ const bibliographyData = [
52
+ {
53
+ name: 'The Trinity Study: Portfolio Survivability',
54
+ url: 'https://en.wikipedia.org/wiki/Trinity_study',
55
+ },
56
+ {
57
+ name: 'Early Retirement Forum - 4% Rule Discussion',
58
+ url: 'https://www.bogleheads.org/forum/',
59
+ },
60
+ {
61
+ name: 'Shiller CAPE Index - Market Valuations',
62
+ url: 'https://www.multpl.com/shiller-pe',
63
+ },
64
+ {
65
+ name: 'Spanish Financial Regulator - CNMV',
66
+ url: 'https://www.cnmv.es/',
67
+ },
68
+ ];
69
+
70
+ const faqSchema: WithContext<FAQPage> = {
71
+ '@context': 'https://schema.org',
72
+ '@type': 'FAQPage',
73
+ mainEntity: faqData.map((item) => ({
74
+ '@type': 'Question',
75
+ name: item.question,
76
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
77
+ })),
78
+ };
79
+
80
+ const howToSchema: WithContext<HowTo> = {
81
+ '@context': 'https://schema.org',
82
+ '@type': 'HowTo',
83
+ name: title,
84
+ description,
85
+ step: howToData.map((step, i) => ({
86
+ '@type': 'HowToStep',
87
+ position: i + 1,
88
+ name: step.name,
89
+ text: step.text,
90
+ })),
91
+ };
92
+
93
+ const appSchema: WithContext<SoftwareApplication> = {
94
+ '@context': 'https://schema.org',
95
+ '@type': 'SoftwareApplication',
96
+ name: title,
97
+ description,
98
+ applicationCategory: 'FinanceApplication',
99
+ operatingSystem: 'All',
100
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
101
+ inLanguage: 'es',
102
+ };
103
+
104
+ export const content: ToolLocaleContent<FIRECalculatorUI> = {
105
+ slug,
106
+ title,
107
+ description,
108
+ faqTitle: 'Preguntas Frecuentes sobre FIRE',
109
+ faq: faqData,
110
+ bibliographyTitle: 'Fuentes y Referencias',
111
+ bibliography: bibliographyData,
112
+ howTo: howToData,
113
+ schemas: [faqSchema, howToSchema, appSchema],
114
+ seo: [
115
+ {
116
+ type: 'title',
117
+ text: 'Regla del 4%: El Santo Grial de la Jubilación Anticipada',
118
+ level: 2,
119
+ },
120
+ {
121
+ type: 'paragraph',
122
+ html: 'Descubre cómo calcular tu patrimonio necesario para vivir de las rentas para siempre. La <strong>Regla del 4%</strong> surgió del Estudio Trinity, realizado en 1998 por tres profesores de finanzas. Analizaron datos históricos desde 1926 para determinar qué porcentaje se podía retirar anualmente sin agotar la cartera en 30 años.',
123
+ },
124
+ {
125
+ type: 'stats',
126
+ columns: 4,
127
+ items: [
128
+ { value: '95%', label: 'Éxito Histórico' },
129
+ { value: '50/50', label: 'Mix Acciones/Bonos' },
130
+ { value: '30', label: 'Años de Horizon' },
131
+ { value: '4%', label: 'Retiro Seguro' },
132
+ ],
133
+ },
134
+ {
135
+ type: 'title',
136
+ text: '¿Qué es el Movimiento FIRE?',
137
+ level: 3,
138
+ },
139
+ {
140
+ type: 'list',
141
+ items: [
142
+ 'FIRE es el acrónimo de Financial Independence, Retire Early (Independencia Financiera, Retiro Temprano).',
143
+ 'Busca la libertad de elegir qué hacer con tu tiempo sin que el dinero sea un condicionante.',
144
+ 'Se basa en la optimización del ahorro y la inversión inteligente.',
145
+ 'El objetivo es que tus activos generen suficiente flujo de caja para cubrir tus gastos.',
146
+ ],
147
+ },
148
+ {
149
+ type: 'title',
150
+ text: 'Tipos de Libertad Financiera',
151
+ level: 3,
152
+ },
153
+ {
154
+ type: 'comparative',
155
+ columns: 3,
156
+ items: [
157
+ {
158
+ title: 'Lean FIRE',
159
+ description: 'Estilo de vida minimalista. Cubre solo los gastos básicos de supervivencia.',
160
+ points: ['Ahorro extremo', 'Gasto muy bajo', 'Libertad frugal'],
161
+ },
162
+ {
163
+ title: 'Barista FIRE',
164
+ description: 'Situación híbrida donde tus inversiones cubren la mitad de tus gastos.',
165
+ points: ['Trabajo por placer', 'Seguro social cubierto', 'Menor estrés'],
166
+ },
167
+ {
168
+ title: 'Fat FIRE',
169
+ description: 'Jubilación con un presupuesto holgado que permite lujos y viajes.',
170
+ points: ['Alto patrimonio', 'Cero restricciones', 'Legado familiar'],
171
+ },
172
+ ],
173
+ },
174
+ {
175
+ type: 'title',
176
+ text: '¿Cómo usar nuestra Calculadora FIRE?',
177
+ level: 3,
178
+ },
179
+ {
180
+ type: 'list',
181
+ items: [
182
+ '<strong>Trackeo de Gastos:</strong> Analiza tus gastos reales de los últimos 12 meses.',
183
+ '<strong>Definición de SWR:</strong> Elige tu tasa de retirada segura según tu riesgo.',
184
+ '<strong>Patrimonio Actual:</strong> Introduce el valor de tus inversiones actuales.',
185
+ '<strong>Capacidad de Ahorro:</strong> Proyecta cuánto tiempo te queda para la meta.',
186
+ '<strong>Visualización Visual:</strong> Analiza el gráfico de crecimiento de tu riqueza.',
187
+ ],
188
+ },
189
+ {
190
+ type: 'title',
191
+ text: 'Análisis de la Regla del 4%',
192
+ level: 3,
193
+ },
194
+ {
195
+ type: 'comparative',
196
+ columns: 2,
197
+ items: [
198
+ {
199
+ title: 'Ventajas',
200
+ description: 'Por qué funciona la regla del 4%',
201
+ points: [
202
+ 'Simplicidad matemática para planificación rápida.',
203
+ 'Basada en datos históricos de casi un siglo.',
204
+ 'Adaptable a cualquier nivel de gasto.',
205
+ ],
206
+ },
207
+ {
208
+ title: 'Limitaciones',
209
+ description: 'Qué no cubre la regla del 4%',
210
+ points: [
211
+ 'No contempla el riesgo de secuencia de retornos.',
212
+ 'Basada principalmente en el mercado estadounidense.',
213
+ 'Ignora cambios drásticos en fiscalidad local.',
214
+ ],
215
+ },
216
+ ],
217
+ },
218
+ {
219
+ type: 'title',
220
+ text: 'Factor Crítico: La Inflación',
221
+ level: 3,
222
+ },
223
+ {
224
+ type: 'paragraph',
225
+ html: 'Recuerda que 1.000€ hoy no comprarán lo mismo en el futuro. Es vital usar rentabilidades reales (descontada la inflación) para que tus proyecciones mantengan el poder adquisitivo actual. La Regla del 4% asume que ajustas tus retiros anualmente por inflación.',
226
+ },
227
+ ],
228
+ ui: {
229
+ labelTitle: 'Calculadora FIRE: Regla del 4%',
230
+ labelDescription: 'Calcula tu número mágico para la independencia financiera usando la regla del 4% y visualiza tus hitos hacia la libertad económica.',
231
+ labelMonthlyExpenses: 'Gastos Mensuales',
232
+ labelSWR: 'Tasa de Retirada (SWR)',
233
+ labelCurrentWorth: 'Patrimonio Actual',
234
+ labelMonthlySavings: 'Capacidad de Ahorro Mensual',
235
+ labelAnnualReturn: 'Rentabilidad Estimada (Neto)',
236
+ labelFreedomMilestones: 'Hitos de Libertad',
237
+ labelLeanFIRE: 'Lean FIRE (70% supervivencia)',
238
+ labelBaristaFIRE: 'Barista FIRE (50% ingresos)',
239
+ labelFatFIRE: 'Fat FIRE (150% lujo)',
240
+ labelMagicNumber: 'Tu Número Mágico para ser Libre',
241
+ labelMagicNumberDesc: 'Capital necesario para vivir de las rentas',
242
+ labelTimeRemaining: 'Tiempo hasta la libertad financiera',
243
+ labelTimeRemainingFormat: 'Te faltan {years} años y {months} meses',
244
+ labelAlreadyFI: '¡Ya has alcanzado la libertad financiera!',
245
+ labelUnachievable: 'Meta inalcanzable con este ahorro',
246
+ labelHiddenCostsChecklist: 'Checklist de Gastos Ocultos',
247
+ labelHealth: 'Seguros Salud (+200€)',
248
+ labelTaxes: 'Impuestos (+150€)',
249
+ labelHome: 'Mantenimiento Hogar (+100€)',
250
+ labelTravel: 'Viajes y Ocio (+300€)',
251
+ labelEmergency: 'Fondo Emergencias (+100€)',
252
+ labelSubscriptions: 'Suscripciones (+50€)',
253
+ labelAdded: 'Añadido:',
254
+ labelSavePlan: 'Guardar Plan',
255
+ labelSWRTooltip: 'Safe Withdrawal Rate: Porcentaje de tus ahorros que puedes retirar cada año sin quedarte sin dinero.',
256
+ labelReturnTooltip: 'Rendimiento anual del mercado (ya descontada la inflación). El estándar histórico es el 7%.',
257
+ currencySymbol: '€',
258
+ currencyCode: 'EUR',
259
+ currencyLocale: 'es-ES',
260
+ },
261
+ };