@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,288 @@
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { DebtSnowballUI } from '../ui';
4
+
5
+ const slug = 'debt-snowball-calculator';
6
+ const title = 'Debt Snowball Calculator: Debt Payment Plan 2026';
7
+ const description =
8
+ 'Calculate your financial freedom date using the debt snowball method by Dave Ramsey. Organize your debts from smallest to largest and visualize your monthly payment plan for free.';
9
+
10
+ const faqData = [
11
+ {
12
+ question: 'What is the debt snowball method?',
13
+ answer:
14
+ 'It is a debt payment strategy popularized by Dave Ramsey that consists of paying debts in order from smallest to largest balance, regardless of interest rates. It focuses on the psychological victory of eliminating small accounts quickly to gain motivation.',
15
+ },
16
+ {
17
+ question: 'Why not order by interest rate (Avalanche)?',
18
+ answer:
19
+ 'Mathematically, paying the highest interest first saves more money. However, many people give up because they don\'t see immediate results. The Snowball prioritizes behavior and motivation: seeing a debt disappear quickly gives you the energy to tackle the big ones.',
20
+ },
21
+ {
22
+ question: 'Should I have savings before starting the plan?',
23
+ answer:
24
+ 'It\'s recommended to have an "Initial Emergency Fund" (around €1,000) before tackling debts. This prevents having to resort to credit cards again if an unexpected expense comes up, breaking your progress streak.',
25
+ },
26
+ {
27
+ question: 'Which debts should I include in the calculator?',
28
+ answer:
29
+ 'All consumer debts: credit cards, personal loans, debts to family, car loans, overdue invoices. Mortgages are usually left for a later phase due to their large volume.',
30
+ },
31
+ {
32
+ question: 'What if I receive an unexpected extra income?',
33
+ answer:
34
+ 'Any capital injection (bonuses, lottery, extra salary) should go entirely to the debt you\'re currently attacking. This drastically reduces the total time of your financial freedom plan.',
35
+ },
36
+ ];
37
+
38
+ const howToData = [
39
+ {
40
+ name: 'List your debts',
41
+ text: 'Write down all your debts indicating the total pending balance and the minimum monthly payment you currently make for each one. Don\'t worry about interest for now.',
42
+ },
43
+ {
44
+ name: 'Define your extra budget',
45
+ text: 'Calculate how much additional money you can allocate each month on top of minimum payments. Even €20 per month can make a difference in the snowball effect.',
46
+ },
47
+ {
48
+ name: 'Order and prioritize',
49
+ text: 'The calculator will automatically order from smallest to largest balance. Pay the minimum on all except the smallest. Put all your extra money on that one.',
50
+ },
51
+ {
52
+ name: 'Execute the cascade',
53
+ text: 'When you pay off the smallest debt, take all the money you were allocating to it (its minimum + the extra) and add it to the next debt in the list. Repeat until you\'re free.',
54
+ },
55
+ ];
56
+
57
+ const bibliographyData = [
58
+ {
59
+ name: 'Investopedia — Debt Snowball vs. Debt Avalanche',
60
+ url: 'https://www.investopedia.com/articles/personal-finance/080716/debt-avalanche-vs-debt-snowball-which-best-you.asp',
61
+ },
62
+ {
63
+ name: 'Harvard Business Review — Research on Debt Payoff Strategies',
64
+ url: 'https://hbr.org/2016/12/research-the-best-strategy-for-paying-off-credit-card-debt',
65
+ },
66
+ ];
67
+
68
+ const faqSchema: WithContext<FAQPage> = {
69
+ '@context': 'https://schema.org',
70
+ '@type': 'FAQPage',
71
+ mainEntity: faqData.map((item) => ({
72
+ '@type': 'Question',
73
+ name: item.question,
74
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
75
+ })),
76
+ };
77
+
78
+ const howToSchema: WithContext<HowTo> = {
79
+ '@context': 'https://schema.org',
80
+ '@type': 'HowTo',
81
+ name: title,
82
+ description,
83
+ step: howToData.map((step, i) => ({
84
+ '@type': 'HowToStep',
85
+ position: i + 1,
86
+ name: step.name,
87
+ text: step.text,
88
+ })),
89
+ };
90
+
91
+ const appSchema: WithContext<SoftwareApplication> = {
92
+ '@context': 'https://schema.org',
93
+ '@type': 'SoftwareApplication',
94
+ name: title,
95
+ description,
96
+ applicationCategory: 'FinanceApplication',
97
+ operatingSystem: 'All',
98
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'USD' },
99
+ inLanguage: 'en',
100
+ };
101
+
102
+ export const content: ToolLocaleContent<DebtSnowballUI> = {
103
+ slug,
104
+ title,
105
+ description,
106
+ faqTitle: 'Frequently Asked Questions',
107
+ faq: faqData,
108
+ bibliographyTitle: 'Sources and References',
109
+ bibliography: bibliographyData,
110
+ howTo: howToData,
111
+ schemas: [faqSchema, howToSchema, appSchema],
112
+ seo: [
113
+ {
114
+ type: 'title',
115
+ text: 'Debt Calculator with the Snowball Method: Guide 2026',
116
+ level: 2,
117
+ },
118
+ {
119
+ type: 'paragraph',
120
+ html: 'Living with debt is like trying to run a marathon with a backpack full of stones. The <strong>snowball method</strong>, popularized by personal finance experts, has proven to be one of the most effective strategies for regaining financial freedom. It is not based on mathematical efficiency, but on the powerful <strong>psychological basis of human behavior</strong>.',
121
+ },
122
+ {
123
+ type: 'title',
124
+ text: 'What is the Debt Snowball Method?',
125
+ level: 3,
126
+ },
127
+ {
128
+ type: 'paragraph',
129
+ html: 'The debt snowball method is a debt reduction strategy where you pay your obligations in order from <strong>smallest to largest balance</strong>, regardless of their interest rates. While you make minimum payments on all your debts, you allocate every extra euro you can save to the smallest balance.',
130
+ },
131
+ {
132
+ type: 'paragraph',
133
+ html: 'Once that first debt disappears, all the money you allocated to it goes toward the next smallest debt. This effect creates momentum similar to a small snowball rolling down a hill, becoming bigger and faster with each turn.',
134
+ },
135
+ {
136
+ type: 'title',
137
+ text: 'Psychology vs. Mathematics: Why Does It Work?',
138
+ level: 3,
139
+ },
140
+ {
141
+ type: 'paragraph',
142
+ html: 'If you talk to a pure financier, they\'ll tell you that the <strong>Avalanche Method</strong> is superior because you save more money in interest. And technically, they\'re right. However, debt is not a math problem; it\'s a problem of <strong>habits and behavior</strong>.',
143
+ },
144
+ {
145
+ type: 'list',
146
+ items: [
147
+ '<strong>Quick wins:</strong> By eliminating the smallest debt in just a couple of months, you get a dopamine hit that motivates you to continue.',
148
+ '<strong>Mental simplification:</strong> Going from having 7 monthly bills to 6 reduces the stress and complexity of your financial life.',
149
+ '<strong>Sustained motivation:</strong> Early success gives you the energy needed to tackle the larger debts that will come later.',
150
+ ],
151
+ },
152
+ {
153
+ type: 'title',
154
+ text: 'Snowball vs. Avalanche: Key Differences',
155
+ level: 3,
156
+ },
157
+ {
158
+ type: 'paragraph',
159
+ html: 'Our tool lets you compare both scenarios in real time so you can decide which plan fits best with your profile:',
160
+ },
161
+ {
162
+ type: 'comparative',
163
+ columns: 2,
164
+ items: [
165
+ {
166
+ title: 'Avalanche Method',
167
+ description: 'Prioritizes the highest interest rate.',
168
+ points: [
169
+ 'You save the maximum amount of money on bank interest',
170
+ 'It may take a long time to feel progress',
171
+ 'If the most expensive debt is very large, discouragement comes sooner',
172
+ 'Mathematically optimal',
173
+ ],
174
+ },
175
+ {
176
+ title: 'Snowball Method',
177
+ description: 'Prioritizes the smallest balance.',
178
+ points: [
179
+ 'You eliminate accounts from your list as soon as possible',
180
+ 'Generates immediate positive reinforcement',
181
+ 'Higher rate of plan completion',
182
+ 'Psychologically rewarding',
183
+ ],
184
+ },
185
+ ],
186
+ },
187
+ {
188
+ type: 'title',
189
+ text: 'How to Use the Debt Calculator',
190
+ level: 3,
191
+ },
192
+ {
193
+ type: 'paragraph',
194
+ html: 'To get an accurate payment plan, follow these structured steps within the tool:',
195
+ },
196
+ {
197
+ type: 'list',
198
+ items: [
199
+ '<strong>Debt mapping:</strong> Enter the name, current outstanding balance, and minimum monthly payment for each loan or card.',
200
+ '<strong>Budget adjustment:</strong> Define your "Extra Budget". It\'s the monthly amount you can save on top of minimum payments.',
201
+ '<strong>Capital simulation:</strong> Use the capital injection option to see how unexpected income (like a bonus) shortens your timeline.',
202
+ ],
203
+ },
204
+ {
205
+ type: 'paragraph',
206
+ html: '<strong>Amortization formula:</strong> Final Balance = Starting Balance + Monthly Interest - (Minimum Payment + Extra Budget)',
207
+ },
208
+ {
209
+ type: 'title',
210
+ text: 'Tips to Accelerate Your Financial Freedom',
211
+ level: 3,
212
+ },
213
+ {
214
+ type: 'paragraph',
215
+ html: 'The calculator shows you an estimated date based on your current data, but that date is not set in stone:',
216
+ },
217
+ {
218
+ type: 'list',
219
+ items: [
220
+ '<strong>Review your subscriptions:</strong> Often, that extra €50 you need is hidden in services you don\'t use.',
221
+ '<strong>Freeze your cards:</strong> You can\'t get out of a hole if you keep digging. While on the plan, avoid taking on new debt.',
222
+ '<strong>Emergency fund:</strong> Have at least €1,000 saved before starting. This prevents an unexpected expense from breaking your payment plan.',
223
+ ],
224
+ },
225
+ {
226
+ type: 'paragraph',
227
+ html: '<strong>Remember:</strong> Financial freedom is 20% knowledge and 80% behavior. The day you see "0" on your final balance will be the day you regain complete control of your time and money.',
228
+ },
229
+ {
230
+ type: 'title',
231
+ text: 'Conclusion and Next Steps',
232
+ level: 3,
233
+ },
234
+ {
235
+ type: 'paragraph',
236
+ html: 'The <strong>debt snowball method calculator</strong> is a fundamental planning tool. The real work happens in your daily life, in the decisions you make at every purchase. We recommend downloading your plan in CSV format and posting it somewhere visible to keep focused on your ultimate goal: being debt-free.',
237
+ },
238
+ ],
239
+ ui: {
240
+ labelTitle: 'Total Freedom',
241
+ labelDescription: 'Enter financial freedom mode. Use the psychologically most effective method to eliminate your debts.',
242
+ labelExtraBudget: 'EXTRA MONTHLY BUDGET',
243
+ labelExtraBudgetHelp: 'Additional money on top of minimum payments.',
244
+ labelSnowballMethod: 'SNOWBALL',
245
+ labelAvalancheMethod: 'AVALANCHE',
246
+ labelAddNewDebt: 'ADD NEW DEBT',
247
+ labelDebtName: 'Name',
248
+ labelDebtNamePlaceholder: 'Ex: Visa',
249
+ labelDebtBalance: 'HOW MUCH YOU OWE',
250
+ labelDebtBalancePlaceholder: '0',
251
+ labelMinPayment: 'MINIMUM PAYMENT',
252
+ labelInterestRate: 'INTEREST RATE',
253
+ labelInterestHelp: 'ANNUAL',
254
+ labelAddButton: 'ADD TO PLAN',
255
+ labelClearData: 'Clear configuration',
256
+ labelClearDataConfirm: 'Clear plan?',
257
+ labelDeleteDebt: 'Delete',
258
+ labelDebtInventory: 'Debt Inventory',
259
+ labelFreedomDate: 'FINANCIAL FREEDOM DATE',
260
+ labelActiveMethod: 'METHOD',
261
+ labelMonthsRemaining: 'MONTHS REMAINING',
262
+ labelTotalInterest: 'TOTAL INTEREST',
263
+ labelTotalPaid: 'FINAL TOTAL PAYMENT',
264
+ labelInterestSaved: 'INTEREST SAVED',
265
+ labelYourStrategy: 'Your Step-by-Step Strategy',
266
+ labelStrategyHelp: 'Each step shows your total payment when it\'s its turn',
267
+ labelPriority: 'MAXIMUM PRIORITY',
268
+ labelStep: 'STEP',
269
+ labelAfterPaying: 'AFTER PAYING PREVIOUS',
270
+ labelMonthlyPayment: 'Monthly payment',
271
+ labelDetailedAmortization: 'Detailed Amortization',
272
+ labelExportCSV: 'Export .CSV',
273
+ labelDate: 'Date',
274
+ labelStartingBalance: 'Starting Balance',
275
+ labelInterest: 'Interest',
276
+ labelAmortization: 'Amortized',
277
+ labelTotalMonth: 'Total Month',
278
+ labelRemaining: 'Remaining',
279
+ labelFree: 'FREE',
280
+ labelDebtInfinite: 'INFINITE DEBT',
281
+ labelInvalidInput: 'Indicate total balance and minimum payment',
282
+ labelEmptyStateTitle: 'Start your plan',
283
+ labelEmptyStateDescription: 'Your debts won\'t last forever. Add your debts to visualize your path to financial freedom.',
284
+ currencySymbol: '$',
285
+ currencyCode: 'USD',
286
+ currencyLocale: 'en-US',
287
+ },
288
+ };
@@ -0,0 +1,288 @@
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { DebtSnowballUI } from '../ui';
4
+
5
+ const slug = 'bola-nieve-deuda';
6
+ const title = 'Calculadora Método Bola de Nieve: Plan de Pago de Deudas 2026';
7
+ const description =
8
+ 'Calcula tu fecha de libertad financiera con el método bola de nieve de Dave Ramsey. Organiza tus deudas de menor a mayor y visualiza tu plan de pagos mensual gratuito.';
9
+
10
+ const faqData = [
11
+ {
12
+ question: '¿Qué es el método de la bola de nieve?',
13
+ answer:
14
+ 'Es una estrategia de pago de deudas popularizada por Dave Ramsey que consiste en pagar las deudas en orden de menor a mayor saldo, independientemente del tipo de interés. Se centra en la victoria psicológica de eliminar pequeñas cuentas rápido para ganar motivación.',
15
+ },
16
+ {
17
+ question: '¿Por qué no ordenar por el tipo de interés (Avalancha)?',
18
+ answer:
19
+ 'Matemáticamente, pagar primero el interés más alto ahorra más dinero. Sin embargo, muchas personas abandonan porque no ven resultados inmediatos. La Bola de Nieve prioriza el comportamiento y la motivación: ver desaparecer una deuda rápido te da la energía para seguir con las grandes.',
20
+ },
21
+ {
22
+ question: '¿Debo tener ahorros antes de empezar el plan?',
23
+ answer:
24
+ 'Se recomienda tener un "Fondo de Emergencia Inicial" (unos 1.000€) antes de atacar las deudas. Esto evita que, ante un imprevisto, tengas que volver a usar la tarjeta de crédito y romper tu racha de progreso.',
25
+ },
26
+ {
27
+ question: '¿Qué deudas debo incluir en la calculadora?',
28
+ answer:
29
+ 'Todas las deudas de consumo: tarjetas de crédito, préstamos personales, deudas con familiares, préstamos de coche, facturas atrasadas. La hipoteca suele dejarse para una fase posterior debido a su gran volumen.',
30
+ },
31
+ {
32
+ question: '¿Qué pasa si recibo un ingreso extra puntual?',
33
+ answer:
34
+ 'Cualquier inyección de capital (bonos, lotería, paga extra) debe ir íntegra a la deuda que estés atacando actualmente. Esto recorta drásticamente el tiempo total de tu plan de libertad financiera.',
35
+ },
36
+ ];
37
+
38
+ const howToData = [
39
+ {
40
+ name: 'Lista tus deudas',
41
+ text: 'Apunta todas tus deudas indicando el saldo pendiente total y el pago mínimo mensual que realizas actualmente por cada una. No te preocupes por los intereses por ahora.',
42
+ },
43
+ {
44
+ name: 'Define tu presupuesto extra',
45
+ text: 'Calcula cuánto dinero adicional puedes destinar cada mes encima de los pagos mínimos. Incluso 20€ al mes pueden marcar la diferencia en el efecto bola de nieve.',
46
+ },
47
+ {
48
+ name: 'Ordena y prioriza',
49
+ text: 'La calculadora ordenará automáticamente de menor a mayor saldo. Paga el mínimo en todas excepto en la más pequeña. En esa, pon todo el extra disponible.',
50
+ },
51
+ {
52
+ name: 'Ejecuta la cascada',
53
+ text: 'Cuando liquides la deuda más pequeña, toma todo el dinero que destinabas a ella (su mínimo + el extra) y súmalo al pago de la siguiente deuda en la lista. Repite hasta ser libre.',
54
+ },
55
+ ];
56
+
57
+ const bibliographyData = [
58
+ {
59
+ name: 'Investopedia — Debt Snowball vs. Debt Avalanche',
60
+ url: 'https://www.investopedia.com/articles/personal-finance/080716/debt-avalanche-vs-debt-snowball-which-best-you.asp',
61
+ },
62
+ {
63
+ name: 'Harvard Business Review — Research on Debt Payoff Strategies',
64
+ url: 'https://hbr.org/2016/12/research-the-best-strategy-for-paying-off-credit-card-debt',
65
+ },
66
+ ];
67
+
68
+ const faqSchema: WithContext<FAQPage> = {
69
+ '@context': 'https://schema.org',
70
+ '@type': 'FAQPage',
71
+ mainEntity: faqData.map((item) => ({
72
+ '@type': 'Question',
73
+ name: item.question,
74
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
75
+ })),
76
+ };
77
+
78
+ const howToSchema: WithContext<HowTo> = {
79
+ '@context': 'https://schema.org',
80
+ '@type': 'HowTo',
81
+ name: title,
82
+ description,
83
+ step: howToData.map((step, i) => ({
84
+ '@type': 'HowToStep',
85
+ position: i + 1,
86
+ name: step.name,
87
+ text: step.text,
88
+ })),
89
+ };
90
+
91
+ const appSchema: WithContext<SoftwareApplication> = {
92
+ '@context': 'https://schema.org',
93
+ '@type': 'SoftwareApplication',
94
+ name: title,
95
+ description,
96
+ applicationCategory: 'FinanceApplication',
97
+ operatingSystem: 'All',
98
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
99
+ inLanguage: 'es',
100
+ };
101
+
102
+ export const content: ToolLocaleContent<DebtSnowballUI> = {
103
+ slug,
104
+ title,
105
+ description,
106
+ faqTitle: 'Preguntas Frecuentes',
107
+ faq: faqData,
108
+ bibliographyTitle: 'Referencias y Fuentes',
109
+ bibliography: bibliographyData,
110
+ howTo: howToData,
111
+ schemas: [faqSchema, howToSchema, appSchema],
112
+ seo: [
113
+ {
114
+ type: 'title',
115
+ text: 'Calculadora de Deuda con el Método Bola de Nieve: Guía 2026',
116
+ level: 2,
117
+ },
118
+ {
119
+ type: 'paragraph',
120
+ html: 'Vivir con deudas es como intentar correr un maratón con una mochila llena de piedras. El <strong>método de la bola de nieve</strong>, popularizado por expertos en finanzas personales, ha demostrado ser una de las estrategias más efectivas para recuperar la libertad financiera. No se basa en la eficiencia matemática, sino en la poderosa <strong>base psicológica del comportamiento humano</strong>.',
121
+ },
122
+ {
123
+ type: 'title',
124
+ text: '¿Qué es el Método de la Bola de Nieve?',
125
+ level: 3,
126
+ },
127
+ {
128
+ type: 'paragraph',
129
+ html: 'El método de la bola de nieve es una estrategia de reducción de deudas en la que pagas tus obligaciones en orden de <strong>menor a mayor saldo</strong>, sin importar el tipo de interés que tengan. Mientras realizas los pagos mínimos en todas tus deudas, destinas cada euro extra que puedas ahorrar al saldo más pequeño.',
130
+ },
131
+ {
132
+ type: 'paragraph',
133
+ html: 'Una vez que esa primera deuda desaparece, todo el dinero que destinabas a ella se desvía hacia la siguiente deuda más pequeña. Este efecto crea un impulso (momentum) similar al de una pequeña bola de nieve que rueda por una colina, volviéndose más grande y rápida a cada paso.',
134
+ },
135
+ {
136
+ type: 'title',
137
+ text: 'Psicología vs. Matemáticas: ¿Por qué funciona?',
138
+ level: 3,
139
+ },
140
+ {
141
+ type: 'paragraph',
142
+ html: 'Si hablas con un financiero puro, te dirá que el <strong>Método de la Avalancha</strong> es superior porque ahorras más dinero en intereses. Y técnicamente, tienen razón. Sin embargo, el problema de la deuda no es un problema de matemáticas; es un problema de <strong>hábitos y comportamiento</strong>.',
143
+ },
144
+ {
145
+ type: 'list',
146
+ items: [
147
+ '<strong>Victorias rápidas:</strong> Al eliminar la deuda más pequeña en apenas un par de meses, recibes un chute de dopamina que te motiva a seguir.',
148
+ '<strong>Simplificación mental:</strong> Pasar de tener 7 facturas mensuales a 6 reduce el estrés y la complejidad de tu vida financiera.',
149
+ '<strong>Motivación sostenida:</strong> El éxito temprano te da la energía necesaria para enfrentar las deudas más grandes que vendrán después.',
150
+ ],
151
+ },
152
+ {
153
+ type: 'title',
154
+ text: 'Bola de Nieve vs. Avalancha: Diferencias clave',
155
+ level: 3,
156
+ },
157
+ {
158
+ type: 'paragraph',
159
+ html: 'Nuestra herramienta te permite comparar ambos escenarios en tiempo real para que decidas qué plan encaja mejor con tu perfil:',
160
+ },
161
+ {
162
+ type: 'comparative',
163
+ columns: 2,
164
+ items: [
165
+ {
166
+ title: 'Método Avalancha',
167
+ description: 'Se prioriza el tipo de interés más alto.',
168
+ points: [
169
+ 'Ahorras el máximo dinero posible en intereses bancarios',
170
+ 'Puedes tardar mucho en sentir que avanzas',
171
+ 'Si la deuda más cara es muy grande, la desmotivación llega antes',
172
+ 'Matemáticamente óptimo',
173
+ ],
174
+ },
175
+ {
176
+ title: 'Método Bola de Nieve',
177
+ description: 'Se prioriza el saldo más bajo.',
178
+ points: [
179
+ 'Eliminas cuentas de tu lista lo antes posible',
180
+ 'Genera un refuerzo positivo inmediato',
181
+ 'Mayor tasa de cumplimiento del plan',
182
+ 'Psicológicamente ganador',
183
+ ],
184
+ },
185
+ ],
186
+ },
187
+ {
188
+ type: 'title',
189
+ text: 'Cómo usar la Calculadora de Deuda',
190
+ level: 3,
191
+ },
192
+ {
193
+ type: 'paragraph',
194
+ html: 'Para obtener un plan de pagos preciso, sigue estos pasos estructurados dentro de la herramienta:',
195
+ },
196
+ {
197
+ type: 'list',
198
+ items: [
199
+ '<strong>Mapeo de deudas:</strong> Introduce el nombre, el saldo pendiente actual y el pago mínimo mensual de cada préstamo o tarjeta.',
200
+ '<strong>Ajuste de presupuesto:</strong> Define el "Presupuesto Extra". Es la cantidad mensual que puedes ahorrar sobre los pagos mínimos.',
201
+ '<strong>Simulación de capital:</strong> Usa la opción de inyección de capital para ver cómo un ingreso puntual (como una paga extra) recorta tu calendario.',
202
+ ],
203
+ },
204
+ {
205
+ type: 'paragraph',
206
+ html: '<strong>Fórmula de amortización:</strong> Saldo Final = Saldo Inicial + Intereses Mensuales - (Pago Mínimo + Presupuesto Extra)',
207
+ },
208
+ {
209
+ type: 'title',
210
+ text: 'Consejos para acelerar tu Libertad Financiera',
211
+ level: 3,
212
+ },
213
+ {
214
+ type: 'paragraph',
215
+ html: 'La calculadora te muestra una fecha estimada basada en tus datos actuales, pero esa fecha no es inamovible:',
216
+ },
217
+ {
218
+ type: 'list',
219
+ items: [
220
+ '<strong>Revisa tus suscripciones:</strong> A menudo, esos 50€ extra que necesitas están escondidos en servicios que no usas.',
221
+ '<strong>Congela tus tarjetas:</strong> No puedes salir de un agujero si sigues cavando. Mientras estés en el plan, evita contraer nueva deuda.',
222
+ '<strong>Fondo de emergencia:</strong> Ten al menos 1.000€ ahorrados antes de empezar. Esto evita que un imprevisto rompa tu plan de pagos.',
223
+ ],
224
+ },
225
+ {
226
+ type: 'paragraph',
227
+ html: '<strong>Recuerda:</strong> La libertad financiera es un 20% conocimiento y un 80% comportamiento. El día que veas el "0" en tu saldo final será el día que recuperes el control total de tu tiempo y tu dinero.',
228
+ },
229
+ {
230
+ type: 'title',
231
+ text: 'Conclusión y Próximos Pasos',
232
+ level: 3,
233
+ },
234
+ {
235
+ type: 'paragraph',
236
+ html: 'La <strong>calculadora de método bola de nieve</strong> es una herramienta de planificación fundamental. El verdadero trabajo ocurre en tu día a día, en las decisiones que tomas en cada ticket de compra. Te recomendamos descargar tu plan en formato CSV y pegarlo en un lugar visible para mantener el foco en tu objetivo final: ser libre de deudas.',
237
+ },
238
+ ],
239
+ ui: {
240
+ labelTitle: 'Libertad total',
241
+ labelDescription: 'Entra en modo libertad financiera. Usa el método psicológicamente más efectivo para eliminar tus deudas.',
242
+ labelExtraBudget: 'PRESUPUESTO EXTRA MENSUAL',
243
+ labelExtraBudgetHelp: 'Dinero adicional sobre los pagos mínimos.',
244
+ labelSnowballMethod: 'BOLA DE NIEVE',
245
+ labelAvalancheMethod: 'AVALANCHA',
246
+ labelAddNewDebt: 'AÑADIR NUEVA DEUDA',
247
+ labelDebtName: 'Nombre',
248
+ labelDebtNamePlaceholder: 'Ej: Visa',
249
+ labelDebtBalance: 'CUÁNTO DEBES',
250
+ labelDebtBalancePlaceholder: '0',
251
+ labelMinPayment: 'PAGO MÍNIMO',
252
+ labelInterestRate: 'TIPO DE INTERÉS',
253
+ labelInterestHelp: 'ANUAL',
254
+ labelAddButton: 'AÑADIR AL PLAN',
255
+ labelClearData: 'Borrar configuración',
256
+ labelClearDataConfirm: '¿Vaciar plan?',
257
+ labelDeleteDebt: 'Eliminar',
258
+ labelDebtInventory: 'Inventario de Deudas',
259
+ labelFreedomDate: 'FECHA DE LIBERTAD FINANCIERA',
260
+ labelActiveMethod: 'MÉTODO',
261
+ labelMonthsRemaining: 'MESES RESTANTES',
262
+ labelTotalInterest: 'INTERESES TOTALES',
263
+ labelTotalPaid: 'PAGO TOTAL FINAL',
264
+ labelInterestSaved: 'AHORRO INTERESES',
265
+ labelYourStrategy: 'Tu Estrategia Paso a Paso',
266
+ labelStrategyHelp: 'Cada paso muestra tu pago total cuando llegue su turno',
267
+ labelPriority: 'PRIORIDAD MÁXIMA',
268
+ labelStep: 'PASO',
269
+ labelAfterPaying: 'TRAS LIQUIDAR ANTERIOR',
270
+ labelMonthlyPayment: 'Pago mensual',
271
+ labelDetailedAmortization: 'Amortización Detallada',
272
+ labelExportCSV: 'Exportar .CSV',
273
+ labelDate: 'Fecha',
274
+ labelStartingBalance: 'Saldo Inicial',
275
+ labelInterest: 'Interés',
276
+ labelAmortization: 'Amortizado',
277
+ labelTotalMonth: 'Total Mes',
278
+ labelRemaining: 'Restante',
279
+ labelFree: 'LIBRE',
280
+ labelDebtInfinite: 'DEUDA INFINITA',
281
+ labelInvalidInput: 'Indica saldo total y pago mínimo',
282
+ labelEmptyStateTitle: 'Comienza tu plan',
283
+ labelEmptyStateDescription: 'Tus deudas no son para siempre. Añade tus deudas para visualizar el camino a la libertad financiera.',
284
+ currencySymbol: '€',
285
+ currencyCode: 'EUR',
286
+ currencyLocale: 'es-ES',
287
+ },
288
+ };