{"id":12755,"date":"2026-10-21T08:01:00","date_gmt":"2026-10-21T06:01:00","guid":{"rendered":"https:\/\/iocharts.io\/blog\/?p=12755"},"modified":"2026-10-20T17:31:22","modified_gmt":"2026-10-20T15:31:22","slug":"szemelyes-inflaciokalkulator","status":"publish","type":"post","link":"https:\/\/iocharts.io\/blog\/szemelyes-inflaciokalkulator\/","title":{"rendered":"Szem\u00e9lyes infl\u00e1ci\u00f3kalkul\u00e1tor: sz\u00e1mold ki a saj\u00e1t infl\u00e1ci\u00f3d","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Itt a szem\u00e9lyes infl\u00e1ci\u00f3kalkul\u00e1tor, ami az el\u0151z\u0151 cikkben bemutatott, \u00e1ltal\u00e1nos infl\u00e1ci\u00f3kalkul\u00e1tort eg\u00e9sz\u00edti ki. Ez azt mutatja meg, ha egy adott orsz\u00e1gban \u00e9lsz, akkor \u00e1ltal\u00e1noss\u00e1gban v\u00e9ve mennyire \u00e9rint a p\u00e9nzroml\u00e1s. Ez egy remek viszony\u00edt\u00e1si pont, viszont a saj\u00e1t fogyaszt\u00e1si kosarad szinte mindig elt\u00e9r att\u00f3l, amit a KSH vagy egy\u00e9b statisztikai szervezetek modelleznek.<\/p>\n\n\n\n<figure class=\"wp-block-embed aligncenter is-type-wp-embed is-provider-io-charts wp-block-embed-io-charts\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"CVsHSLbBuu\"><a href=\"https:\/\/iocharts.io\/blog\/inflaciokalkulator-ennyit-buksz-lathatatlanul\/\">Infl\u00e1ci\u00f3kalkul\u00e1tor: ennyit buksz l\u00e1thatatlanul<\/a><\/blockquote><iframe class=\"wp-embedded-content lazyload\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; visibility: hidden;\" title=\"\u201cInfl\u00e1ci\u00f3kalkul\u00e1tor: ennyit buksz l\u00e1thatatlanul\u201d \u2014 iO Charts\" data-src=\"https:\/\/iocharts.io\/blog\/inflaciokalkulator-ennyit-buksz-lathatatlanul\/embed\/#?secret=PgJdtyLuYM#?secret=CVsHSLbBuu\" data-secret=\"CVsHSLbBuu\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" data-load-mode=\"1\"><\/iframe>\n<\/div><\/figure>\n\n\n\n<pre class=\"wp-block-preformatted\"><strong>\ud83d\udc46<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">Ebb\u0151l k\u00f6vetkezik, hogy a saj\u00e1t fogyaszt\u00e1sod<\/mark><\/strong> <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">szinte mindig elt\u00e9r a hivatalos adatokt\u00f3l, ez\u00e9rt is \u00e9rdemes <\/mark><\/strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\"><strong>egyedileg kisz\u00e1molnod a r\u00e1d vonatkoz\u00f3 sz\u00e1mokat.<\/strong><\/mark><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ez\u00e9rt is k\u00e9sz\u00edtettem el a lent l\u00e1that\u00f3 szem\u00e9lyes infl\u00e1ci\u00f3 kalkul\u00e1tort, amivel teljesen magadra szabhatod a k\u00f6lts\u00e9geidet, \u00e9s megtudhatod, hogy mekkora a r\u00e1d vonatkoz\u00f3 p\u00e9nzroml\u00e1s m\u00e9rt\u00e9ke. Kezel tov\u00e1bb\u00e1 olyan eseteket is, amit az \u00e1ltal\u00e1nos infl\u00e1ci\u00f3kalkul\u00e1torral megoldhatatlan lett volna: a f\u0171t\u00e9s t\u00edpus\u00e1t, az alkohol \u00e9s doh\u00e1nyterm\u00e9kek fogyaszt\u00e1s\u00e1t, a lakhat\u00e1sod, \u00e9s \u00edgy tov\u00e1bb.<\/p>\n\n\n\n<p class=\"has-text-align-center wp-block-paragraph\">\ud83d\udd22<strong>Csak a kalkul\u00e1tor \u00e9rdekel? Akkor ugorj k\u00f6zvetlen\u00fcl oda a link megnyom\u00e1s\u00e1val: <a href=\"#inflaciokalkulator\">szem\u00e9lyes infl\u00e1ci\u00f3kalkul\u00e1tor<\/a>.<\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Mi\u00e9rt t\u00e9r el a szem\u00e9lyes infl\u00e1ci\u00f3 az \u00e1ltal\u00e1nost\u00f3l?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A KSH infl\u00e1ci\u00f3ja egy \u00e1tlagos h\u00e1ztart\u00e1s \u00e1tlagos kosar\u00e1nak dr\u00e1gul\u00e1s\u00e1t m\u00e9ri, <strong>de \u00e1tlagos h\u00e1ztart\u00e1s a val\u00f3s\u00e1gban nem l\u00e9tezik. <\/strong>A kos\u00e1r s\u00falyai azt mutatj\u00e1k, hogy az orsz\u00e1g egy\u00fctt mire k\u00f6lti a p\u00e9nz\u00e9t. Ha te m\u00e1sra k\u00f6ltesz, vagy ugyanarra m\u00e1s ar\u00e1nyban, akkor a te \u00e1rkosarad is m\u00e1s \u00fctemben dr\u00e1gul. <strong>Aki nem doh\u00e1nyzik, nincs aut\u00f3ja vagy alb\u00e9rletben lakik, annak a kosar\u00e1b\u00f3l hi\u00e1nyoznak egyes t\u00e9telek, m\u00e1sok eset\u00e9ben ezek a t\u00e9telek a s\u00falyukn\u00e1l j\u00f3val nagyobb r\u00e9szt visznek el.<\/strong> Min\u00e9l jobban elt\u00e9r a k\u00f6lt\u00e9si szerkezeted az \u00e1tlagt\u00f3l, \u00e9s min\u00e9l jobban elt\u00e9r az, amire sokat k\u00f6ltesz, az \u00e1tlagos dr\u00e1gul\u00e1st\u00f3l, ann\u00e1l messzebb lesz a te infl\u00e1ci\u00f3d a hivatalos sz\u00e1mt\u00f3l.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"836\" height=\"471\" data-src=\"https:\/\/iocharts.io\/blog\/wp-content\/smush-webp\/szemelyes-inflaciokalkulator-001.jpg.webp\" alt=\"erre is j\u00f3 a szem\u00e9lyes infl\u00e1ci\u00f3kalkul\u00e1tor: egy p\u00e1r is tervezhet vele\" class=\"wp-image-12774 lazyload\" data-srcset=\"https:\/\/iocharts.io\/blog\/wp-content\/smush-webp\/szemelyes-inflaciokalkulator-001.jpg.webp 836w, https:\/\/iocharts.io\/blog\/wp-content\/uploads\/szemelyes-inflaciokalkulator-001-414x233.jpg 414w, https:\/\/iocharts.io\/blog\/wp-content\/uploads\/szemelyes-inflaciokalkulator-001-767x432.jpg 767w\" data-sizes=\"(max-width: 836px) 100vw, 836px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 836px; --smush-placeholder-aspect-ratio: 836\/471;\" \/><figcaption class=\"wp-element-caption\">forr\u00e1s: ChatGPT, erre is j\u00f3 a szem\u00e9lyes infl\u00e1ci\u00f3kalkul\u00e1tor: egy p\u00e1r is tervezhet vele<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">P\u00e9ld\u00e1k a 2026-os s\u00falyokkal (Eurostat HICP, Magyarorsz\u00e1g) \u00e9s a 2025-\u00f6s dr\u00e1gul\u00e1ssal:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\ud83d\udeac <strong>Doh\u00e1nyz\u00e1s:<\/strong> a cigaretta \u00e9s a doh\u00e1ny a hivatalos kos\u00e1r <strong>4.0%-a<\/strong>, 2025-ben <strong>7.4%-kal<\/strong> dr\u00e1gult, mik\u00f6zben az \u00e1tlag 4.4% volt. A nemdoh\u00e1nyz\u00f3 kosar\u00e1b\u00f3l ez kiesik, ez\u00e9rt az \u0151 infl\u00e1ci\u00f3ja alacsonyabb. Annak viszont, aki napi egy dobozt sz\u00edv, ez a k\u00f6lts\u00e9g ak\u00e1r a kiad\u00e1sai 10\u201315%-a is lehet, \u00edgy az \u0151 infl\u00e1ci\u00f3ja magasabb lesz.<\/li>\n\n\n\n<li>\ud83c\udfe0 <strong>Alb\u00e9rlet:<\/strong> a lakb\u00e9r s\u00falya mind\u00f6ssze <strong>1.7%<\/strong>, mert a legt\u00f6bben saj\u00e1t lak\u00e1sban \u00e9lnek. Az \u00e1ra 2024-ben <strong>12.4%-kal<\/strong>, 2025-ben <strong>9.8%-kal<\/strong> n\u0151tt. <strong>Egy f\u0151v\u00e1rosi alb\u00e9rl\u0151n\u00e9l viszont a lakb\u00e9r a kiad\u00e1sok harmada-fele is lehet,<\/strong> n\u00e1la ez egyed\u00fcl t\u00f6bb sz\u00e1zal\u00e9kponttal h\u00fazza feljebb az infl\u00e1ci\u00f3t.<\/li>\n\n\n\n<li>\ud83c\udf7d\ufe0f <strong>\u00c9tterem, k\u00e1v\u00e9z\u00f3, menza:<\/strong> <strong>11.6%-os<\/strong> s\u00faly\u00e1val ez a kos\u00e1r egyik legnagyobb t\u00e9tele, 2025-ben <strong>8.6%-kal<\/strong> dr\u00e1gult. Aki sokat eszik h\u00e1zon k\u00edv\u00fcl, ann\u00e1l ez emeli az infl\u00e1ci\u00f3t. Aki otthon f\u0151z, ann\u00e1l cs\u00f6kkenti.<\/li>\n\n\n\n<li>\u26fd <strong>Aut\u00f3 \u00e9s \u00fczemanyag:<\/strong> az \u00fczemanyag s\u00falya <strong>5.8%<\/strong>, \u00e1ra 2022-ben <strong>13.3%-kal<\/strong>, 2023-ban <strong>20.8%-kal<\/strong> n\u0151tt, 2025-ben viszont <strong>2.2%-kal<\/strong> cs\u00f6kkent, az\u00f3ta viszont \u00fajra emelkedik. Az aut\u00f3sok infl\u00e1ci\u00f3ja ez\u00e9rt \u00e9vr\u0151l \u00e9vre ingadozik, att\u00f3l f\u00fcgg\u0151en, merre mozog az olaj\u00e1r. Akinek nincs aut\u00f3ja, annak az infl\u00e1ci\u00f3j\u00e1ra ez nem hat.<\/li>\n\n\n\n<li>\ud83d\udd25 <strong>F\u0171t\u00e9s \u00e9s villany:<\/strong> a g\u00e1z s\u00falya csak <strong>1.7%<\/strong>, a villany\u00e9 <strong>1.4%<\/strong>, mert a rezsics\u00f6kkent\u00e9s alacsonyan tartja az \u00e1rakat. 2022-ben m\u00e9gis <strong>47.4%-kal<\/strong> dr\u00e1gult a g\u00e1z, mert az \u00e1tlag feletti fogyaszt\u00e1sra piaci \u00e1rat alkalmazott az \u00e1llam. Egy rosszul szigetelt csal\u00e1di h\u00e1z tulajdonos\u00e1t ez sokkal jobban \u00e9rintette, mint egy panellak\u00f3t, a napelemes h\u00e1ztart\u00e1sokat pedig alig, s\u0151t a r\u00e9gi, szald\u00f3s elsz\u00e1mol\u00e1s\u00fa rendszerekn\u00e9l ak\u00e1r bev\u00e9tel is sz\u00e1rmazhat bel\u0151le.<\/li>\n\n\n\n<li>\ud83e\udd56 <strong>\u00c9lelmiszer:<\/strong> a bolti \u00e9lelmiszer <strong>16.9%-os<\/strong> s\u00faly\u00fa, \u00e9s 2022-ben <strong>29.0%-kal<\/strong> dr\u00e1gult. Az alacsonyabb j\u00f6vedelm\u0171 h\u00e1ztart\u00e1sok \u00e9s a nyugd\u00edjasok nagyobb ar\u00e1nyban k\u00f6ltenek \u00e9lelmiszerre (a KSH nyugd\u00edjas kosar\u00e1ban az \u00e9lelmiszer 32.8%, az \u00e1tlagosban 30.7%), ez\u00e9rt 2022\u20132023-ban az \u0151 infl\u00e1ci\u00f3juk az \u00e1tlag f\u00f6l\u00e9 ugrott.<\/li>\n\n\n\n<li>\ud83d\udcb5 <strong>Deviz\u00e1ban \u00e1razott term\u00e9kek:<\/strong> a m\u0171szaki cikkek, a szoftver-el\u0151fizet\u00e9sek \u00e9s a k\u00fclf\u00f6ldi utaz\u00e1s \u00e1ra a forint \u00e1rfolyam\u00e1t k\u00f6veti. Gyeng\u00fcl\u0151 forintn\u00e1l annak dr\u00e1gul gyorsabban a kosara, aki sokat k\u00f6lt ilyesmire, m\u00e9g ha a hazai \u00e1rak stabilak is. Az USD-ben jegyzett term\u00e9kek \u00e1rai az elm\u00falt sz\u0171k k\u00e9t \u00e9vben forintban jellemz\u0151en olcs\u00f3bbak lettek az er\u0151s\u00f6d\u0151 forintnak \u00e9s a gyeng\u00fcl\u0151 doll\u00e1rnak k\u00f6sz\u00f6nhet\u0151en.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Megjegyz\u00e9sek az adatokhoz<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">A sz\u00e1zal\u00e9kok az Eurostat harmoniz\u00e1lt index\u00e9b\u0151l (HICP) vannak, mert a r\u00e9szletes kos\u00e1r ezen alapul. A KSH hivatalos fogyaszt\u00f3i\u00e1r-indexe ett\u0151l kicsit elt\u00e9r\u0151 s\u00falyokkal dolgozik, a 7 f\u0151csoportos n\u00e9zetben p\u00e9ld\u00e1ul az \u201e\u00c9lelmiszerek\u201d csoport a vend\u00e9gl\u00e1t\u00e1st is tartalmazza.<\/p>\n\n\n\n<!-- IOC \u2013 Lak\u00e1stulajdon ar\u00e1nya az EU-ban (Eurostat EU-SILC, ilc_lvho02, 2025)\n     WordPress: Egy\u00e9ni HTML blokkba illeszthet\u0151. Tiszta HTML\/CSS, nincs JavaScript-f\u00fcgg\u00e9s.\n     Friss\u00edt\u00e9s: az oszlop sz\u00e9less\u00e9ge (width:%) \u00e9s a felirat ugyanaz a sz\u00e1m, mindkett\u0151t \u00edrd \u00e1t. -->\n<div class=\"ioc-lakas\">\n  <style>\n    .ioc-lakas { --navy:#1b3a5f; --accent:#e2662c; --text:#333; --muted:#6b7785; --line:#dfe5ec; --racs:#eef1f5;\n      max-width:820px; margin:24px auto; color:var(--text); background:#fff; border:1px solid var(--line); border-radius:12px;\n      padding:20px 20px 14px; box-sizing:border-box; line-height:1.4; }\n    .ioc-lakas * { box-sizing:border-box; }\n    .ioc-lakas .cim { margin:0 0 4px !important; color:var(--navy) !important; font-size:1.2em !important; font-weight:700 !important; line-height:1.3 !important; }\n    .ioc-lakas .al { margin:0 0 12px !important; color:var(--muted); font-size:.9em; line-height:1.45; }\n    .ioc-lakas .jel { display:flex; flex-wrap:wrap; gap:6px 16px; font-size:.8em; color:var(--muted); margin:0 0 10px; }\n    .ioc-lakas .jel i { display:inline-block; width:10px; height:10px; border-radius:2px; margin-right:6px; vertical-align:-1px; }\n    .ioc-lakas .abra { position:relative; }\n    .ioc-lakas .sor { display:grid; grid-template-columns:130px 1fr; align-items:center; gap:10px; padding:3px 0; font-size:.85em; }\n    .ioc-lakas .nev { text-align:right; white-space:nowrap; }\n    .ioc-lakas .sav { position:relative; display:block; height:20px;\n      background:repeating-linear-gradient(90deg, transparent 0, transparent calc(20% - 1px), var(--racs) calc(20% - 1px), var(--racs) 20%);\n      margin-right:52px; }\n    .ioc-lakas .osz { position:absolute; left:0; top:0; display:block; height:100%; background:var(--navy); border-radius:0 4px 4px 0; transition:opacity .15s; }\n    .ioc-lakas .ert { position:absolute; top:50%; transform:translateY(-50%); padding-left:6px; font-weight:600; font-size:.92em; font-variant-numeric:tabular-nums; white-space:nowrap; }\n    .ioc-lakas .sor:hover .osz { opacity:.8; }\n    .ioc-lakas .sor.hu .nev, .ioc-lakas .sor.hu .ert { color:var(--accent); font-weight:700; }\n    .ioc-lakas .sor.hu .osz { background:var(--accent); }\n    .ioc-lakas .sor.eu .nev { font-weight:700; }\n    .ioc-lakas .sor.eu .osz { background:#8a99a8; }\n    .ioc-lakas .tengely { display:grid; grid-template-columns:130px 1fr; gap:10px; font-size:.72em; color:var(--muted); margin-top:4px; }\n    .ioc-lakas .tengely div { position:relative; height:1.2em; margin-right:52px; }\n    .ioc-lakas .tengely span { position:absolute; transform:translateX(-50%); }\n    .ioc-lakas .forras { margin:12px 0 0 !important; font-size:.75em; color:var(--muted); line-height:1.45; }\n    @media (max-width:640px) {\n      .ioc-lakas { padding:14px 12px 10px; border-radius:10px; }\n      .ioc-lakas .sor, .ioc-lakas .tengely { grid-template-columns:104px 1fr; gap:8px; font-size:.8em; }\n      .ioc-lakas .sav, .ioc-lakas .tengely div { margin-right:46px; }\n    }\n  <\/style>\n  <p class=\"cim\">Hol \u00e9lnek a legt\u00f6bben saj\u00e1t tulajdon\u00fa lak\u00e1sban?<\/p>\n  <p class=\"al\">A lakoss\u00e1g h\u00e1ny sz\u00e1zal\u00e9ka \u00e9l saj\u00e1t (tehermentes vagy hitellel terhelt) tulajdon\u00fa ingatlanban, 2025. Magyarorsz\u00e1g a 4. az EU-ban.<\/p>\n  <div class=\"jel\"><span><i style=\"background:#e2662c\"><\/i>Magyarorsz\u00e1g<\/span><span><i style=\"background:#8a99a8\"><\/i>EU-\u00e1tlag<\/span><span><i style=\"background:#1b3a5f\"><\/i>t\u00f6bbi tag\u00e1llam<\/span><\/div>\n  <div class=\"abra\" role=\"img\" aria-label=\"Oszlopdiagram: a saj\u00e1t tulajdon\u00fa lak\u00e1sban \u00e9l\u0151k ar\u00e1nya az EU-tag\u00e1llamokban, 2025. Magyarorsz\u00e1g 89.8%, EU-\u00e1tlag 68.5%.\">\n    <div class=\"sor\" title=\"Szlov\u00e1kia: 93.8% saj\u00e1t tulajdonban \u00e9l\"><span class=\"nev\">Szlov\u00e1kia<\/span><span class=\"sav\"><span class=\"osz\" style=\"width:93.8%\"><\/span><span class=\"ert\" style=\"left:93.8%\">93.8%<\/span><\/span><\/div>\n    <div class=\"sor\" title=\"Rom\u00e1nia: 93.2% saj\u00e1t tulajdonban \u00e9l\"><span class=\"nev\">Rom\u00e1nia<\/span><span class=\"sav\"><span class=\"osz\" style=\"width:93.2%\"><\/span><span class=\"ert\" style=\"left:93.2%\">93.2%<\/span><\/span><\/div>\n    <div class=\"sor\" title=\"Horv\u00e1torsz\u00e1g: 91.4% saj\u00e1t tulajdonban \u00e9l\"><span class=\"nev\">Horv\u00e1torsz\u00e1g<\/span><span class=\"sav\"><span class=\"osz\" style=\"width:91.4%\"><\/span><span class=\"ert\" style=\"left:91.4%\">91.4%<\/span><\/span><\/div>\n    <div class=\"sor hu\" title=\"Magyarorsz\u00e1g: 89.8% saj\u00e1t tulajdonban \u00e9l\"><span class=\"nev\">Magyarorsz\u00e1g<\/span><span class=\"sav\"><span class=\"osz\" style=\"width:89.8%\"><\/span><span class=\"ert\" style=\"left:89.8%\">89.8%<\/span><\/span><\/div>\n    <div class=\"sor\" title=\"Lengyelorsz\u00e1g: 87.2% saj\u00e1t tulajdonban \u00e9l\"><span class=\"nev\">Lengyelorsz\u00e1g<\/span><span class=\"sav\"><span class=\"osz\" style=\"width:87.2%\"><\/span><span class=\"ert\" style=\"left:87.2%\">87.2%<\/span><\/span><\/div>\n    <div class=\"sor\" title=\"Litv\u00e1nia: 86.5% saj\u00e1t tulajdonban \u00e9l (el\u0151zetes adat)\"><span class=\"nev\">Litv\u00e1nia<\/span><span class=\"sav\"><span class=\"osz\" style=\"width:86.5%\"><\/span><span class=\"ert\" style=\"left:86.5%\">86.5%<\/span><\/span><\/div>\n    <div class=\"sor\" title=\"Bulg\u00e1ria: 86.1% saj\u00e1t tulajdonban \u00e9l\"><span class=\"nev\">Bulg\u00e1ria<\/span><span class=\"sav\"><span class=\"osz\" style=\"width:86.1%\"><\/span><span class=\"ert\" style=\"left:86.1%\">86.1%<\/span><\/span><\/div>\n    <div class=\"sor\" title=\"Lettorsz\u00e1g: 82.2% saj\u00e1t tulajdonban \u00e9l\"><span class=\"nev\">Lettorsz\u00e1g<\/span><span class=\"sav\"><span class=\"osz\" style=\"width:82.2%\"><\/span><span class=\"ert\" style=\"left:82.2%\">82.2%<\/span><\/span><\/div>\n    <div class=\"sor\" title=\"\u00c9sztorsz\u00e1g: 79.7% saj\u00e1t tulajdonban \u00e9l\"><span class=\"nev\">\u00c9sztorsz\u00e1g<\/span><span class=\"sav\"><span class=\"osz\" style=\"width:79.7%\"><\/span><span class=\"ert\" style=\"left:79.7%\">79.7%<\/span><\/span><\/div>\n    <div class=\"sor\" title=\"Olaszorsz\u00e1g: 77.1% saj\u00e1t tulajdonban \u00e9l\"><span class=\"nev\">Olaszorsz\u00e1g<\/span><span class=\"sav\"><span class=\"osz\" style=\"width:77.1%\"><\/span><span class=\"ert\" style=\"left:77.1%\">77.1%<\/span><\/span><\/div>\n    <div class=\"sor\" title=\"Csehorsz\u00e1g: 75.1% saj\u00e1t tulajdonban \u00e9l\"><span class=\"nev\">Csehorsz\u00e1g<\/span><span class=\"sav\"><span class=\"osz\" style=\"width:75.1%\"><\/span><span class=\"ert\" style=\"left:75.1%\">75.1%<\/span><\/span><\/div>\n    <div class=\"sor\" title=\"Szlov\u00e9nia: 74.2% saj\u00e1t tulajdonban \u00e9l\"><span class=\"nev\">Szlov\u00e9nia<\/span><span class=\"sav\"><span class=\"osz\" style=\"width:74.2%\"><\/span><span class=\"ert\" style=\"left:74.2%\">74.2%<\/span><\/span><\/div>\n    <div class=\"sor\" title=\"Spanyolorsz\u00e1g: 73.6% saj\u00e1t tulajdonban \u00e9l\"><span class=\"nev\">Spanyolorsz\u00e1g<\/span><span class=\"sav\"><span class=\"osz\" style=\"width:73.6%\"><\/span><span class=\"ert\" style=\"left:73.6%\">73.6%<\/span><\/span><\/div>\n    <div class=\"sor\" title=\"Portug\u00e1lia: 71.2% saj\u00e1t tulajdonban \u00e9l\"><span class=\"nev\">Portug\u00e1lia<\/span><span class=\"sav\"><span class=\"osz\" style=\"width:71.2%\"><\/span><span class=\"ert\" style=\"left:71.2%\">71.2%<\/span><\/span><\/div>\n    <div class=\"sor\" title=\"Belgium: 70.9% saj\u00e1t tulajdonban \u00e9l\"><span class=\"nev\">Belgium<\/span><span class=\"sav\"><span class=\"osz\" style=\"width:70.9%\"><\/span><span class=\"ert\" style=\"left:70.9%\">70.9%<\/span><\/span><\/div>\n    <div class=\"sor\" title=\"\u00cdrorsz\u00e1g: 70.9% saj\u00e1t tulajdonban \u00e9l\"><span class=\"nev\">\u00cdrorsz\u00e1g<\/span><span class=\"sav\"><span class=\"osz\" style=\"width:70.9%\"><\/span><span class=\"ert\" style=\"left:70.9%\">70.9%<\/span><\/span><\/div>\n    <div class=\"sor\" title=\"M\u00e1lta: 70.9% saj\u00e1t tulajdonban \u00e9l\"><span class=\"nev\">M\u00e1lta<\/span><span class=\"sav\"><span class=\"osz\" style=\"width:70.9%\"><\/span><span class=\"ert\" style=\"left:70.9%\">70.9%<\/span><\/span><\/div>\n    <div class=\"sor\" title=\"G\u00f6r\u00f6gorsz\u00e1g: 69.4% saj\u00e1t tulajdonban \u00e9l\"><span class=\"nev\">G\u00f6r\u00f6gorsz\u00e1g<\/span><span class=\"sav\"><span class=\"osz\" style=\"width:69.4%\"><\/span><span class=\"ert\" style=\"left:69.4%\">69.4%<\/span><\/span><\/div>\n    <div class=\"sor\" title=\"Ciprus: 69.2% saj\u00e1t tulajdonban \u00e9l\"><span class=\"nev\">Ciprus<\/span><span class=\"sav\"><span class=\"osz\" style=\"width:69.2%\"><\/span><span class=\"ert\" style=\"left:69.2%\">69.2%<\/span><\/span><\/div>\n    <div class=\"sor\" title=\"Hollandia: 68.8% saj\u00e1t tulajdonban \u00e9l\"><span class=\"nev\">Hollandia<\/span><span class=\"sav\"><span class=\"osz\" style=\"width:68.8%\"><\/span><span class=\"ert\" style=\"left:68.8%\">68.8%<\/span><\/span><\/div>\n    <div class=\"sor eu\" title=\"EU-\u00e1tlag: 68.5% saj\u00e1t tulajdonban \u00e9l\"><span class=\"nev\">EU-\u00e1tlag<\/span><span class=\"sav\"><span class=\"osz\" style=\"width:68.5%\"><\/span><span class=\"ert\" style=\"left:68.5%\">68.5%<\/span><\/span><\/div>\n    <div class=\"sor\" title=\"Finnorsz\u00e1g: 66.9% saj\u00e1t tulajdonban \u00e9l\"><span class=\"nev\">Finnorsz\u00e1g<\/span><span class=\"sav\"><span class=\"osz\" style=\"width:66.9%\"><\/span><span class=\"ert\" style=\"left:66.9%\">66.9%<\/span><\/span><\/div>\n    <div class=\"sor\" title=\"Sv\u00e9dorsz\u00e1g: 64.6% saj\u00e1t tulajdonban \u00e9l\"><span class=\"nev\">Sv\u00e9dorsz\u00e1g<\/span><span class=\"sav\"><span class=\"osz\" style=\"width:64.6%\"><\/span><span class=\"ert\" style=\"left:64.6%\">64.6%<\/span><\/span><\/div>\n    <div class=\"sor\" title=\"Luxemburg: 64.1% saj\u00e1t tulajdonban \u00e9l (id\u0151sor-t\u00f6r\u00e9s)\"><span class=\"nev\">Luxemburg<\/span><span class=\"sav\"><span class=\"osz\" style=\"width:64.1%\"><\/span><span class=\"ert\" style=\"left:64.1%\">64.1%<\/span><\/span><\/div>\n    <div class=\"sor\" title=\"Franciaorsz\u00e1g: 61.4% saj\u00e1t tulajdonban \u00e9l\"><span class=\"nev\">Franciaorsz\u00e1g<\/span><span class=\"sav\"><span class=\"osz\" style=\"width:61.4%\"><\/span><span class=\"ert\" style=\"left:61.4%\">61.4%<\/span><\/span><\/div>\n    <div class=\"sor\" title=\"D\u00e1nia: 58.4% saj\u00e1t tulajdonban \u00e9l\"><span class=\"nev\">D\u00e1nia<\/span><span class=\"sav\"><span class=\"osz\" style=\"width:58.4%\"><\/span><span class=\"ert\" style=\"left:58.4%\">58.4%<\/span><\/span><\/div>\n    <div class=\"sor\" title=\"Ausztria: 54.2% saj\u00e1t tulajdonban \u00e9l\"><span class=\"nev\">Ausztria<\/span><span class=\"sav\"><span class=\"osz\" style=\"width:54.2%\"><\/span><span class=\"ert\" style=\"left:54.2%\">54.2%<\/span><\/span><\/div>\n    <div class=\"sor\" title=\"N\u00e9metorsz\u00e1g: 47.2% saj\u00e1t tulajdonban \u00e9l\"><span class=\"nev\">N\u00e9metorsz\u00e1g<\/span><span class=\"sav\"><span class=\"osz\" style=\"width:47.2%\"><\/span><span class=\"ert\" style=\"left:47.2%\">47.2%<\/span><\/span><\/div>\n    <div class=\"tengely\"><b><\/b><div><span style=\"left:0%\">0%<\/span><span style=\"left:20%\">20%<\/span><span style=\"left:40%\">40%<\/span><span style=\"left:60%\">60%<\/span><span style=\"left:80%\">80%<\/span><span style=\"left:100%\">100%<\/span><\/div><\/div>\n  <\/div>\n  <p class=\"forras\">Forr\u00e1s: Eurostat, EU-SILC (ilc_lvho02, 2025). A lakoss\u00e1g megoszl\u00e1sa lakhat\u00e1si jogc\u00edm szerint: tulajdonos (hitellel vagy an\u00e9lk\u00fcl). Litv\u00e1nia: el\u0151zetes adat; Luxemburg: id\u0151sor-t\u00f6r\u00e9s. Szerkesztette: iocharts.io<\/p>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">A saj\u00e1t ingatlan birtokl\u00e1sa sokkal ink\u00e1bb jellemz\u0151 K\u00f6z\u00e9p-Kelet-Eur\u00f3p\u00e1ra, mint p\u00e9ld\u00e1ul Nyugat-Eur\u00f3p\u00e1ra, cser\u00e9be az alb\u00e9rlet\u00e1rak nagyon magasak. <strong>Budapesten ak\u00e1r a fizet\u00e9sed fel\u00e9t is elviheti a b\u00e9rleti d\u00edj, <\/strong>\u00edgy valahol \u00e9rthet\u0151, ha te is lak\u00e1sbirtokl\u00e1sban gondolkozol. Ezzel szemben N\u00e9metorsz\u00e1gban ez az ar\u00e1ny 50% alatt van. <\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">\ud83d\udca1Az ingatlanbirtokl\u00e1snak van egy rejtett \u00e1ra: az alternat\u00edv k\u00f6lts\u00e9g. Vagyis hogy mennyit kereshetn\u00e9l azon, ha az ingatlan \u00e1r\u00e1t befektetn\u00e9d, \u00e9s ebb\u0151l fizetn\u00e9d a b\u00e9rleti d\u00edjat.<\/mark><\/strong><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Cser\u00e9be az ingatlan biztons\u00e1got ad, \u00e9s sokszor \u00e9rzelmi k\u00e9rd\u00e9s is. A KSH kosar\u00e1ban viszont a saj\u00e1t lak\u00e1s k\u00f6lts\u00e9ge nem szerepel, csak a lakb\u00e9r, ez\u00e9rt a hivatalos sz\u00e1m a b\u00e9rl\u0151k infl\u00e1ci\u00f3j\u00e1t alulbecs\u00fclheti. Ez\u00e9rt kell a lakhat\u00e1ssal k\u00fcl\u00f6n foglalkoznod.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Hogyan haszn\u00e1ld a szem\u00e9lyes infl\u00e1ci\u00f3kalkul\u00e1tor fel\u00fclet\u00e9t?<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\ud83e\uddfa <strong>V\u00e1laszd ki a kosarat.<\/strong> A <em>7 csoportos KSH-n\u00e9zet<\/em> a hivatalos f\u0151csoportokkal dolgozik. A <em>r\u00e9szletes kos\u00e1rban<\/em> 25 t\u00e9tel van (villany, g\u00e1z, alb\u00e9rlet, aut\u00f3, \u00e9tterem stb.), \u00edgy pontosabban be\u00e1ll\u00edthatod a saj\u00e1t k\u00f6lt\u00e9seidet.<\/li>\n\n\n\n<li>\ud83d\udcb1 <strong>Ft-ban vagy %-ban add meg a k\u00f6lt\u00e9seidet.<\/strong> A <em>Ft\/h\u00f3<\/em> m\u00f3dban azt \u00edrod be, mennyit k\u00f6ltesz havonta egy-egy t\u00e9telre. A <em>%<\/em> m\u00f3dban a kiad\u00e1said ar\u00e1ny\u00e1t adod meg. A k\u00e9t m\u00f3d k\u00f6z\u00f6tt b\u00e1rmikor v\u00e1lthatsz, a be\u00edrt \u00f6sszegek megmaradnak.<\/li>\n\n\n\n<li>\ud83d\udccb <strong>Indulj egy k\u00e9sz kos\u00e1rb\u00f3l.<\/strong> V\u00e1laszthatod a <em>KSH-\u00e1tlagot<\/em>, a <em>nyugd\u00edjas kosarat<\/em> vagy a <em>j\u00f6vedelem szerinti kosarat<\/em>. Ez ut\u00f3bbi a hozz\u00e1d hasonl\u00f3 j\u00f6vedelm\u0171 h\u00e1ztart\u00e1sok k\u00f6lt\u00e9si szerkezet\u00e9t t\u00f6lti be. Ut\u00e1na nyugodtan \u00edrd \u00e1t a t\u00e9teleket a saj\u00e1t sz\u00e1maidra.<\/li>\n\n\n\n<li>\ud83d\udead <strong>Kapcsold be az \u00e9letm\u00f3dodat.<\/strong> A gombokkal egy kattint\u00e1ssal kinull\u00e1zhatod vagy be\u00e1ll\u00edthatod a r\u00e1d jellemz\u0151 t\u00e9teleket: <em>nem doh\u00e1nyzom<\/em>, <em>nem iszom alkoholt<\/em>, <em>nincs aut\u00f3m<\/em>, <em>alb\u00e9rletben lakom<\/em>, <em>mag\u00e1norvoshoz j\u00e1rok<\/em>. A kalkul\u00e1tor jel\u00f6li, melyik sort m\u00f3dos\u00edtotta.<\/li>\n\n\n\n<li>\ud83d\udd25 <strong>Add meg, mivel f\u0171tesz.<\/strong> V\u00e1laszthatsz g\u00e1zt, t\u00e1vh\u0151t, villanyt vagy f\u00e1t. A \u2600\ufe0f <em>napelem<\/em> gombbal a villanysz\u00e1mla nulla vagy ak\u00e1r negat\u00edv is lehet, ha t\u00f6bbet termelsz, mint amennyit fogyasztasz.<\/li>\n\n\n\n<li>\ud83c\udfe6 <strong>\u00cdrd be a hitelt\u00f6rleszt\u00e9st, ha van.<\/strong> Az alap\u00e9rt\u00e9k 0. Ha t\u00f6rlesztesz, add meg a havi \u00f6sszeget, \u00e9s jel\u00f6ld, hogy fix vagy v\u00e1ltoz\u00f3 kamatoz\u00e1s\u00fa-e. V\u00e1ltoz\u00f3 kamatn\u00e1l add meg, mennyivel n\u0151tt vagy cs\u00f6kkent a r\u00e9szleted az id\u0151szak alatt. Fix kamatn\u00e1l a r\u00e9szlet nem v\u00e1ltozik, ez\u00e9rt a hitel lefel\u00e9 h\u00fazza az infl\u00e1ci\u00f3dat.<\/li>\n\n\n\n<li>\ud83d\udcb5 <strong>Jel\u00f6ld a deviz\u00e1ban fizetett kiad\u00e1sokat.<\/strong> Ha a k\u00f6lt\u00e9seid egy r\u00e9sze val\u00f3j\u00e1ban doll\u00e1rban vagy eur\u00f3ban \u00e1raz\u00f3dik (m\u0171szaki cikkek, el\u0151fizet\u00e9sek, k\u00fclf\u00f6ldi utaz\u00e1s), add meg az ar\u00e1ny\u00e1t. A kalkul\u00e1tor a forint \u00e1rfolyam\u00e1t \u00e9s a k\u00fclf\u00f6ldi infl\u00e1ci\u00f3t is besz\u00e1m\u00edtja.<\/li>\n\n\n\n<li>\ud83d\udcc5 <strong>\u00c1ll\u00edtsd be az id\u0151szakot.<\/strong> Egyetlen \u00e9vet n\u00e9zhetsz, vagy egy hosszabb id\u0151szakot, p\u00e9ld\u00e1ul 2015\u20132025-\u00f6t. Ilyenkor az \u00f6sszes\u00edtett \u00e9s az \u00e9vi \u00e1tlagos dr\u00e1gul\u00e1st is megkapod.<\/li>\n\n\n\n<li>\ud83d\udcbc <strong>T\u00f6ltsd ki a bev\u00e9teli r\u00e9szt.<\/strong> \u00cdrd be a h\u00e1ztart\u00e1s havi nett\u00f3 j\u00f6vedelm\u00e9t, a l\u00e9tsz\u00e1mot \u00e9s azt, hogy h\u00e1ny keres\u0151 van a h\u00e1ztart\u00e1sban. Ebb\u0151l megtudod, mennyi marad a h\u00f3nap v\u00e9g\u00e9n (megtakar\u00edt\u00e1si r\u00e1ta), vagy mennyivel k\u00f6ltesz t\u00f6bbet a bev\u00e9teledn\u00e9l.<\/li>\n\n\n\n<li>\ud83d\udccf <strong>N\u00e9zd meg, hova tartozol.<\/strong> A tizedvonalz\u00f3 megmutatja, <strong>a teljes munkaid\u0151s magyar dolgoz\u00f3k h\u00e1nyadik tized\u00e9be esik a kereseted. <\/strong>T\u00f6bb keres\u0151 eset\u00e9n egy keres\u0151re jut\u00f3 \u00f6sszeggel sz\u00e1mol. A vonalz\u00f3 a j\u00f6vedelem, a l\u00e9tsz\u00e1m vagy a keres\u0151k sz\u00e1m\u00e1nak \u00e1t\u00edr\u00e1sakor azonnal friss\u00fcl.<\/li>\n\n\n\n<li>\ud83d\udcc8 <strong>Sz\u00e1mold ki a re\u00e1lb\u00e9redet.<\/strong> Ha be\u00edrod, mennyit kerest\u00e9l a kezd\u0151\u00e9vben, a kalkul\u00e1tor megmutatja, hogy a fizet\u00e9sed gyorsabban vagy lassabban n\u0151tt-e, mint a te saj\u00e1t infl\u00e1ci\u00f3d. Vagyis azt, hogy ma t\u00f6bbet vagy kevesebbet tudsz-e venni bel\u0151le.<\/li>\n\n\n\n<li>\ud83d\udd0d <strong>Olvasd el, mit\u0151l m\u00e1s a te infl\u00e1ci\u00f3d.<\/strong> Az eredm\u00e9nyk\u00e1rty\u00e1k a saj\u00e1t infl\u00e1ci\u00f3dat a hivatalos KSH-adattal vetik \u00f6ssze. A <em>Mi\u00e9rt?<\/em> r\u00e9sz felbontja az elt\u00e9r\u00e9st: mekkora elt\u00e9r\u00e9st okoz a kosarad \u00f6sszet\u00e9tele, \u00e9s mennyit a m\u00f3dszertani k\u00fcl\u00f6nbs\u00e9g. A toplista megmutatja, mely t\u00e9telek dr\u00e1gultak n\u00e1lad a legjobban.<\/li>\n\n\n\n<li>\ud83d\udcbe <strong>Mentsd el vagy oszd meg.<\/strong> A grafikont let\u00f6ltheted PNG-k\u00e9pk\u00e9nt, a teljes sz\u00e1m\u00edt\u00e1st CSV-ben (Excelben megnyithat\u00f3). A <em>link<\/em> gombbal olyan linket kapsz, amely minden be\u00e1ll\u00edt\u00e1sodat meg\u0151rzi, \u00edgy megoszthatod azt m\u00e1sokkal.<\/li>\n\n\n\n<li>\ud83d\udd04 <strong>Az adatok magukt\u00f3l friss\u00fclnek.<\/strong> A kalkul\u00e1tor hetente lek\u00e9ri a KSH, az Eurostat, a Vil\u00e1gbank \u00e9s az amerikai munka\u00fcgyi statisztikai hivatal (BLS) legfrissebb adatait. A c\u00edm alatti z\u00f6ld p\u00f6tty mutatja, melyik h\u00f3nap adata a legfrissebb.<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-preformatted\">\ud83d\udd10<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\"><strong>Az adataid n\u00e1lad maradnak.<\/strong> Minden a b\u00f6ng\u00e9sz\u0151dben sz\u00e1mol\u00f3dik, semmit nem k\u00fcld\u00fcnk \u00e9s nem t\u00e1rolunk el!<\/mark><\/pre>\n\n\n\n<!-- ============================================================\r\n     SZEM\u00c9LYES INFL\u00c1CI\u00d3KALKUL\u00c1TOR \u2013 iO Charts (WPCode-v\u00e1ltozat)\r\n     VERZI\u00d3: 1.1 (2026-10-20)\r\n     ------------------------------------------------------------\r\n     V\u00c1LTOZ\u00c1SOK\r\n       1.1 (2026-10-20) Beviteli korl\u00e1tok minden mez\u0151n (Ft: 0\u201310 milli\u00f3,\r\n           villany napelemmel \u22121 milli\u00f3ig, %: 0\u2013100, f\u0151: 1\u201320);\r\n           figyelmeztet\u00e9s t\u00fal sok keres\u0151n\u00e9l\/f\u0151n\u00e9l; hamis megoszt\u00e1si\r\n           link nem akasztja ki; napelemes negat\u00edv villany a linkben is\r\n           megmarad; kereseti tizedvonalz\u00f3 a havi medi\u00e1nb\u00e9rhez igaz\u00edtva.\r\n       1.0 (2026-10-20) Els\u0151 \u00e9les\u00edtett v\u00e1ltozat.\r\n     ------------------------------------------------------------\r\n     1. Ez a k\u00f3d: WPCode, HTML Snippet, Insert Method: Shortcode,\r\n        shortcode: [wpcode id=\"12760\"], Active.\r\n     2. A cikk Egy\u00e9ni HTML blokkj\u00e1ba k\u00e9t sor kell:\r\n          [wpcode id=\"12760\"]\r\n          <ioc-szemelyes-inflacio><\/ioc-szemelyes-inflacio>\r\n     Az \u00e9l\u0151 adatokat az \"IOC \u2013 Infl\u00e1ci\u00f3s adatok friss\u00edt\u00e9se\" PHP-snippet adja.\r\n     ============================================================ -->\r\n<script>\r\n(function () {\r\n  'use strict';\r\n  if (customElements.get('ioc-szemelyes-inflacio')) return;   \/\/ ha k\u00e9tszer ker\u00fclne be a k\u00f3d\r\n\r\n  \/* ==========================================================\r\n     1. ADATOK (tartal\u00e9k; \u00e9l\u0151 adat eset\u00e9n fel\u00fcl\u00edr\u00f3dnak)\r\n     Az \u00e9rt\u00e9kek az el\u0151z\u0151 \u00e9vhez k\u00e9pesti v\u00e1ltoz\u00e1s %-ban (KSH index \u2212 100).\r\n     ========================================================== *\/\r\n  \/\/ 7 KSH-f\u0151csoport, \u00e9venk\u00e9nt a 7 csoport sorrendj\u00e9ben (l\u00e1sd CSOPORT7)\r\n  var EV7 = {\r\n      1990: [35.2, 30.7, 23.3, 20.8, 27.6, 28.9, 25.6],\r\n      1991: [21.9, 25.1, 32.1, 31.7, 81.0, 43.4, 41.9],\r\n      1992: [19.4, 19.6, 23.0, 14.3, 43.2, 27.2, 26.0],\r\n      1993: [29.2, 18.6, 16.7, 11.0, 20.3, 21.6, 24.1],\r\n      1994: [23.4, 16.4, 16.1, 11.8, 11.7, 19.0, 20.3],\r\n      1995: [31.1, 20.1, 20.2, 24.0, 50.0, 27.3, 26.0],\r\n      1996: [17.3, 26.6, 25.6, 19.2, 32.5, 25.7, 26.4],\r\n      1997: [17.5, 18.9, 18.7, 8.5, 29.9, 16.1, 19.2],\r\n      1998: [14.4, 15.3, 14.1, 8.1, 17.9, 10.7, 16.2],\r\n      1999: [2.9, 11.5, 10.6, 6.6, 9.4, 14.7, 14.8],\r\n      2000: [9.2, 11.0, 5.8, 1.7, 9.1, 15.0, 9.7],\r\n      2001: [13.8, 11.2, 5.3, 1.0, 10.3, 4.9, 9.8],\r\n      2002: [5.4, 9.7, 4.0, -1.6, 5.5, 4.1, 6.4],\r\n      2003: [2.7, 10.7, 3.0, -1.4, 7.3, 3.9, 5.9],\r\n      2004: [6.5, 11.3, 3.4, -0.6, 14.1, 3.9, 7.6],\r\n      2005: [2.5, 3.3, 0.2, -2.3, 6.2, 4.5, 5.5],\r\n      2006: [7.7, 4.3, -0.7, -4.0, 6.4, 2.7, 4.1],\r\n      2007: [11.5, 6.7, 1.0, -1.3, 24.6, 4.0, 7.4],\r\n      2008: [10.2, 5.6, 0.0, -0.7, 12.7, 4.6, 5.0],\r\n      2009: [4.4, 7.5, 0.5, 2.6, 8.2, 1.1, 4.6],\r\n      2010: [3.2, 8.2, -0.4, 0.2, 6.3, 8.8, 4.3],\r\n      2011: [6.6, 0.5, 2.9, -1.4, 5.7, 6.2, 2.2],\r\n      2012: [5.9, 12.7, 2.6, -1.2, 6.2, 7.2, 4.2],\r\n      2013: [2.8, 10.9, -0.4, -1.9, -8.5, 0.5, 3.6],\r\n      2014: [-0.4, 6.2, -0.7, -0.5, -11.7, -0.5, 1.8],\r\n      2015: [0.9, 3.1, 0.0, 0.8, -2.9, -4.6, 1.9],\r\n      2016: [0.7, 2.3, 0.4, 0.5, -0.1, -2.2, 1.5],\r\n      2017: [2.8, 4.8, 0.5, -0.3, 0.8, 3.6, 1.5],\r\n      2018: [4.2, 5.6, 0.5, -0.4, 1.4, 3.8, 1.6],\r\n      2019: [5.4, 8.1, 1.0, -0.3, 1.0, 1.3, 3.0],\r\n      2020: [7.2, 6.9, 0.0, 1.4, 0.3, -0.9, 2.9],\r\n      2021: [4.1, 10.9, 0.2, 4.5, 0.5, 9.6, 2.9],\r\n      2022: [26.0, 9.9, 5.5, 12.2, 21.7, 12.0, 7.1],\r\n      2023: [25.9, 15.4, 8.3, 5.6, 22.1, 18.6, 13.2],\r\n      2024: [2.8, 4.4, 4.2, -0.9, -4.6, 1.7, 8.9],\r\n      2025: [5.3, 6.5, 1.8, 2.2, 6.4, 0.4, 6.7],\r\n      2026: [0.0, 4.2, 0.8, 2.2, -0.3, -0.2, 4.5]\r\n    };\r\n  var OSSZ7 = { 1990: 28.9, 1991: 35.0, 1992: 23.0, 1993: 22.5, 1994: 18.8, 1995: 28.2, 1996: 23.6, 1997: 18.3, 1998: 14.3, 1999: 10.0, 2000: 9.8, 2001: 9.2, 2002: 5.3, 2003: 4.7, 2004: 6.8, 2005: 3.6, 2006: 3.9, 2007: 8.0, 2008: 6.1, 2009: 4.2, 2010: 4.9, 2011: 3.9, 2012: 5.7, 2013: 1.7, 2014: -0.2, 2015: -0.1, 2016: 0.4, 2017: 2.4, 2018: 2.8, 2019: 3.4, 2020: 3.3, 2021: 5.1, 2022: 14.5, 2023: 17.6, 2024: 3.7, 2025: 4.4, 2026: 1.7 };\r\n  var NY7 = { 1995: 30.4, 1996: 23.8, 1997: 18.8, 1998: 14.6, 1999: 9.4, 2000: 10.1, 2001: 10.4, 2002: 5.3, 2003: 4.6, 2004: 7.3, 2005: 3.9, 2006: 5.0, 2007: 10.7, 2008: 6.9, 2009: 4.9, 2010: 4.5, 2011: 4.4, 2012: 5.7, 2013: 1.5, 2014: -0.6, 2015: 0.4, 2016: 0.6, 2017: 2.3, 2018: 2.7, 2019: 3.5, 2020: 3.8, 2021: 4.6, 2022: 15.2, 2023: 18.3, 2024: 3.7, 2025: 4.5, 2026: 1.4 };\r\n\r\n  \/\/ A 7 f\u0151csoport. sugo: mi tartozik ide (a KSH besorol\u00e1sa szerint)\r\n  var CSOPORT7 = [\r\n    { nev: '\u00c9lelmiszerek', rovid: '\u00c9lelmiszer', sugo: 'bolti \u00e9lelmiszer, \u00fcd\u00edt\u0151, k\u00e1v\u00e9, \u00e9s az \u00e9ttermi, menz\u00e1s \u00e9tkez\u00e9s is' },\r\n    { nev: 'Szeszes italok, doh\u00e1ny\u00e1ruk', rovid: 'Szeszes ital, doh\u00e1ny', sugo: 's\u00f6r, bor, t\u00f6m\u00e9ny ital, cigaretta, doh\u00e1ny' },\r\n    { nev: 'Ruh\u00e1zkod\u00e1si cikkek', rovid: 'Ruh\u00e1zat', sugo: 'ruha, cip\u0151, kieg\u00e9sz\u00edt\u0151k' },\r\n    { nev: 'Tart\u00f3s fogyaszt\u00e1si cikkek', rovid: 'Tart\u00f3s cikkek', sugo: 'b\u00fator, h\u00e1ztart\u00e1si g\u00e9p, m\u0171szaki cikk, aut\u00f3' },\r\n    { nev: 'H\u00e1ztart\u00e1si energia', rovid: 'H\u00e1ztart\u00e1si energia', sugo: 'villany, g\u00e1z, t\u00e1vf\u0171t\u00e9s, t\u0171zifa' },\r\n    { nev: 'Egy\u00e9b cikkek, \u00fczemanyagok', rovid: 'Egy\u00e9b cikkek, \u00fczemanyag', sugo: '\u00fczemanyag, gy\u00f3gyszer, tiszt\u00edt\u00f3szer, kozmetikum, k\u00f6nyv, \u00fajs\u00e1g' },\r\n    { nev: 'Szolg\u00e1ltat\u00e1sok', rovid: 'Szolg\u00e1ltat\u00e1sok', sugo: 'lakb\u00e9r, v\u00edz-csatorna, k\u00f6zleked\u00e9s, telefon, internet, biztos\u00edt\u00e1s, oktat\u00e1s, szabadid\u0151' }\r\n  ];\r\n  \/* R\u00c9SZLETES KOS\u00c1R \u2013 Eurostat HICP, ECOICOP ver. 2 (COICOP 2018), Magyarorsz\u00e1g.\r\n     KOD_R: \u00e9ves \u00e1tlagos v\u00e1ltoz\u00e1s (%) alcsoportonk\u00e9nt, prc_hicp_ainr (unit=RCH_A_AVG)\r\n     SULY_R: a 2026. \u00e9vi s\u00falyok ezrel\u00e9kben, prc_hicp_iw\r\n     OSSZ_R: a teljes HICP (\u00f6sszesen) \u00e9ves v\u00e1ltoz\u00e1sa\r\n     Egy sor t\u00f6bb alcsoportb\u00f3l is \u00e1llhat (kodok); ilyenkor a sor infl\u00e1ci\u00f3ja\r\n     az alcsoportok s\u00falyozott \u00e1tlaga. Ha egy alcsoportnak egy \u00e9vre nincs adata,\r\n     a t\u00f6bbib\u0151l sz\u00e1molunk. A narkotikumok \u00e9s a foly\u00e9kony t\u00fczel\u0151 s\u00falya 0, kimaradnak. *\/\r\n  var KOD_R = {\r\n    CP011: { 2002: 5.4, 2003: 1.1, 2004: 5.4, 2005: 2.0, 2006: 8.2, 2007: 12.5, 2008: 11.6, 2009: 2.8, 2010: 2.6, 2011: 8.1, 2012: 5.7, 2013: 3.1, 2014: -0.9, 2015: 0.5, 2016: 0.1, 2017: 2.7, 2018: 4.3, 2019: 5.5, 2020: 8.1, 2021: 3.5, 2022: 29.0, 2023: 22.9, 2024: 0.0, 2025: 2.9 },\r\n    CP012: { 2002: 2.6, 2003: 2.7, 2004: 4.3, 2005: 1.4, 2006: 1.4, 2007: 6.6, 2008: 8.1, 2009: 7.7, 2010: 1.4, 2011: 4.9, 2012: 8.2, 2013: 0.7, 2014: -0.1, 2015: 0.6, 2016: 1.4, 2017: 2.2, 2018: 2.0, 2019: 2.5, 2020: 1.6, 2021: 2.6, 2022: 19.5, 2023: 29.0, 2024: 5.6, 2025: 9.1 },\r\n    CP021: { 2002: 7.7, 2003: 6.3, 2004: 6.9, 2005: 1.1, 2006: 4.0, 2007: 6.4, 2008: 6.1, 2009: 7.0, 2010: 7.8, 2011: 2.2, 2012: 7.4, 2013: 5.3, 2014: -3.2, 2015: 3.0, 2016: -0.8, 2017: 2.0, 2018: 2.9, 2019: 3.6, 2020: 2.2, 2021: 2.7, 2022: 11.7, 2023: 20.0, 2024: 3.6, 2025: 4.7 },\r\n    CP023: { 2002: 10.9, 2003: 18.3, 2004: 19.1, 2005: 4.8, 2006: 5.4, 2007: 7.7, 2008: 4.6, 2009: 9.0, 2010: 10.3, 2011: -2.6, 2012: 21.9, 2013: 18.4, 2014: 14.7, 2015: 3.5, 2016: 4.1, 2017: 7.2, 2018: 8.0, 2019: 11.6, 2020: 10.9, 2021: 17.5, 2022: 8.6, 2023: 12.0, 2024: 4.6, 2025: 7.4 },\r\n    CP03: { 2002: 3.9, 2003: 3.2, 2004: 3.6, 2005: 0.3, 2006: -0.4, 2007: 1.0, 2008: -0.1, 2009: 0.6, 2010: -0.3, 2011: 2.9, 2012: 2.5, 2013: -0.4, 2014: -0.6, 2015: 0.0, 2016: 0.5, 2017: 0.5, 2018: 0.6, 2019: 1.2, 2020: 0.0, 2021: 0.2, 2022: 5.5, 2023: 8.5, 2024: 4.5, 2025: 2.1 },\r\n    CP041: { 2002: 11.5, 2003: 7.5, 2004: 9.9, 2005: 4.3, 2006: 4.5, 2007: 7.7, 2008: 8.9, 2009: 6.7, 2010: 3.5, 2011: 1.8, 2012: 3.8, 2013: 2.0, 2014: 0.3, 2015: 2.0, 2016: 5.2, 2017: 3.0, 2018: 5.0, 2019: 9.4, 2020: 4.3, 2021: 1.9, 2022: 10.5, 2023: 13.8, 2024: 12.4, 2025: 9.8 },\r\n    CP043: { 2002: 7.3, 2003: 5.9, 2004: 7.6, 2005: 5.8, 2006: 5.3, 2007: 7.4, 2008: 5.2, 2009: 5.6, 2010: 4.7, 2011: 2.8, 2012: 6.0, 2013: 3.2, 2014: 2.9, 2015: 2.3, 2016: 2.6, 2017: 3.5, 2018: 5.7, 2019: 8.0, 2020: 8.1, 2021: 10.9, 2022: 24.0, 2023: 14.9, 2024: 5.0, 2025: 6.5 },\r\n    CP044: { 2002: 7.4, 2003: 9.2, 2004: 13.8, 2005: 9.1, 2006: 6.9, 2007: 11.0, 2008: 10.1, 2009: 10.6, 2010: 6.1, 2011: 5.5, 2012: 5.7, 2013: -2.0, 2014: -4.7, 2015: 1.1, 2016: 0.1, 2017: 0.7, 2018: 0.8, 2019: 0.8, 2020: 0.8, 2021: 0.6, 2022: 1.9, 2023: 4.2, 2024: 4.0, 2025: 2.7 },\r\n    CP0451: { 2002: 4.8, 2003: 11.1, 2004: 18.8, 2005: 6.6, 2006: 2.6, 2007: 14.1, 2008: 9.8, 2009: 7.0, 2010: 7.2, 2011: 0.6, 2012: 3.3, 2013: -11.7, 2014: -11.2, 2015: -3.9, 2016: 0.0, 2017: 0.0, 2018: 0.0, 2019: 0.0, 2020: 0.0, 2021: 0.0, 2022: 10.1, 2023: 14.8, 2024: -2.0, 2025: 0.6 },\r\n    CP0452: { 2002: 5.1, 2003: 5.6, 2004: 10.6, 2005: 6.9, 2006: 11.9, 2007: 29.0, 2008: 19.9, 2009: 8.5, 2010: 10.5, 2011: 9.6, 2012: 7.9, 2013: -10.0, 2014: -13.2, 2015: -2.4, 2016: -0.8, 2017: 0.4, 2018: 0.7, 2019: 0.7, 2020: 0.1, 2021: 0.2, 2022: 47.4, 2023: 5.3, 2024: -9.2, 2025: 3.6 },\r\n    CP0454: { 2002: 5.3, 2003: 8.2, 2004: 12.3, 2005: 3.0, 2006: 10.6, 2007: 15.2, 2008: 6.6, 2009: 10.9, 2010: 6.4, 2011: 3.2, 2012: 7.5, 2013: 4.4, 2014: 2.3, 2015: 2.4, 2016: 3.2, 2017: 6.9, 2018: 11.3, 2019: 7.1, 2020: 2.7, 2021: 3.9, 2022: 25.9, 2023: 32.4, 2024: -2.5, 2025: 2.6 },\r\n    CP0455: { 2002: 6.4, 2003: 3.1, 2004: 11.7, 2005: 5.6, 2006: 2.2, 2007: 38.4, 2008: 6.5, 2009: 5.0, 2010: -13.0, 2011: 7.9, 2012: 8.1, 2013: -12.2, 2014: -10.5, 2015: -2.6, 2016: 0.0, 2017: 0.0, 2018: 0.0, 2019: 0.0, 2020: 0.0, 2021: 0.0, 2022: 0.0, 2023: 0.0, 2024: 0.0, 2025: 0.0 },\r\n    CP05: { 2002: 2.8, 2003: 0.7, 2004: 1.1, 2005: -0.3, 2006: -1.2, 2007: 1.5, 2008: 0.8, 2009: 3.3, 2010: 1.7, 2011: 0.2, 2012: 3.3, 2013: 0.9, 2014: -0.2, 2015: 0.4, 2016: 0.6, 2017: 0.1, 2018: 0.9, 2019: 2.1, 2020: 2.1, 2021: 4.9, 2022: 14.5, 2023: 15.0, 2024: 2.4, 2025: 2.0 },\r\n    CP061: { 2002: 8.6, 2003: 7.0, 2004: 7.0, 2005: 8.1, 2006: 4.1, 2007: 17.6, 2008: 1.9, 2009: 5.4, 2010: 5.7, 2011: 3.0, 2012: 4.3, 2013: 3.9, 2014: 1.9, 2015: 2.1, 2016: 2.0, 2017: 2.6, 2018: 2.4, 2019: 1.8, 2020: 2.2, 2021: 2.9, 2022: 4.2, 2023: 7.8, 2024: 5.9, 2025: 4.6 },\r\n    CP062: { 2002: 9.0, 2003: 8.8, 2004: 8.4, 2005: 7.2, 2006: 7.3, 2007: 29.3, 2008: -6.8, 2009: -1.3, 2010: 3.6, 2011: 2.6, 2012: 2.3, 2013: 2.2, 2014: 6.0, 2015: 8.3, 2016: 3.0, 2017: 4.8, 2018: 4.3, 2019: 6.3, 2020: 6.1, 2021: 7.4, 2022: 11.9, 2023: 14.7, 2024: 8.9, 2025: 9.3 },\r\n    CP063: { 2008: -56.2, 2009: -47.9, 2010: 4.7, 2011: 0.7, 2012: 0.7, 2013: 4.4, 2014: 2.8, 2015: 1.0, 2016: -0.5, 2017: 2.5, 2018: 2.0, 2019: 3.4, 2020: 1.7, 2021: 1.0, 2022: 2.4, 2023: 17.8, 2024: 8.3, 2025: 5.5 },\r\n    CP064: { 2003: 9.0, 2004: 11.4, 2005: 9.9, 2006: 6.0, 2007: 11.3, 2008: 5.6, 2009: 4.1, 2010: 4.3, 2011: 3.0, 2012: 4.4, 2013: 3.2, 2014: 4.6, 2015: 5.1, 2016: 5.1, 2017: 4.4, 2018: 2.4, 2019: 4.2, 2020: 6.8, 2021: 6.8, 2022: 11.3, 2023: 15.6, 2024: 9.8, 2025: 10.2 },\r\n    CP071: { 2002: -3.4, 2003: 0.5, 2004: 2.2, 2005: -0.7, 2006: -2.4, 2007: 2.3, 2008: 1.7, 2009: 5.3, 2010: 0.5, 2011: -1.2, 2012: -2.7, 2013: -2.1, 2014: 1.4, 2015: 2.9, 2016: 2.3, 2017: -0.2, 2018: -0.4, 2019: -0.3, 2020: 1.8, 2021: 4.5, 2022: 14.0, 2023: 3.1, 2024: -2.8, 2025: 1.7 },\r\n    CP0721: { 2002: 1.5, 2003: 2.3, 2004: 4.7, 2005: 2.5, 2006: 1.0, 2007: 3.3, 2008: 2.1, 2009: 4.0, 2010: 1.9, 2011: 1.2, 2012: 5.5, 2013: 1.6, 2014: 0.6, 2015: 1.5, 2016: 1.6, 2017: 2.1, 2018: 3.3, 2019: 3.7, 2020: 5.8, 2021: 7.1, 2022: 16.0, 2023: 16.8, 2024: 6.2, 2025: 4.9 },\r\n    CP0722: { 2002: -2.6, 2003: 4.3, 2004: 5.4, 2005: 9.5, 2006: 7.0, 2007: -1.2, 2008: 10.1, 2009: -7.5, 2010: 20.6, 2011: 15.2, 2012: 12.5, 2013: -2.0, 2014: -2.2, 2015: -12.2, 2016: -7.3, 2017: 7.0, 2018: 7.7, 2019: 0.3, 2020: -5.9, 2021: 22.3, 2022: 13.3, 2023: 20.8, 2024: 0.1, 2025: -2.2 },\r\n    CP0723: { 2002: 10.0, 2003: 7.0, 2004: 8.9, 2005: 7.3, 2006: 5.6, 2007: 6.8, 2008: 3.9, 2009: 4.9, 2010: 4.0, 2011: 1.6, 2012: 3.9, 2013: 1.9, 2014: 1.4, 2015: 1.0, 2016: 2.6, 2017: 3.6, 2018: 4.3, 2019: 5.6, 2020: 8.1, 2021: 7.9, 2022: 17.0, 2023: 20.0, 2024: 10.3, 2025: 10.0 },\r\n    CP0724: { 2002: 8.4, 2003: 9.9, 2004: 3.6, 2005: 7.8, 2006: 5.2, 2007: 3.6, 2008: 2.7, 2009: 3.9, 2010: 5.8, 2011: 5.3, 2012: 6.1, 2013: 3.8, 2014: 0.9, 2015: 5.8, 2016: 1.6, 2017: 2.0, 2018: 3.3, 2019: 4.6, 2020: -5.3, 2021: 4.5, 2022: 16.9, 2023: 19.0, 2024: 7.7, 2025: 15.1 },\r\n    CP073: { 2002: 6.2, 2003: 8.1, 2004: 11.5, 2005: 8.3, 2006: 8.5, 2007: 14.3, 2008: 7.9, 2009: 2.9, 2010: 11.2, 2011: 2.4, 2012: 0.5, 2013: 5.4, 2014: 2.0, 2015: -0.4, 2016: 0.1, 2017: -0.4, 2018: 1.5, 2019: 0.7, 2020: -2.7, 2021: -1.4, 2022: 9.1, 2023: 12.2, 2024: -0.3, 2025: -1.2 },\r\n    CP074: { 2002: 5.9, 2003: 10.5, 2004: 12.7, 2005: 8.8, 2006: 6.1, 2007: 12.3, 2008: 9.2, 2009: 6.3, 2010: 5.8, 2011: 8.2, 2012: 11.6, 2013: 4.5, 2014: 4.9, 2015: 1.5, 2016: 1.1, 2017: 4.6, 2018: 3.6, 2019: 4.6, 2020: 9.9, 2021: 7.6, 2022: 10.1, 2023: 20.4, 2024: 14.6, 2025: 4.9 },\r\n    CP08: { 2002: 0.1, 2003: -1.7, 2004: -0.3, 2005: -0.9, 2006: -3.6, 2007: -3.8, 2008: -2.5, 2009: -0.4, 2010: 0.3, 2011: -0.9, 2012: 2.5, 2013: 0.5, 2014: -0.1, 2015: -0.1, 2016: 0.5, 2017: -2.3, 2018: -4.8, 2019: -0.9, 2020: 0.0, 2021: -0.8, 2022: 0.1, 2023: 7.9, 2024: 7.1, 2025: 4.1 },\r\n    CP09: { 2002: 8.2, 2003: 7.0, 2004: 5.9, 2005: 3.2, 2006: 3.4, 2007: 5.4, 2008: 4.8, 2009: 5.2, 2010: 3.6, 2011: 2.0, 2012: 2.8, 2013: 1.8, 2014: 1.0, 2015: 1.7, 2016: 2.4, 2017: 2.0, 2018: 1.8, 2019: 3.4, 2020: 2.3, 2021: 2.7, 2022: 12.3, 2023: 17.6, 2024: 5.9, 2025: 5.5 },\r\n    CP10: { 2002: 10.0, 2003: 13.6, 2004: 12.6, 2005: 8.2, 2006: 8.0, 2007: 6.4, 2008: 4.4, 2009: 0.6, 2010: 0.6, 2011: -0.4, 2012: 1.8, 2013: 3.0, 2014: 3.6, 2015: 1.1, 2016: 0.3, 2017: 1.8, 2018: 2.3, 2019: 3.3, 2020: 3.7, 2021: 3.9, 2022: 6.6, 2023: 9.0, 2024: 6.8, 2025: 6.6 },\r\n    CP111: { 2002: 10.5, 2003: 9.0, 2004: 10.3, 2005: 5.8, 2006: 5.4, 2007: 8.0, 2008: 7.5, 2009: 6.6, 2010: 4.7, 2011: 3.0, 2012: 4.8, 2013: 3.4, 2014: 2.4, 2015: 2.6, 2016: 2.8, 2017: 3.5, 2018: 4.4, 2019: 6.7, 2020: 6.3, 2021: 6.1, 2022: 19.7, 2023: 24.0, 2024: 8.3, 2025: 8.6 },\r\n    CP112: { 2002: 6.2, 2003: 5.6, 2004: 9.8, 2005: 4.6, 2006: 6.4, 2007: 5.6, 2008: 3.7, 2009: 2.0, 2010: 0.4, 2011: -1.6, 2012: 2.5, 2013: 0.8, 2014: 2.5, 2015: 3.7, 2016: 2.3, 2017: 3.9, 2018: 5.6, 2019: 5.2, 2020: 4.0, 2021: 3.5, 2022: 10.0, 2023: 21.2, 2024: 5.3, 2025: 5.9 },\r\n    CP12: { 2002: 2.1, 2003: 6.0, 2004: 9.4, 2005: 4.0, 2006: 4.0, 2007: 5.3, 2008: 4.9, 2009: 2.3, 2010: -1.0, 2011: -2.7, 2012: 7.5, 2013: 18.5, 2014: 7.4, 2015: 1.5, 2016: 0.8, 2017: 1.1, 2018: 2.0, 2019: -0.3, 2020: 2.1, 2021: 4.1, 2022: 4.2, 2023: 10.8, 2024: 9.9, 2025: 4.1 },\r\n    CP13: { 2002: 6.6, 2003: 4.1, 2004: 4.2, 2005: 2.4, 2006: 2.4, 2007: 4.6, 2008: 3.4, 2009: 5.2, 2010: 3.7, 2011: 2.8, 2012: 5.7, 2013: 1.3, 2014: 1.4, 2015: 1.6, 2016: 1.2, 2017: 1.5, 2018: 2.6, 2019: 4.1, 2020: 4.0, 2021: 4.3, 2022: 11.8, 2023: 16.7, 2024: 6.8, 2025: 6.4 }\r\n  };\r\n  var SULY_R = { CP011: 168.88, CP012: 30.51, CP021: 28.85, CP023: 40.32, CP03: 44.52, CP041: 17.45, CP043: 11.18, CP044: 16.03, CP0451: 13.81, CP0452: 16.51, CP0454: 4.12, CP0455: 3.12, CP05: 52.67, CP061: 22.47, CP062: 19.98, CP063: 2.15, CP064: 0.56, CP071: 37.44, CP0721: 5.66, CP0722: 58.33, CP0723: 9.89, CP0724: 6.90, CP073: 13.39, CP074: 0.55, CP08: 39.90, CP09: 90.05, CP10: 16.39, CP111: 116.24, CP112: 22.92, CP12: 47.10, CP13: 42.11 };\r\n  var OSSZ_R = { 2002: 5.2, 2003: 4.7, 2004: 6.8, 2005: 3.5, 2006: 4.0, 2007: 7.9, 2008: 6.0, 2009: 4.0, 2010: 4.7, 2011: 3.9, 2012: 5.7, 2013: 1.7, 2014: 0.0, 2015: 0.1, 2016: 0.5, 2017: 2.4, 2018: 2.9, 2019: 3.4, 2020: 3.4, 2021: 5.2, 2022: 15.3, 2023: 17.0, 2024: 3.7, 2025: 4.4 };\r\n\r\n  var CSOPORT_R = [\r\n    { fejezet: '\u00c9lelmiszer \u00e9s ital', nev: '\u00c9lelmiszerek (bolti)', rovid: '\u00c9lelmiszer', hbs: 0, kodok: ['CP011'], sugo: 'keny\u00e9r, h\u00fas, tej, z\u00f6lds\u00e9g, gy\u00fcm\u00f6lcs \u2013 boltban v\u00e1s\u00e1rolva' },\r\n    { nev: 'Alkoholmentes italok', rovid: '\u00dcd\u00edt\u0151, k\u00e1v\u00e9, tea', hbs: 0, kodok: ['CP012'], sugo: '\u00fcd\u00edt\u0151, \u00e1sv\u00e1nyv\u00edz, gy\u00fcm\u00f6lcsl\u00e9, k\u00e1v\u00e9, tea' },\r\n    { nev: 'Szeszes italok', rovid: 'Szeszes ital', hbs: 1, kodok: ['CP021'], sugo: 's\u00f6r, bor, p\u00e1linka, t\u00f6m\u00e9ny ital' },\r\n    { nev: 'Doh\u00e1ny\u00e1ruk', rovid: 'Doh\u00e1ny', hbs: 1, kodok: ['CP023'], sugo: 'cigaretta, doh\u00e1ny, hev\u00edt\u00e9ses doh\u00e1nyterm\u00e9k' },\r\n    { fejezet: 'Ruh\u00e1zat', nev: 'Ruh\u00e1zat, l\u00e1bbeli', rovid: 'Ruh\u00e1zat', hbs: 2, kodok: ['CP03'], sugo: 'ruha, cip\u0151 \u00e9s jav\u00edt\u00e1suk' },\r\n    { fejezet: 'Lakhat\u00e1s \u00e9s rezsi', nev: 'Lakb\u00e9r (alb\u00e9rlet)', rovid: 'Lakb\u00e9r', hbs: 3, kodok: ['CP041'], sugo: 'b\u00e9rlak\u00e1s, alb\u00e9rlet havi d\u00edja (a saj\u00e1t lak\u00e1s hitele nem ide tartozik)' },\r\n    { nev: 'Lak\u00e1sjav\u00edt\u00e1s, karbantart\u00e1s', rovid: 'Lak\u00e1sjav\u00edt\u00e1s', hbs: 3, kodok: ['CP043'], sugo: 'fest\u00e9s, burkol\u00e1s, szerel\u0151, jav\u00edt\u00f3anyagok' },\r\n    { nev: 'V\u00edz, csatorna, szem\u00e9tsz\u00e1ll\u00edt\u00e1s', rovid: 'V\u00edz, csatorna, szem\u00e9t', hbs: 3, kodok: ['CP044'], sugo: 'v\u00edzd\u00edj, csatornad\u00edj, szem\u00e9tsz\u00e1ll\u00edt\u00e1s, k\u00e9m\u00e9nysepr\u00e9s' },\r\n    { nev: 'Villany', rovid: 'Villany', hbs: 3, kodok: ['CP0451'], sugo: '\u00e1ramsz\u00e1mla' },\r\n    { nev: 'G\u00e1z', rovid: 'G\u00e1z', hbs: 3, kodok: ['CP0452'], sugo: 'vezet\u00e9kes g\u00e1z, PB-g\u00e1z' },\r\n    { nev: 'T\u00e1vf\u0171t\u00e9s, melegv\u00edz', rovid: 'T\u00e1vf\u0171t\u00e9s', hbs: 3, kodok: ['CP0455'], sugo: 't\u00e1vh\u0151 \u00e9s t\u00e1vh\u0151s melegv\u00edz-szolg\u00e1ltat\u00e1s' },\r\n    { nev: 'T\u0171zifa, sz\u00e9n, pellet', rovid: 'T\u0171zifa, sz\u00e9n', hbs: 3, kodok: ['CP0454'], sugo: 't\u0171zifa, sz\u00e9n, brikett, pellet' },\r\n    { fejezet: 'H\u00e1ztart\u00e1s \u00e9s eg\u00e9szs\u00e9g', nev: 'Lakberendez\u00e9s, h\u00e1ztart\u00e1s', rovid: 'H\u00e1ztart\u00e1s', hbs: 4, kodok: ['CP05'], sugo: 'b\u00fator, h\u00e1ztart\u00e1si g\u00e9p, ed\u00e9ny, tiszt\u00edt\u00f3szer, takar\u00edt\u00e1s' },\r\n    { nev: 'Gy\u00f3gyszer, gy\u00f3gy\u00e1szati term\u00e9kek', rovid: 'Gy\u00f3gyszer', hbs: 5, kodok: ['CP061'], sugo: 'gy\u00f3gyszer, vitamin, szem\u00fcveg, gy\u00f3gy\u00e1szati seg\u00e9deszk\u00f6z' },\r\n    { nev: 'Orvos, fogorvos, k\u00f3rh\u00e1z', rovid: 'Orvos, fogorvos', hbs: 5, kodok: ['CP062', 'CP063', 'CP064'], sugo: 'mag\u00e1nrendel\u00e9s, fogorvos, labor, k\u00f3rh\u00e1zi ell\u00e1t\u00e1s d\u00edja' },\r\n    { fejezet: 'K\u00f6zleked\u00e9s', nev: 'Aut\u00f3v\u00e1s\u00e1rl\u00e1s', rovid: 'Aut\u00f3v\u00e1s\u00e1rl\u00e1s', hbs: 6, kodok: ['CP071'], sugo: '\u00faj \u00e9s haszn\u00e1lt aut\u00f3, motor, ker\u00e9kp\u00e1r' },\r\n    { nev: '\u00dczemanyag', rovid: '\u00dczemanyag', hbs: 6, kodok: ['CP0722'], sugo: 'benzin, g\u00e1zolaj, aut\u00f3g\u00e1z, elektromos t\u00f6lt\u00e9s' },\r\n    { nev: 'Aut\u00f3 fenntart\u00e1sa', rovid: 'Aut\u00f3 fenntart\u00e1sa', hbs: 6, kodok: ['CP0721', 'CP0723', 'CP0724'], sugo: 'szerviz, alkatr\u00e9sz, gumi, parkol\u00e1s, aut\u00f3p\u00e1lya-matrica' },\r\n    { nev: 'T\u00f6megk\u00f6zleked\u00e9s, utaz\u00e1s', rovid: 'T\u00f6megk\u00f6zleked\u00e9s', hbs: 6, kodok: ['CP073', 'CP074'], sugo: 'b\u00e9rlet, vonat, busz, taxi, rep\u00fcl\u0151jegy, k\u00f6lt\u00f6ztet\u00e9s' },\r\n    { fejezet: 'Kommunik\u00e1ci\u00f3, szabadid\u0151, oktat\u00e1s', nev: 'Telefon, internet, eszk\u00f6z\u00f6k', rovid: 'Telefon, internet', hbs: 7, kodok: ['CP08'], sugo: 'mobil- \u00e9s netel\u0151fizet\u00e9s, telefon, sz\u00e1m\u00edt\u00f3g\u00e9p, posta' },\r\n    { nev: 'Szabadid\u0151, sport, kult\u00fara', rovid: 'Szabadid\u0151', hbs: 8, kodok: ['CP09'], sugo: 'sport, hobbi, k\u00f6nyv, mozi, sz\u00ednh\u00e1z, h\u00e1zi\u00e1llat, szervezett utaz\u00e1s' },\r\n    { nev: 'Oktat\u00e1s', rovid: 'Oktat\u00e1s', hbs: 9, kodok: ['CP10'], sugo: '\u00f3voda, iskola, egyetem, tanfolyam d\u00edja' },\r\n    { fejezet: 'Vend\u00e9gl\u00e1t\u00e1s \u00e9s egy\u00e9b', nev: '\u00c9tterem, k\u00e1v\u00e9z\u00f3, menza', rovid: '\u00c9tterem, menza', hbs: 10, kodok: ['CP111'], sugo: '\u00e9tterem, k\u00e1v\u00e9z\u00f3, b\u00fcf\u00e9, munkahelyi \u00e9s iskolai \u00e9tkez\u00e9s, \u00e9telrendel\u00e9s' },\r\n    { nev: 'Sz\u00e1ll\u00e1s', rovid: 'Sz\u00e1ll\u00e1s', hbs: 10, kodok: ['CP112'], sugo: 'sz\u00e1lloda, panzi\u00f3, koll\u00e9gium' },\r\n    { nev: 'Biztos\u00edt\u00e1s, p\u00e9nz\u00fcgyi d\u00edjak', rovid: 'Biztos\u00edt\u00e1s', hbs: 11, kodok: ['CP12'], sugo: 'lak\u00e1s-, \u00e9let- \u00e9s casco-biztos\u00edt\u00e1s, banki d\u00edjak' },\r\n    { nev: 'Test\u00e1pol\u00e1s, egy\u00e9b', rovid: 'Test\u00e1pol\u00e1s, egy\u00e9b', hbs: 11, kodok: ['CP13'], sugo: 'kozmetikum, fodr\u00e1sz, \u00f3ra, \u00e9kszer, szoci\u00e1lis szolg\u00e1ltat\u00e1sok' }\r\n  ];\r\n  \/* DEVIZ\u00c1BAN FIZETETT KIAD\u00c1SOK\r\n     Amit k\u00f6zvetlen\u00fcl deviz\u00e1ban fizetsz (k\u00fclf\u00f6ldi el\u0151fizet\u00e9s, webshop, utaz\u00e1s), annak a forintban\r\n     m\u00e9rt dr\u00e1gul\u00e1sa = (1 + a k\u00fclf\u00f6ldi infl\u00e1ci\u00f3) \u00d7 (az \u00e1rfolyam v\u00e1ltoz\u00e1sa) \u2212 1.\r\n     arfolyam: \u00e9ves \u00e1tlagos \u00e1rfolyam, Ft \/ 1 egys\u00e9g. Forr\u00e1s: Vil\u00e1gbank PA.NUS.FCRF (HUF\/USD, \u00e9s az\r\n       eur\u00f3\u00f6vezet EUR\/USD-je, ebb\u0151l HUF\/EUR); a 2026* \u00e9rt\u00e9k az Eurostat havi \u00e1tlag\u00e1rfolyamaib\u00f3l\r\n       (ert_bil_eur_m, janu\u00e1r\u2013augusztus), a 2025-\u00f6s Vil\u00e1gbank-\u00e9rt\u00e9khez igaz\u00edtva.\r\n     inflacio: USD \u2013 Vil\u00e1gbank FP.CPI.TOTL.ZG (1990\u20132024), 2025\u20132026*: BLS CPI-U (havi indexek\r\n       \u00e1tlaga; 2025 okt\u00f3ber\u00e9r\u0151l a korm\u00e1nyzati le\u00e1ll\u00e1s miatt nincs adat, 2026: janu\u00e1r\u2013szeptember);\r\n       EUR \u2013 Vil\u00e1gbank, eur\u00f3\u00f6vezet (1999\u20132025), 2026*: Eurostat HICP, eur\u00f3\u00f6vezet, janu\u00e1r\u2013j\u00falius. *\/\r\n  var DEVIZAK = {\r\n    USD: {\r\n      nev: 'amerikai doll\u00e1r', jel: 'USD', inflNev: 'amerikai infl\u00e1ci\u00f3', hoz: 'a doll\u00e1rhoz', alany: 'A doll\u00e1r', elozetesEv: 2026,\r\n      arfolyam: { 1989: 59.07, 1990: 63.21, 1991: 74.74, 1992: 78.99, 1993: 91.93, 1994: 105.16, 1995: 125.68, 1996: 152.65, 1997: 186.79, 1998: 214.40, 1999: 237.15, 2000: 282.18, 2001: 286.49, 2002: 257.89, 2003: 224.31, 2004: 202.75, 2005: 199.58, 2006: 210.39, 2007: 183.63, 2008: 172.11, 2009: 202.34, 2010: 207.94, 2011: 201.06, 2012: 225.10, 2013: 223.69, 2014: 232.60, 2015: 279.33, 2016: 281.52, 2017: 274.43, 2018: 270.21, 2019: 290.66, 2020: 308.00, 2021: 303.14, 2022: 372.60, 2023: 353.09, 2024: 365.69, 2025: 353.14, 2026: 317.76 },\r\n      inflacio: { 1990: 5.398, 1991: 4.235, 1992: 3.029, 1993: 2.952, 1994: 2.607, 1995: 2.805, 1996: 2.931, 1997: 2.338, 1998: 1.552, 1999: 2.188, 2000: 3.377, 2001: 2.826, 2002: 1.586, 2003: 2.270, 2004: 2.677, 2005: 3.393, 2006: 3.226, 2007: 2.853, 2008: 3.839, 2009: -0.356, 2010: 1.640, 2011: 3.157, 2012: 2.069, 2013: 1.465, 2014: 1.622, 2015: 0.119, 2016: 1.262, 2017: 2.130, 2018: 2.443, 2019: 1.812, 2020: 1.234, 2021: 4.698, 2022: 8.003, 2023: 4.116, 2024: 2.950, 2025: 2.6, 2026: 3.4 }\r\n    },\r\n    EUR: {\r\n      nev: 'eur\u00f3', jel: 'EUR', inflNev: 'eur\u00f3\u00f6vezeti infl\u00e1ci\u00f3', hoz: 'az eur\u00f3hoz', alany: 'Az eur\u00f3', elozetesEv: 2026,\r\n      arfolyam: { 1999: 252.74, 2000: 260.62, 2001: 256.59, 2002: 243.85, 2003: 253.73, 2004: 252.20, 2005: 248.30, 2006: 264.17, 2007: 251.66, 2008: 253.14, 2009: 282.22, 2010: 275.68, 2011: 279.86, 2012: 289.21, 2013: 297.09, 2014: 309.01, 2015: 309.92, 2016: 311.62, 2017: 310.02, 2018: 319.11, 2019: 325.39, 2020: 351.79, 2021: 358.54, 2022: 392.36, 2023: 381.78, 2024: 395.82, 2025: 399.04, 2026: 370.66 },\r\n      inflacio: { 1999: 2.1, 2000: 3.0, 2001: 2.9, 2002: 2.5, 2003: 2.1, 2004: 2.2, 2005: 2.6, 2006: 2.8, 2007: 2.5, 2008: 4.2, 2009: 0.5, 2010: 1.5, 2011: 3.3, 2012: 2.6, 2013: 1.2, 2014: 0.2, 2015: -0.1, 2016: 0.1, 2017: 1.4, 2018: 1.7, 2019: 1.4, 2020: 0.2, 2021: 2.5, 2022: 8.5, 2023: 5.9, 2024: 2.3, 2025: 2.5, 2026: 2.6 }\r\n    }\r\n  };\r\n  \/* A deviz\u00e1s t\u00e9tel \u00e1rszintje a kezd\u0151\u00e9vhez k\u00e9pest (1 = v\u00e1ltozatlan), vagy null, ha hi\u00e1nyzik adat.\r\n     felbontva: { infl: csak a k\u00fclf\u00f6ldi infl\u00e1ci\u00f3, arf: csak az \u00e1rfolyam } *\/\r\n  function devizaRel(kod, tol, ev) {\r\n    var d = DEVIZAK[kod];\r\n    if (!d || d.arfolyam[tol] == null || d.arfolyam[ev] == null) return null;\r\n    var infl = 1;\r\n    for (var t = tol + 1; t <= ev; t++) { if (d.inflacio[t] == null) return null; infl *= 1 + d.inflacio[t] \/ 100; }\r\n    var arf = d.arfolyam[ev] \/ d.arfolyam[tol];\r\n    return { rel: infl * arf, infl: infl, arf: arf };\r\n  }\r\n  function devizaEvek(kod) {\r\n    var d = DEVIZAK[kod], ev = Object.keys(d.arfolyam).map(Number);\r\n    return { elso: Math.max(Math.min.apply(null, ev), Math.min.apply(null, Object.keys(d.inflacio).map(Number)) - 1), utolso: Math.max.apply(null, ev) };\r\n  }\r\n\r\n  \/* J\u00d6VEDELEM SZERINTI KOS\u00c1R (csak a r\u00e9szletes n\u00e9zetben)\r\n     KSH h\u00e1ztart\u00e1si k\u00f6lts\u00e9gvet\u00e9si felv\u00e9tel: az egy f\u0151re jut\u00f3 \u00e9ves kiad\u00e1sok COICOP-f\u0151csoportok\r\n     \u00e9s j\u00f6vedelmi tizedek szerint, 2020 (STADAT 14.8.1.14, jov0025 \u2013 ez a legfrissebb ilyen bont\u00e1s).\r\n     Sorok: COICOP 01\u201312 (a CSOPORT_R sorok \"hbs\" mez\u0151je mutatja, melyikbe tartoznak),\r\n     oszlopok: 1\u201310. j\u00f6vedelmi tized, a 11. az \u00f6sszes h\u00e1ztart\u00e1s \u00e1tlaga; Ft\/f\u0151\/\u00e9v.\r\n     A f\u0151csoporton bel\u00fcli megoszt\u00e1s a HICP-s\u00falyok szerint. *\/\r\n  var HBS_TIZED = [\r\n    [187370, 226277, 244653, 304190, 335891, 369519, 407204, 433817, 493489, 556095, 357493],\r\n    [29437, 34595, 36343, 38469, 50675, 45925, 53113, 63816, 68828, 91162, 51439],\r\n    [16985, 23685, 28826, 36155, 38292, 44290, 53296, 65398, 82443, 124182, 51834],\r\n    [131940, 152630, 181265, 199491, 237556, 259030, 276944, 314397, 370410, 406257, 254209],\r\n    [19432, 31234, 37182, 47388, 55651, 63062, 73193, 81643, 96711, 126505, 63662],\r\n    [21759, 25087, 37357, 53748, 69620, 85278, 79156, 104064, 113955, 146809, 74213],\r\n    [42247, 56624, 74876, 106289, 119008, 143589, 162343, 174516, 236547, 345020, 147454],\r\n    [39325, 44121, 66617, 82147, 89520, 98815, 106342, 130389, 156823, 191845, 101224],\r\n    [20530, 27778, 36877, 48016, 59837, 82426, 93294, 103139, 150804, 254907, 88873],\r\n    [7508, 6669, 8091, 9819, 10657, 13472, 13098, 14222, 14127, 19353, 11762],\r\n    [16331, 24665, 27196, 31677, 36450, 48774, 55479, 61983, 83348, 132484, 52405],\r\n    [35165, 44283, 59191, 79954, 94655, 102914, 127281, 153821, 189856, 242180, 113835]\r\n  ];\r\n  \/* KERESETI TIZEDEK \u2013 KSH, 2026. I. f\u00e9l\u00e9v, teljes munkaid\u0151ben alkalmaz\u00e1sban \u00e1ll\u00f3k havi brutt\u00f3 keresete\r\n     (NAV-j\u00e1rul\u00e9kbevall\u00e1sokb\u00f3l; a KSH a Bankmonitor k\u00e9r\u00e9s\u00e9re adta ki, 2026. okt\u00f3ber 2.).\r\n     Az 1\u20139. tized fels\u0151 hat\u00e1ra, Ft\/h\u00f3. Nyilv\u00e1nosan csak az 1., 2., 5., 8. \u00e9s 9. hat\u00e1r sz\u00e1mszer\u0171\r\n     (a 8. a 9. tized 317 500 Ft-os sz\u00e9less\u00e9g\u00e9b\u0151l), a 3. kb. 450 ezer Ft (\"t\u00edzb\u0151l h\u00e1rom 450 ezer alatt\").\r\n     A 4., 6. \u00e9s 7. hat\u00e1r becsl\u00e9s: lognorm\u00e1lis interpol\u00e1ci\u00f3 a szomsz\u00e9dos ismert pontok k\u00f6z\u00f6tt.\r\n     A KSH \u00e9vente (f\u00e9l\u00e9vente) friss\u00edti; \u00faj adatn\u00e1l ezt a t\u00f6mb\u00f6t kell \u00e1t\u00edrni. *\/\r\n  var KERESETI_TIZED = {\r\n    idoszak: '2026. I. f\u00e9l\u00e9v',\r\n    brutto: [347286, 382852, 450000, 524553, 605364, 693971, 803178, 953000, 1270500],\r\n    becsult: [false, false, true, true, false, true, true, false, false],\r\n    \/\/ nett\u00f3\/brutt\u00f3 ar\u00e1ny a kedvezm\u00e9nyekkel egy\u00fctt: a fels\u0151 tized hat\u00e1r\u00e1n a KSH szerint 887 443 \/ 1 270 500\r\n    nettoArany: 887443 \/ 1270500,\r\n    median: 605364          \/\/ a tizedt\u00e1bla brutt\u00f3 medi\u00e1nja (= 5. hat\u00e1r)\r\n  };\r\n  \/* B\u00e9remelked\u00e9s k\u00f6vet\u00e9se: a hat\u00e1rokat a legfrissebb havi brutt\u00f3 medi\u00e1nkereset (KSH gyorst\u00e1j\u00e9koztat\u00f3)\r\n     \u00e9s a tizedt\u00e1bla medi\u00e1nj\u00e1nak ar\u00e1ny\u00e1val szorozzuk fel. A PHP-snippet havonta friss\u00edti (HU_ker.brutto_median). *\/\r\n  var MEDIAN_MOST = { brutto: 611400, honap: '2026. augusztus' };\r\n  function keresetiIgazitas() { return Math.max(1, MEDIAN_MOST.brutto \/ KERESETI_TIZED.median); }\r\n  \/* Nett\u00f3\/brutt\u00f3 ar\u00e1ny hat\u00e1ronk\u00e9nt: a medi\u00e1nn\u00e1l a KSH havi nett\u00f3\/brutt\u00f3 medi\u00e1nj\u00e1nak ar\u00e1nya (2026. aug.:\r\n     433 400 \/ 611 400 = 0,709), a fels\u0151 tized hat\u00e1r\u00e1n 0,6985; a medi\u00e1n alatt az el\u0151bbit, a kett\u0151 k\u00f6z\u00f6tt\r\n     line\u00e1risan \u00e1tmenetet haszn\u00e1lunk (magasabb fizet\u00e9sn\u00e9l a kedvezm\u00e9nyek ar\u00e1nya kisebb). *\/\r\n  function keresetiHatarokNetto() {\r\n    var f = keresetiIgazitas(), aMed = ATLAG_NETTO.ertek \/ MEDIAN_MOST.brutto, aFelso = KERESETI_TIZED.nettoArany;\r\n    if (!(aMed > 0.6 && aMed < 0.8)) aMed = aFelso;\r\n    return KERESETI_TIZED.brutto.map(function (h, i) { var a = i <= 4 ? aMed : aMed + (aFelso - aMed) * (i - 4) \/ 4; return h * f * a; });\r\n  }\r\n  \/* R\u00e9gebbi forint \u2192 mai forint (a 2020-as HK\u00c9F-kiad\u00e1sokhoz): a brutt\u00f3 \u00e1tlagkereset ar\u00e1nya (KSH). *\/\r\n  var KERESET_SZORZO = 740600 \/ 403600;\r\n\r\n  \/* A j\u00f6vedelem szerinti KOS\u00c1RHOZ a h\u00e1ztart\u00e1si felv\u00e9tel saj\u00e1t tizedei kellenek (egy f\u0151re jut\u00f3 \u00e9ves nett\u00f3\r\n     j\u00f6vedelem, 2020, Ft; a szomsz\u00e9dos tizedek \u00e1tlagainak felez\u0151pontjai, KSH jov0005), mert a kiad\u00e1si adat is\r\n     egy f\u0151re jut\u00f3. Ez csak a kos\u00e1r kiv\u00e1laszt\u00e1s\u00e1hoz kell, a vonalz\u00f3 a kereseti tizedet mutatja. *\/\r\n  var HAZTARTAS_TIZED_2020 = [722673, 969311, 1181422, 1382321, 1563008, 1783077, 2024992, 2356573, 3341252];\r\n  var MAX_FO = 20;   \/\/ a h\u00e1ztart\u00e1s l\u00e9tsz\u00e1m\u00e1nak \u00e9s a keres\u0151k sz\u00e1m\u00e1nak fels\u0151 hat\u00e1ra\r\n  function haztartasiTized(haviJov, letszam) {\r\n    var egyFore2020 = haviJov * 12 \/ Math.max(1, letszam) \/ KERESET_SZORZO, d = 0;\r\n    while (d < HAZTARTAS_TIZED_2020.length && egyFore2020 > HAZTARTAS_TIZED_2020[d]) d++;\r\n    return d;\r\n  }\r\n\r\n  \/\/ Melyik kereseti tizedbe esik egy keres\u0151 (0\u20139)? A h\u00e1ztart\u00e1s nett\u00f3 j\u00f6vedelm\u00e9t a keres\u0151k sz\u00e1m\u00e1val osztjuk.\r\n  function jovedelmiTized(haviJov, kereso) {\r\n    var fore = haviJov \/ Math.max(1, kereso || 1), h = keresetiHatarokNetto(), d = 0;\r\n    while (d < h.length && fore > h[d]) d++;\r\n    return { d: d, fore: fore };\r\n  }\r\n  function tizedKosar(R, d) {\r\n    var csopSuly = {};\r\n    R.csoportok.forEach(function (cs, i) { csopSuly[cs.hbs] = (csopSuly[cs.hbs] || 0) + R.suly.atlag[i]; });\r\n    var w = R.csoportok.map(function (cs, i) { return HBS_TIZED[cs.hbs][d] * R.suly.atlag[i] \/ csopSuly[cs.hbs]; });\r\n    var ossz = w.reduce(function (a, b) { return a + b; }, 0);\r\n    return { suly: w.map(function (v) { return v \/ ossz * 100; }), havi: ossz \/ 12 * KERESET_SZORZO };\r\n  }\r\n\r\n  \/* A r\u00e9szletes sorok megfeleltet\u00e9se a 7 KSH-f\u0151csoportnak (a j\u00f6vedelem szerinti kos\u00e1rhoz a 7 csoportos\r\n     n\u00e9zetben). 0 \u00e9lelmiszer (az \u00e9ttermi \u00e9tkez\u00e9s is), 1 szeszes ital, doh\u00e1ny, 2 ruh\u00e1zat, 3 tart\u00f3s cikkek,\r\n     4 h\u00e1ztart\u00e1si energia, 5 egy\u00e9b cikkek, \u00fczemanyag, 6 szolg\u00e1ltat\u00e1sok. A vegyes sorokn\u00e1l becs\u00fclt ar\u00e1nyok. *\/\r\n  var R_TO_7 = [\r\n    { 0: 1 }, { 0: 1 }, { 1: 1 }, { 1: 1 }, { 2: 1 }, { 6: 1 }, { 5: 0.5, 6: 0.5 }, { 6: 1 },\r\n    { 4: 1 }, { 4: 1 }, { 4: 1 }, { 4: 1 },\r\n    { 3: 0.6, 5: 0.3, 6: 0.1 }, { 5: 1 }, { 6: 1 },\r\n    { 3: 1 }, { 5: 1 }, { 5: 0.3, 6: 0.7 }, { 6: 1 },\r\n    { 6: 0.8, 3: 0.2 }, { 6: 0.5, 5: 0.3, 3: 0.2 }, { 6: 1 },\r\n    { 0: 1 }, { 6: 1 }, { 6: 1 }, { 5: 0.5, 6: 0.5 }\r\n  ];\r\n  \/* A tized kosara a 7 csoportban: a KSH hivatalos \u00e1tlagkosar\u00e1t a tized \u00e9s az \u00f6sszes h\u00e1ztart\u00e1s\r\n     k\u00f6lt\u00e9si szerkezet\u00e9nek ar\u00e1ny\u00e1val m\u00f3dos\u00edtjuk (\u00edgy a KSH-s\u00falyok maradnak az alap). *\/\r\n  function tizedKosar7(R7, RR, d) {\r\n    var map = function (suly) {\r\n      var g = [0, 0, 0, 0, 0, 0, 0];\r\n      suly.forEach(function (w, i) { Object.keys(R_TO_7[i]).forEach(function (c) { g[c] += w * R_TO_7[i][c]; }); });\r\n      return g;\r\n    };\r\n    var tized = tizedKosar(RR, d), atlag = tizedKosar(RR, 10);\r\n    var gt = map(tized.suly), ga = map(atlag.suly);\r\n    var w = R7.suly.atlag.map(function (v, c) { return ga[c] > 0 ? v * gt[c] \/ ga[c] : v; });\r\n    var ossz = w.reduce(function (a, b) { return a + b; }, 0);\r\n    return { suly: w.map(function (v) { return v \/ ossz * 100; }), havi: tized.havi };\r\n  }\r\n\r\n  \/\/ Gyorskapcsol\u00f3k a r\u00e9szletes kos\u00e1rhoz: melyik sorokat \u00edrj\u00e1k \u00e1t (a CSOPORT_R sorsz\u00e1mai)\r\n  var ELETHELYZETEK = {\r\n    dohany: { sorok: [3], nev: 'Nem doh\u00e1nyzom' },\r\n    alkohol: { sorok: [2], nev: 'Nem iszom alkoholt' },\r\n    auto: { sorok: [15, 16, 17], nev: 'Nincs aut\u00f3m' },\r\n    alberlet: { sorok: [5], nev: 'Alb\u00e9rletben lakom', ft: 200000, szazalek: 30 },   \/\/ p\u00e9lda\u00e9rt\u00e9k, a felhaszn\u00e1l\u00f3 \u00e1t\u00edrja\r\n    orvos: { sorok: [14], nev: 'Mag\u00e1norvoshoz j\u00e1rok', ft: 30000, szazalek: 6 }      \/\/ p\u00e9lda\u00e9rt\u00e9k, a felhaszn\u00e1l\u00f3 \u00e1t\u00edrja\r\n  };\r\n  \/* F\u0170T\u00c9SM\u00d3D \u00c9S NAPELEM (r\u00e9szletes n\u00e9zet). Az energiasorok (villany, g\u00e1z, t\u00e1vf\u0171t\u00e9s, t\u0171zifa)\r\n     egy\u00fcttes \u00f6sszeg\u00e9t a f\u0171t\u00e9s m\u00f3dja szerint osztjuk sz\u00e9t. A megoszl\u00e1s jellemz\u0151 becsl\u00e9s\r\n     (a f\u0171t\u00e9s a h\u00e1ztart\u00e1si energiak\u00f6lts\u00e9g nagyobbik r\u00e9sze), mindenki \u00e1t\u00edrhatja a saj\u00e1tj\u00e1ra. *\/\r\n  var ENERGIA_SOROK = { villany: 8, gaz: 9, tavho: 10, fa: 11 };\r\n  var FUTESMODOK = {\r\n    gaz: { nev: 'G\u00e1z', megoszlas: { villany: 0.35, gaz: 0.65 } },\r\n    tavho: { nev: 'T\u00e1vh\u0151', megoszlas: { villany: 0.40, tavho: 0.60 } },\r\n    villany: { nev: 'Villany (pl. h\u0151szivatty\u00fa)', megoszlas: { villany: 1 } },\r\n    fa: { nev: 'Fa, sz\u00e9n, pellet', megoszlas: { villany: 0.35, fa: 0.65 } }\r\n  };\r\n\r\n  \/* A k\u00e9t kateg\u00f3riarendszer. suly.atlag: a kiindul\u00f3 (\u00e1tlag)kos\u00e1r %-ban.\r\n     7 csoport: KSH, \"A fogyaszt\u00e1si kiad\u00e1sok megoszl\u00e1sa\", 2026. \u00e9vi s\u00falyok\r\n       https:\/\/www.ksh.hu\/gyorstajekoztatok\/modszertan\/farmodsz26.html\r\n     R\u00e9szletes: Eurostat HICP-s\u00falyok (prc_hicp_iw, HU), az alcsoportokb\u00f3l \u00f6sszeadva *\/\r\n  var RENDSZEREK = {\r\n    '7': {\r\n      nev: '7 KSH-f\u0151csoport', csoportok: CSOPORT7, evek: EV7, ossz: OSSZ7, nyugdijas: NY7,\r\n      suly: { ev: 2026, atlag: [30.656, 7.748, 4.498, 7.997, 4.115, 18.538, 26.448], nyugdijas: [32.804, 6.916, 2.629, 6.666, 5.445, 19.104, 26.436] },\r\n      elozetesEv: 2026, elozetesHonapok: 'janu\u00e1r\u2013szeptemberi',\r\n      osszNev: 'KSH-\u00e1tlag (hivatalos infl\u00e1ci\u00f3)', osszMondat: 'a hivatalos', elteresNev: 'Elt\u00e9r\u00e9s a KSH-\u00e1tlagt\u00f3l', kosarNev: 'KSH-\u00e1tlagkos\u00e1r', rovidNev: 'KSH'\r\n    },\r\n    'R': {\r\n      nev: 'R\u00e9szletes kos\u00e1r (Eurostat HICP)', csoportok: CSOPORT_R, kodAdat: KOD_R, kodSuly: SULY_R, sulyEv: 2026, kodElozetes: null,\r\n      evek: {}, ossz: OSSZ_R, nyugdijas: null, suly: { ev: 2026, atlag: [], nyugdijas: null },\r\n      elozetesEv: null, elozetesHonapok: '',\r\n      osszNev: 'Harmoniz\u00e1lt \u00e1tlag (HICP)', osszMondat: 'a harmoniz\u00e1lt \u00e1tlag', elteresNev: 'Elt\u00e9r\u00e9s az \u00e1tlagt\u00f3l', kosarNev: '\u00c1tlagkos\u00e1r', rovidNev: '\u00c1tlag'\r\n    }\r\n  };\r\n\r\n  \/* A r\u00e9szletes rendszer soronk\u00e9nti adatainak fel\u00e9p\u00edt\u00e9se az alcsoportokb\u00f3l.\r\n     Csak azokat az \u00e9veket tartjuk meg, amelyekre minden sorhoz van adat. *\/\r\n  function reszletesEpit(R) {\r\n    var adat = {};\r\n    Object.keys(R.kodAdat).forEach(function (k) { adat[k] = Object.assign({}, R.kodAdat[k]); });\r\n    var el = R.kodElozetes;\r\n    if (el && el.ev && !(R.kodAdat.CP011 && R.kodAdat.CP011[el.ev] != null)) {\r\n      Object.keys(el.ertekek || {}).forEach(function (k) { if (adat[k]) adat[k][el.ev] = el.ertekek[k]; });\r\n      R.elozetesEv = el.ev; R.elozetesHonapok = el.honapok || '';\r\n    } else { R.elozetesEv = null; }\r\n    var evek = {};\r\n    Object.keys(adat).forEach(function (k) { Object.keys(adat[k]).forEach(function (e) { evek[e] = true; }); });\r\n    R.evek = {};\r\n    Object.keys(evek).map(Number).sort().forEach(function (ev) {\r\n      var sor = R.csoportok.map(function (cs) {\r\n        var s = 0, w = 0;\r\n        cs.kodok.forEach(function (k) {\r\n          var v = adat[k] && adat[k][ev], ws = R.kodSuly[k] || 0;\r\n          if (v != null && isFinite(v) && ws > 0) { s += ws * v; w += ws; }\r\n        });\r\n        return w > 0 ? s \/ w : null;\r\n      });\r\n      if (sor.every(function (v) { return v != null; }) && R.ossz[ev] != null) R.evek[ev] = sor;\r\n    });\r\n    var osszSuly = 0;\r\n    var sulyok = R.csoportok.map(function (cs) { var w = 0; cs.kodok.forEach(function (k) { w += R.kodSuly[k] || 0; }); osszSuly += w; return w; });\r\n    R.suly = { ev: R.sulyEv, atlag: sulyok.map(function (w) { return w \/ osszSuly * 100; }), nyugdijas: null };\r\n  }\r\n  reszletesEpit(RENDSZEREK.R);\r\n\r\n  var PELDA_OSSZEG = 400000;     \/\/ Ft m\u00f3dban a kiindul\u00f3 kos\u00e1r havi \u00f6sszege (csak p\u00e9lda)\r\n  \/* A j\u00f6vedelem mez\u0151 alap\u00e9rt\u00e9ke: a KSH szerinti nett\u00f3 kereset medi\u00e1nja (teljes munkaid\u0151ben\r\n     alkalmaz\u00e1sban \u00e1ll\u00f3k; a dolgoz\u00f3k fele enn\u00e9l kevesebbet, fele t\u00f6bbet keres). Az \u00e1tlag\r\n     (519 900 Ft) a magas fizet\u00e9sek miatt felfel\u00e9 torz\u00edt, ez\u00e9rt a medi\u00e1nt haszn\u00e1ljuk.\r\n     Forr\u00e1s: KSH gyorst\u00e1j\u00e9koztat\u00f3, 2026. augusztus (megjelent 2026.10.16.)\r\n     https:\/\/www.ksh.hu\/gyorstajekoztatok\/ker\/ker2608.html \u2013 \u00e9l\u0151 adatn\u00e1l a PHP-snippet friss\u00edti. *\/\r\n  var ATLAG_NETTO = { ertek: 433400, honap: '2026. augusztus' };\r\n  var ADAT_FRISSITVE = '2026. okt\u00f3ber';\r\n  var MAI_EV = new Date().getFullYear();\r\n\r\n  \/* ==========================================================\r\n     \u00c9L\u0150 ADATOK \u2013 ugyanaz a v\u00e9gpont, mint az infl\u00e1ci\u00f3kalkul\u00e1tor\u00e9\r\n     (window.IOC_INFLACIO_API, az \"IOC \u2013 Infl\u00e1ci\u00f3s adatok friss\u00edt\u00e9se\"\r\n     PHP-snippet \u00edrja ki). Ha nincs, a be\u00e9p\u00edtett adat marad.\r\n     ========================================================== *\/\r\n  var ADAT_ALLAPOT = { elo: false, szoveg: 'Be\u00e9p\u00edtett adatok (' + ADAT_FRISSITVE + ').' };\r\n  var HONAP_NEVEK = ['janu\u00e1r', 'febru\u00e1r', 'm\u00e1rcius', '\u00e1prilis', 'm\u00e1jus', 'j\u00fanius', 'j\u00falius', 'augusztus', 'szeptember', 'okt\u00f3ber', 'november', 'december'];\r\n  function datumSzoveg(iso) {\r\n    var d = new Date(iso);\r\n    return isNaN(d) ? null : d.getFullYear() + '. ' + HONAP_NEVEK[d.getMonth()] + ' ' + d.getDate() + '.';\r\n  }\r\n  var nulla = function (v) { return v === 0 ? 0 : v; };   \/\/ a -0-b\u00f3l 0 legyen\r\n  \/\/ Egy \u00e9ves adatsor ({\u00e9v: [\u00e9rt\u00e9kek]}) \u00e1tv\u00e9tele ellen\u0151rz\u00e9ssel\r\n  function evekAtvetel(cel, forras, db) {\r\n    var volt = false;\r\n    Object.keys(forras || {}).forEach(function (evSz) {\r\n      var ev = Number(evSz), sor = forras[evSz];\r\n      if (!Array.isArray(sor) || sor.length !== db || ev < 1985 || ev > MAI_EV + 1) return;\r\n      var szamok = sor.map(Number);\r\n      if (szamok.some(function (v) { return !isFinite(v) || v < -50 || v > 300; })) return;\r\n      cel[ev] = szamok.map(nulla); volt = true;\r\n    });\r\n    return volt;\r\n  }\r\n  function sorAtvetel(cel, forras) {\r\n    Object.keys(forras || {}).forEach(function (evSz) {\r\n      var ev = Number(evSz), v = Number(forras[evSz]);\r\n      if (forras[evSz] !== null && isFinite(v) && ev >= 1985 && ev <= MAI_EV + 1 && v > -50 && v < 300) cel[ev] = nulla(v);\r\n    });\r\n  }\r\n  function sulyOk(t, db) {\r\n    if (!Array.isArray(t) || t.length !== db) return false;\r\n    var s = t.reduce(function (a, b) { return a + Number(b); }, 0);\r\n    return Math.abs(s - 100) < 1 && t.every(function (v) { return isFinite(Number(v)) && Number(v) >= 0; });\r\n  }\r\n\r\n  function eloAdatAtvetel(j) {\r\n    if (!j || j.verzio !== 1 || !j.adat || typeof j.adat !== 'object') return false;\r\n    var a = j.adat, valtozott = false, R7 = RENDSZEREK['7'], RR = RENDSZEREK.R;\r\n    if (a.HU7 && evekAtvetel(R7.evek, a.HU7.evek, 7)) {\r\n      sorAtvetel(R7.ossz, a.HU7.ossz); sorAtvetel(R7.nyugdijas, a.HU7.nyugdijas);\r\n      if (R7.elozetesEv && a.HU7.evek[R7.elozetesEv]) R7.elozetesEv = null;   \/\/ m\u00e1r v\u00e9gleges\r\n      valtozott = true;\r\n    }\r\n    var e = a.HU7_elozetes;\r\n    if (e && isFinite(Number(e.ev)) && Number(e.ev) <= MAI_EV + 1 && Array.isArray(e.ertekek) && e.ertekek.length === 7) {\r\n      var t = {}; t[e.ev] = e.ertekek;\r\n      if (evekAtvetel(R7.evek, t, 7)) {\r\n        if (isFinite(Number(e.ossz)) && e.ossz !== null) R7.ossz[e.ev] = nulla(Number(e.ossz));\r\n        if (isFinite(Number(e.nyugdijas)) && e.nyugdijas !== null) R7.nyugdijas[e.ev] = nulla(Number(e.nyugdijas));\r\n        R7.elozetesEv = Number(e.ev);\r\n        if (typeof e.honapok === 'string' && e.honapok) R7.elozetesHonapok = e.honapok;\r\n        valtozott = true;\r\n      }\r\n    }\r\n    \/\/ r\u00e9szletes kos\u00e1r (Eurostat): alcsoportonk\u00e9nti \u00e9vek, s\u00falyok, foly\u00f3 \u00e9vi el\u0151zetes\r\n    var r = a.HUR;\r\n    if (r && r.kodok && typeof r.kodok === 'object') {\r\n      var volt = false;\r\n      Object.keys(RR.kodAdat).forEach(function (k) { if (r.kodok[k]) { sorAtvetel(RR.kodAdat[k], r.kodok[k]); volt = true; } });\r\n      if (r.ossz) sorAtvetel(RR.ossz, r.ossz);\r\n      if (r.suly && r.suly.kodok) {\r\n        var ujSuly = {}, jo = true;\r\n        Object.keys(RR.kodSuly).forEach(function (k) { var w = Number(r.suly.kodok[k]); if (isFinite(w) && w >= 0) ujSuly[k] = w; else jo = false; });\r\n        if (jo) { RR.kodSuly = ujSuly; RR.sulyEv = Number(r.suly.ev) || RR.sulyEv; }\r\n      }\r\n      if (r.elozetes && r.elozetes.ertekek && isFinite(Number(r.elozetes.ev))) {\r\n        RR.kodElozetes = { ev: Number(r.elozetes.ev), honapok: r.elozetes.honapok, ertekek: {} };\r\n        Object.keys(r.elozetes.ertekek).forEach(function (k) { var v = Number(r.elozetes.ertekek[k]); if (r.elozetes.ertekek[k] !== null && isFinite(v)) RR.kodElozetes.ertekek[k] = nulla(v); });\r\n        if (isFinite(Number(r.elozetes.ossz)) && r.elozetes.ossz !== null) RR.ossz[r.elozetes.ev] = nulla(Number(r.elozetes.ossz));\r\n      }\r\n      if (volt) { reszletesEpit(RR); valtozott = true; }\r\n    }\r\n    var s = a.HU7_suly;\r\n    if (s && sulyOk(s.atlag, 7)) {\r\n      R7.suly = { ev: Number(s.ev) || R7.suly.ev, atlag: s.atlag.map(Number), nyugdijas: sulyOk(s.nyugdijas, 7) ? s.nyugdijas.map(Number) : R7.suly.nyugdijas };\r\n      valtozott = true;\r\n    }\r\n    \/\/ deviz\u00e1s t\u00e9tel: \u00e1rfolyamok \u00e9s k\u00fclf\u00f6ldi infl\u00e1ci\u00f3\r\n    if (a.DEVIZA && typeof a.DEVIZA === 'object') {\r\n      ['USD', 'EUR'].forEach(function (kod) {\r\n        var x = a.DEVIZA[kod]; if (!x) return;\r\n        Object.keys(x.arfolyam || {}).forEach(function (ev) { var v = Number(x.arfolyam[ev]); if (x.arfolyam[ev] !== null && v > 1 && v < 5000 && Number(ev) >= 1985 && Number(ev) <= MAI_EV + 1) DEVIZAK[kod].arfolyam[ev] = v; });\r\n        sorAtvetel(DEVIZAK[kod].inflacio, x.inflacio);\r\n        valtozott = true;\r\n      });\r\n    }\r\n    var k = a.HU_ker;\r\n    if (k && Number(k.ertek) > 50000 && Number(k.ertek) < 10000000 && typeof k.honap === 'string' && \/^\\d{4}\\. [a-z\u00e1\u00e9\u00ed\u00f3\u00f6\u0151\u00fa\u00fc\u0171]{3,12}$\/.test(k.honap)) {\r\n      ATLAG_NETTO = { ertek: Math.round(Number(k.ertek)), honap: k.honap }; valtozott = true;\r\n      var bm = Number(k.brutto_median);\r\n      if (bm > k.ertek && bm < 10000000) MEDIAN_MOST = { brutto: bm, honap: k.honap };\r\n    }\r\n    if (!valtozott) return false;\r\n\r\n    \/\/ \u00c1llapotsor: csak a kalkul\u00e1tor saj\u00e1t forr\u00e1sai\r\n    var siker = j.utolso_siker && datumSzoveg(j.utolso_siker);\r\n    if (siker) ADAT_FRISSITVE = siker;\r\n    var f = j.forrasok || {}, reszek = [], hibas = [];\r\n    [['ksh_fo', 'KSH f\u0151csoportok'], ['ksh_suly', 'KSH-s\u00falyok'], ['eurostat_r', 'Eurostat r\u00e9szletes'], ['ksh_ker', 'medi\u00e1nkereset'], ['deviza', '\u00e1rfolyamok']].forEach(function (p) {\r\n      var x = f[p[0]];\r\n      if (!x) return;\r\n      var lf = x.legfrissebb ? (p[0] === 'ksh_suly' || p[0] === 'deviza' ? (x.legfrissebb.match(\/\\d{4}\/) || [''])[0] : x.legfrissebb.replace(\/ \\(.*$\/, '').replace(\/:.*$\/, '')) : '';\r\n      if (lf) reszek.push((p[1] + ' ' + lf).replace(\/ \/g, '\\u00a0'));\r\n      if (x.ok === false) hibas.push(p[1]);\r\n    });\r\n    ADAT_ALLAPOT = {\r\n      elo: true,\r\n      szoveg: '\u00c9l\u0151 adatok \u00b7 utols\u00f3 sikeres lek\u00e9r\u00e9s: ' + (siker || 'ismeretlen') +\r\n        (reszek.length ? ' \u00b7 legfrissebb adat: ' + reszek.join(', ') : '') + '.' +\r\n        (hibas.length ? ' A legut\u00f3bbi lek\u00e9r\u00e9s nem siker\u00fclt (' + hibas.join(', ') + '), ' + (hibas.length > 1 ? 'ezekn\u00e9l' : 'enn\u00e9l') + ' az el\u0151z\u0151 adattal sz\u00e1molok.' : '')\r\n    };\r\n    return true;\r\n  }\r\n\r\n  var eloAdatIgeret = null;\r\n  function eloAdatBetoltes() {\r\n    if (eloAdatIgeret) return eloAdatIgeret;\r\n    var api = window.IOC_INFLACIO_API;\r\n    var csakBeepitett = \/[?&]szi_adat=beepitett(&|$)\/.test(location.search);\r\n    if (!api || csakBeepitett || !window.fetch) {\r\n      if (csakBeepitett) ADAT_ALLAPOT.szoveg = 'Be\u00e9p\u00edtett adatok (' + ADAT_FRISSITVE + '), teszt\u00fczemm\u00f3d: az \u00e9l\u0151 adatok kikapcsolva.';\r\n      return (eloAdatIgeret = Promise.resolve(false));\r\n    }\r\n    var vezerlo = window.AbortController ? new AbortController() : null;\r\n    var idozito = setTimeout(function () { if (vezerlo) vezerlo.abort(); }, 8000);\r\n    eloAdatIgeret = fetch(api, { credentials: 'omit', signal: vezerlo ? vezerlo.signal : undefined })\r\n      .then(function (v) { if (!v.ok) throw new Error('HTTP ' + v.status); return v.json(); })\r\n      .then(function (j) {\r\n        clearTimeout(idozito);\r\n        var ok = eloAdatAtvetel(j);\r\n        if (!ok) ADAT_ALLAPOT.szoveg = 'Be\u00e9p\u00edtett adatok (' + ADAT_FRISSITVE + '); az \u00e9l\u0151 adat m\u00e9g nem k\u00e9sz\u00fclt el.';\r\n        return ok;\r\n      })\r\n      .catch(function () {\r\n        clearTimeout(idozito);\r\n        ADAT_ALLAPOT.szoveg = 'Be\u00e9p\u00edtett adatok (' + ADAT_FRISSITVE + '); az \u00e9l\u0151 adat most nem \u00e9rhet\u0151 el.';\r\n        return false;\r\n      });\r\n    return eloAdatIgeret;\r\n  }\r\n\r\n  \/\/ Egy rendszer \u00e9vtartom\u00e1nya: a kiindul\u00f3 \u00e9v az els\u0151 adat\u00e9v el\u0151tti \u00e9v\r\n  function evTartomany(R) {\r\n    var evek = Object.keys(R.evek).map(Number);\r\n    return { elso: Math.min.apply(null, evek) - 1, utolso: Math.max.apply(null, evek) };\r\n  }\r\n\r\n  var CHARTJS_URL = 'https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/Chart.js\/4.4.1\/chart.umd.min.js';\r\n\r\n  \/* ==========================================================\r\n     2. SZ\u00cdNEK \u2013 a GYIK-blokkal azonos paletta\r\n     ========================================================== *\/\r\n  var SZIN = {\r\n    navy: '#1b3a5f', accent: '#e2662c', text: '#333333', line: '#dfe5ec', hover: '#eef4fa', bg: '#f4f8fc', muted: '#6b7785',\r\n    zold: '#2e8540', szurke: '#8a99a8',\r\n    accentHalvany: 'rgba(226, 102, 44, 0.28)', accentKozep: 'rgba(226, 102, 44, 0.55)', navyHalvany: 'rgba(27, 58, 95, 0.10)'\r\n  };\r\n\r\n  \/* ==========================================================\r\n     3. SEG\u00c9DF\u00dcGGV\u00c9NYEK \u2013 sz\u00e1mform\u00e1z\u00e1s, ragoz\u00e1s\r\n     ========================================================== *\/\r\n  var fmtSzam = new Intl.NumberFormat('hu-HU', { maximumFractionDigits: 0 });\r\n  var fmtSzazalek = new Intl.NumberFormat('hu-HU', { minimumFractionDigits: 1, maximumFractionDigits: 1 });\r\n  var fmtElojel = new Intl.NumberFormat('hu-HU', { minimumFractionDigits: 1, maximumFractionDigits: 1, signDisplay: 'exceptZero' });\r\n  var fmtIndex = new Intl.NumberFormat('hu-HU', { minimumFractionDigits: 1, maximumFractionDigits: 1 });\r\n  function kerek1(x) { var v = Math.round(x * 10) \/ 10; return v === 0 ? 0 : v; }   \/\/ -0,0 helyett 0,0\r\n  function szazalek(x) { return fmtSzazalek.format(kerek1(x)) + '%'; }\r\n  function szazalekpont(x) { return fmtElojel.format(kerek1(x)) + '\\u00a0%\\u2011pont'; }   \/\/ nem t\u00f6r\u0151 sz\u00f3k\u00f6z \u00e9s k\u00f6t\u0151jel\r\n  function ft(x) { return fmtSzam.format(Math.round(x)) + '\\u00a0Ft'; }\r\n\r\n  \/\/ \u00c9vsz\u00e1m toldal\u00e9kai a kiejt\u00e9s szerint (2010-ben \/ 2023-ban, 2025-\u00f6s \/ 2026-os)\r\n  function hangrend(ev) {\r\n    var egyes = ev % 10, tizes = Math.floor(ev \/ 10) % 10, szazas = Math.floor(ev \/ 100) % 10;\r\n    if (egyes) return 'e e a e \u00f6 o e a e'.split(' ')[egyes - 1];\r\n    if (tizes) return 'e a a e e a e a e'.split(' ')[tizes - 1];\r\n    if (szazas) return 'a';\r\n    return 'e';\r\n  }\r\n  var AKT_R = null;   \/\/ az \u00e9ppen sz\u00e1mol\u00f3 kalkul\u00e1tor rendszere (a csillaghoz)\r\n  function csillag(ev) { return AKT_R && ev === AKT_R.elozetesEv ? '*' : ''; }\r\n  function evBan(ev) { var h = hangrend(ev); return ev + '-' + (h === 'a' || h === 'o' ? 'ban' : 'ben') + csillag(ev); }\r\n  function evEs(ev) { return ev + '-' + { e: 'es', '\u00f6': '\u00f6s', a: 'as', o: 'os' }[hangrend(ev)] + csillag(ev); }\r\n  function evTol(ev) { var h = hangrend(ev); return ev + '-' + (h === 'a' || h === 'o' ? 't\u00f3l' : 't\u0151l'); }\r\n  function evCimke(ev) { return ev + csillag(ev); }\r\n  function evNevelo(ev) { return ev >= 1000 && ev < 2000 ? 'az' : 'a'; }\r\n  \/\/ n\u00e9vel\u0151 sz\u00e1m el\u00e9 a kiejt\u00e9s szerint: \"az 500 000\", \"az 1 200 000\" (egymilli\u00f3), de \"a 433 400\", \"a 100 000\" (sz\u00e1zezer)\r\n  function szamNevelo(x) {\r\n    var j = String(Math.round(Math.abs(x)));\r\n    if (j[0] === '5') return 'az';\r\n    if (j[0] === '1' && (j.length === 1 || j.length === 7 || j.length === 10)) return 'az';\r\n    return 'a';\r\n  }\r\n  \/\/ n\u00e9vel\u0151 sz\u00f3 el\u00e9: \"az \u00c9lelmiszerek\", \"a Szolg\u00e1ltat\u00e1sok\"\r\n  function nevelo(szo) { return \/^[a\u00e1e\u00e9i\u00edo\u00f3\u00f6\u0151u\u00fa\u00fc\u0171]\/i.test(szo) ? 'az' : 'a'; }\r\n\r\n  function beolvas(szoveg) {\r\n    var s = String(szoveg).replace(\/[\\s\\u00a0\u202f]\/g, '').replace(',', '.').replace('\u2212', '-');\r\n    if (s === '') return 0;          \/\/ \u00fcres mez\u0151: erre nem k\u00f6ltesz\r\n    var x = parseFloat(s);\r\n    return isFinite(x) ? x : NaN;\r\n  }\r\n  \/* BEVITELI KORL\u00c1TOK \u2013 g\u00e9pel\u00e9s k\u00f6zben sz\u0171r\u00fcnk: bet\u0171, sz\u00f3k\u00f6z \u00e9s m\u00e1s jel nem ker\u00fclhet a mez\u0151be.\r\n     Ft-mez\u0151k: eg\u00e9sz sz\u00e1m, 0 \u2026 10 milli\u00f3 Ft (a napelemes villanysor \u22121 milli\u00f3 Ft-ig negat\u00edv is lehet).\r\n     %-mez\u0151k: legfeljebb k\u00e9t tizedes, 0 \u2026 100%. A t\u00f6rleszt\u0151r\u00e9szlet v\u00e1ltoz\u00e1sa: \u221290 \u2026 +500%.\r\n     L\u00e9tsz\u00e1m \u00e9s keres\u0151k: eg\u00e9sz sz\u00e1m, 1 \u2026 MAX_FO. Ha valaki a hat\u00e1r f\u00f6l\u00e9 \u00edr, a mez\u0151 a hat\u00e1rra \u00e1ll,\r\n     \u00e9s egy pillanatra narancss\u00e1rg\u00e1n felvillan. *\/\r\n  var FT_MAX = 10000000, FT_NEG_MAX = 1000000;\r\n  function villan(mezo) {\r\n    mezo.classList.add('figy');\r\n    clearTimeout(mezo._villanas);\r\n    mezo._villanas = setTimeout(function () { mezo.classList.remove('figy'); }, 1500);\r\n  }\r\n  \/\/ Ft-mez\u0151 \u00e9l\u0151 ezres tagol\u00e1sa g\u00e9pel\u00e9s k\u00f6zben (a kurzor a hely\u00e9n marad)\r\n  function elofoTagolas(mezo) {\r\n    var poz = mezo.selectionStart || 0;\r\n    var szamjegyElotte = mezo.value.slice(0, poz).replace(\/\\D\/g, '').length;\r\n    \/\/ napelemes villanysorn\u00e1l negat\u00edv \u00f6sszeg (j\u00f3v\u00e1\u00edr\u00e1s) is megengedett\r\n    var negativ = mezo.dataset.negativ === '1' && \/^\\s*[-\u2212]\/.test(mezo.value);\r\n    var csakSzam = mezo.value.replace(\/\\D\/g, '').replace(\/^0+(?=\\d)\/, '');\r\n    var hatar = negativ ? FT_NEG_MAX : FT_MAX;\r\n    if (csakSzam && Number(csakSzam) > hatar) { csakSzam = String(hatar); villan(mezo); }\r\n    var uj = (negativ ? '\u2212' : '') + (csakSzam ? fmtSzam.format(Number(csakSzam)) : '');\r\n    if (negativ) { szamjegyElotte += 0; }\r\n    mezo.value = uj;\r\n    var db = 0, i = 0;\r\n    if (negativ) i = 1;\r\n    while (i < uj.length && db < szamjegyElotte) { if (\/\\d\/.test(uj[i])) db++; i++; }\r\n    try { mezo.setSelectionRange(i, i); } catch (e) { \/* n\u00e9h\u00e1ny mobilb\u00f6ng\u00e9sz\u0151 nem engedi *\/ }\r\n  }\r\n\r\n  \/\/ Tizedes mez\u0151 (%): sz\u00e1mjegy, egy tizedesjel (vessz\u0151), legfeljebb 2 tizedes; negat\u00edv csak ha min < 0\r\n  function tizedesSzuro(mezo, min, max) {\r\n    var regi = mezo.value, poz = mezo.selectionStart || 0;\r\n    var neg = min < 0 && \/^\\s*[-\u2212]\/.test(regi);\r\n    var t = regi.replace(\/\\.\/g, ',').replace(\/[^\\d,]\/g, '');\r\n    var i = t.indexOf(',');\r\n    if (i >= 0) t = t.slice(0, i + 1) + t.slice(i + 1).replace(\/,\/g, '').slice(0, 2);\r\n    t = t.replace(\/^0+(?=\\d)\/, '');\r\n    var x = t === '' || t === ',' ? 0 : Number(t.replace(',', '.')) * (neg ? -1 : 1);\r\n    if (x > max) { t = String(max).replace('.', ','); villan(mezo); }\r\n    else if (x < min) { t = String(-min).replace('.', ','); villan(mezo); }\r\n    var uj = (neg ? '\u2212' : '') + t;\r\n    if (uj !== regi) {\r\n      mezo.value = uj;\r\n      var p = Math.max(0, Math.min(uj.length, poz - (regi.length - uj.length)));\r\n      try { mezo.setSelectionRange(p, p); } catch (e) { \/* n\u00e9h\u00e1ny mobilb\u00f6ng\u00e9sz\u0151 nem engedi *\/ }\r\n    }\r\n  }\r\n  \/\/ Eg\u00e9sz sz\u00e1m mez\u0151 (f\u0151): csak sz\u00e1mjegy, min \u2026 max; az \u00fcres mez\u0151t g\u00e9pel\u00e9s k\u00f6zben meghagyjuk\r\n  function egeszSzuro(mezo, min, max) {\r\n    var regi = mezo.value, t = regi.replace(\/\\D\/g, '').replace(\/^0+(?=\\d)\/, '');\r\n    if (t !== '' && Number(t) > max) { t = String(max); villan(mezo); }\r\n    if (t === '0') { t = String(min); villan(mezo); }\r\n    if (t !== regi) mezo.value = t;\r\n  }\r\n\r\n  \/* ==========================================================\r\n     4. SZ\u00c1M\u00cdT\u00c1S\r\n     ----------------------------------------------------------\r\n     w: a kos\u00e1r ar\u00e1nyai (\u00f6sszeg\u00fck 1). Minden kateg\u00f3ria \u00e1rszintje a\r\n     kezd\u0151\u00e9vben 1, \u00e9s \u00e9vente (1 + infl\u00e1ci\u00f3\/100)-zal n\u0151. A kos\u00e1r \u00e9rt\u00e9ke\r\n     egy adott \u00e9vben \u03a3 w \u00d7 a kateg\u00f3ria \u00e1rszintje; ennek v\u00e1ltoz\u00e1sa a\r\n     szem\u00e9lyes infl\u00e1ci\u00f3. A KSH-\u00e1tlag \u00e9s a nyugd\u00edjas index a hivatalos\r\n     \u00f6sszes\u00edtett sz\u00e1mokb\u00f3l l\u00e1ncolva.\r\n     ========================================================== *\/\r\n  \/* wh: a hitelt\u00f6rleszt\u00e9s ar\u00e1nya a teljes havi kiad\u00e1sban (0, ha nincs);\r\n     hValt: a t\u00f6rleszt\u0151r\u00e9szlet v\u00e1ltoz\u00e1sa a teljes id\u0151szak alatt, % (fix kamatn\u00e1l 0).\r\n     A hitel nem r\u00e9sze a hivatalos indexeknek, ez\u00e9rt a \"hitel n\u00e9lk\u00fcli\" infl\u00e1ci\u00f3t is kisz\u00e1moljuk. *\/\r\n  \/* wd: a deviz\u00e1s kiad\u00e1s ar\u00e1nya, dkod: 'USD' \/ 'EUR'. A deviz\u00e1s t\u00e9tel \u00e1rszintje devizaRel() szerint. *\/\r\n  function szamitas(R, w, wKsh, tol, ig, wh, hValt, wd, dkod) {\r\n    var n = R.csoportok.length, rel = [], i, ev;\r\n    wh = wh || 0; hValt = hValt || 0; wd = wd || 0;\r\n    var devRel = function (ev) { var x = wd > 0 ? devizaRel(dkod, tol, ev) : null; return x ? x.rel : 1; };\r\n    var evekSzama = ig - tol;\r\n    var hitelRel = function (ev) { return Math.pow(1 + hValt \/ 100, (ev - tol) \/ evekSzama); };   \/\/ a v\u00e1ltoz\u00e1s egyenletesen elosztva\r\n    for (i = 0; i < n; i++) rel.push(1);\r\n    var te = 100, ksh = 100, ny = R.nyugdijas ? 100 : null;\r\n    var sor = [{ ev: tol, te: 100, ksh: 100, ny: ny, teRata: null, kshRata: null, nyRata: null }];\r\n    for (ev = tol + 1; ev <= ig; ev++) {\r\n      var elozo = te;\r\n      for (i = 0; i < n; i++) rel[i] *= 1 + R.evek[ev][i] \/ 100;\r\n      te = wh * hitelRel(ev) * 100 + wd * devRel(ev) * 100;\r\n      for (i = 0; i < n; i++) te += w[i] * rel[i] * 100;\r\n      ksh *= 1 + R.ossz[ev] \/ 100;\r\n      var nyRata = R.nyugdijas && R.nyugdijas[ev] != null ? R.nyugdijas[ev] : null;\r\n      ny = ny != null && nyRata != null ? ny * (1 + nyRata \/ 100) : null;   \/\/ 1995 el\u0151tt nincs nyugd\u00edjas index\r\n      sor.push({ ev: ev, te: te, ksh: ksh, ny: ny, teRata: (te \/ elozo - 1) * 100, kshRata: R.ossz[ev], nyRata: nyRata });\r\n    }\r\n    var evek = ig - tol;\r\n    var atlag = function (index) { return index == null ? null : (Math.pow(index \/ 100, 1 \/ evek) - 1) * 100; };\r\n    var kat = rel.map(function (r) { return (r - 1) * 100; });          \/\/ kateg\u00f3ri\u00e1nk\u00e9nti \u00e1rv\u00e1ltoz\u00e1s az id\u0151szakban\r\n    var nelkul = 0;\r\n    for (i = 0; i < n; i++) nelkul += w[i] * rel[i];\r\n    nelkul += wd * devRel(ig);\r\n    nelkul = wh < 1 ? (nelkul \/ (1 - wh) - 1) * 100 : 0;              \/\/ ugyanez hitelt\u00f6rleszt\u00e9s n\u00e9lk\u00fcl\r\n    return {\r\n      teNelkul: nelkul, hitelHoz: wh * (hitelRel(ig) - 1) * 100, hitelValt: hValt, wh: wh,\r\n      wd: wd, deviza: wd > 0 ? devizaRel(dkod, tol, ig) : null, devizaHoz: wd * (devRel(ig) - 1) * 100,\r\n      sor: sor, evek: evek,\r\n      te: te - 100, ksh: ksh - 100, ny: ny == null ? null : ny - 100,\r\n      teAtlag: atlag(te), kshAtlag: atlag(ksh), nyAtlag: atlag(ny),\r\n      kat: kat,\r\n      hoz: kat.map(function (k, i) { return w[i] * k; }),                \/\/ hozz\u00e1j\u00e1rul\u00e1s %-pontban\r\n      kshHoz: kat.map(function (k, i) { return wKsh[i] * k; })\r\n    };\r\n  }\r\n\r\n  \/* ==========================================================\r\n     5. ST\u00cdLUS \u2013 az infl\u00e1ci\u00f3kalkul\u00e1torral \u00e9s a GYIK-blokkal azonos\r\n     ========================================================== *\/\r\n  var CSS = `\r\n    :host { display: block; margin: 2.5em 0; }\r\n    * { box-sizing: border-box; }\r\n    .kartya { background: ${SZIN.bg}; padding: 2em 2em 1.5em; border-radius: 10px; color: ${SZIN.text}; line-height: 1.6; }\r\n    .cim { text-align: center; color: ${SZIN.navy}; margin: 0 0 .9em; font-size: 1.5em; line-height: 1.3; font-weight: 700; }\r\n    .adat-allapot { text-align: center; margin: -.5em auto 1.2em; font-size: .8em; line-height: 1.5; color: ${SZIN.text}; opacity: .75; }\r\n    .adat-allapot:empty { display: none; }\r\n    .adat-allapot.elo::before { content: '\u25cf'; color: ${SZIN.zold}; margin-right: .4em; }\r\n    .alcim { display: flex; align-items: center; gap: 1.1em; color: ${SZIN.accent}; margin: 0 0 1.8em; font-size: .95em; white-space: nowrap; }\r\n    .alcim::before, .alcim::after { content: \"\"; flex: 1; height: 1px; opacity: .45; }\r\n    .alcim::before { background: linear-gradient(to right, transparent, ${SZIN.accent}); }\r\n    .alcim::after  { background: linear-gradient(to left, transparent, ${SZIN.accent}); }\r\n\r\n    \/* Fels\u0151 sor: k\u00e9t kapcsol\u00f3 \u00e9s a k\u00e9t \u00e9v *\/\r\n    .fejsor { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin: 0 0 1.2em; }\r\n    .mezo label, .mezo .felirat { display: block; font-size: .85em; font-weight: 700; color: ${SZIN.navy}; margin: 0 0 6px; line-height: 1.3; }\r\n    .kapcsolo { display: flex; background: #fff; border: 1px solid ${SZIN.line}; border-radius: 8px; padding: 4px; gap: 4px; }\r\n    .kapcsolo button {\r\n      flex: 1; font: inherit; font-size: .88em; font-weight: 700; color: ${SZIN.navy}; background: transparent;\r\n      border: 0; border-radius: 6px; padding: 8px 6px; cursor: pointer; transition: background .15s ease, color .15s ease;\r\n    }\r\n    .kapcsolo button:hover { background: ${SZIN.hover}; }\r\n    .kapcsolo button[aria-pressed=\"true\"] { background: ${SZIN.navy}; color: #fff; }\r\n    .kapcsolo button:focus-visible { outline: 2px solid ${SZIN.accent}; outline-offset: 2px; }\r\n    .mezo select, .mezo input {\r\n      width: 100%; padding: 10px 12px; font: inherit; font-size: 1em; color: ${SZIN.text};\r\n      background: #fff; border: 1px solid ${SZIN.line}; border-radius: 6px; appearance: none; -webkit-appearance: none;\r\n    }\r\n    .mezo select {\r\n      background-image: linear-gradient(45deg, transparent 50%, ${SZIN.navy} 50%), linear-gradient(135deg, ${SZIN.navy} 50%, transparent 50%);\r\n      background-position: calc(100% - 18px) 55%, calc(100% - 13px) 55%; background-size: 5px 5px; background-repeat: no-repeat; padding-right: 32px;\r\n    }\r\n    input:focus, select:focus { outline: none; border-color: ${SZIN.accent}; box-shadow: 0 0 0 3px ${SZIN.accentHalvany}; }\r\n    .lepteto { display: grid; grid-template-columns: 34px 1fr 34px; }\r\n    .lepteto select { border-radius: 0; border-left: 0; border-right: 0; text-align: center; text-align-last: center; padding-left: 6px; padding-right: 22px; background-position: calc(100% - 13px) 55%, calc(100% - 8px) 55%; }\r\n    .lepteto button { font: inherit; font-size: 1.1em; font-weight: 700; color: ${SZIN.navy}; background: ${SZIN.bg}; border: 1px solid ${SZIN.line}; cursor: pointer; padding: 0; line-height: 1; }\r\n    .lepteto button:first-child { border-radius: 6px 0 0 6px; }\r\n    .lepteto button:last-child { border-radius: 0 6px 6px 0; }\r\n    .lepteto button:hover:not(:disabled) { background: ${SZIN.hover}; color: ${SZIN.accent}; }\r\n    .lepteto button:disabled { opacity: .35; cursor: default; }\r\n\r\n    \/* A kos\u00e1r: kateg\u00f3ri\u00e1k k\u00e1rty\u00e1kon *\/\r\n    .kosar { background: #fff; border: 1px solid ${SZIN.line}; border-radius: 8px; padding: 14px 16px 12px; margin: 0 0 1.2em; }\r\n    .kosar-fej { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; margin: 0 0 4px; }\r\n    .kosar-cim { font-weight: 700; color: ${SZIN.navy}; font-size: .95em; }\r\n    .kosar-sugo { font-size: .8em; color: ${SZIN.muted}; margin: 0 0 12px; line-height: 1.45; }\r\n    .gombsor { display: flex; gap: 8px; flex-wrap: wrap; }\r\n    .kategoriak { display: grid; grid-template-columns: 1fr 1fr; gap: 0 22px; }\r\n    .kat-fejezet { grid-column: 1 \/ -1; font-size: .78em; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: ${SZIN.accent}; margin: 14px 0 0; padding-bottom: 4px; border-bottom: 2px solid ${SZIN.accentHalvany}; }\r\n    .kat-fejezet:first-child { margin-top: 0; }\r\n    .eletmod { display: flex; flex-wrap: wrap; gap: 8px 10px; margin: 0 0 12px; }\r\n    .eletmod label { display: inline-flex; align-items: center; gap: 7px; font-size: .88em; font-weight: 700; color: ${SZIN.navy}; background: ${SZIN.bg}; border: 1px solid ${SZIN.line}; border-radius: 20px; padding: 6px 12px; cursor: pointer; }\r\n    .eletmod label:has(input:checked) { background: ${SZIN.navy}; color: #fff; border-color: ${SZIN.navy}; }\r\n    .eletmod input { accent-color: ${SZIN.accent}; margin: 0; width: 15px; height: 15px; }\r\n    .eletmod-cim { align-self: center; font-size: .85em; font-weight: 700; color: ${SZIN.navy}; margin-right: 2px; }\r\n    \/* a gyorsgombokkal \u00e1t\u00edrt sorok jel\u00f6l\u00e9se *\/\r\n    .kat.kapcsolt { background: ${SZIN.navyHalvany}; border-left: 3px solid ${SZIN.accent}; border-radius: 4px; padding-left: 8px; padding-right: 6px; }\r\n    .kat-cimke { display: inline-block; margin-top: 4px; font-size: .72em; font-weight: 700; color: #fff; background: ${SZIN.navy}; border-radius: 10px; padding: 1px 8px; }\r\n    .kat.kapcsolt input { color: ${SZIN.muted}; }\r\n    \/* hitelt\u00f6rleszt\u00e9s *\/\r\n    .hitel-blokk { margin-top: 6px; }\r\n    .hitel-reszlet { display: grid; grid-template-columns: minmax(220px, 1fr) 1fr; gap: 10px 22px; align-items: end; padding: 10px 0 2px; }\r\n    .hitel-reszlet .kapcsolo button { font-size: .82em; padding: 7px 6px; }\r\n    .hitel-sugo { grid-column: 1 \/ -1; font-size: .78em; color: ${SZIN.muted}; margin: 0; line-height: 1.45; }\r\n    @media (max-width: 640px) { .hitel-reszlet { grid-template-columns: 1fr; } }\r\n    \/* j\u00f6vedelem \u00e9s egyenleg *\/\r\n    .egyenleg { margin-top: 10px; padding: 10px 14px; border-radius: 6px; font-size: .92em; line-height: 1.5; }\r\n    .egyenleg:empty { display: none; }\r\n    .egyenleg.tul { background: rgba(179, 38, 30, .08); border-left: 3px solid #b3261e; color: #7a1c16; }\r\n    .egyenleg.marad { background: rgba(46, 133, 64, .08); border-left: 3px solid ${SZIN.zold}; color: #1f5e2e; }\r\n    .egyenleg strong { color: inherit; }\r\n    \/* j\u00f6vedelmi tizedvonalz\u00f3 *\/\r\n    .tized { margin: 14px 0 4px; }\r\n    .tized-cim { font-weight: 700; color: ${SZIN.navy}; font-size: .9em; margin: 0 0 8px; }\r\n    .tized-sav { position: relative; display: grid; grid-template-columns: repeat(10, 1fr); gap: 2px; }\r\n    .tized-cella { text-align: center; font-size: .75em; font-weight: 700; color: ${SZIN.muted}; background: ${SZIN.bg}; border: 1px solid ${SZIN.line}; padding: 7px 0; }\r\n    .tized-cella:first-child { border-radius: 6px 0 0 6px; }\r\n    .tized-cella:nth-child(10) { border-radius: 0 6px 6px 0; }\r\n    .tized-cella.aktiv { background: ${SZIN.navy}; color: #fff; border-color: ${SZIN.navy}; }\r\n    .tized-jelolo { position: absolute; top: -7px; width: 0; height: 0; border-left: 7px solid transparent; border-right: 7px solid transparent; border-top: 9px solid ${SZIN.accent}; transform: translateX(-7px); transition: left .3s ease; }\r\n    .tized-hatarok { position: relative; height: 1.5em; font-size: .68em; color: ${SZIN.muted}; margin-top: 3px; }\r\n    .tized-hatarok span { position: absolute; transform: translateX(-50%); white-space: nowrap; }\r\n    .tized-szoveg { font-size: .85em; line-height: 1.5; margin: 6px 0 0; }\r\n    .tized-szoveg small { color: ${SZIN.muted}; }\r\n    .tized-figy { color: ${SZIN.accent}; font-weight: 600; }\r\n    input.figy { border-color: ${SZIN.accent} !important; box-shadow: 0 0 0 2px ${SZIN.accentHalvany}; }\r\n    @media (max-width: 640px) { .tized-hatarok span:nth-child(even) { display: none; } }\r\n    .alap-info { font-size: .8em; color: ${SZIN.navy}; background: ${SZIN.navyHalvany}; border-radius: 6px; padding: 8px 12px; margin: -4px 0 12px; line-height: 1.45; }\r\n    .miert { margin: -0.6em 0 1.2em; line-height: 1.7; font-size: .95em; }\r\n    .miert:empty { display: none; }\r\n    .miert strong { color: ${SZIN.navy}; }\r\n    .miert p { margin: 0 0 .4em; }\r\n    .miert ul { margin: 0; padding-left: 1.2em; }\r\n    .miert li { margin: 0 0 .25em; }\r\n    .miert .plusz { color: #b3261e; font-weight: 700; white-space: nowrap; }\r\n    .miert .minusz { color: ${SZIN.zold}; font-weight: 700; white-space: nowrap; }\r\n    .toplista { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 0 0 1.5em; }\r\n    .toplista > div { background: #fff; border: 1px solid ${SZIN.line}; border-radius: 8px; padding: 12px 16px; }\r\n    .top-cim { font-weight: 700; color: ${SZIN.navy}; font-size: .9em; margin: 0 0 6px; }\r\n    .toplista ol { margin: 0; padding-left: 1.3em; font-size: .88em; line-height: 1.7; }\r\n    .toplista li span { float: right; font-weight: 700; font-variant-numeric: tabular-nums; }\r\n    .toplista .fel span { color: #b3261e; }\r\n    .toplista .le span { color: ${SZIN.zold}; }\r\n    @media (max-width: 640px) { .toplista { grid-template-columns: 1fr; } }\r\n    .kat.kiemelt { background: ${SZIN.accentHalvany}; border-radius: 6px; padding-left: 6px; padding-right: 6px; transition: background 1.2s ease; }\r\n    .kat { display: grid; grid-template-columns: 1fr 140px; gap: 10px; align-items: center; padding: 8px 0; border-bottom: 1px solid ${SZIN.line}; }\r\n    .kat label { cursor: pointer; line-height: 1.3; }\r\n    .kat-nev { display: block; font-size: .9em; font-weight: 700; color: ${SZIN.navy}; }\r\n    .kat-sugo { display: block; font-size: .75em; color: ${SZIN.muted}; margin-top: 2px; }\r\n    .kat .mezo input { padding: 8px 40px 8px 10px; text-align: right; }\r\n    .utotag { position: relative; }\r\n    .utotag span { position: absolute; right: 10px; top: 50%; transform: translateY(-50%); color: ${SZIN.muted}; font-size: .85em; pointer-events: none; }\r\n    .kosar-lab { display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap; margin-top: 10px; font-size: .88em; }\r\n    .kosar-lab strong { color: ${SZIN.navy}; }\r\n    .figyelmeztetes { color: ${SZIN.accent}; font-size: .9em; }\r\n\r\n    .hiba { color: #b3261e; font-size: .85em; margin: 0 0 1em; }\r\n    .hiba:empty { display: none; }\r\n\r\n    \/* Eredm\u00e9nyk\u00e1rty\u00e1k *\/\r\n    .eredmenyek { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 12px; margin: 0 0 1em; }\r\n    .eredmenyek.harom { grid-template-columns: 1.4fr 1fr 1fr; }\r\n    .stat { background: #fff; border: 1px solid ${SZIN.line}; border-radius: 8px; padding: 14px 16px; }\r\n    .stat.fo { border-top: 3px solid ${SZIN.accent}; }\r\n    .stat .nev { font-size: .8em; color: ${SZIN.muted}; margin: 0 0 4px; line-height: 1.35; }\r\n    .stat .ertek { font-size: 1.35em; font-weight: 700; color: ${SZIN.navy}; line-height: 1.2; word-break: break-word; }\r\n    .stat.fo .ertek { font-size: 1.6em; }\r\n    .stat .al { font-size: .75em; color: ${SZIN.muted}; margin-top: 4px; }\r\n    .stat .al:empty { display: none; }\r\n    .mondat { margin: 0 0 1.5em; line-height: 1.7; }\r\n    .mondat strong { color: ${SZIN.navy}; }\r\n\r\n    \/* Grafikonok *\/\r\n    .doboz { background: #fff; border: 1px solid ${SZIN.line}; border-radius: 8px; padding: 14px 12px 10px; margin: 0 0 1em; }\r\n    .doboz-fej { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin: 0 4px 8px; }\r\n    .doboz-cim { font-weight: 700; color: ${SZIN.navy}; font-size: .95em; }\r\n    .vaszon { position: relative; width: 100%; height: 340px; }\r\n    .gomb { flex: 0 0 auto; font: inherit; font-size: .8em; font-weight: 700; color: ${SZIN.navy}; background: ${SZIN.bg}; border: 1px solid ${SZIN.line}; border-radius: 6px; padding: 6px 10px; cursor: pointer; }\r\n    .gomb:hover { background: ${SZIN.hover}; border-color: ${SZIN.navy}; }\r\n    .grafikon-hiba { padding: 2em 1em; text-align: center; color: ${SZIN.muted}; font-size: .9em; }\r\n    .megjegyzes { font-size: .8em; color: ${SZIN.muted}; margin: 10px 4px 0; line-height: 1.5; }\r\n\r\n    .megosztas { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: -0.6em 0 1.5em; }\r\n    .megosztas .allapot { font-size: .8em; color: ${SZIN.muted}; }\r\n    .megosztas .allapot.ok { color: #1b7a4b; font-weight: 700; }\r\n    .link-mezo { flex: 1 1 260px; font: inherit; font-size: .8em; padding: 6px 8px; border: 1px solid ${SZIN.line}; border-radius: 6px; color: ${SZIN.text}; background: #fff; }\r\n\r\n    \/* Lenyithat\u00f3 t\u00e1bl\u00e1zatok *\/\r\n    .tabla { margin: 1em 0 0; background: #fff; border: 1px solid ${SZIN.line}; border-radius: 8px; }\r\n    .tabla summary { list-style: none; cursor: pointer; padding: 14px 44px 14px 16px; position: relative; font-weight: 700; color: ${SZIN.navy}; font-size: .95em; transition: background .15s ease; border-radius: 8px; }\r\n    .tabla summary::-webkit-details-marker { display: none; }\r\n    .tabla summary:hover { background: ${SZIN.hover}; }\r\n    .tabla summary::after { content: \"\"; position: absolute; right: 18px; top: 50%; width: 8px; height: 8px; border-right: 2px solid ${SZIN.navy}; border-bottom: 2px solid ${SZIN.navy}; transform: translateY(-70%) rotate(45deg); transition: transform .25s ease; }\r\n    .tabla[open] summary { color: ${SZIN.accent}; }\r\n    .tabla[open] summary::after { border-color: ${SZIN.accent}; transform: translateY(-25%) rotate(-135deg); }\r\n    .tabla-belso { padding: 0 12px 12px; }\r\n    .gorgeto { max-height: 420px; overflow: auto; border: 1px solid ${SZIN.line}; border-radius: 6px; }\r\n    table { width: 100%; border-collapse: collapse; font-size: .85em; font-variant-numeric: tabular-nums; }\r\n    th, td { padding: 7px 10px; text-align: right; border-bottom: 1px solid ${SZIN.line}; white-space: nowrap; }\r\n    th:first-child, td:first-child { text-align: left; }\r\n    thead th { position: sticky; top: 0; background: ${SZIN.bg}; color: ${SZIN.navy}; font-weight: 700; }\r\n    tbody tr:hover { background: ${SZIN.hover}; }\r\n    tfoot td { font-weight: 700; color: ${SZIN.navy}; background: ${SZIN.bg}; }\r\n    .tabla-lab { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-top: 10px; font-size: .78em; color: ${SZIN.muted}; }\r\n\r\n    .disclaimer { margin: 2em 0 0; padding: 16px 18px; border-left: 3px solid ${SZIN.accent}; background: rgba(255, 255, 255, .55); border-radius: 6px; font-size: .85em; font-style: italic; line-height: 1.6; opacity: .9; }\r\n    .disclaimer strong { font-style: normal; color: ${SZIN.navy}; }\r\n    .disclaimer p { margin: 0 0 .6em; }\r\n    .disclaimer p:last-child { margin: 0; }\r\n    [hidden] { display: none !important; }\r\n\r\n    @media (max-width: 760px) {\r\n      .kategoriak { grid-template-columns: 1fr; }\r\n      .eredmenyek, .eredmenyek.harom { grid-template-columns: 1fr 1fr; }\r\n      .eredmenyek .stat.fo { grid-column: 1 \/ -1; }\r\n      .eredmenyek .stat:not(.fo) .ertek { font-size: 1.15em; white-space: nowrap; }\r\n    }\r\n    @media (max-width: 640px) {\r\n      .kartya { padding: 1.5em 1.1em 1em; }\r\n      .cim { font-size: 1.25em; }\r\n      .fejsor { grid-template-columns: 1fr 1fr; gap: 12px 10px; }\r\n      .fejsor > .mezo:not(.evek-mezo) { grid-column: 1 \/ -1; }\r\n      .kat { grid-template-columns: 1fr 120px; }\r\n      .vaszon { height: 300px; }\r\n      .doboz-fej, .tabla-lab { flex-wrap: wrap; }\r\n    }\r\n    @media (max-width: 420px) { .alcim { gap: .6em; font-size: .85em; } }\r\n  `;\r\n\r\n  \/* ==========================================================\r\n     6. HTML-V\u00c1Z\r\n     ========================================================== *\/\r\n  function vaz() {\r\n    return `\r\n    <div class=\"kartya\">\r\n      <h2 class=\"cim\">Szem\u00e9lyes infl\u00e1ci\u00f3kalkul\u00e1tor<\/h2>\r\n      <p id=\"adat-allapot\" class=\"adat-allapot\"><\/p>\r\n      <p class=\"alcim\">Mennyi a te infl\u00e1ci\u00f3d?<\/p>\r\n\r\n      <div class=\"fejsor\">\r\n        <div class=\"mezo\">\r\n          <span class=\"felirat\">Kateg\u00f3ri\u00e1k<\/span>\r\n          <div class=\"kapcsolo\" role=\"group\" aria-label=\"Kateg\u00f3riarendszer\">\r\n            <button type=\"button\" data-rendszer=\"7\" aria-pressed=\"true\">7 KSH-f\u0151csoport<\/button>\r\n            <button type=\"button\" data-rendszer=\"R\" aria-pressed=\"false\">R\u00e9szletes (25 t\u00e9tel)<\/button>\r\n          <\/div>\r\n        <\/div>\r\n        <div class=\"mezo\">\r\n          <span class=\"felirat\">Mit adsz meg?<\/span>\r\n          <div class=\"kapcsolo\" role=\"group\" aria-label=\"Bevitel m\u00f3dja\">\r\n            <button type=\"button\" data-mod=\"ft\" aria-pressed=\"true\">Havi \u00f6sszeg (Ft)<\/button>\r\n            <button type=\"button\" data-mod=\"szazalek\" aria-pressed=\"false\">Ar\u00e1ny (%)<\/button>\r\n          <\/div>\r\n        <\/div>\r\n        <div class=\"mezo evek-mezo\">\r\n          <label for=\"tol\">Id\u0151szak kezdete<\/label>\r\n          <div class=\"lepteto\">\r\n            <button type=\"button\" data-lep=\"tol\" data-irany=\"-1\" aria-label=\"Egy \u00e9vvel kor\u00e1bban\">\u2212<\/button>\r\n            <select id=\"tol\"><\/select>\r\n            <button type=\"button\" data-lep=\"tol\" data-irany=\"1\" aria-label=\"Egy \u00e9vvel k\u00e9s\u0151bb\">+<\/button>\r\n          <\/div>\r\n        <\/div>\r\n        <div class=\"mezo evek-mezo\">\r\n          <label for=\"ig\">Id\u0151szak v\u00e9ge<\/label>\r\n          <div class=\"lepteto\">\r\n            <button type=\"button\" data-lep=\"ig\" data-irany=\"-1\" aria-label=\"Egy \u00e9vvel kor\u00e1bban\">\u2212<\/button>\r\n            <select id=\"ig\"><\/select>\r\n            <button type=\"button\" data-lep=\"ig\" data-irany=\"1\" aria-label=\"Egy \u00e9vvel k\u00e9s\u0151bb\">+<\/button>\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <div class=\"kosar\">\r\n        <div class=\"kosar-fej\">\r\n          <span class=\"kosar-cim\" id=\"kosar-cim\">Mire mennyit k\u00f6ltesz havonta?<\/span>\r\n          <div class=\"gombsor\">\r\n            <button class=\"gomb\" type=\"button\" data-alap=\"atlag\" title=\"Vissza\u00e1ll\u00edt\u00e1s az \u00e1tlagos kos\u00e1rra\">\u21ba \u00c1tlagkos\u00e1r<\/button>\r\n            <button class=\"gomb\" type=\"button\" data-alap=\"nyugdijas\" title=\"A nyugd\u00edjasok \u00e1tlagos kosara (KSH)\">\u21ba Nyugd\u00edjas kos\u00e1r<\/button>\r\n            <button class=\"gomb\" type=\"button\" data-alap=\"jovedelem\" title=\"A hozz\u00e1d hasonl\u00f3 j\u00f6vedelm\u0171 h\u00e1ztart\u00e1sok \u00e1tlagos kosara (KSH)\">\u21ba J\u00f6vedelmed szerinti kos\u00e1r<\/button>\r\n          <\/div>\r\n        <\/div>\r\n        <p class=\"kosar-sugo\" id=\"kosar-sugo\"><\/p>\r\n        <p class=\"alap-info\" id=\"alap-info\" hidden><\/p>\r\n        <div class=\"eletmod-blokk\" id=\"eletmod\">\r\n          <div class=\"eletmod\" role=\"group\" aria-label=\"Gyors be\u00e1ll\u00edt\u00e1sok\">\r\n            ${Object.keys(ELETHELYZETEK).map(function (k) { return '<label><input type=\"checkbox\" data-elet=\"' + k + '\"> ' + ELETHELYZETEK[k].nev + '<\/label>'; }).join('')}\r\n          <\/div>\r\n          <div class=\"eletmod\" role=\"group\" aria-label=\"F\u0171t\u00e9s \u00e9s napelem\">\r\n            <span class=\"eletmod-cim\">Mivel f\u0171tesz?<\/span>\r\n            ${Object.keys(FUTESMODOK).map(function (k) { return '<label><input type=\"checkbox\" data-futes=\"' + k + '\"> ' + FUTESMODOK[k].nev + '<\/label>'; }).join('')}\r\n            <label><input type=\"checkbox\" data-napelem> \u2600 Napelemem van<\/label>\r\n          <\/div>\r\n        <\/div>\r\n        <div class=\"kategoriak\" id=\"kategoriak\"><\/div>\r\n        <!-- Hitelt\u00f6rleszt\u00e9s: nem r\u00e9sze a hivatalos infl\u00e1ci\u00f3nak, ez\u00e9rt k\u00fcl\u00f6n kezelj\u00fck -->\r\n        <div class=\"hitel-blokk\">\r\n          <div class=\"kategoriak\"><div class=\"kat-fejezet\">Hitelt\u00f6rleszt\u00e9s<\/div>\r\n            <div class=\"kat\"><label for=\"hitel\"><span class=\"kat-nev\">Hitelt\u00f6rleszt\u00e9s<\/span><span class=\"kat-sugo\">lak\u00e1s-, aut\u00f3- vagy szem\u00e9lyi hitel havi r\u00e9szlete; ha nincs hiteled, maradjon 0<\/span><\/label>\r\n              <div class=\"mezo utotag\"><input id=\"hitel\" type=\"text\" autocomplete=\"off\" value=\"0\"><span class=\"egyseg\"><\/span><\/div><\/div>\r\n          <\/div>\r\n          <div class=\"hitel-reszlet\" id=\"hitel-reszlet\" hidden>\r\n            <div class=\"mezo\">\r\n              <span class=\"felirat\">Milyen a hiteled kamata?<\/span>\r\n              <div class=\"kapcsolo\" role=\"group\" aria-label=\"Kamatoz\u00e1s\">\r\n                <button type=\"button\" data-kamat=\"fix\" aria-pressed=\"true\">Fix kamat<\/button>\r\n                <button type=\"button\" data-kamat=\"valtozo\" aria-pressed=\"false\">V\u00e1ltoz\u00f3 kamat<\/button>\r\n              <\/div>\r\n            <\/div>\r\n            <div class=\"mezo\" id=\"hitel-valt-mezo\" hidden>\r\n              <label for=\"hitel-valt\" id=\"hitel-valt-cimke\">Mennyivel v\u00e1ltozott a r\u00e9szlet az id\u0151szak alatt?<\/label>\r\n              <div class=\"utotag\"><input id=\"hitel-valt\" type=\"text\" inputmode=\"text\" autocomplete=\"off\" value=\"0\"><span>%<\/span><\/div>\r\n            <\/div>\r\n            <p class=\"hitel-sugo\" id=\"hitel-sugo\"><\/p>\r\n          <\/div>\r\n        <\/div>\r\n        <!-- Deviz\u00e1ban fizetett kiad\u00e1sok: a magyar index ezeket nem k\u00f6veti (\u00e1rfolyam + k\u00fclf\u00f6ldi infl\u00e1ci\u00f3) -->\r\n        <div class=\"deviza-blokk\">\r\n          <div class=\"kategoriak\"><div class=\"kat-fejezet\">Deviz\u00e1ban fizetett kiad\u00e1sok<\/div>\r\n            <div class=\"kat\"><label for=\"deviza\"><span class=\"kat-nev\">Deviz\u00e1ban fizetett kiad\u00e1s<\/span><span class=\"kat-sugo\">k\u00fclf\u00f6ldi el\u0151fizet\u00e9s (Netflix, Spotify, szoftverek), k\u00fclf\u00f6ldi webshop, k\u00fclf\u00f6ldi utaz\u00e1s \u2013 amit a bank v\u00e1lt \u00e1t forintra. Amit ide \u00edrsz, azt ne \u00edrd a fenti t\u00e9telekhez is.<\/span><\/label>\r\n              <div class=\"mezo utotag\"><input id=\"deviza\" type=\"text\" autocomplete=\"off\" value=\"0\"><span class=\"egyseg\"><\/span><\/div><\/div>\r\n            <div class=\"kat\" id=\"deviza-penznem-sor\" hidden><span class=\"kat-nev\">Milyen p\u00e9nznemben fizetsz?<\/span>\r\n              <div class=\"kapcsolo\" role=\"group\" aria-label=\"P\u00e9nznem\">\r\n                <button type=\"button\" data-deviza=\"USD\" aria-pressed=\"true\">USD<\/button>\r\n                <button type=\"button\" data-deviza=\"EUR\" aria-pressed=\"false\">EUR<\/button>\r\n              <\/div><\/div>\r\n          <\/div>\r\n        <\/div>\r\n        <!-- Bev\u00e9tel: ebb\u0151l l\u00e1tszik, ha a kiad\u00e1sok meghaladj\u00e1k a j\u00f6vedelmet (csak Ft m\u00f3dban) -->\r\n        <div class=\"jovedelem-blokk\" id=\"jovedelem-blokk\">\r\n          <div class=\"kategoriak\"><div class=\"kat-fejezet\">Bev\u00e9tel<\/div>\r\n            <div class=\"kat\"><label for=\"jovedelem\"><span class=\"kat-nev\">Havi nett\u00f3 j\u00f6vedelem<\/span><span class=\"kat-sugo\" id=\"jovedelem-sugo\"><\/span><\/label>\r\n              <div class=\"mezo utotag\"><input id=\"jovedelem\" type=\"text\" inputmode=\"numeric\" autocomplete=\"off\"><span>Ft<\/span><\/div><\/div>\r\n            <div class=\"kat\"><label for=\"letszam\"><span class=\"kat-nev\">H\u00e1ztart\u00e1s l\u00e9tsz\u00e1ma<\/span><span class=\"kat-sugo\">h\u00e1ny f\u0151t tart el ez a j\u00f6vedelem, veled egy\u00fctt<\/span><\/label>\r\n              <div class=\"mezo utotag\"><input id=\"letszam\" type=\"text\" inputmode=\"numeric\" autocomplete=\"off\" value=\"1\"><span>f\u0151<\/span><\/div><\/div>\r\n            <div class=\"kat\"><label for=\"kereso\"><span class=\"kat-nev\">Ebb\u0151l keres\u0151<\/span><span class=\"kat-sugo\">h\u00e1ny f\u0151 hozza a j\u00f6vedelmet (a kereseti tizedhez ennyi fel\u00e9 osztjuk)<\/span><\/label>\r\n              <div class=\"mezo utotag\"><input id=\"kereso\" type=\"text\" inputmode=\"numeric\" autocomplete=\"off\" value=\"1\"><span>f\u0151<\/span><\/div><\/div>\r\n            <div class=\"kat\"><label for=\"jov-tol\"><span class=\"kat-nev\" id=\"jov-tol-cimke\">Nett\u00f3 j\u00f6vedelem a kezd\u0151\u00e9vben<\/span><span class=\"kat-sugo\">nem k\u00f6telez\u0151; ebb\u0151l sz\u00e1molom ki, n\u0151tt-e a v\u00e1s\u00e1rl\u00f3er\u0151d (re\u00e1lb\u00e9r)<\/span><\/label>\r\n              <div class=\"mezo utotag\"><input id=\"jov-tol\" type=\"text\" inputmode=\"numeric\" autocomplete=\"off\" placeholder=\"pl. 300 000\"><span>Ft<\/span><\/div><\/div>\r\n          <\/div>\r\n          <!-- Kereseti tizedvonalz\u00f3: hova tartozol a teljes munkaid\u0151s dolgoz\u00f3k k\u00f6z\u00f6tt -->\r\n          <div class=\"tized\" id=\"tized\" hidden>\r\n            <p class=\"tized-cim\">Hova tartozol ezzel a keresettel?<\/p>\r\n            <div class=\"tized-sav\" id=\"tized-sav\">${[0,1,2,3,4,5,6,7,8,9].map(function (i) { return '<span class=\"tized-cella\" data-d=\"' + i + '\">' + (i + 1) + '.<\/span>'; }).join('')}<span class=\"tized-jelolo\" id=\"tized-jelolo\" aria-hidden=\"true\"><\/span><\/div>\r\n            <div class=\"tized-hatarok\" id=\"tized-hatarok\"><\/div>\r\n            <p class=\"tized-szoveg\" id=\"tized-szoveg\"><\/p>\r\n          <\/div>\r\n        <\/div>\r\n        <div class=\"kosar-lab\"><span id=\"osszesen\"><\/span><span class=\"figyelmeztetes\" id=\"figyelmeztetes\"><\/span><\/div>\r\n        <div class=\"egyenleg\" id=\"egyenleg\" aria-live=\"polite\"><\/div>\r\n        <div class=\"egyenleg\" id=\"realber\" aria-live=\"polite\"><\/div>\r\n      <\/div>\r\n\r\n      <p class=\"hiba\" aria-live=\"polite\"><\/p>\r\n\r\n      <div class=\"eredmenyek\" aria-live=\"polite\">\r\n        <div class=\"stat fo\"><p class=\"nev\" data-nev=\"1\"><\/p><div class=\"ertek\" data-ertek=\"1\">\u2013<\/div><div class=\"al\" data-al=\"1\"><\/div><\/div>\r\n        <div class=\"stat\"><p class=\"nev\" data-nev=\"2\"><\/p><div class=\"ertek\" data-ertek=\"2\">\u2013<\/div><div class=\"al\" data-al=\"2\"><\/div><\/div>\r\n        <div class=\"stat\" id=\"stat-ny\"><p class=\"nev\" data-nev=\"3\"><\/p><div class=\"ertek\" data-ertek=\"3\">\u2013<\/div><div class=\"al\" data-al=\"3\"><\/div><\/div>\r\n        <div class=\"stat\"><p class=\"nev\" data-nev=\"4\"><\/p><div class=\"ertek\" data-ertek=\"4\">\u2013<\/div><div class=\"al\" data-al=\"4\"><\/div><\/div>\r\n      <\/div>\r\n      <p class=\"mondat\" aria-live=\"polite\"><\/p>\r\n      <!-- Mi\u00e9rt t\u00e9r el az infl\u00e1ci\u00f3d az \u00e1tlagt\u00f3l? -->\r\n      <div class=\"miert\" id=\"miert\" aria-live=\"polite\"><\/div>\r\n      <!-- A legjobban \u00e9s legkev\u00e9sb\u00e9 dr\u00e1gul\u00f3 t\u00e9telek a v\u00e1lasztott id\u0151szakban -->\r\n      <div class=\"toplista\" id=\"toplista\">\r\n        <div><p class=\"top-cim\" id=\"top-fel-cim\"><\/p><ol id=\"top-fel\"><\/ol><\/div>\r\n        <div><p class=\"top-cim\" id=\"top-le-cim\"><\/p><ol id=\"top-le\"><\/ol><\/div>\r\n      <\/div>\r\n\r\n      <div class=\"megosztas\">\r\n        <button class=\"gomb\" id=\"link\" type=\"button\">\ud83d\udd17 Eredm\u00e9ny megoszt\u00e1sa (link m\u00e1sol\u00e1sa)<\/button>\r\n        <span class=\"allapot\" aria-live=\"polite\"><\/span>\r\n        <input class=\"link-mezo\" type=\"text\" readonly hidden aria-label=\"Megoszthat\u00f3 link\">\r\n      <\/div>\r\n\r\n      <div class=\"doboz\">\r\n        <div class=\"doboz-fej\">\r\n          <span class=\"doboz-cim\" id=\"hoz-cim\"><\/span>\r\n          <button class=\"gomb\" id=\"png-hoz\" type=\"button\" title=\"A grafikon ment\u00e9se k\u00e9pk\u00e9nt\">\u2913 Let\u00f6lt\u00e9s PNG-k\u00e9nt<\/button>\r\n        <\/div>\r\n        <div class=\"vaszon\" id=\"vaszon-hoz\"><canvas id=\"c-hoz\" role=\"img\"><\/canvas><\/div>\r\n        <p class=\"megjegyzes\" id=\"hoz-megj\"><\/p>\r\n      <\/div>\r\n\r\n      <div class=\"doboz\" id=\"doboz-ido\">\r\n        <div class=\"doboz-fej\">\r\n          <span class=\"doboz-cim\" id=\"ido-cim\"><\/span>\r\n          <button class=\"gomb\" id=\"png-ido\" type=\"button\" title=\"A grafikon ment\u00e9se k\u00e9pk\u00e9nt\">\u2913 Let\u00f6lt\u00e9s PNG-k\u00e9nt<\/button>\r\n        <\/div>\r\n        <div class=\"vaszon\"><canvas id=\"c-ido\" role=\"img\"><\/canvas><\/div>\r\n        <p class=\"megjegyzes\" id=\"ido-megj\"><\/p>\r\n      <\/div>\r\n\r\n      <details class=\"tabla\" open>\r\n        <summary>Kateg\u00f3ri\u00e1nk\u00e9nt t\u00e1bl\u00e1zatban<\/summary>\r\n        <div class=\"tabla-belso\">\r\n          <div class=\"gorgeto\">\r\n            <table id=\"t-kat\">\r\n              <thead><tr><th>Kateg\u00f3ria<\/th><th>S\u00falyod<\/th><th id=\"th-ksh-suly\">KSH-s\u00faly<\/th><th id=\"th-valt\">\u00c1rv\u00e1ltoz\u00e1s<\/th><th>Hozz\u00e1j\u00e1rul\u00e1sod<\/th><th id=\"th-ksh-hoz\">\u00c1tlagkos\u00e1r hozz\u00e1j\u00e1rul\u00e1sa<\/th><\/tr><\/thead>\r\n              <tbody><\/tbody><tfoot><\/tfoot>\r\n            <\/table>\r\n          <\/div>\r\n          <div class=\"tabla-lab\">\r\n            <span>Hozz\u00e1j\u00e1rul\u00e1s = s\u00faly \u00d7 a kateg\u00f3ria \u00e1rv\u00e1ltoz\u00e1sa, sz\u00e1zal\u00e9kpontban. * El\u0151zetes adat.<\/span>\r\n            <button class=\"gomb\" id=\"csv\" type=\"button\">\u2913 Let\u00f6lt\u00e9s CSV-k\u00e9nt (Excel)<\/button>\r\n          <\/div>\r\n        <\/div>\r\n      <\/details>\r\n\r\n      <details class=\"tabla\" id=\"tabla-ev\">\r\n        <summary>\u00c9venk\u00e9nti bont\u00e1s t\u00e1bl\u00e1zatban<\/summary>\r\n        <div class=\"tabla-belso\">\r\n          <div class=\"gorgeto\">\r\n            <table id=\"t-ev\">\r\n              <thead><tr><th>\u00c9v<\/th><th>Te<\/th><th id=\"th-ksh-ev\">\u00c1tlag<\/th><th id=\"th-ny\">Nyugd\u00edjas index<\/th><th id=\"th-arszint\">\u00c1rszinted<\/th><th id=\"th-ksh-arszint\">KSH-\u00e1rszint<\/th><\/tr><\/thead>\r\n              <tbody><\/tbody>\r\n            <\/table>\r\n          <\/div>\r\n        <\/div>\r\n      <\/details>\r\n\r\n      <div class=\"disclaimer\">\r\n        <p id=\"adatforras\"><\/p>\r\n        <p id=\"modszertan\"><\/p>\r\n        <p><strong>Adatv\u00e9delem:<\/strong> a be\u00edrt adataidat nem t\u00e1roljuk \u00e9s nem k\u00fcldj\u00fck el sehova; minden sz\u00e1m\u00edt\u00e1s a b\u00f6ng\u00e9sz\u0151dben t\u00f6rt\u00e9nik, \u00e9s az oldal bez\u00e1r\u00e1sakor t\u00f6rl\u0151dik. A megoszt\u00e1s gomb a be\u00e1ll\u00edt\u00e1saidat a linkbe teszi: azt csak az l\u00e1tja, akinek elk\u00fcld\u00f6d.<\/p>\r\n        <p><strong>Jogi \u00e9s felel\u0151ss\u00e9gi nyilatkozat (aka. disclaimer):<\/strong> a kalkul\u00e1tor kiz\u00e1r\u00f3lag t\u00e1j\u00e9koztat\u00f3 jelleg\u0171, az eredm\u00e9nyek becsl\u00e9sek, \u00e9s nem min\u0151s\u00fclnek befektet\u00e9si, ad\u00f3z\u00e1si vagy p\u00e9nz\u00fcgyi tan\u00e1csad\u00e1snak, sem aj\u00e1nlatt\u00e9telnek. A sz\u00e1m\u00edt\u00e1s helyess\u00e9g\u00e9\u00e9rt \u00e9s a felhaszn\u00e1lt adatok teljess\u00e9g\u00e9\u00e9rt felel\u0151ss\u00e9get nem v\u00e1llalok. A meghozott d\u00f6nt\u00e9seitek\u00e9rt KIZ\u00c1R\u00d3LAG TI vagytok a felel\u0151sek.<\/p>\r\n      <\/div>\r\n    <\/div>`;\r\n  }\r\n\r\n  \/* ==========================================================\r\n     7. CHART.JS BET\u00d6LT\u00c9SE (egyszer, megosztva a t\u00f6bbi kalkul\u00e1torral)\r\n     ========================================================== *\/\r\n  function chartJsBetoltes() {\r\n    if (window.Chart) return Promise.resolve(window.Chart);\r\n    if (!window.__iocChartJs) {\r\n      window.__iocChartJs = new Promise(function (ok, hiba) {\r\n        var s = document.createElement('script');\r\n        s.src = CHARTJS_URL; s.async = true;\r\n        s.onload = function () { ok(window.Chart); };\r\n        s.onerror = hiba;\r\n        document.head.appendChild(s);\r\n      });\r\n    }\r\n    return window.__iocChartJs;\r\n  }\r\n  var feherHatter = {\r\n    id: 'iocFeherHatter',\r\n    beforeDraw: function (chart) {\r\n      var c = chart.ctx;\r\n      c.save(); c.globalCompositeOperation = 'destination-over';\r\n      c.fillStyle = '#ffffff'; c.fillRect(0, 0, chart.width, chart.height);\r\n      c.restore();\r\n    }\r\n  };\r\n  var tooltipAlap = { backgroundColor: SZIN.navy, titleColor: '#fff', bodyColor: '#fff', padding: 10, cornerRadius: 6 };\r\n\r\n  \/* ==========================================================\r\n     8. A KALKUL\u00c1TOR ELEM\r\n     ========================================================== *\/\r\n  class IocSzemelyesInflacio extends HTMLElement {\r\n    connectedCallback() {\r\n      if (this._kesz) return;\r\n      this._kesz = true;\r\n      var root = this.attachShadow({ mode: 'open' });\r\n      root.innerHTML = '<style>' + CSS + '<\/style>' + vaz();\r\n      this._r = root;\r\n      this._rendszer = '7';\r\n      this._mod = 'ft';\r\n      this._osszeg = PELDA_OSSZEG;     \/\/ Ft m\u00f3dban a kos\u00e1r \u00f6sszege; %-r\u00f3l visszav\u00e1lt\u00e1skor ebb\u0151l sz\u00e1molunk\r\n      this._modositva = false;         \/\/ \u00edrt-e m\u00e1r a felhaszn\u00e1l\u00f3 a kos\u00e1rba (\u00e9l\u0151 adatn\u00e1l ne \u00edrjuk fel\u00fcl)\r\n      this._charts = {};\r\n\r\n      this.$('#jovedelem').value = fmtSzam.format(ATLAG_NETTO.ertek);\r\n      this._jovModositva = false;\r\n      this._rendszerValtas('7');\r\n      var voltParameter = this._parameterekBetoltese();\r\n      this._esemenyek();\r\n      this._szamol();\r\n\r\n      if (voltParameter) {\r\n        var elem = this;\r\n        setTimeout(function () { elem.scrollIntoView({ behavior: 'smooth', block: 'start' }); }, 400);\r\n      }\r\n\r\n      var self = this;\r\n      chartJsBetoltes().then(function () { self._rajzol(); }).catch(function () {\r\n        root.querySelectorAll('.vaszon').forEach(function (v) { v.innerHTML = '<div class=\"grafikon-hiba\">A grafikon most nem t\u00f6lthet\u0151 be. Az eredm\u00e9nyek \u00e9s a t\u00e1bl\u00e1zat \u00edgy is pontosak.<\/div>'; });\r\n        root.querySelectorAll('#png-hoz, #png-ido').forEach(function (g) { g.hidden = true; });\r\n      });\r\n\r\n      eloAdatBetoltes().then(function (valtozott) {\r\n        if (valtozott) {\r\n          var tol = self.$('#tol').value, ig = self.$('#ig').value;\r\n          if (!self._jovModositva) self.$('#jovedelem').value = fmtSzam.format(ATLAG_NETTO.ertek);\r\n          self._rendszerValtas(self._rendszer, !self._modositva ? null : 'megtart');\r\n          \/\/ ha a felhaszn\u00e1l\u00f3 nem a legutols\u00f3 \u00e9vet n\u00e9zte, a v\u00e1laszt\u00e1s\u00e1t megtartjuk\r\n          if (self._evModositva) { self._evBeallit('tol', Number(tol)); self._evBeallit('ig', Number(ig)); }\r\n          else {\r\n            \/\/ ha az olvas\u00f3 nem v\u00e1lasztott \u00e9vet, a legfrissebb \u00e9vre \u00e1llunk (pl. megjelent az el\u0151zetes adat)\r\n            var t = evTartomany(self._R());\r\n            self.$('#ig').value = String(t.utolso); self.$('#tol').value = String(t.utolso - 1);\r\n          }\r\n          self._szamol(); self._rajzol();\r\n        } else {\r\n          self._allapotKiir();\r\n        }\r\n      });\r\n    }\r\n\r\n    $(sel) { return this._r.querySelector(sel); }\r\n    _R() { return RENDSZEREK[this._rendszer]; }\r\n\r\n    _allapotKiir() {\r\n      this.$('#adat-allapot').textContent = ADAT_ALLAPOT.szoveg;\r\n      this.$('#adat-allapot').classList.toggle('elo', ADAT_ALLAPOT.elo);\r\n    }\r\n\r\n    _esemenyek() {\r\n      var self = this, idozito;\r\n      var ujraszamol = function () { clearTimeout(idozito); idozito = setTimeout(function () { self._szamol(); self._rajzol(); }, 150); };\r\n\r\n      \/\/ a kateg\u00f3riamez\u0151k a kateg\u00f3ri\u00e1k \u00fajra\u00e9p\u00edt\u00e9sekor cser\u00e9l\u0151dnek, ez\u00e9rt a sz\u00fcl\u0151n figyel\u00fcnk\r\n      this.$('#kategoriak').addEventListener('input', function (e) {\r\n        if (!e.target.matches('input')) return;\r\n        if (self._mod === 'ft') elofoTagolas(e.target); else tizedesSzuro(e.target, e.target.dataset.negativ === '1' ? -100 : 0, 100);\r\n        self._modositva = true;\r\n        ujraszamol();\r\n      });\r\n      ['#tol', '#ig'].forEach(function (s) { self.$(s).addEventListener('input', function () { self._evModositva = true; ujraszamol(); }); });\r\n      this.$('#hitel').addEventListener('input', function (e) { if (self._mod === 'ft') elofoTagolas(e.target); else tizedesSzuro(e.target, 0, 100); ujraszamol(); });\r\n      this.$('#hitel-valt').addEventListener('input', function (e) { tizedesSzuro(e.target, -90, 500); ujraszamol(); });\r\n      this.$('#deviza').addEventListener('input', function (e) { if (self._mod === 'ft') elofoTagolas(e.target); else tizedesSzuro(e.target, 0, 100); ujraszamol(); });\r\n      this._r.querySelectorAll('[data-deviza]').forEach(function (g) {\r\n        g.addEventListener('click', function () {\r\n          self._r.querySelectorAll('[data-deviza]').forEach(function (x) { x.setAttribute('aria-pressed', String(x === g)); });\r\n          self._szamol(); self._rajzol();\r\n        });\r\n      });\r\n      this.$('#jovedelem').addEventListener('input', function (e) { elofoTagolas(e.target); self._jovModositva = true; ujraszamol(); });\r\n      this.$('#jov-tol').addEventListener('input', function (e) { elofoTagolas(e.target); ujraszamol(); });\r\n      this.$('#letszam').addEventListener('input', function (e) { egeszSzuro(e.target, 1, MAX_FO); ujraszamol(); });\r\n      this.$('#kereso').addEventListener('input', function (e) { egeszSzuro(e.target, 1, MAX_FO); ujraszamol(); });\r\n      this._r.querySelectorAll('[data-kamat]').forEach(function (g) {\r\n        g.addEventListener('click', function () {\r\n          self._r.querySelectorAll('[data-kamat]').forEach(function (x) { x.setAttribute('aria-pressed', String(x === g)); });\r\n          self._szamol(); self._rajzol();\r\n        });\r\n      });\r\n\r\n      this._r.querySelectorAll('[data-lep]').forEach(function (gomb) {\r\n        gomb.addEventListener('click', function () {\r\n          var s = self.$('#' + gomb.dataset.lep), uj = s.selectedIndex + Number(gomb.dataset.irany);\r\n          if (uj < 0 || uj >= s.options.length) return;\r\n          s.selectedIndex = uj;\r\n          s.dispatchEvent(new Event('input'));\r\n        });\r\n      });\r\n\r\n      this._r.querySelectorAll('[data-rendszer]').forEach(function (g) {\r\n        g.addEventListener('click', function () {\r\n          if (g.dataset.rendszer === self._rendszer) return;\r\n          self._rendszerValtas(g.dataset.rendszer);\r\n          self._szamol(); self._rajzol();\r\n        });\r\n      });\r\n      this._r.querySelectorAll('[data-mod]').forEach(function (g) {\r\n        g.addEventListener('click', function () {\r\n          if (g.dataset.mod === self._mod) return;\r\n          self._modValtas(g.dataset.mod);\r\n          self._szamol(); self._rajzol();\r\n        });\r\n      });\r\n      this._r.querySelectorAll('[data-alap]').forEach(function (g) {\r\n        g.addEventListener('click', function () {\r\n          self._alapKosar(g.dataset.alap);\r\n          self._eletTorles();\r\n          self._modositva = false;\r\n          self._szamol(); self._rajzol();\r\n        });\r\n      });\r\n\r\n      \/\/ f\u0171t\u00e9sm\u00f3d (egyszerre egy) \u00e9s napelem\r\n      this._r.querySelectorAll('[data-futes]').forEach(function (c) {\r\n        c.addEventListener('change', function () {\r\n          if (c.checked) self._r.querySelectorAll('[data-futes]').forEach(function (x) { if (x !== c) x.checked = false; });\r\n          self._energia();\r\n          self._jelolesFrissit();\r\n          self._modositva = true;\r\n          self._szamol(); self._rajzol();\r\n        });\r\n      });\r\n      this.$('[data-napelem]').addEventListener('change', function () {\r\n        self._energia();\r\n        self._jelolesFrissit();\r\n        self._modositva = true;\r\n        self._szamol(); self._rajzol();\r\n      });\r\n\r\n      \/\/ \u00e9lethelyzet-kapcsol\u00f3k (Nem doh\u00e1nyzom, Nincs aut\u00f3m, Alb\u00e9rletben lakom)\r\n      this._r.querySelectorAll('[data-elet]').forEach(function (c) {\r\n        c.addEventListener('change', function () {\r\n          self._elethelyzet(c.dataset.elet, c.checked);\r\n          self._jelolesFrissit();\r\n          self._modositva = true;\r\n          self._szamol(); self._rajzol();\r\n        });\r\n      });\r\n\r\n      this.$('#link').addEventListener('click', function () { self._linkMasolas(); });\r\n      this.$('#png-hoz').addEventListener('click', function () { self._png('hoz'); });\r\n      this.$('#png-ido').addEventListener('click', function () { self._png('ido'); });\r\n      this.$('#csv').addEventListener('click', function () { self._csv(); });\r\n    }\r\n\r\n    \/* Kateg\u00f3riarendszer v\u00e1lt\u00e1sa: \u00faj mez\u0151k a KSH-\u00e1tlagkos\u00e1rral (Ft m\u00f3dban\r\n       ugyanakkora havi \u00f6sszeggel), az \u00e9vek az \u00faj tartom\u00e1nyba igaz\u00edtva.\r\n       megtart = 'megtart': a megl\u00e9v\u0151 mez\u0151\u00e9rt\u00e9kek maradnak (\u00e9l\u0151 adat \u00e9rkez\u00e9sekor). *\/\r\n    _rendszerValtas(kod, megtart) {\r\n      var regiErtekek = megtart ? this._ertekek() : null;\r\n      var regiTol = Number(this.$('#tol').value), regiIg = Number(this.$('#ig').value);\r\n      if (!megtart && this.$('#kategoriak').children.length) this._osszeg = this._kosarOsszeg() || this._osszeg;\r\n      this._rendszer = kod;\r\n      var R = this._R(), t = evTartomany(R);\r\n      AKT_R = R;\r\n\r\n      this._r.querySelectorAll('[data-rendszer]').forEach(function (g) { g.setAttribute('aria-pressed', String(g.dataset.rendszer === kod)); });\r\n      this.$('[data-alap=\"nyugdijas\"]').hidden = !R.suly.nyugdijas;\r\n      this.$('[data-alap=\"jovedelem\"]').hidden = false;\r\n      if (!megtart) this.$('#alap-info').hidden = true;\r\n\r\n      \/\/ \u00e9vv\u00e1laszt\u00f3k\r\n      var opciok = '';\r\n      for (var ev = t.elso; ev <= t.utolso; ev++) opciok += '<option value=\"' + ev + '\">' + evCimke(ev) + '<\/option>';\r\n      this.$('#tol').innerHTML = opciok; this.$('#ig').innerHTML = opciok;\r\n      var ig = regiIg >= t.elso + 1 && regiIg <= t.utolso ? regiIg : t.utolso;\r\n      var tol = regiTol >= t.elso && regiTol < ig ? regiTol : ig - 1;\r\n      this.$('#ig').value = String(ig); this.$('#tol').value = String(tol);\r\n\r\n      \/\/ kateg\u00f3riamez\u0151k\r\n      this.$('#kategoriak').innerHTML = R.csoportok.map(function (cs, i) {\r\n        return (cs.fejezet ? '<div class=\"kat-fejezet\">' + cs.fejezet + '<\/div>' : '') + '<div class=\"kat\"><label for=\"kat-' + i + '\"><span class=\"kat-nev\">' + cs.nev + '<\/span><span class=\"kat-sugo\">' + cs.sugo + '<\/span><\/label>' +\r\n          '<div class=\"mezo utotag\"><input id=\"kat-' + i + '\" data-kat=\"' + i + '\" type=\"text\" autocomplete=\"off\"><span class=\"egyseg\"><\/span><\/div><\/div>';\r\n      }).join('');\r\n      this._egysegFrissit();\r\n      if (regiErtekek && regiErtekek.length === R.csoportok.length) this._ertekekBeir(regiErtekek);\r\n      else this._alapKosar('atlag');\r\n\r\n      this.$('#th-ny').hidden = !R.nyugdijas;\r\n      this.$('#stat-ny').hidden = !R.nyugdijas;\r\n      this.$('.eredmenyek').classList.toggle('harom', !R.nyugdijas);\r\n      this.$('#vaszon-hoz').style.height = (R.csoportok.length > 7 ? 700 : 360) + 'px';\r\n      \/\/ \u00e9lethelyzet-kapcsol\u00f3k csak a r\u00e9szletes kos\u00e1rn\u00e1l; v\u00e1lt\u00e1skor alaphelyzetbe \u00e1llnak\r\n      this.$('#eletmod').hidden = kod !== 'R';\r\n      if (!megtart) {\r\n        this._eletMentes = {}; this._energiaAlap = null;\r\n        this._r.querySelectorAll('[data-elet], [data-futes], [data-napelem]').forEach(function (c) { c.checked = false; });\r\n      } else if (kod === 'R') this._napelemSugo(this.$('[data-napelem]').checked);\r\n      this._jelolesFrissit();\r\n      this._lablecFrissit();\r\n    }\r\n\r\n    \/* \u00c9lethelyzet-kapcsol\u00f3: bekapcsolva a megfelel\u0151 sorok 0-ra (vagy alb\u00e9rletn\u00e9l\r\n       egy p\u00e9lda\u00e9rt\u00e9kre) \u00e1llnak, \u00e9s a kor\u00e1bbi \u00e9rt\u00e9k\u00fcket megjegyezz\u00fck; kikapcsolva\r\n       visszakapj\u00e1k (ha k\u00f6zben m\u00e9rt\u00e9kegys\u00e9get v\u00e1ltott\u00e1l, a KSH-kos\u00e1r szerinti \u00e9rt\u00e9ket). *\/\r\n    _elethelyzet(kulcs, be) {\r\n      if (this._rendszer !== 'R') return;   \/\/ az \u00e9letm\u00f3d-kapcsol\u00f3k csak a r\u00e9szletes kos\u00e1rban l\u00e9teznek\r\n      var h = ELETHELYZETEK[kulcs], self = this, ft = this._mod === 'ft';\r\n      var mezok = h.sorok.map(function (i) { return self.$('#kat-' + i); });\r\n      if (be) {\r\n        this._eletMentes[kulcs] = { mod: this._mod, ertekek: mezok.map(function (m) { return m.value; }) };\r\n        mezok.forEach(function (m) {\r\n          m.value = h.ft ? (ft ? fmtSzam.format(h.ft) : fmtSzazalek.format(h.szazalek)) : '0';\r\n        });\r\n      } else {\r\n        var mentes = this._eletMentes[kulcs];\r\n        var R = this._R(), osszeg = ft ? (this._kosarOsszeg() || this._osszeg) : 100;\r\n        mezok.forEach(function (m, j) {\r\n          if (mentes && mentes.mod === self._mod) m.value = mentes.ertekek[j];\r\n          else { var w = R.suly.atlag[h.sorok[j]] \/ 100 * osszeg; m.value = ft ? fmtSzam.format(Math.round(w \/ 100) * 100) : fmtSzazalek.format(kerek1(w)); }\r\n        });\r\n        delete this._eletMentes[kulcs];\r\n      }\r\n      \/\/ a megv\u00e1ltozott sorok r\u00f6vid kiemel\u00e9se, alb\u00e9rletn\u00e9l a mez\u0151 kijel\u00f6l\u00e9se \u00e1t\u00edr\u00e1sra\r\n      mezok.forEach(function (m) {\r\n        var sor = m.closest('.kat'); sor.classList.add('kiemelt');\r\n        setTimeout(function () { sor.classList.remove('kiemelt'); }, 1400);\r\n      });\r\n      if (be && h.ft) { mezok[0].focus(); mezok[0].select(); }\r\n    }\r\n    _eletTorles() {\r\n      this._eletMentes = {};\r\n      this._energiaAlap = null;\r\n      this._r.querySelectorAll('[data-elet], [data-futes], [data-napelem]').forEach(function (c) { c.checked = false; });\r\n      this._napelemSugo(false);\r\n      this._jelolesFrissit();\r\n    }\r\n\r\n    \/* F\u0171t\u00e9sm\u00f3d \u00e9s napelem: az energiasorok eredeti \u00e9rt\u00e9k\u00e9t megjegyezz\u00fck (els\u0151 bekapcsol\u00e1skor),\r\n       \u00e9s mindig abb\u00f3l sz\u00e1molunk: f\u0171t\u00e9sm\u00f3dn\u00e1l az egy\u00fcttes \u00f6sszeget sz\u00e9tosztjuk, napelemn\u00e9l a villany 0. *\/\r\n    _energia() {\r\n      if (this._rendszer !== 'R') return;   \/\/ f\u0171t\u00e9sm\u00f3d \u00e9s napelem csak a r\u00e9szletes kos\u00e1rban\r\n      var self = this, ft = this._mod === 'ft';\r\n      var futes = Array.prototype.filter.call(this._r.querySelectorAll('[data-futes]'), function (c) { return c.checked; })[0];\r\n      var napelem = this.$('[data-napelem]').checked;\r\n      var kulcsok = Object.keys(ENERGIA_SOROK);\r\n      var mezo = function (k) { return self.$('#kat-' + ENERGIA_SOROK[k]); };\r\n      if (!this._energiaAlap) {\r\n        this._energiaAlap = {};\r\n        kulcsok.forEach(function (k) { self._energiaAlap[k] = Math.max(0, beolvas(mezo(k).value) || 0); });\r\n      }\r\n      var alap = this._energiaAlap, ertek = {};\r\n      var osszes = kulcsok.reduce(function (s, k) { return s + alap[k]; }, 0);\r\n      kulcsok.forEach(function (k) { ertek[k] = futes ? osszes * (FUTESMODOK[futes.dataset.futes].megoszlas[k] || 0) : alap[k]; });\r\n      if (napelem) ertek.villany = 0;\r\n      kulcsok.forEach(function (k) {\r\n        var m = mezo(k);\r\n        m.value = ft ? fmtSzam.format(Math.round(ertek[k] \/ 100) * 100) : fmtSzazalek.format(kerek1(ertek[k]));\r\n        var sor = m.closest('.kat'); sor.classList.add('kiemelt');\r\n        setTimeout(function () { sor.classList.remove('kiemelt'); }, 1400);\r\n      });\r\n      this._napelemSugo(napelem);\r\n      if (!futes && !napelem) this._energiaAlap = null;   \/\/ minden vissza\u00e1llt az eredetire\r\n    }\r\n    _napelemSugo(be) {\r\n      var m = this.$('#kat-' + ENERGIA_SOROK.villany);\r\n      if (!m || this._rendszer !== 'R') return;\r\n      m.dataset.negativ = be ? '1' : '';\r\n      \/\/ a telefonos sz\u00e1mbillenty\u0171zeten nincs m\u00ednuszjel, ez\u00e9rt negat\u00edv \u00e9rt\u00e9kn\u00e9l sz\u00f6veges billenty\u0171zet kell\r\n      m.inputMode = be ? 'text' : (this._mod === 'ft' ? 'numeric' : 'decimal');\r\n      if (!be && \/^\\s*[-\u2212]\/.test(m.value)) { m.value = m.value.replace(\/^\\s*[-\u2212]\/, ''); }\r\n      var sugo = m.closest('.kat').querySelector('.kat-sugo');\r\n      sugo.textContent = be ? 'napelemmel: ha a szald\u00f3 elsz\u00e1mol\u00e1s miatt j\u00f3v\u00e1\u00edr\u00e1st kapsz, negat\u00edv \u00f6sszeget is \u00edrhatsz (pl. \u22125 000, legfeljebb \u22121 milli\u00f3 Ft)' : CSOPORT_R[ENERGIA_SOROK.villany].sugo;\r\n    }\r\n    \/\/ A bekapcsolt gyorsgombok sorainak megjel\u00f6l\u00e9se, hogy lejjebb g\u00f6rgetve is l\u00e1tsz\u00f3djon, mit \u00edrt \u00e1t a gomb\r\n    _jelolesFrissit() {\r\n      var self = this;\r\n      this._r.querySelectorAll('#kategoriak .kat').forEach(function (k) { k.classList.remove('kapcsolt'); });\r\n      this._r.querySelectorAll('#kategoriak .kat-cimke').forEach(function (c) { c.remove(); });\r\n      if (this._rendszer !== 'R') return;\r\n      var jelol = function (i, szoveg) {\r\n        var m = self.$('#kat-' + i); if (!m) return;\r\n        var sor = m.closest('.kat'); sor.classList.add('kapcsolt');\r\n        var cimke = document.createElement('span');\r\n        cimke.className = 'kat-cimke'; cimke.textContent = '\u2713 ' + szoveg;\r\n        sor.querySelector('label').appendChild(cimke);\r\n      };\r\n      this._r.querySelectorAll('[data-elet]').forEach(function (c) {\r\n        if (!c.checked) return;\r\n        ELETHELYZETEK[c.dataset.elet].sorok.forEach(function (i) { jelol(i, ELETHELYZETEK[c.dataset.elet].nev); });\r\n      });\r\n      this._r.querySelectorAll('[data-futes]').forEach(function (c) {\r\n        if (!c.checked) return;\r\n        Object.keys(ENERGIA_SOROK).forEach(function (k) { jelol(ENERGIA_SOROK[k], 'F\u0171t\u00e9s: ' + FUTESMODOK[c.dataset.futes].nev.replace(\/ \\(.*\\)$\/, '').toLowerCase()); });\r\n      });\r\n      if (this.$('[data-napelem]').checked) jelol(ENERGIA_SOROK.villany, 'Napelem');\r\n    }\r\n\r\n    \/\/ Ft \u2194 % v\u00e1lt\u00e1s: a mez\u0151k \u00e1tsz\u00e1molva, ugyanaz a kos\u00e1r marad\r\n    _modValtas(mod) {\r\n      var e = this._ertekek(), h = this._hitel(), dv = this._deviza(), katOssz = e.reduce(function (a, b) { return a + (b > 0 ? b : 0); }, 0);\r\n      if (!(h >= 0)) h = 0;\r\n      if (!(dv >= 0)) dv = 0;\r\n      var ossz = katOssz + h + dv;\r\n      var regi = this._mod;\r\n      this._mod = mod;\r\n      this._r.querySelectorAll('[data-mod]').forEach(function (g) { g.setAttribute('aria-pressed', String(g.dataset.mod === mod)); });\r\n      this._egysegFrissit();\r\n      if (!(katOssz > 0)) { this._hitelBeir(0); this._alapKosar('atlag'); return; }\r\n      \/\/ %-r\u00f3l vissza Ft-ra: ha k\u00f6zben nem \u00edrt\u00e1l \u00e1t semmit, a kor\u00e1bbi pontos forint\u00f6sszegek j\u00f6nnek vissza (nincs kerek\u00edt\u00e9si cs\u00fasz\u00e1s)\r\n      var mostani = this._ertekekSzoveg();\r\n      if (regi === 'szazalek' && this._ftMentes && this._ftMentes.szazalek === mostani) {\r\n        var m = this._ftMentes;\r\n        this.$('#hitel').value = m.hitel; this.$('#deviza').value = m.deviza;\r\n        this._r.querySelectorAll('#kategoriak input').forEach(function (x, i) { x.value = m.ertekek[i]; });\r\n        this._eletMentes = {};\r\n        return;\r\n      }\r\n      var ftElotte = regi === 'ft' ? { ertekek: Array.prototype.map.call(this._r.querySelectorAll('#kategoriak input'), function (x) { return x.value; }), hitel: this.$('#hitel').value, deviza: this.$('#deviza').value } : null;\r\n      var cel = regi === 'ft' ? 100 : this._osszeg;      \/\/ %-ba v\u00e1ltva 100, Ft-ba v\u00e1ltva a kor\u00e1bbi havi \u00f6sszeg\r\n      if (regi === 'ft') this._osszeg = ossz;\r\n      var hUj = h \/ ossz * cel;\r\n      this._hitelBeir(hUj);\r\n      this._mezoBeir('#deviza', dv \/ ossz * cel);\r\n      var hKerek = beolvas(this.$('#hitel').value) + beolvas(this.$('#deviza').value);\r\n      this._ertekekBeir(e.map(function (v) { return v \/ ossz * cel; }), mod === 'ft' ? Math.round(cel - hKerek) : Math.round((100 - hKerek) * 10) \/ 10);\r\n      this._eletMentes = {};    \/\/ a megjegyzett \u00e9rt\u00e9kek m\u00e9rt\u00e9kegys\u00e9ge m\u00e1r nem stimmel\r\n      this._energiaAlap = null;\r\n      this._ftMentes = ftElotte ? Object.assign(ftElotte, { szazalek: this._ertekekSzoveg() }) : null;\r\n    }\r\n    _ertekekSzoveg() {\r\n      return Array.prototype.map.call(this._r.querySelectorAll('#kategoriak input'), function (x) { return x.value; }).join('|') + '|' + this.$('#hitel').value + '|' + this.$('#deviza').value;\r\n    }\r\n    _hitel() { return beolvas(this.$('#hitel').value); }\r\n    _deviza() { return beolvas(this.$('#deviza').value); }\r\n    _mezoBeir(sel, v) {\r\n      this.$(sel).value = this._mod === 'ft' ? fmtSzam.format(Math.round(v \/ 100) * 100) : fmtSzazalek.format(kerek1(v));\r\n    }\r\n    _hitelBeir(v) {\r\n      this.$('#hitel').value = this._mod === 'ft' ? fmtSzam.format(Math.round(v \/ 100) * 100) : fmtSzazalek.format(kerek1(v));\r\n    }\r\n\r\n    _egysegFrissit() {\r\n      var ft = this._mod === 'ft';\r\n      this._r.querySelectorAll('#kategoriak input, #hitel, #deviza').forEach(function (m) { m.inputMode = m.dataset.negativ === '1' ? 'text' : (ft ? 'numeric' : 'decimal'); });\r\n      this._r.querySelectorAll('.kosar .egyseg').forEach(function (s) { s.textContent = ft ? 'Ft' : '%'; });\r\n      this.$('#kosar-cim').textContent = ft ? 'Mire mennyit k\u00f6ltesz havonta?' : 'Mire k\u00f6lt\u00f6d a p\u00e9nzed (ar\u00e1nyok)?';\r\n    }\r\n\r\n    \/\/ A KSH \u00e1tlag- vagy nyugd\u00edjas kosara a mez\u0151kbe (Ft m\u00f3dban a mostani \u00f6sszeggel)\r\n    _alapKosar(fajta) {\r\n      var R = this._R(), s = (fajta === 'nyugdijas' && R.suly.nyugdijas) || R.suly.atlag;\r\n      var h = this._hitel() + this._deviza(); if (!(h >= 0 && h < 100) || this._mod === 'ft') h = 0;   \/\/ %-ban a hitel \u00e9s a deviza hely\u00e9t kihagyjuk\r\n      var osszeg = this._mod === 'ft' ? (this._kosarOsszeg() || this._osszeg) : 100 - h;   \/\/ %-ban a hitel r\u00e9sz\u00e9t kihagyjuk\r\n      var info = this.$('#alap-info');\r\n      info.hidden = true;\r\n      if (fajta === 'jovedelem') {\r\n        \/\/ a hozz\u00e1d hasonl\u00f3 j\u00f6vedelm\u0171 h\u00e1ztart\u00e1sok kosara: szerkezet \u00e9s (Ft m\u00f3dban) havi \u00f6sszeg is\r\n        var jov = beolvas(this.$('#jovedelem').value), fo = Math.round(beolvas(this.$('#letszam').value));\r\n        if (!(jov > 0)) jov = ATLAG_NETTO.ertek;\r\n        if (!(fo >= 1)) fo = 1;\r\n        fo = Math.min(fo, MAX_FO);\r\n        var d = haztartasiTized(jov, fo), k = R.csoportok[0].hbs != null ? tizedKosar(R, d) : tizedKosar7(R, RENDSZEREK.R, d);\r\n        s = k.suly;\r\n        if (this._mod === 'ft') osszeg = Math.round(k.havi * fo \/ 1000) * 1000;\r\n        var sav = d === 0 ? 'a legkevesebbet keres\u0151 10%' : d === 9 ? 'a legt\u00f6bbet keres\u0151 10%' : 'alulr\u00f3l ' + szamNevelo(d * 10) + ' ' + (d * 10) + '\u2013' + (d * 10 + 10) + '% k\u00f6z\u00f6tti s\u00e1v';\r\n        info.innerHTML = 'A kos\u00e1r a hozz\u00e1d hasonl\u00f3 j\u00f6vedelm\u0171 h\u00e1ztart\u00e1sok k\u00f6lt\u00e9si szerkezete: <strong>' + (d + 1) + '. h\u00e1ztart\u00e1si j\u00f6vedelmi tized<\/strong> (' + sav + ', ' + fo + ' f\u0151s h\u00e1ztart\u00e1s, ' + ft(jov) + ' havi nett\u00f3 j\u00f6vedelemmel). ' +\r\n          'Itt a h\u00e1ztart\u00e1s egy f\u0151re jut\u00f3 j\u00f6vedelme sz\u00e1m\u00edt (nem a kereseti tized), mert a kiad\u00e1si adat is egy f\u0151re jut\u00f3. Forr\u00e1s: KSH h\u00e1ztart\u00e1si k\u00f6lts\u00e9gvet\u00e9si felv\u00e9tel; ennek tizedes bont\u00e1sa 2020-as (ez a legfrissebb), mai keresetszintre \u00e1tsz\u00e1m\u00edtva' + (this._mod === 'ft' ? '. Az ilyen h\u00e1ztart\u00e1sok havi kiad\u00e1sa ennyi f\u0151re kb. ' + ft(osszeg) + '.' : '.') +\r\n          ' Ez a felv\u00e9tel a vend\u00e9gl\u00e1t\u00e1st, az alkoholt \u00e9s a doh\u00e1nyt jellemz\u0151en alulbecsli, ezeket \u00e9rdemes \u00e1tn\u00e9zni.';\r\n        info.hidden = false;\r\n      }\r\n      this._ertekekBeir(s.map(function (v) { return v \/ 100 * osszeg; }), this._mod === 'ft' ? Math.round(osszeg) : Math.round(osszeg * 10) \/ 10);\r\n    }\r\n\r\n    _kosarOsszeg() {\r\n      if (this._mod !== 'ft') return this._osszeg;\r\n      return this._ertekek().reduce(function (a, b) { return a + (b > 0 ? b : 0); }, 0);\r\n    }\r\n\r\n    _ertekek() {\r\n      return Array.prototype.map.call(this._r.querySelectorAll('#kategoriak input'), function (m) { return beolvas(m.value); });\r\n    }\r\n    _ertekekBeir(t, pontosOsszeg) {\r\n      var ft = this._mod === 'ft';\r\n      if (pontosOsszeg) {\r\n        \/\/ Ft: 100 Ft-ra, %: egy tizedesre kerek\u00edt\u00fcnk; a kerek\u00edt\u00e9si k\u00fcl\u00f6nbs\u00e9get a legnagyobb t\u00e9tel kapja,\r\n        \/\/ \u00edgy az \u00f6sszeg pontosan kij\u00f6n (400 000 Ft, illetve 100,0%)\r\n        var egyseg = ft ? 100 : 0.1;\r\n        var kerek = t.map(function (v) { return Math.round(v \/ egyseg) * egyseg; });\r\n        var kul = pontosOsszeg - kerek.reduce(function (a, b) { return a + b; }, 0);\r\n        var max = kerek.indexOf(Math.max.apply(null, kerek));\r\n        kerek[max] = Math.round((kerek[max] + kul) \/ egyseg) * egyseg;\r\n        t = kerek;\r\n      }\r\n      this._r.querySelectorAll('#kategoriak input').forEach(function (m, i) {\r\n        \/\/ Ft: 100 Ft-ra kerek\u00edtve; %: egy tizedes\r\n        m.value = ft ? fmtSzam.format(Math.round(t[i])) : fmtSzazalek.format(kerek1(t[i]));\r\n      });\r\n    }\r\n\r\n    _evBeallit(id, ev) {\r\n      var s = this.$('#' + id);\r\n      if (Array.prototype.some.call(s.options, function (o) { return Number(o.value) === ev; })) s.value = String(ev);\r\n    }\r\n\r\n    _lablecFrissit() {\r\n      var R = this._R(), t = evTartomany(R);\r\n      var forras;\r\n      if (this._rendszer === '7') {\r\n        forras = 'KSH, fogyaszt\u00f3i\u00e1r-index fogyaszt\u00e1si f\u0151csoportok szerint \u00e9s nyugd\u00edjas fogyaszt\u00f3i\u00e1r-index (STADAT 1.1.1.2., \u00e9ves, \u00e9s 1.2.1.2., havi), ' + (t.elso + 1) + '\u2013' + t.utolso + '. ' +\r\n          (R.elozetesEv ? 'A ' + R.elozetesEv + '* \u00e9v adatai a ' + R.elozetesHonapok + ' havi adatok \u00e1tlaga, ez\u00e9rt el\u0151zetesek. ' : '') +\r\n          'A kiindul\u00f3 kos\u00e1r a KSH ' + evEs(R.suly.ev).replace('*', '') + ' s\u00falyai (\u201eA fogyaszt\u00e1si kiad\u00e1sok megoszl\u00e1sa\u201d), \u00e1tlagos \u00e9s nyugd\u00edjas h\u00e1ztart\u00e1sra. ' +\r\n          'A nyugd\u00edjas index ' + evTol(1995) + ' \u00e9rhet\u0151 el.';\r\n      } else {\r\n        forras = 'Eurostat, harmoniz\u00e1lt fogyaszt\u00f3i\u00e1r-index (HICP), Magyarorsz\u00e1g, az ECOICOP 2 (COICOP 2018) alcsoportjai szerint: \u00e9ves \u00e1tlagos v\u00e1ltoz\u00e1s (prc_hicp_ainr), ' + (t.elso + 1) + '\u2013' + t.utolso + '. ' +\r\n          (R.elozetesEv ? 'A ' + R.elozetesEv + '* \u00e9v adatai a ' + R.elozetesHonapok + ' havi adatok \u00e1tlaga (Eurostat, havi HICP), ez\u00e9rt el\u0151zetesek. ' : '') +\r\n          'A kiindul\u00f3 kos\u00e1r az Eurostat ' + evEs(R.suly.ev).replace('*', '') + ' magyarorsz\u00e1gi s\u00falyai (prc_hicp_iw). Ezek a k\u00fclf\u00f6ldiek itteni k\u00f6lt\u00e9s\u00e9t is tartalmazz\u00e1k, ez\u00e9rt p\u00e9ld\u00e1ul a vend\u00e9gl\u00e1t\u00e1s s\u00falya nagyobb, mint egy \u00e1tlagos hazai h\u00e1ztart\u00e1sban. ' +\r\n          'A HICP a saj\u00e1t lak\u00e1s k\u00f6lts\u00e9geit (hitelt\u00f6rleszt\u00e9s, \u201esaj\u00e1t lakb\u00e9r\u201d) nem tartalmazza; a lakb\u00e9r sor a t\u00e9nylegesen fizetett b\u00e9rleti d\u00edjak \u00e1rv\u00e1ltoz\u00e1s\u00e1t m\u00e9ri.';\r\n      }\r\n      forras += ' A deviz\u00e1s kiad\u00e1sok \u00e1rfolyama: Vil\u00e1gbank (\u00e9ves \u00e1tlag) \u00e9s Eurostat (havi \u00e1tlag, a foly\u00f3 \u00e9vre); a k\u00fclf\u00f6ldi infl\u00e1ci\u00f3: Vil\u00e1gbank, az USA-ra a BLS, az eur\u00f3\u00f6vezetre az Eurostat.';\r\n      this.$('#adatforras').innerHTML = '<strong>Adatforr\u00e1s:<\/strong> ' + forras + ' Az adatok friss\u00edt\u00e9se: ' + ADAT_FRISSITVE.replace(\/\\.?$\/, '.');\r\n      this.$('#modszertan').innerHTML = '<strong>Hogyan sz\u00e1mol?<\/strong> A megadott ar\u00e1nyokat a kezd\u0151\u00e9v kosar\u00e1nak tekintem, \u00e9s kateg\u00f3ri\u00e1nk\u00e9nt a hivatalos \u00e1rindexszel vezetem tov\u00e1bb (r\u00f6gz\u00edtett kos\u00e1r, Laspeyres-m\u00f3dszer); egy \u00e9vre ez a s\u00falyok \u00e9s a kateg\u00f3ri\u00e1nk\u00e9nti infl\u00e1ci\u00f3 szorzatainak \u00f6sszege. ' +\r\n        'A kateg\u00f3ri\u00e1kon bel\u00fcli k\u00fcl\u00f6nbs\u00e9geket (p\u00e9ld\u00e1ul hogy az \u00e9lelmiszereken bel\u00fcl te \u00e9ppen mit veszel) a kalkul\u00e1tor nem l\u00e1tja, ez\u00e9rt ez k\u00f6zel\u00edt\u00e9s. Az \u00e1tlagkos\u00e1r sora a legfrissebb s\u00falyokkal sz\u00e1mol, \u00edgy \u00f6sszege kiss\u00e9 elt\u00e9rhet a hivatalos sz\u00e1mt\u00f3l, amely minden \u00e9vben az adott \u00e9vi s\u00falyokat haszn\u00e1lja.';\r\n      this.$('#kosar-sugo').textContent = (this._rendszer === '7' ? 'A mez\u0151kben a KSH \u00e1tlagos kosara szerepel' : 'A mez\u0151kben a magyarorsz\u00e1gi \u00e1tlagos kos\u00e1r (Eurostat HICP-s\u00falyok) szerepel') + (this._mod === 'ft' ? ', p\u00e9ldak\u00e9nt havi ' + ft(PELDA_OSSZEG) + '-ra vet\u00edtve' : '') +\r\n        '. \u00cdrd \u00e1t a saj\u00e1t k\u00f6lt\u00e9seidre; ami n\u00e1lad nincs, ann\u00e1l \u00edrj 0-t.' + (this._rendszer === 'R' ? ' A gyorsgombokkal egy kattint\u00e1ssal \u00e1t\u00e1ll\u00edthatod a kosarat.' : '') + ' Kateg\u00f3riarendszer-v\u00e1lt\u00e1skor a kos\u00e1r az \u00e1tlagra \u00e1ll vissza.';\r\n      this._allapotKiir();\r\n    }\r\n\r\n    \/\/ Bemenet ellen\u0151rz\u00e9se: nem negat\u00edv \u00e9rt\u00e9kek, pozit\u00edv \u00f6sszeg, kezd\u0151\u00e9v < z\u00e1r\u00f3\u00e9v\r\n    _bemenet() {\r\n      var R = this._R(), e = this._ertekek();\r\n      var b = { ertekek: e, tol: Number(this.$('#tol').value), ig: Number(this.$('#ig').value), hiba: '' };\r\n      ['tol', 'ig'].forEach(function (id) {\r\n        var s = this.$('#' + id);\r\n        this.$('[data-lep=\"' + id + '\"][data-irany=\"-1\"]').disabled = s.selectedIndex <= 0;\r\n        this.$('[data-lep=\"' + id + '\"][data-irany=\"1\"]').disabled = s.selectedIndex >= s.options.length - 1;\r\n      }, this);\r\n      var ossz = 0, katOssz = 0, h = this._hitel(), dv = this._deviza();\r\n      b.dkod = this.$('[data-deviza=\"EUR\"]').getAttribute('aria-pressed') === 'true' ? 'EUR' : 'USD';\r\n      this.$('#deviza-penznem-sor').hidden = !(dv > 0);\r\n      var valtozo = this.$('[data-kamat=\"valtozo\"]').getAttribute('aria-pressed') === 'true';\r\n      b.hValt = valtozo ? beolvas(this.$('#hitel-valt').value) : 0;\r\n      this.$('#hitel-reszlet').hidden = !(h > 0);\r\n      this.$('#hitel-valt-mezo').hidden = !valtozo;\r\n      var napelem = this._rendszer === 'R' && this.$('[data-napelem]').checked;\r\n      var negOk = function (v, i) { return napelem && i === ENERGIA_SOROK.villany; };\r\n      if (e.some(function (v, i) { return !isFinite(v) || (v < 0 && !negOk(v, i)); }) || !isFinite(h) || h < 0 || !isFinite(dv) || dv < 0) b.hiba = 'A mez\u0151kbe csak nem negat\u00edv sz\u00e1mot \u00edrhatsz' + (this._rendszer === 'R' ? ' (negat\u00edvat csak a villanyhoz, napelemmel).' : '.');\r\n      else { katOssz = e.reduce(function (a, v) { return a + v; }, 0); ossz = katOssz + h + dv; }\r\n      var negOssz = e.reduce(function (a, v) { return v < 0 ? a - v : a; }, 0);\r\n      if (!b.hiba && negOssz > 0 && negOssz > (katOssz + negOssz) \/ 2) b.hiba = 'A napelemes j\u00f3v\u00e1\u00edr\u00e1s (negat\u00edv villanysz\u00e1mla) legfeljebb a t\u00f6bbi kiad\u00e1sod fele lehet, k\u00fcl\u00f6nben a sz\u00e1m\u00edt\u00e1s \u00e9rtelmetlen eredm\u00e9nyt adna.';\r\n      if (!b.hiba && !(katOssz > 0)) b.hiba = 'Legal\u00e1bb egy kateg\u00f3ri\u00e1ba \u00edrj be egy null\u00e1n\u00e1l nagyobb \u00f6sszeget (a kiad\u00e1sok \u00f6sszege legyen pozit\u00edv).';\r\n      if (!b.hiba && b.tol >= b.ig) b.hiba = 'Az id\u0151szak kezdete legyen kor\u00e1bbi, mint a v\u00e9ge.';\r\n      if (!b.hiba && h > 0 && !(b.hValt >= -90 && b.hValt <= 500)) b.hiba = 'A t\u00f6rleszt\u0151r\u00e9szlet v\u00e1ltoz\u00e1s\u00e1t \u221290 \u00e9s 500% k\u00f6z\u00f6tt adhatod meg.';\r\n      if (!b.hiba && dv > 0 && !devizaRel(b.dkod, b.tol, b.ig)) {\r\n        var de = devizaEvek(b.dkod);\r\n        b.hiba = DEVIZAK[b.dkod].alany + ' (' + b.dkod + ') \u00e1rfolyam- \u00e9s infl\u00e1ci\u00f3s adatai ' + de.elso + '\u2013' + de.utolso + ' k\u00f6z\u00f6tt \u00e9rhet\u0151k el. V\u00e1lassz ezen bel\u00fcli id\u0151szakot, vagy \u00edrj 0-t a deviz\u00e1s kiad\u00e1shoz.';\r\n      }\r\n      b.ossz = ossz; b.hitel = h > 0 ? h : 0; b.valtozo = valtozo;\r\n      b.deviza = dv > 0 ? dv : 0;\r\n      b.wd = ossz > 0 ? b.deviza \/ ossz : 0;\r\n      b.wh = ossz > 0 ? b.hitel \/ ossz : 0;\r\n      b.w = e.map(function (v) { return ossz > 0 ? v \/ ossz : 0; });\r\n      b.wKsh = R.suly.atlag.map(function (v) { return v \/ 100; });\r\n\r\n      \/\/ \u00f6sszesen-sor\r\n      var fig = '';\r\n      var reszek = [];\r\n      if (b.hitel > 0) reszek.push('hitelt\u00f6rleszt\u00e9s ' + (this._mod === 'ft' ? ft(b.hitel) : szazalek(b.hitel)));\r\n      if (b.deviza > 0) reszek.push('deviz\u00e1ban ' + (this._mod === 'ft' ? ft(b.deviza) : szazalek(b.deviza)));\r\n      var hitelResz = reszek.length ? ' (ebb\u0151l ' + reszek.join(', ') + ')' : '';\r\n      if (this._mod === 'ft') this.$('#osszesen').innerHTML = '\u00d6sszesen: <strong>' + ft(ossz) + '<\/strong> havonta' + hitelResz;\r\n      else {\r\n        this.$('#osszesen').innerHTML = '\u00d6sszesen: <strong>' + szazalek(ossz) + '<\/strong>' + hitelResz;\r\n        if (!b.hiba && Math.abs(ossz - 100) >= 0.05) fig = 'Nem 100%: az ar\u00e1nyokat 100%-ra ar\u00e1nyos\u00edtva sz\u00e1molok.';\r\n      }\r\n      this.$('#figyelmeztetes').textContent = fig;\r\n\r\n      \/\/ j\u00f6vedelem \u00e9s egyenleg (csak Ft m\u00f3dban van \u00e9rtelme)\r\n      var ftMod = this._mod === 'ft';\r\n      this.$('#jovedelem-blokk').hidden = !ftMod;\r\n      this.$('#jovedelem-sugo').textContent = 'a k\u00e9zhez kapott fizet\u00e9s; ha t\u00f6bben \u00e9ltek egy h\u00e1ztart\u00e1sban, add \u00f6ssze. Alap\u00e9rt\u00e9k: a nett\u00f3 kereset medi\u00e1nja a KSH szerint (' + ATLAG_NETTO.honap + ', teljes munkaid\u0151; a dolgoz\u00f3k fele enn\u00e9l kevesebbet, fele t\u00f6bbet keres)';\r\n      b.jov = ftMod ? beolvas(this.$('#jovedelem').value) : 0;\r\n      var eg = this.$('#egyenleg');\r\n      eg.className = 'egyenleg';\r\n      var JOV_MIN = 10000;   \/\/ enn\u00e9l kisebb havi j\u00f6vedelemmel a megtakar\u00edt\u00e1si r\u00e1ta \u00e9s a tized \u00e9rtelmetlen lenne\r\n      if (ftMod && b.jov > 0 && b.jov < JOV_MIN) { eg.innerHTML = 'A j\u00f6vedelemhez legal\u00e1bb ' + ft(JOV_MIN) + '-ot \u00edrj be, k\u00fcl\u00f6nben nem tudok \u00e9rtelmes megtakar\u00edt\u00e1si r\u00e1t\u00e1t sz\u00e1molni.'; b.jov = 0; }\r\n      else if (!ftMod || b.hiba || !(b.jov > 0)) { eg.innerHTML = ''; b.jov = b.jov > 0 ? b.jov : 0; }\r\n      else {\r\n        var kul = b.jov - ossz, arany = Math.abs(kul) \/ b.jov * 100;\r\n        if (kul < 0) {\r\n          eg.classList.add('tul');\r\n          \/\/ megtakar\u00edt\u00e1si r\u00e1ta = (j\u00f6vedelem \u2212 kiad\u00e1s) \/ j\u00f6vedelem; t\u00falk\u00f6lt\u00e9sn\u00e9l negat\u00edv\r\n          eg.innerHTML = '\u26a0 <strong>Megtakar\u00edt\u00e1si r\u00e1t\u00e1d: \u2212' + szazalek(arany) + ' (t\u00falk\u00f6lt\u00e9s)<\/strong>. Havonta ' + ft(-kul) + '-tal t\u00f6bbet k\u00f6ltesz (' + ft(ossz) + '), mint amennyi a j\u00f6vedelmed (' + ft(b.jov) + ').';\r\n        } else {\r\n          eg.classList.add('marad');\r\n          eg.innerHTML = kul === 0 ? 'A kiad\u00e1said pontosan annyik, mint a j\u00f6vedelmed: nem marad semmi, de t\u00fal sem k\u00f6ltesz.'\r\n            : '\u2713 <strong>Megtakar\u00edt\u00e1si r\u00e1t\u00e1d: ' + szazalek(arany) + '<\/strong>. Havonta ' + ft(kul) + ' marad ' + szamNevelo(b.jov) + ' ' + ft(b.jov) + '-os j\u00f6vedelmedb\u0151l.';\r\n        }\r\n      }\r\n      b.egyenleg = b.jov > 0 ? b.jov - ossz : null;\r\n      b.jovTol = ftMod ? beolvas(this.$('#jov-tol').value) : 0;\r\n      if (!(b.jovTol >= JOV_MIN)) b.jovTol = 0;   \/\/ enn\u00e9l kisebb kezd\u0151\u00e9vi j\u00f6vedelemb\u0151l nincs \u00e9rtelmes re\u00e1lb\u00e9r\r\n      b.letszam = Math.round(beolvas(this.$('#letszam').value));\r\n      b.letszamTul = b.letszam > MAX_FO ? b.letszam : 0;\r\n      if (!(b.letszam >= 1)) b.letszam = 1;\r\n      if (b.letszam > MAX_FO) b.letszam = MAX_FO;   \/\/ t\u00fal nagy sz\u00e1m: a maximummal sz\u00e1molunk (nem 1-gyel!)\r\n      this.$('#letszam').classList.toggle('figy', !!b.letszamTul);\r\n      b.kereso = Math.round(beolvas(this.$('#kereso').value));\r\n      if (!(b.kereso >= 1)) b.kereso = 1;\r\n      b.keresoTul = b.kereso > b.letszam ? b.kereso : 0;   \/\/ ha t\u00f6bbet \u00edrt be, mint ah\u00e1ny f\u0151: figyelmeztet\u00fcnk\r\n      if (b.kereso > b.letszam) b.kereso = b.letszam;   \/\/ nem lehet t\u00f6bb keres\u0151, mint ah\u00e1ny f\u0151\r\n      this.$('#kereso').classList.toggle('figy', !!b.keresoTul);\r\n      this._vonalzo(b);\r\n      this.$('#jov-tol-cimke').textContent = 'Nett\u00f3 j\u00f6vedelem ' + evBan(b.tol);\r\n      return b;\r\n    }\r\n\r\n    \/\/ A j\u00f6vedelmi tizedvonalz\u00f3 friss\u00edt\u00e9se (csak Ft m\u00f3dban, ha van j\u00f6vedelem)\r\n    _vonalzo(b) {\r\n      var doboz = this.$('#tized');\r\n      if (!(b.jov > 0)) { doboz.hidden = true; return; }\r\n      doboz.hidden = false;\r\n      var t = jovedelmiTized(b.jov, b.kereso), h = keresetiHatarokNetto();\r\n      this._r.querySelectorAll('.tized-cella').forEach(function (c) { c.classList.toggle('aktiv', Number(c.dataset.d) === t.d); });\r\n      \/\/ a jel\u00f6l\u0151 a tizeden bel\u00fcl ar\u00e1nyosan \u00e1ll; az als\u00f3 tizedet a minim\u00e1lb\u00e9r nett\u00f3j\u00e1t\u00f3l (kb. 215 ezer), a fels\u0151t a 9. hat\u00e1r 1,6-szoros\u00e1ig sk\u00e1l\u00e1zzuk\r\n      var also = t.d === 0 ? 215000 : h[t.d - 1], felso = t.d === 9 ? h[8] * 1.6 : h[t.d];\r\n      var resz = Math.max(0.03, Math.min(0.97, (t.fore - also) \/ (felso - also)));\r\n      this.$('#tized-jelolo').style.left = ((t.d + resz) * 10) + '%';\r\n      this.$('#tized-hatarok').innerHTML = h.map(function (v, i) { return '<span style=\"left:' + ((i + 1) * 10) + '%\">' + fmtSzam.format(Math.round(v \/ 1000)) + 'e' + (KERESETI_TIZED.becsult[i] ? '*' : '') + '<\/span>'; }).join('');\r\n      var hely = t.d === 0 ? 'a legkevesebbet keres\u0151 10%-ba tartozol'\r\n        : t.d === 9 ? 'a legjobban keres\u0151 10%-ba tartozol'\r\n        : 'a teljes munkaid\u0151s dolgoz\u00f3k ' + (t.d * 10) + '%-\u00e1n\u00e1l t\u00f6bbet, ' + ((9 - t.d) * 10) + '%-\u00e1n\u00e1l kevesebbet keresel';\r\n      var figy = [];\r\n      if (b.letszamTul) figy.push('A h\u00e1ztart\u00e1s l\u00e9tsz\u00e1ma legfeljebb ' + MAX_FO + ' f\u0151 lehet, ez\u00e9rt ' + fmtSzam.format(b.letszamTul) + ' helyett ' + MAX_FO + ' f\u0151vel sz\u00e1molok.');\r\n      if (b.keresoTul) figy.push('A keres\u0151k sz\u00e1ma (' + fmtSzam.format(b.keresoTul) + ') nem lehet t\u00f6bb a h\u00e1ztart\u00e1s l\u00e9tsz\u00e1m\u00e1n\u00e1l (' + b.letszam + ' f\u0151), ez\u00e9rt ' + b.letszam + ' keres\u0151vel sz\u00e1molok.' + (b.letszamTul ? '' : ' Ha t\u00f6bben vagytok, a l\u00e9tsz\u00e1mot is \u00edrd \u00e1t.'));\r\n      this.$('#tized-szoveg').innerHTML = (figy.length ? '<span class=\"tized-figy\">' + figy.join(' ') + '<\/span><br>' : '') +\r\n        (b.kereso > 1 ? 'Egy keres\u0151re jut\u00f3 havi nett\u00f3 j\u00f6vedelem (' + ft(b.jov) + ' \/ ' + b.kereso + ' f\u0151): ' : 'Havi nett\u00f3 kereseted: ') +\r\n        '<strong>' + ft(t.fore) + '<\/strong> \u2192 <strong>' + (t.d + 1) + '. kereseti tized<\/strong>: ' + hely + '.' +\r\n        '<br><small>A hat\u00e1rok havi nett\u00f3 Ft-ban. Forr\u00e1s: KSH kereseti tizedek, ' + KERESETI_TIZED.idoszak + ', a teljes munkaid\u0151ben dolgoz\u00f3k brutt\u00f3 keresete (NAV-adatokb\u00f3l), ' +\r\n        (keresetiIgazitas() > 1.0005 ? 'a ' + MEDIAN_MOST.honap + 'i medi\u00e1nb\u00e9rhez igaz\u00edtva (' + fmtSzazalek.format((keresetiIgazitas() - 1) * 100) + '%-kal felszorozva), ' : '') +\r\n        'nett\u00f3ra \u00e1tsz\u00e1m\u00edtva a KSH nett\u00f3\/brutt\u00f3 ar\u00e1nyaival (kedvezm\u00e9nyekkel egy\u00fctt). ' +\r\n        '*: a 3., 4., 6. \u00e9s 7. hat\u00e1r becsl\u00e9s a szomsz\u00e9dos ismert hat\u00e1rokb\u00f3l, mert ezeket a KSH nem tette k\u00f6zz\u00e9 sz\u00e1mszer\u0171en. Ha nem csak fizet\u00e9sb\u0151l \u00e9lsz (pl. nyugd\u00edjb\u00f3l vagy v\u00e1llalkoz\u00e1sb\u00f3l), ez a besorol\u00e1s csak t\u00e1j\u00e9koztat\u00f3.<\/small>';\r\n    }\r\n\r\n    _kiir(n, nev, ertek, al) {\r\n      this.$('[data-nev=\"' + n + '\"]').innerHTML = nev;\r\n      this.$('[data-ertek=\"' + n + '\"]').textContent = ertek;\r\n      this.$('[data-al=\"' + n + '\"]').textContent = al || '';\r\n    }\r\n\r\n    _szamol() {\r\n      var R = this._R(), b = this._bemenet();\r\n      AKT_R = R;\r\n      this.$('.hiba').textContent = b.hiba;\r\n      this._adat = null;\r\n      if (b.hiba) {\r\n        for (var n = 1; n <= 4; n++) this._kiir(n, this.$('[data-nev=\"' + n + '\"]').innerHTML, '\u2013', '');\r\n        this.$('.mondat').innerHTML = ''; this.$('#miert').innerHTML = ''; this.$('#realber').innerHTML = '';\r\n        this.$('#top-fel').innerHTML = ''; this.$('#top-le').innerHTML = '';\r\n        this.$('#t-kat tbody').innerHTML = ''; this.$('#t-kat tfoot').innerHTML = ''; this.$('#t-ev tbody').innerHTML = '';\r\n        return;\r\n      }\r\n      var e = szamitas(R, b.w, b.wKsh, b.tol, b.ig, b.wh, b.hValt, b.wd, b.dkod);\r\n      this._adat = { b: b, e: e, R: R };\r\n      var egyEv = e.evek === 1;\r\n      var idoszak = egyEv ? evBan(b.ig) : evCimke(b.tol) + '\u2013' + evCimke(b.ig);\r\n      var elteres = e.te - e.ksh;\r\n\r\n      if (egyEv) {\r\n        this._kiir(1, 'A te infl\u00e1ci\u00f3d ' + evBan(b.ig), szazalek(e.te), b.hitel > 0 ? 'hitelt\u00f6rleszt\u00e9s n\u00e9lk\u00fcl: ' + szazalek(e.teNelkul) : '');\r\n        this._kiir(2, R.osszNev, szazalek(e.ksh));\r\n        this._kiir(3, 'Nyugd\u00edjas fogyaszt\u00f3i\u00e1r-index', e.ny == null ? '\u2013' : szazalek(e.ny));\r\n      } else {\r\n        this._kiir(1, 'A te \u00e1remelked\u00e9sed ' + idoszak + ' (\u00f6sszesen)', szazalek(e.te), '\u00e9vente \u00e1tlagosan ' + szazalek(e.teAtlag) + (b.hitel > 0 ? ' \u00b7 hitel n\u00e9lk\u00fcl \u00f6sszesen: ' + szazalek(e.teNelkul) : ''));\r\n        this._kiir(2, R.osszNev + ', \u00f6sszesen', szazalek(e.ksh), '\u00e9vente \u00e1tlagosan ' + szazalek(e.kshAtlag));\r\n        this._kiir(3, 'Nyugd\u00edjas index, \u00f6sszesen', e.ny == null ? '\u2013' : szazalek(e.ny), e.ny == null ? 'csak ' + evTol(1995) + ' van adat' : '\u00e9vente \u00e1tlagosan ' + szazalek(e.nyAtlag));\r\n      }\r\n      this._kiir(4, R.elteresNev, szazalekpont(elteres), elteres > 0.05 ? 'n\u00e1lad gyorsabban n\u0151ttek az \u00e1rak' : elteres < -0.05 ? 'n\u00e1lad lassabban n\u0151ttek az \u00e1rak' : 'gyakorlatilag ugyanannyi');\r\n\r\n      \/\/ A legnagyobb t\u00e9tel (a legt\u00f6bb %-pontot hozz\u00e1ad\u00f3 kateg\u00f3ria)\r\n      var max = 0;\r\n      e.hoz.forEach(function (v, i) { if (v > e.hoz[max]) max = i; });\r\n      var maxNev = R.csoportok[max].nev;\r\n      var tobbKevesebb = Math.abs(elteres) < 0.05 ? 'gyakorlatilag ugyanannyi, mint' : '<strong>' + fmtSzazalek.format(Math.abs(kerek1(elteres))) + ' sz\u00e1zal\u00e9kponttal ' + (elteres > 0 ? 't\u00f6bb' : 'kevesebb') + '<\/strong>, mint';\r\n      var mondat = egyEv\r\n        ? 'A te kosaradban ' + evBan(b.ig) + ' \u00e1tlagosan <strong>' + szazalek(e.te) + '<\/strong>-kal n\u0151ttek az \u00e1rak. Ez ' + tobbKevesebb + ' ' + R.osszMondat + ' ' + szazalek(e.ksh) + '.'\r\n        : 'A te kosarad ' + evCimke(b.tol) + ' \u00e9s ' + evCimke(b.ig) + ' k\u00f6z\u00f6tt \u00f6sszesen <strong>' + szazalek(e.te) + '<\/strong>-kal dr\u00e1gult, \u00e9vente \u00e1tlagosan ' + szazalek(e.teAtlag) + '-kal. Ez ' + tobbKevesebb + ' ' + R.osszMondat + ' ' + szazalek(e.ksh) + ' (\u00e9vi ' + szazalek(e.kshAtlag) + ').';\r\n      if (e.hoz[max] > 0) mondat += ' A legt\u00f6bbet ' + nevelo(maxNev) + ' <strong>' + maxNev + '<\/strong> dr\u00e1gul\u00e1sa tette hozz\u00e1 (' + szazalekpont(e.hoz[max]) + ').';\r\n      if (e.deviza) {\r\n        var dv0 = DEVIZAK[b.dkod], dInfl = (e.deviza.infl - 1) * 100, dArf = (e.deviza.arf - 1) * 100;\r\n        mondat += ' A deviz\u00e1ban (' + b.dkod + ') fizetett kiad\u00e1said forintban <strong>' + szazalek(Math.abs((e.deviza.rel - 1) * 100)) + '-kal ' + (e.deviza.rel >= 1 ? 'dr\u00e1gultak' : 'lettek olcs\u00f3bbak') + '<\/strong>: ' +\r\n          'ebben ' + fmtElojel.format(kerek1(dInfl)) + '% az ' + dv0.inflNev + ', ' + fmtElojel.format(kerek1(dArf)) + '% pedig az \u00e1rfolyam (a forint ' + (dArf > 0 ? 'gyeng\u00fclt' : 'er\u0151s\u00f6d\u00f6tt') + ' ' + dv0.hoz + ' k\u00e9pest).';\r\n      }\r\n      if (b.hitel > 0) {\r\n        var hatas = e.te - e.teNelkul, hitelSzoveg = this._mod === 'ft' ? ft(b.hitel) + '-os' : szazalek(b.hitel) + '-os ar\u00e1ny\u00fa';\r\n        mondat += b.valtozo\r\n          ? ' A havi ' + hitelSzoveg + ' hitelt\u00f6rleszt\u00e9sed ' + (b.hValt === 0 ? 'nem v\u00e1ltozott' : szazalek(Math.abs(b.hValt)) + '-kal ' + (b.hValt > 0 ? 'n\u0151tt' : 'cs\u00f6kkent')) +\r\n            (Math.abs(hatas) < 0.05 ? ', nagyj\u00e1b\u00f3l a t\u00f6bbi kiad\u00e1soddal egy\u00fctt, \u00edgy gyakorlatilag nem m\u00f3dos\u00edt az infl\u00e1ci\u00f3don'\r\n              : hatas > 0 ? ', ami gyorsabb, mint a t\u00f6bbi kiad\u00e1sod dr\u00e1gul\u00e1sa, ez\u00e9rt <strong>' + fmtSzazalek.format(Math.abs(kerek1(hatas))) + ' sz\u00e1zal\u00e9kponttal n\u00f6veli<\/strong> az infl\u00e1ci\u00f3dat'\r\n              : ', ami ' + (b.hValt > 0 ? 'lassabb, mint a t\u00f6bbi kiad\u00e1sod dr\u00e1gul\u00e1sa' : 'ellens\u00falyozza a dr\u00e1gul\u00e1s egy r\u00e9sz\u00e9t') + ', ez\u00e9rt <strong>' + fmtSzazalek.format(Math.abs(kerek1(hatas))) + ' sz\u00e1zal\u00e9kponttal cs\u00f6kkenti<\/strong> az infl\u00e1ci\u00f3dat') +\r\n            ' (hitel n\u00e9lk\u00fcl ' + szazalek(e.teNelkul) + ').'\r\n          : ' A havi ' + hitelSzoveg + ' hitelt\u00f6rleszt\u00e9sed fix kamatoz\u00e1s\u00fa, vagyis forintban nem dr\u00e1gul: ez <strong>' + fmtSzazalek.format(Math.abs(kerek1(hatas))) + ' sz\u00e1zal\u00e9kponttal cs\u00f6kkenti<\/strong> az infl\u00e1ci\u00f3dat (hitel n\u00e9lk\u00fcl ' + szazalek(e.teNelkul) + ').';\r\n      }\r\n      \/\/ RE\u00c1LB\u00c9R: a j\u00f6vedelem v\u00e1ltoz\u00e1sa a saj\u00e1t \u00e9s a hivatalos infl\u00e1ci\u00f3hoz m\u00e9rve\r\n      var rb = this.$('#realber');\r\n      rb.className = 'egyenleg';\r\n      e.realber = null;\r\n      if (b.jov > 0 && b.jovTol > 0) {\r\n        var nom = (b.jov \/ b.jovTol - 1) * 100;\r\n        var real = ((1 + nom \/ 100) \/ (1 + e.te \/ 100) - 1) * 100;\r\n        var realHiv = ((1 + nom \/ 100) \/ (1 + e.ksh \/ 100) - 1) * 100;\r\n        var irany = function (x, fel, le) { return szazalek(Math.abs(x)) + '-kal ' + (x >= 0 ? fel : le); };\r\n        e.realber = { nom: nom, real: real, realHiv: realHiv };\r\n        rb.classList.add(real >= 0 ? 'marad' : 'tul');\r\n        rb.innerHTML = (real >= 0 ? '\u2713 ' : '\u26a0 ') + '<strong>Re\u00e1lb\u00e9r: a v\u00e1s\u00e1rl\u00f3er\u0151d ' + irany(real, 'n\u0151tt', 'cs\u00f6kkent') + '<\/strong> a te infl\u00e1ci\u00f3dhoz m\u00e9rve. ' +\r\n          'A nett\u00f3 j\u00f6vedelmed ' + evCimke(b.tol) + ' \u00f3ta ' + irany(nom, 'n\u0151tt', 'cs\u00f6kkent') + ', a kosarad ' + irany(e.te, 'dr\u00e1gult', 'lett olcs\u00f3bb') + '. ' +\r\n          'A hivatalos ' + (R.rovidNev === 'KSH' ? 'infl\u00e1ci\u00f3' : '\u00e1tlag (HICP)') + ' szerint a v\u00e1s\u00e1rl\u00f3er\u0151d ' + irany(realHiv, 'n\u0151tt', 'cs\u00f6kkent') + '.';\r\n        mondat += ' A j\u00f6vedelmed v\u00e1s\u00e1rl\u00f3ereje a te infl\u00e1ci\u00f3dhoz m\u00e9rve <strong>' + irany(real, 'n\u0151tt', 'cs\u00f6kkent') + '<\/strong> (re\u00e1lb\u00e9r).';\r\n      } else rb.innerHTML = '';\r\n      if (b.egyenleg != null && b.egyenleg < 0) {\r\n        mondat += ' Figyelem: a megtakar\u00edt\u00e1si r\u00e1t\u00e1d negat\u00edv (<strong>\u2212' + szazalek(-b.egyenleg \/ b.jov * 100) + '<\/strong>), havonta ' + ft(-b.egyenleg) + '-tal t\u00f6bbet k\u00f6ltesz, mint amennyi a j\u00f6vedelmed.';\r\n      }\r\n      if (this._mod === 'ft') {\r\n        \/\/ a mostani havi kos\u00e1r \u00e1ra a kezd\u0151\u00e9v \u00e1rain\r\n        mondat += ' A mostani havi <strong>' + ft(b.ossz) + '<\/strong>-os kosarad\u00e9rt ' + evBan(b.tol) + ' <strong>' + ft(b.ossz \/ (1 + e.te \/ 100)) + '<\/strong>-ot fizett\u00e9l volna.';\r\n      }\r\n      this.$('.mondat').innerHTML = mondat;\r\n      this._miert(R, b, e);\r\n      this._toplista(R, b, e, egyEv ? evBan(b.ig) : idoszak);\r\n\r\n      this.$('#hoz-cim').textContent = egyEv ? 'Melyik kateg\u00f3ria mennyit tett hozz\u00e1 az infl\u00e1ci\u00f3dhoz ' + evBan(b.ig) + '?' : 'Melyik kateg\u00f3ria mennyit tett hozz\u00e1 ' + idoszak + '?';\r\n      this.$('#hoz-megj').textContent = 'Hozz\u00e1j\u00e1rul\u00e1s = a kateg\u00f3ria s\u00falya a kos\u00e1rban \u00d7 a kateg\u00f3ria \u00e1rv\u00e1ltoz\u00e1sa, sz\u00e1zal\u00e9kpontban; az oszlopok \u00f6sszege a teljes \u00e1remelked\u00e9s. ' + (R.kosarNev === '\u00c1tlagkos\u00e1r' ? 'Az' : 'A') + ' ' + R.kosarNev + ' a ' + evEs(R.suly.ev).replace('*', '') + ' s\u00falyokkal sz\u00e1mol.' +\r\n        (R.elozetesEv && b.ig >= R.elozetesEv ? ' * ' + R.elozetesEv + ': el\u0151zetes adat.' : '');\r\n      var hosszu = e.evek >= 2;\r\n      this.$('#doboz-ido').hidden = !hosszu;\r\n      this.$('#tabla-ev').hidden = !hosszu;\r\n      this.$('#ido-cim').textContent = '\u00c1rszinted \u00e9s a hivatalos \u00e1rszint (' + evCimke(b.tol) + ' = 100)';\r\n      this.$('#ido-megj').textContent = 'A vonalak azt mutatj\u00e1k, hogyan v\u00e1ltozott a kosarad \u00e1ra a kezd\u0151\u00e9vhez k\u00e9pest. ' + (R.nyugdijas ? 'A nyugd\u00edjas index ' + evTol(1995) + ' \u00e9rhet\u0151 el. ' : '') +\r\n        (R.elozetesEv && b.ig >= R.elozetesEv ? '* ' + R.elozetesEv + ': el\u0151zetes adat.' : '');\r\n      this.$('#th-valt').textContent = '\u00c1rv\u00e1ltoz\u00e1s ' + (egyEv ? evCimke(b.ig) : idoszak);\r\n      this.$('#th-ksh-suly').textContent = R.rovidNev + '-s\u00faly (' + R.suly.ev + ')';\r\n      this.$('#th-ksh-hoz').textContent = R.kosarNev + ' hozz\u00e1j\u00e1rul\u00e1sa';\r\n      this.$('#th-ksh-ev').textContent = R.rovidNev === 'KSH' ? 'KSH-\u00e1tlag' : 'HICP-\u00e1tlag';\r\n      this.$('#th-arszint').textContent = '\u00c1rszinted (' + b.tol + ' = 100)';\r\n      this.$('#th-ksh-arszint').textContent = (R.rovidNev === 'KSH' ? 'KSH-\u00e1rszint' : 'HICP-\u00e1rszint') + ' (' + b.tol + ' = 100)';\r\n      \/\/ a hitel s\u00fag\u00f3ja \u00e9s a v\u00e1ltoz\u00e1s mez\u0151 felirata az id\u0151szakhoz igaz\u00edtva\r\n      this.$('#hitel-valt-cimke').textContent = 'Mennyivel v\u00e1ltozott a r\u00e9szlet ' + evCimke(b.tol) + ' \u00e9s ' + evCimke(b.ig) + ' k\u00f6z\u00f6tt?';\r\n      this.$('#hitel-sugo').textContent = 'A hitelt\u00f6rleszt\u00e9s nem r\u00e9sze a hivatalos infl\u00e1ci\u00f3nak (KSH, Eurostat). Fix kamatn\u00e1l a r\u00e9szlet forintban nem v\u00e1ltozik, \u00edgy az \u00e1rak emelked\u00e9se mellett egyre kisebb terhet jelent; ' +\r\n        'v\u00e1ltoz\u00f3 kamatn\u00e1l \u00edrd be, h\u00e1ny sz\u00e1zal\u00e9kkal n\u0151tt (vagy cs\u00f6kkent, m\u00ednusz el\u0151jellel) a havi r\u00e9szlet a v\u00e1lasztott id\u0151szak alatt.';\r\n      this._tablazatok();\r\n    }\r\n\r\n    \/* MI\u00c9RT T\u00c9R EL? Az \u00e1tlagkos\u00e1rhoz (ugyanezzel a m\u00f3dszerrel) k\u00e9pesti k\u00fcl\u00f6nbs\u00e9g felbont\u00e1sa:\r\n       t\u00e9telenk\u00e9nt (a te s\u00falyod \u2212 az \u00e1tlagos s\u00faly) \u00d7 (a t\u00e9tel \u00e1rv\u00e1ltoz\u00e1sa \u2212 az \u00e1tlagkos\u00e1r \u00e1rv\u00e1ltoz\u00e1sa).\r\n       Ezek \u00f6sszege pontosan a k\u00fcl\u00f6nbs\u00e9g; pozit\u00edv, ha az \u00e1tlagn\u00e1l gyorsabban dr\u00e1gul\u00f3 t\u00e9telre k\u00f6ltesz t\u00f6bbet,\r\n       vagy lassabban dr\u00e1gul\u00f3ra kevesebbet. *\/\r\n    _miert(R, b, e) {\r\n      var hely = this.$('#miert');\r\n      var atlag = e.kshHoz.reduce(function (s, v) { return s + v; }, 0);     \/\/ az \u00e1tlagkos\u00e1r \u00e1remelked\u00e9se\r\n      var tetelek = R.csoportok.map(function (cs, i) { return { nev: cs.nev, w: b.w[i], wa: b.wKsh[i], k: e.kat[i] }; });\r\n      if (b.wh > 0) tetelek.push({ nev: 'Hitelt\u00f6rleszt\u00e9s', w: b.wh, wa: 0, k: e.hitelValt, hitel: true });\r\n      if (e.deviza) tetelek.push({ nev: 'Deviz\u00e1s kiad\u00e1sok (' + b.dkod + ')', w: b.wd, wa: 0, k: (e.deviza.rel - 1) * 100, deviza: true });\r\n      tetelek.forEach(function (t) { t.c = (t.w - t.wa) * (t.k - atlag); });\r\n      var kul = e.te - atlag;\r\n      var egyezik = tetelek.every(function (t) { return Math.abs(t.w - t.wa) < 0.002; });\r\n      var fo = tetelek.filter(function (t) { return Math.abs(t.c) >= 0.05; }).sort(function (x, y) { return Math.abs(y.c) - Math.abs(x.c); }).slice(0, 4);\r\n      \/\/ A hivatalos sz\u00e1mt\u00f3l val\u00f3 elt\u00e9r\u00e9s k\u00e9t r\u00e9sze: a kosarad \u00f6sszet\u00e9tele (kul) \u00e9s a m\u00f3dszertan (modszer):\r\n      \/\/ az \u00e1tlagkosarat r\u00f6gz\u00edtett, legfrissebb s\u00falyokkal sz\u00e1molom, a hivatalos sz\u00e1m \u00e9vente friss\u00edtett s\u00falyokkal.\r\n      var modszer = atlag - e.ksh, osszes = e.te - e.ksh;\r\n      var pp = function (x) { return fmtSzazalek.format(Math.abs(kerek1(x))) + ' sz\u00e1zal\u00e9kpont'; };\r\n      var mitol = R.rovidNev === 'KSH' ? 'A hivatalos infl\u00e1ci\u00f3t\u00f3l' : 'A harmoniz\u00e1lt \u00e1tlagt\u00f3l';\r\n      var bev = '<p><strong>Mi\u00e9rt t\u00e9r el az infl\u00e1ci\u00f3d?<\/strong> ';\r\n      if (egyezik) {\r\n        hely.innerHTML = bev + 'A kosarad megegyezik az \u00e1tlagkos\u00e1rral' + (Math.abs(modszer) >= 0.1\r\n          ? '; a ' + szazalek(e.ksh) + '-os hivatalos sz\u00e1mt\u00f3l val\u00f3 ' + pp(modszer) + ' elt\u00e9r\u00e9s m\u00f3dszertani: az \u00e1tlagkosarat r\u00f6gz\u00edtett, legfrissebb s\u00falyokkal sz\u00e1molom, a hivatalos sz\u00e1m minden \u00e9vben az adott \u00e9vi s\u00falyokkal.<\/p>'\r\n          : ', ez\u00e9rt a k\u00e9t sz\u00e1m is ugyanaz.<\/p>');\r\n        return;\r\n      }\r\n      if (Math.abs(modszer) >= 0.1) {\r\n        bev += mitol + ' (' + szazalek(e.ksh) + ') val\u00f3 ' + (Math.abs(osszes) < 0.05 ? 'elt\u00e9r\u00e9s gyakorlatilag nulla: ' : (osszes > 0 ? '+' : '\u2212') + pp(osszes) + ' elt\u00e9r\u00e9sb\u0151l ') +\r\n          '<strong>' + (kul >= 0 ? '+' : '\u2212') + pp(kul) + ' a kosarad \u00f6sszet\u00e9tel\u00e9b\u0151l<\/strong> ad\u00f3dik, ' + (modszer >= 0 ? '+' : '\u2212') + pp(modszer) + ' pedig m\u00f3dszertani k\u00fcl\u00f6nbs\u00e9g ' +\r\n          '(az \u00e1tlagkosarat r\u00f6gz\u00edtett, legfrissebb s\u00falyokkal sz\u00e1molom, a hivatalos sz\u00e1m minden \u00e9vben az adott \u00e9vi s\u00falyokkal).';\r\n      } else {\r\n        bev += Math.abs(kul) < 0.05 ? 'Az infl\u00e1ci\u00f3d gyakorlatilag megegyezik az \u00e1tlagkos\u00e1r\u00e9val, mert a k\u00fcl\u00f6nbs\u00e9gek kioltj\u00e1k egym\u00e1st.'\r\n          : 'Az infl\u00e1ci\u00f3d <strong>' + pp(kul) + 'tal ' + (kul > 0 ? 'magasabb' : 'alacsonyabb') + '<\/strong>, mint az \u00e1tlagkos\u00e1r\u00e9 (' + szazalek(atlag) + ').';\r\n      }\r\n      bev += (fo.length ? ' A kosarad \u00f6sszet\u00e9tel\u00e9b\u0151l ad\u00f3d\u00f3 elt\u00e9r\u00e9s f\u0151 okai:' : '') + '<\/p>';\r\n      var lista = fo.map(function (t) {\r\n        var suly = t.hitel || t.deviza ? 'n\u00e1lad ' + szazalek(t.w * 100) + ' a s\u00falya (az \u00e1tlagkos\u00e1rban k\u00fcl\u00f6n nem szerepel)'\r\n          : t.w === 0 ? 'n\u00e1lad nincs ilyen kiad\u00e1s (\u00e1tlag: ' + szazalek(t.wa * 100) + ')'\r\n          : 'n\u00e1lad ' + (t.w > t.wa ? 'nagyobb' : 'kisebb') + ' a s\u00falya (' + szazalek(t.w * 100) + ', \u00e1tlag: ' + szazalek(t.wa * 100) + ')';\r\n        var ar = t.hitel ? (t.k === 0 ? '\u00e9s a r\u00e9szlet nem v\u00e1ltozott' : '\u00e9s a r\u00e9szlet ' + szazalek(Math.abs(t.k)) + '-kal ' + (t.k > 0 ? 'n\u0151tt' : 'cs\u00f6kkent'))\r\n          : t.deviza ? '\u00e9s forintban ' + fmtElojel.format(kerek1(t.k)) + '%-kal v\u00e1ltozott az \u00e1ra (k\u00fclf\u00f6ldi infl\u00e1ci\u00f3 \u00e9s \u00e1rfolyam)'\r\n          : (t.k > atlag ? '\u00e9s az \u00e1tlagn\u00e1l jobban dr\u00e1gult' : '\u00e9s az \u00e1tlagn\u00e1l kev\u00e9sb\u00e9 dr\u00e1gult') + ' (' + fmtElojel.format(kerek1(t.k)) + '%)';\r\n        return '<li><strong>' + t.nev + '<\/strong>: ' + suly + ', ' + ar + ' \u2192 <span class=\"' + (t.c > 0 ? 'plusz' : 'minusz') + '\">' + szazalekpont(t.c) + '<\/span><\/li>';\r\n      }).join('');\r\n      hely.innerHTML = bev + (lista ? '<ul>' + lista + '<\/ul>' : '');\r\n    }\r\n\r\n    \/\/ TOPLISTA: a v\u00e1lasztott id\u0151szakban legink\u00e1bb \u00e9s legkev\u00e9sb\u00e9 dr\u00e1gul\u00f3 t\u00e9telek\r\n    _toplista(R, b, e, idoszak) {\r\n      var n = R.csoportok.length > 7 ? 5 : 3;\r\n      var t = R.csoportok.map(function (cs, i) { return { nev: cs.nev, k: e.kat[i] }; }).sort(function (x, y) { return y.k - x.k; });\r\n      var li = function (x, osztaly) { return '<li class=\"' + osztaly + '\">' + x.nev + ' <span>' + fmtElojel.format(kerek1(x.k)) + '%<\/span><\/li>'; };\r\n      this.$('#top-fel-cim').textContent = 'Legink\u00e1bb dr\u00e1gult ' + idoszak;\r\n      this.$('#top-le-cim').textContent = 'Legkev\u00e9sb\u00e9 dr\u00e1gult (vagy olcs\u00f3bb lett)';\r\n      this.$('#top-fel').innerHTML = t.slice(0, n).map(function (x) { return li(x, 'fel'); }).join('');\r\n      this.$('#top-le').innerHTML = t.slice(-n).reverse().map(function (x) { return li(x, x.k < 0 ? 'le' : ''); }).join('');\r\n    }\r\n\r\n    _tablazatok() {\r\n      var a = this._adat, R = a.R, e = a.e, b = a.b;\r\n      this.$('#t-kat tbody').innerHTML = R.csoportok.map(function (cs, i) {\r\n        return '<tr><td>' + cs.nev + '<\/td><td>' + szazalek(b.w[i] * 100) + '<\/td><td>' + szazalek(b.wKsh[i] * 100) + '<\/td><td>' + szazalek(e.kat[i]) + '<\/td><td>' + szazalekpont(e.hoz[i]) + '<\/td><td>' + szazalekpont(e.kshHoz[i]) + '<\/td><\/tr>';\r\n      }).join('');\r\n      if (b.hitel > 0) {\r\n        this.$('#t-kat tbody').innerHTML += '<tr><td>Hitelt\u00f6rleszt\u00e9s (' + (b.valtozo ? 'v\u00e1ltoz\u00f3' : 'fix') + ' kamat)<\/td><td>' + szazalek(b.wh * 100) + '<\/td><td>\u2013<\/td><td>' + szazalek(e.hitelValt) + '<\/td><td>' + szazalekpont(e.hitelHoz) + '<\/td><td>\u2013<\/td><\/tr>';\r\n      }\r\n      if (e.deviza) {\r\n        this.$('#t-kat tbody').innerHTML += '<tr><td>Deviz\u00e1s kiad\u00e1sok (' + b.dkod + ')<\/td><td>' + szazalek(b.wd * 100) + '<\/td><td>\u2013<\/td><td>' + szazalek((e.deviza.rel - 1) * 100) + '<\/td><td>' + szazalekpont(e.devizaHoz) + '<\/td><td>\u2013<\/td><\/tr>';\r\n      }\r\n      var kshKosar = e.kshHoz.reduce(function (s, v) { return s + v; }, 0);\r\n      this.$('#t-kat tfoot').innerHTML = '<tr><td>\u00d6sszesen<\/td><td>100,0%<\/td><td>100,0%<\/td><td>\u2013<\/td><td>' + szazalek(e.te) + '<\/td><td>' + szazalek(kshKosar) + '<\/td><\/tr>';\r\n      var nyVan = !!R.nyugdijas;\r\n      this.$('#t-ev tbody').innerHTML = e.sor.slice(1).map(function (s) {\r\n        return '<tr><td>' + evCimke(s.ev) + '<\/td><td>' + szazalek(s.teRata) + '<\/td><td>' + szazalek(s.kshRata) + '<\/td>' +\r\n          (nyVan ? '<td>' + (s.nyRata == null ? '\u2013' : szazalek(s.nyRata)) + '<\/td>' : '') + '<td>' + fmtIndex.format(s.te) + '<\/td><td>' + fmtIndex.format(s.ksh) + '<\/td><\/tr>';\r\n      }).join('');\r\n    }\r\n\r\n    \/* Grafikonok *\/\r\n    _rajzol() {\r\n      if (!window.Chart) return;\r\n      if (!this._adat) {\r\n        Object.keys(this._charts).forEach(function (k) { if (this._charts[k]) { this._charts[k].destroy(); this._charts[k] = null; } }, this);\r\n        return;\r\n      }\r\n      this._chartFrissit('hoz', this._cfgHoz());\r\n      if (this._adat.e.evek >= 2) this._chartFrissit('ido', this._cfgIdo());\r\n      this.$('#c-hoz').setAttribute('aria-label', this.$('#hoz-cim').textContent + ' ' + this.$('.mondat').textContent);\r\n    }\r\n    _chartFrissit(kulcs, cfg) {\r\n      var ch = this._charts[kulcs];\r\n      if (ch && ch.config.type === cfg.type) { ch.data = cfg.data; ch.options = cfg.options; ch.update(); }\r\n      else { if (ch) ch.destroy(); this._charts[kulcs] = new window.Chart(this.$('#c-' + kulcs), cfg); }\r\n    }\r\n\r\n    _cfgHoz() {\r\n      var a = this._adat, R = a.R, e = a.e, b = a.b, hitelVan = b.hitel > 0, devVan = !!e.deviza;\r\n      var n = R.csoportok.length;\r\n      var extraCimke = (hitelVan ? ['Hitelt\u00f6rleszt\u00e9s'] : []).concat(devVan ? ['Deviza (' + b.dkod + ')'] : []);\r\n      var extraTe = (hitelVan ? [kerek1x(e.hitelHoz)] : []).concat(devVan ? [kerek1x(e.devizaHoz)] : []);\r\n      return {\r\n        type: 'bar', plugins: [feherHatter],\r\n        data: {\r\n          labels: R.csoportok.map(function (c) { return c.rovid; }).concat(extraCimke),\r\n          datasets: [\r\n            { label: 'A te kosarad', data: e.hoz.map(kerek1x).concat(extraTe), backgroundColor: SZIN.navy, borderRadius: 3, maxBarThickness: 18 },\r\n            { label: R.kosarNev, data: e.kshHoz.map(kerek1x).concat(extraTe.map(function () { return 0; })), backgroundColor: SZIN.accentKozep, borderRadius: 3, maxBarThickness: 18 }\r\n          ]\r\n        },\r\n        options: {\r\n          indexAxis: 'y', responsive: true, maintainAspectRatio: false, animation: { duration: 300 },\r\n          interaction: { mode: 'index', intersect: false },\r\n          scales: {\r\n            x: { grid: { color: SZIN.line }, ticks: { color: SZIN.muted, callback: function (v) { return fmtSzazalek.format(v); } }, title: { display: true, text: 'sz\u00e1zal\u00e9kpont', color: SZIN.muted } },\r\n            y: { grid: { display: false }, ticks: { color: SZIN.text, autoSkip: false } }\r\n          },\r\n          plugins: {\r\n            legend: { position: 'bottom', labels: { color: SZIN.text, boxWidth: 12, boxHeight: 12, padding: 14 } },\r\n            tooltip: Object.assign({}, tooltipAlap, {\r\n              callbacks: {\r\n                title: function (it) {\r\n                  var i = it[0].dataIndex;\r\n                  if (i < n) return R.csoportok[i].nev;\r\n                  return extraCimke[i - n] === 'Hitelt\u00f6rleszt\u00e9s' ? 'Hitelt\u00f6rleszt\u00e9s (' + (b.valtozo ? 'v\u00e1ltoz\u00f3' : 'fix') + ' kamat)' : 'Deviz\u00e1ban fizetett kiad\u00e1sok (' + b.dkod + ')';\r\n                },\r\n                label: function (c) {\r\n                  var i = c.dataIndex;\r\n                  if (i >= n) return c.datasetIndex === 0 ? ' A te kosarad: ' + szazalekpont(c.raw) + ' (s\u00faly ' + szazalek((extraCimke[i - n] === 'Hitelt\u00f6rleszt\u00e9s' ? b.wh : b.wd) * 100) + ')' : '';\r\n                  var w = c.datasetIndex === 0 ? b.w[i] : b.wKsh[i];\r\n                  return ' ' + c.dataset.label + ': ' + szazalekpont(c.raw) + ' (s\u00faly ' + szazalek(w * 100) + ')';\r\n                },\r\n                footer: function (it) {\r\n                  var i = it[0].dataIndex;\r\n                  if (i < n) return 'A kateg\u00f3ria \u00e1rv\u00e1ltoz\u00e1sa: ' + szazalek(e.kat[i]);\r\n                  return extraCimke[i - n] === 'Hitelt\u00f6rleszt\u00e9s' ? 'A r\u00e9szlet v\u00e1ltoz\u00e1sa: ' + szazalek(e.hitelValt)\r\n                    : 'Forintban: ' + fmtElojel.format(kerek1((e.deviza.rel - 1) * 100)) + '% (infl\u00e1ci\u00f3 ' + fmtElojel.format(kerek1((e.deviza.infl - 1) * 100)) + '%, \u00e1rfolyam ' + fmtElojel.format(kerek1((e.deviza.arf - 1) * 100)) + '%)';\r\n                }\r\n              }\r\n            })\r\n          }\r\n        }\r\n      };\r\n    }\r\n\r\n    _cfgIdo() {\r\n      var a = this._adat, R = a.R, e = a.e;\r\n      var ds = [\r\n        { label: 'A te \u00e1rszinted', data: e.sor.map(function (s) { return s.te; }), borderColor: SZIN.navy, backgroundColor: SZIN.navyHalvany, fill: true, borderWidth: 2.5 },\r\n        { label: R.osszNev, data: e.sor.map(function (s) { return s.ksh; }), borderColor: SZIN.accent, backgroundColor: 'transparent', borderWidth: 2 }\r\n      ];\r\n      if (R.nyugdijas) ds.push({ label: 'Nyugd\u00edjas index', data: e.sor.map(function (s) { return s.ny; }), borderColor: SZIN.szurke, backgroundColor: 'transparent', borderWidth: 2, borderDash: [6, 4], spanGaps: false });\r\n      ds.forEach(function (d) { d.pointRadius = e.sor.length > 20 ? 0 : 3; d.pointHoverRadius = 5; d.tension = .25; d.pointBackgroundColor = d.borderColor; });\r\n      return {\r\n        type: 'line', plugins: [feherHatter],\r\n        data: { labels: e.sor.map(function (s) { return evCimke(s.ev); }), datasets: ds },\r\n        options: {\r\n          responsive: true, maintainAspectRatio: false, animation: { duration: 300 },\r\n          interaction: { mode: 'index', intersect: false },\r\n          scales: {\r\n            x: { grid: { display: false }, ticks: { color: SZIN.muted, maxRotation: 0, autoSkip: true, autoSkipPadding: 12 } },\r\n            y: { grid: { color: SZIN.line }, ticks: { color: SZIN.muted, callback: function (v) { return fmtSzam.format(v); } } }\r\n          },\r\n          plugins: {\r\n            legend: { position: 'bottom', labels: { color: SZIN.text, boxWidth: 12, boxHeight: 12, padding: 14 } },\r\n            tooltip: Object.assign({}, tooltipAlap, { callbacks: { label: function (c) { return c.raw == null ? '' : ' ' + c.dataset.label + ': ' + fmtIndex.format(c.raw); } } })\r\n          }\r\n        }\r\n      };\r\n    }\r\n\r\n    \/\/ PNG: c\u00edm, \u00f6sszefoglal\u00f3 sor, a grafikon \u00e9s a forr\u00e1s egy k\u00e9pen\r\n    _png(kulcs) {\r\n      var ch = this._charts[kulcs];\r\n      if (!ch || !this._adat) return;\r\n      var a = this._adat, b = a.b, e = a.e;\r\n      var forras = ch.canvas, arany = forras.width \/ ch.width;\r\n      var fej = 64 * arany, lab = 36 * arany, margo = 20 * arany;\r\n      var v = document.createElement('canvas');\r\n      v.width = forras.width + 2 * margo; v.height = forras.height + fej + lab;\r\n      var c = v.getContext('2d'), betu = getComputedStyle(this).fontFamily || 'sans-serif';\r\n      c.fillStyle = '#ffffff'; c.fillRect(0, 0, v.width, v.height);\r\n      c.fillStyle = SZIN.accent; c.fillRect(0, 0, v.width, 4 * arany);\r\n      c.fillStyle = SZIN.navy; c.font = '700 ' + (18 * arany) + 'px ' + betu;\r\n      c.fillText((kulcs === 'hoz' ? this.$('#hoz-cim') : this.$('#ido-cim')).textContent, margo, 34 * arany);\r\n      c.fillStyle = SZIN.muted; c.font = (13 * arany) + 'px ' + betu;\r\n      c.fillText('Szem\u00e9lyes infl\u00e1ci\u00f3: ' + szazalek(e.te) + ' \u00b7 KSH-\u00e1tlag: ' + szazalek(e.ksh) + ' \u00b7 elt\u00e9r\u00e9s: ' + szazalekpont(e.te - e.ksh), margo, 54 * arany);\r\n      c.drawImage(forras, margo, fej);\r\n      c.font = (12 * arany) + 'px ' + betu;\r\n      c.fillText('iocharts.io \u00b7 Szem\u00e9lyes infl\u00e1ci\u00f3kalkul\u00e1tor \u00b7 Forr\u00e1s: ' + (this._rendszer === 'R' ? 'Eurostat (HICP)' : 'KSH') + ' \u00b7 ' + a.R.nev, margo, v.height - 14 * arany);\r\n      this._letolt(v.toDataURL('image\/png'), 'szemelyes-inflacio-' + (this._rendszer === 'R' ? 'reszletes' : '7csoport') + '-' + b.tol + '-' + b.ig + (kulcs === 'ido' ? '-idosor' : '') + '.png');\r\n    }\r\n\r\n    \/\/ CSV: a kateg\u00f3riat\u00e1bla \u00e9s az \u00e9venk\u00e9nti sorok, magyar Excelhez (pontosvessz\u0151, tizedesvessz\u0151)\r\n    _csv() {\r\n      if (!this._adat) return;\r\n      var a = this._adat, R = a.R, e = a.e, b = a.b;\r\n      var sz = function (x, t) { return x == null ? '' : kerek1(x).toFixed(t == null ? 1 : t).replace('.', ','); };\r\n      var sorok = [['Kateg\u00f3ria', 'S\u00falyod (%)', R.rovidNev + '-s\u00faly ' + R.suly.ev + ' (%)', '\u00c1rv\u00e1ltoz\u00e1s ' + b.tol + '\u2013' + b.ig + ' (%)', 'Hozz\u00e1j\u00e1rul\u00e1sod (%-pont)', R.kosarNev + ' hozz\u00e1j\u00e1rul\u00e1sa (%-pont)']];\r\n      R.csoportok.forEach(function (cs, i) { sorok.push([cs.nev, sz(b.w[i] * 100), sz(b.wKsh[i] * 100), sz(e.kat[i]), sz(e.hoz[i]), sz(e.kshHoz[i])]); });\r\n      if (b.hitel > 0) sorok.push(['Hitelt\u00f6rleszt\u00e9s (' + (b.valtozo ? 'v\u00e1ltoz\u00f3' : 'fix') + ' kamat)', sz(b.wh * 100), '', sz(e.hitelValt), sz(e.hitelHoz), '']);\r\n      if (e.deviza) sorok.push(['Deviz\u00e1s kiad\u00e1sok (' + b.dkod + ')', sz(b.wd * 100), '', sz((e.deviza.rel - 1) * 100), sz(e.devizaHoz), '']);\r\n      sorok.push(['\u00d6sszesen', '100,0', '100,0', '', sz(e.te), sz(e.kshHoz.reduce(function (s, v) { return s + v; }, 0))]);\r\n      if (b.jov > 0) {\r\n        sorok.push([]);\r\n        sorok.push(['Havi nett\u00f3 j\u00f6vedelem (Ft)', Math.round(b.jov)]);\r\n        sorok.push(['Havi kiad\u00e1s (Ft)', Math.round(b.ossz)]);\r\n        sorok.push([b.egyenleg < 0 ? 'T\u00falk\u00f6lt\u00e9s (Ft)' : 'Megmarad (Ft)', Math.round(Math.abs(b.egyenleg))]);\r\n        sorok.push(['Megtakar\u00edt\u00e1si r\u00e1ta (%)', sz(b.egyenleg \/ b.jov * 100)]);\r\n        var tz = jovedelmiTized(b.jov, b.kereso);\r\n        sorok.push(['H\u00e1ztart\u00e1s (f\u0151 \/ ebb\u0151l keres\u0151)', b.letszam + ' \/ ' + b.kereso]);\r\n        sorok.push(['Egy keres\u0151re jut\u00f3 nett\u00f3 j\u00f6vedelem (Ft\/h\u00f3)', Math.round(tz.fore)]);\r\n        sorok.push(['Kereseti tized (KSH, ' + KERESETI_TIZED.idoszak + ')', (tz.d + 1) + '.']);\r\n      }\r\n      if (e.realber) {\r\n        sorok.push(['Nett\u00f3 j\u00f6vedelem ' + b.tol + ' (Ft)', Math.round(b.jovTol)]);\r\n        sorok.push(['J\u00f6vedelem v\u00e1ltoz\u00e1sa (%)', sz(e.realber.nom)]);\r\n        sorok.push(['Re\u00e1lb\u00e9r-v\u00e1ltoz\u00e1s a saj\u00e1t infl\u00e1ci\u00f3val (%)', sz(e.realber.real)]);\r\n        sorok.push(['Re\u00e1lb\u00e9r-v\u00e1ltoz\u00e1s a hivatalos infl\u00e1ci\u00f3val (%)', sz(e.realber.realHiv)]);\r\n      }\r\n      sorok.push([]);\r\n      sorok.push(['\u00c9v', 'Te (%)', (R.rovidNev === 'KSH' ? 'KSH-\u00e1tlag' : 'HICP-\u00e1tlag') + ' (%)'].concat(R.nyugdijas ? ['Nyugd\u00edjas index (%)'] : []).concat(['\u00c1rszinted (' + b.tol + ' = 100)', (R.rovidNev === 'KSH' ? 'KSH-\u00e1rszint' : 'HICP-\u00e1rszint') + ' (' + b.tol + ' = 100)', 'Megjegyz\u00e9s']));\r\n      e.sor.slice(1).forEach(function (s) {\r\n        sorok.push([s.ev, sz(s.teRata), sz(s.kshRata)].concat(R.nyugdijas ? [sz(s.nyRata)] : []).concat([sz(s.te), sz(s.ksh), s.ev === R.elozetesEv ? 'el\u0151zetes' : '']));\r\n      });\r\n      var csv = '\ufeff' + sorok.map(function (r) { return r.join(';'); }).join('\\r\\n');\r\n      var url = URL.createObjectURL(new Blob([csv], { type: 'text\/csv;charset=utf-8' }));\r\n      this._letolt(url, 'szemelyes-inflacio-' + (this._rendszer === 'R' ? 'reszletes' : '7csoport') + '-' + b.tol + '-' + b.ig + '.csv');\r\n      setTimeout(function () { URL.revokeObjectURL(url); }, 2000);\r\n    }\r\n\r\n    _letolt(url, nev) {\r\n      var link = document.createElement('a');\r\n      link.href = url; link.download = nev;\r\n      document.body.appendChild(link); link.click(); link.remove();\r\n    }\r\n\r\n    \/* Megoszthat\u00f3 link: szi_r (7\/12), szi_m (ft\/szazalek), szi_v (\u00e9rt\u00e9kek _-sal elv\u00e1lasztva), szi_tol, szi_ig *\/\r\n    _parameterekBetoltese() {\r\n      var q;\r\n      try { q = new URLSearchParams(window.location.search); } catch (e) { return false; }\r\n      var volt = false;\r\n      \/\/ A linkb\u0151l j\u00f6v\u0151 minden \u00e9rt\u00e9ket ellen\u0151rz\u00fcnk: csak ismert kulcs \u00e9s a mez\u0151kre \u00e9rv\u00e9nyes hat\u00e1ron bel\u00fcli sz\u00e1m mehet \u00e1t\r\n      var sajat = function (obj, k) { return typeof k === 'string' && Object.prototype.hasOwnProperty.call(obj, k); };\r\n      var korlat = function (x, min, max) { return Math.min(max, Math.max(min, x)); };\r\n      var r = q.get('szi_r');\r\n      if (r === '12') r = 'R';   \/\/ a kor\u00e1bbi 12 csoportos n\u00e9zet helyett a r\u00e9szletes\r\n      if (sajat(RENDSZEREK, r) && r !== this._rendszer) { this._rendszerValtas(r); volt = true; }\r\n      var m = q.get('szi_m');\r\n      if (m === 'szazalek' || m === 'ft') {\r\n        if (m !== this._mod) this._modValtas(m);\r\n        volt = true;\r\n      }\r\n      var v = q.get('szi_v');\r\n      if (v) {\r\n        var t = v.split('_').map(Number), maxV = this._mod === 'ft' ? FT_MAX : 100;\r\n        var napelemLink = this._rendszer === 'R' && (q.get('szi_k') || '').split(',').indexOf('napelem') >= 0;\r\n        var negIdx = napelemLink ? ENERGIA_SOROK.villany : -1, minNeg = this._mod === 'ft' ? -FT_NEG_MAX : -100;\r\n        if (t.length === this._R().csoportok.length && t.every(function (x, i) { return isFinite(x) && (x >= 0 || (i === negIdx && x >= minNeg)); })) {\r\n          this._ertekekBeir(t.map(function (x) { return Math.min(x, maxV); })); this._modositva = true; volt = true;\r\n        }\r\n      }\r\n      \/\/ a kapcsol\u00f3k csak megjelennek bekapcsolva; az \u00e9rt\u00e9kek a szi_v-b\u0151l j\u00f6nnek\r\n      (q.get('szi_k') || '').split(',').forEach(function (k) {\r\n        if (this._rendszer !== 'R') return;\r\n        if (k === 'napelem') { this.$('[data-napelem]').checked = true; this._napelemSugo(true); volt = true; return; }\r\n        \/\/ csak ismert kulcsb\u00f3l \u00e9p\u00edt\u00fcnk CSS-szelektort (k\u00fcl\u00f6nben egy hamis link kiakasztan\u00e1 a kalkul\u00e1tort)\r\n        if (k.indexOf('futes-') === 0) { if (sajat(FUTESMODOK, k.slice(6))) { this.$('[data-futes=\"' + k.slice(6) + '\"]').checked = true; volt = true; } return; }\r\n        if (!sajat(ELETHELYZETEK, k)) return;\r\n        var c = this.$('[data-elet=\"' + k + '\"]');\r\n        if (c && this._rendszer === 'R') {\r\n          c.checked = true; volt = true;\r\n          if (!this._modositva) this._elethelyzet(k, true);   \/\/ ha a linkben nincs kos\u00e1r, a kapcsol\u00f3 \u00edrja \u00e1t\r\n        }\r\n      }, this);\r\n      this._jelolesFrissit();\r\n      var keq = Number(q.get('szi_ke'));\r\n      if (keq >= 2 && keq <= MAX_FO) { this.$('#kereso').value = String(Math.round(keq)); volt = true; }\r\n      var fo = Number(q.get('szi_f'));\r\n      if (fo >= 1 && fo <= MAX_FO) { this.$('#letszam').value = String(Math.round(fo)); volt = true; }\r\n      var jt = Number(q.get('szi_jt'));\r\n      if (jt > 0 && isFinite(jt)) { this.$('#jov-tol').value = fmtSzam.format(Math.round(korlat(jt, 0, FT_MAX))); volt = true; }\r\n      var jv = Number(q.get('szi_j'));\r\n      if (jv > 0 && isFinite(jv)) { this.$('#jovedelem').value = fmtSzam.format(Math.round(korlat(jv, 0, FT_MAX))); this._jovModositva = true; volt = true; }\r\n      var dvp = Number(q.get('szi_d'));\r\n      if (dvp > 0 && isFinite(dvp)) {\r\n        this._mezoBeir('#deviza', Math.min(dvp, this._mod === 'ft' ? FT_MAX : 100)); volt = true;\r\n        var dp = q.get('szi_dp') === 'EUR' ? 'EUR' : 'USD';\r\n        this._r.querySelectorAll('[data-deviza]').forEach(function (x) { x.setAttribute('aria-pressed', String(x.dataset.deviza === dp)); });\r\n      }\r\n      var h = Number(q.get('szi_h'));\r\n      if (h > 0 && isFinite(h)) {\r\n        this._hitelBeir(Math.min(h, this._mod === 'ft' ? FT_MAX : 100)); volt = true;\r\n        if (q.get('szi_hk') === 'valtozo') {\r\n          this._r.querySelectorAll('[data-kamat]').forEach(function (x) { x.setAttribute('aria-pressed', String(x.dataset.kamat === 'valtozo')); });\r\n          var hv = Number(q.get('szi_hv'));\r\n          if (isFinite(hv)) this.$('#hitel-valt').value = fmtSzazalek.format(korlat(hv, -90, 500));\r\n        }\r\n      }\r\n      var tol = Number(q.get('szi_tol')), ig = Number(q.get('szi_ig'));\r\n      if (ig || tol) this._evModositva = true;\r\n      if (ig) { this._evBeallit('ig', ig); volt = true; }\r\n      if (tol) { this._evBeallit('tol', tol); volt = true; }\r\n      return volt;\r\n    }\r\n\r\n    _linkMasolas() {\r\n      if (!this._adat) return;\r\n      var b = this._adat.b;\r\n      var url = new URL(window.location.href);\r\n      ['szi_r', 'szi_m', 'szi_v', 'szi_k', 'szi_h', 'szi_hk', 'szi_hv', 'szi_j', 'szi_f', 'szi_ke', 'szi_jt', 'szi_d', 'szi_dp', 'szi_tol', 'szi_ig'].forEach(function (k) { url.searchParams.delete(k); });\r\n      if (this._jovModositva && b.jov > 0) url.searchParams.set('szi_j', String(Math.round(b.jov)));\r\n      if (b.letszam > 1) url.searchParams.set('szi_f', String(b.letszam));\r\n      if (b.kereso > 1) url.searchParams.set('szi_ke', String(b.kereso));\r\n      if (b.deviza > 0) { url.searchParams.set('szi_d', String(Math.round(b.deviza * 10) \/ 10)); url.searchParams.set('szi_dp', b.dkod); }\r\n      if (b.jovTol > 0) url.searchParams.set('szi_jt', String(Math.round(b.jovTol)));\r\n      if (b.hitel > 0) {\r\n        url.searchParams.set('szi_h', String(Math.round(b.hitel * 10) \/ 10));\r\n        if (b.valtozo) { url.searchParams.set('szi_hk', 'valtozo'); url.searchParams.set('szi_hv', String(b.hValt)); }\r\n      }\r\n      var kapcsolok = Array.prototype.filter.call(this._r.querySelectorAll('[data-elet]'), function (c) { return c.checked; }).map(function (c) { return c.dataset.elet; });\r\n      this._r.querySelectorAll('[data-futes]').forEach(function (c) { if (c.checked) kapcsolok.push('futes-' + c.dataset.futes); });\r\n      if (this.$('[data-napelem]').checked) kapcsolok.push('napelem');\r\n      if (kapcsolok.length && this._rendszer === 'R') url.searchParams.set('szi_k', kapcsolok.join(','));\r\n      url.searchParams.set('szi_r', this._rendszer);\r\n      url.searchParams.set('szi_m', this._mod);\r\n      url.searchParams.set('szi_v', b.ertekek.map(function (x) { return String(Math.round(x * 10) \/ 10); }).join('_'));\r\n      url.searchParams.set('szi_tol', String(b.tol));\r\n      url.searchParams.set('szi_ig', String(b.ig));\r\n      url.hash = '';\r\n      var link = url.toString();\r\n      var allapot = this.$('.megosztas .allapot'), mezo = this.$('.link-mezo');\r\n      var siker = function () {\r\n        mezo.hidden = true;\r\n        allapot.textContent = '\u2713 Link m\u00e1solva, beillesztheted b\u00e1rhov\u00e1';\r\n        allapot.classList.add('ok');\r\n        clearTimeout(allapot._t);\r\n        allapot._t = setTimeout(function () { allapot.textContent = ''; allapot.classList.remove('ok'); }, 4000);\r\n      };\r\n      var tartalek = function () {\r\n        mezo.hidden = false; mezo.value = link; mezo.focus(); mezo.select();\r\n        allapot.classList.remove('ok');\r\n        allapot.textContent = 'M\u00e1sold ki a kijel\u00f6lt linket (Ctrl+C):';\r\n      };\r\n      if (navigator.clipboard && window.isSecureContext) navigator.clipboard.writeText(link).then(siker, tartalek);\r\n      else tartalek();\r\n    }\r\n  }\r\n  function kerek1x(x) { return Math.round(x * 100) \/ 100; }   \/\/ a grafikonnak k\u00e9t tizedes el\u00e9g\r\n\r\n  customElements.define('ioc-szemelyes-inflacio', IocSzemelyesInflacio);\r\n})();\r\n<\/script>\n<ioc-szemelyes-inflacio><\/ioc-szemelyes-inflacio>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Forr\u00e1sok:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>\u00c1rak \u00e9s kos\u00e1rs\u00falyok<\/em><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.ksh.hu\/stadat_files\/ara\/hu\/ara0002.html\">KSH \u2013 A fogyaszt\u00f3i\u00e1r-index f\u0151csoportonk\u00e9nt, \u00e9ves (STADAT ara0002)<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.ksh.hu\/stadat_files\/ara\/hu\/ara0040.html\">KSH \u2013 A fogyaszt\u00f3i\u00e1r-index f\u0151csoportonk\u00e9nt, havi (STADAT ara0040)<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.ksh.hu\/gyorstajekoztatok\/modszertan\/farmodsz26.html\">KSH \u2013 Fogyaszt\u00f3i\u00e1r-index, m\u00f3dszertan \u00e9s 2026. \u00e9vi s\u00falyok<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/ec.europa.eu\/eurostat\/databrowser\/view\/prc_hicp_ainr\/default\/table\">Eurostat \u2013 HICP, \u00e9ves adatok (prc_hicp_ainr)<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/ec.europa.eu\/eurostat\/databrowser\/view\/prc_hicp_minr\/default\/table\">Eurostat \u2013 HICP, havi adatok (prc_hicp_minr)<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/ec.europa.eu\/eurostat\/databrowser\/view\/prc_hicp_iw\/default\/table\">Eurostat \u2013 HICP-s\u00falyok (prc_hicp_iw)<\/a><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><em>J\u00f6vedelem \u00e9s k\u00f6lt\u00e9si szerkezet<\/em><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.ksh.hu\/gyorstajekoztatok\/ker\/ker2608.html\">KSH \u2013 Keresetek, 2026. augusztus (gyorst\u00e1j\u00e9koztat\u00f3)<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/bankmonitor.hu\/mediatar\/cikk\/te-melyik-kereseti-tizedbe-tartozol-itt-vannak-a-2026-os-savhatarok\/\">Bankmonitor \u2013 Kereseti tizedek, 2026. I. f\u00e9l\u00e9v (KSH-adatok)<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.ksh.hu\/stadat_files\/jov\/hu\/jov0025.html\">KSH \u2013 Egy f\u0151re jut\u00f3 kiad\u00e1sok j\u00f6vedelmi tizedek szerint (STADAT jov0025)<\/a><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><em>\u00c1rfolyamok \u00e9s k\u00fclf\u00f6ldi infl\u00e1ci\u00f3<\/em><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/data.worldbank.org\/indicator\/PA.NUS.FCRF?locations=HU-XC\">Vil\u00e1gbank \u2013 Hivatalos \u00e1rfolyamok (PA.NUS.FCRF)<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/data.worldbank.org\/indicator\/FP.CPI.TOTL.ZG?locations=XC\">Vil\u00e1gbank \u2013 Eur\u00f3\u00f6vezeti infl\u00e1ci\u00f3 (FP.CPI.TOTL.ZG)<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.bls.gov\/cpi\/\">BLS \u2013 Fogyaszt\u00f3i \u00e1rindex (CPI-U), USA<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/ec.europa.eu\/eurostat\/databrowser\/view\/ert_bil_eur_m\/default\/table\">Eurostat \u2013 Eur\u00f3-\u00e1rfolyamok, havi (ert_bil_eur_m)<\/a><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Lakhat\u00e1s (grafikon)<\/em><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/ec.europa.eu\/eurostat\/databrowser\/view\/ilc_lvho02\/default\/table\">Eurostat \u2013 A lakoss\u00e1g megoszl\u00e1sa lakhat\u00e1si jogc\u00edm szerint (ilc_lvho02)<\/a><\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<!-- ============================================================\n     GYIK ACCORDION - iO Charts (Szem\u00e9lyes infl\u00e1ci\u00f3kalkul\u00e1tor)\n     Egy\u00e9ni HTML blokkba. Cikk: https:\/\/iocharts.io\/blog\/szemelyes-inflaciokalkulator\/\n     ============================================================ -->\n<style>\n.io-faq {\n  --faq-navy:      #1b3a5f;\n  --faq-accent:    #e2662c;\n  --faq-text:      #333333;\n  --faq-line:      #dfe5ec;\n  --faq-hover:     #eef4fa;\n  --faq-bg:        #f4f8fc;\n\n  background: var(--faq-bg);\n  padding: 2em 2em 1.5em 2em;\n  border-radius: 10px;\n  max-width: 100%;\n  margin: 2.5em 0;\n}\n\n.io-faq__title {\n  text-align: center;\n  color: var(--faq-navy);\n  margin: 0 0 1.5em 0;\n}\n\n.io-faq__subtitle {\n  display: flex;\n  align-items: center;\n  gap: 1.1em;\n  color: var(--faq-accent);\n  margin: 0 0 1.8em 0;\n  font-size: .95em;\n  white-space: nowrap;\n}\n\n.io-faq__subtitle::before,\n.io-faq__subtitle::after {\n  content: \"\";\n  flex: 1;\n  height: 1px;\n  opacity: .45;\n}\n\n.io-faq__subtitle::before {\n  background: linear-gradient(to right, transparent, var(--faq-accent));\n}\n\n.io-faq__subtitle::after {\n  background: linear-gradient(to left, transparent, var(--faq-accent));\n}\n\n.io-faq__intro {\n  text-align: left;\n  color: var(--faq-text);\n  line-height: 1.7;\n  margin: 0 0 2em 0;\n}\n\n.io-faq__intro p { margin: 0 0 .9em 0; }\n.io-faq__intro p:last-child { margin-bottom: 0; }\n\n.io-faq__item {\n  border-bottom: 1px solid var(--faq-line);\n}\n\n.io-faq__item:first-of-type {\n  border-top: 1px solid var(--faq-line);\n}\n\n.io-faq__q {\n  display: block;\n  padding: 18px 44px 18px 4px;\n  margin: 0;\n  cursor: pointer;\n  position: relative;\n  list-style: none;\n  transition: background .15s ease;\n}\n\n.io-faq__q::-webkit-details-marker { display: none; }\n.io-faq__q::marker { content: \"\"; }\n\n.io-faq__q:hover { background: var(--faq-hover); }\n\n.io-faq__q h3 {\n  margin: 0;\n  padding: 0;\n  font-size: 1.08em;\n  font-weight: 700;\n  line-height: 1.45;\n  color: var(--faq-navy);\n  font-family: inherit;\n  border: 0;\n}\n\n.io-faq__q::after {\n  content: \"\";\n  position: absolute;\n  right: 14px;\n  top: 50%;\n  width: 9px;\n  height: 9px;\n  border-right: 2px solid var(--faq-navy);\n  border-bottom: 2px solid var(--faq-navy);\n  transform: translateY(-70%) rotate(45deg);\n  transition: transform .25s ease;\n}\n\n.io-faq__item[open] .io-faq__q h3 { color: var(--faq-accent); }\n\n.io-faq__item[open] .io-faq__q::after {\n  border-color: var(--faq-accent);\n  transform: translateY(-25%) rotate(-135deg);\n}\n\n.io-faq__a {\n  padding: 0 44px 20px 4px;\n  color: var(--faq-text);\n  line-height: 1.7;\n}\n\n.io-faq__a p { margin: 0 0 .8em 0; }\n.io-faq__a p:last-child { margin-bottom: 0; }\n\n.io-faq__disclaimer {\n  margin: 2em 0 0 0;\n  padding: 16px 18px;\n  border-left: 3px solid var(--faq-accent);\n  background: rgba(255, 255, 255, .55);\n  border-radius: 6px;\n  color: var(--faq-text);\n  font-size: .85em;\n  font-style: italic;\n  line-height: 1.6;\n  opacity: .9;\n}\n\n.io-faq__disclaimer strong {\n  font-style: normal;\n  color: var(--faq-navy);\n}\n\n@media (max-width: 600px) {\n  .io-faq { padding: 1.5em 1.2em 1em 1.2em; }\n  .io-faq__q { padding: 15px 38px 15px 2px; }\n  .io-faq__q h3 { font-size: 1em; }\n  .io-faq__a { padding: 0 10px 16px 2px; }\n  .io-faq__disclaimer { padding: 14px; }\n}\n\n@media (max-width: 480px) {\n  .io-faq__subtitle { gap: .6em; font-size: .85em; }\n}\n<\/style>\n\n<div class=\"io-faq\">\n  <h2 class=\"io-faq__title\">Gyakran Ism\u00e9telt K\u00e9rd\u00e9sek: szem\u00e9lyes infl\u00e1ci\u00f3kalkul\u00e1tor<\/h2>\n  <p class=\"io-faq__subtitle\">V\u00e1laszok a leggyakoribb k\u00e9rd\u00e9sekre<\/p>\n  <div class=\"io-faq__intro\">\n    <p>Mennyivel dr\u00e1gult val\u00f3j\u00e1ban az, amit te veszel? Itt t\u00f6m\u00f6r v\u00e1laszokat tal\u00e1lsz a szem\u00e9lyes infl\u00e1ci\u00f3kalkul\u00e1tor haszn\u00e1lat\u00e1r\u00f3l \u00e9s a m\u00f6g\u00f6tte \u00e1ll\u00f3 fogalmakr\u00f3l: mi a szem\u00e9lyes infl\u00e1ci\u00f3, mi\u00e9rt t\u00e9r el a KSH sz\u00e1m\u00e1t\u00f3l, honnan sz\u00e1rmaznak az adatok, \u00e9s hogyan sz\u00e1mol a kalkul\u00e1tor a hitellel, a deviz\u00e1s kiad\u00e1sokkal, a re\u00e1lb\u00e9rrel \u00e9s a kereseti tizedekkel.<\/p>\n    <p>Kattints b\u00e1rmelyik k\u00e9rd\u00e9sre, \u00e9s kiny\u00edlik a v\u00e1lasz. Ezek sz\u00e1nd\u00e9kosan r\u00f6vid \u00f6sszefoglal\u00f3k: a r\u00e9szleteket feljebb, a cikk megfelel\u0151 fejezeteiben bontom ki. A p\u00e9ld\u00e1kban szerepl\u0151 sz\u00e1mok a cikk \u00edr\u00e1sakor el\u00e9rhet\u0151 KSH- \u00e9s Eurostat-adatokat t\u00fckr\u00f6zik.<\/p>\n  <\/div>\n  <details class=\"io-faq__item\">\n    <summary class=\"io-faq__q\"><h3>Mi az a szem\u00e9lyes infl\u00e1ci\u00f3?<\/h3><\/summary>\n    <div class=\"io-faq__a\">\n      <p>A szem\u00e9lyes infl\u00e1ci\u00f3 azt mutatja meg, mennyivel dr\u00e1gult a te saj\u00e1t fogyaszt\u00f3i kosarad, vagyis azok a term\u00e9kek \u00e9s szolg\u00e1ltat\u00e1sok, amelyekre val\u00f3ban k\u00f6ltesz, abban az ar\u00e1nyban, ahogy k\u00f6ltesz r\u00e1juk. A KSH hivatalos infl\u00e1ci\u00f3ja egy \u00e1tlagos h\u00e1ztart\u00e1s kosar\u00e1t m\u00e9ri. A szem\u00e9lyes infl\u00e1ci\u00f3 ett\u0151l elt\u00e9rhet felfel\u00e9 \u00e9s lefel\u00e9 is, att\u00f3l f\u00fcgg\u0151en, hogy a te kiad\u00e1saidban a gyorsan vagy a lassan dr\u00e1gul\u00f3 t\u00e9telek vannak-e t\u00fals\u00falyban.<\/p>\n    <\/div>\n  <\/details>\n  <details class=\"io-faq__item\">\n    <summary class=\"io-faq__q\"><h3>Mi az a szem\u00e9lyes infl\u00e1ci\u00f3kalkul\u00e1tor?<\/h3><\/summary>\n    <div class=\"io-faq__a\">\n      <p>A szem\u00e9lyes infl\u00e1ci\u00f3kalkul\u00e1tor egy ingyenes online eszk\u00f6z, amellyel a saj\u00e1t havi kiad\u00e1saidb\u00f3l kisz\u00e1molhatod a saj\u00e1t infl\u00e1ci\u00f3dat. Megadod, mire mennyit k\u00f6ltesz, a kalkul\u00e1tor pedig a hivatalos \u00e1rindexekkel kisz\u00e1molja, mennyivel dr\u00e1gult a kosarad egy v\u00e1lasztott \u00e9vben vagy id\u0151szakban, \u00e9s \u00f6sszeveti az eredm\u00e9nyt a KSH-\u00e1tlaggal. Az iO Charts szem\u00e9lyes infl\u00e1ci\u00f3kalkul\u00e1tora a f\u0171t\u00e9sm\u00f3dot, a napelemet, a hitelt\u00f6rleszt\u00e9st \u00e9s a deviz\u00e1ban fizetett kiad\u00e1sokat is figyelembe veszi.<\/p>\n    <\/div>\n  <\/details>\n  <details class=\"io-faq__item\">\n    <summary class=\"io-faq__q\"><h3>Mi\u00e9rt m\u00e1s a szem\u00e9lyes infl\u00e1ci\u00f3m, mint a KSH hivatalos infl\u00e1ci\u00f3ja?<\/h3><\/summary>\n    <div class=\"io-faq__a\">\n      <p>Mert a KSH kosar\u00e1nak s\u00falyai az eg\u00e9sz orsz\u00e1g \u00e1tlagos k\u00f6lt\u00e9si szerkezet\u00e9t t\u00fckr\u00f6zik, a ti\u00e9d pedig szinte biztosan elt\u00e9r ett\u0151l. A doh\u00e1ny p\u00e9ld\u00e1ul a harmoniz\u00e1lt kos\u00e1r 4.0%-a, a lakb\u00e9r csak 1.7%-a. Egy nemdoh\u00e1nyz\u00f3n\u00e1l az el\u0151bbi kiesik, egy budapesti alb\u00e9rl\u0151n\u00e9l az ut\u00f3bbi a kiad\u00e1sok harmada is lehet. Ha a n\u00e1lad nagy s\u00faly\u00fa t\u00e9telek az \u00e1tlagn\u00e1l gyorsabban dr\u00e1gultak, a szem\u00e9lyes infl\u00e1ci\u00f3d magasabb a hivatalosn\u00e1l, ha lassabban, alacsonyabb.<\/p>\n    <\/div>\n  <\/details>\n  <details class=\"io-faq__item\">\n    <summary class=\"io-faq__q\"><h3>Honnan sz\u00e1rmaznak a szem\u00e9lyes infl\u00e1ci\u00f3kalkul\u00e1tor adatai?<\/h3><\/summary>\n    <div class=\"io-faq__a\">\n      <p>A 7 f\u0151csoportos n\u00e9zet a KSH fogyaszt\u00f3i\u00e1r-index\u00e9vel \u00e9s a KSH kos\u00e1rs\u00falyaival sz\u00e1mol, a nyugd\u00edjas kos\u00e1r a KSH nyugd\u00edjas index\u00e9vel. A r\u00e9szletes kos\u00e1r az Eurostat harmoniz\u00e1lt fogyaszt\u00f3i\u00e1r-index\u00e9nek (HICP) magyar alcsoport-adatain alapul. A deviz\u00e1s kiad\u00e1sokhoz a Vil\u00e1gbank \u00e9s az Eurostat \u00e1rfolyamait, valamint az amerikai \u00e9s az eur\u00f3\u00f6vezeti infl\u00e1ci\u00f3t haszn\u00e1lja, a j\u00f6vedelemhez a KSH havi medi\u00e1nkereset\u00e9t. Az adatok hetente automatikusan friss\u00fclnek, a foly\u00f3 \u00e9v adata el\u0151zetes, ezt a kalkul\u00e1tor csillaggal jel\u00f6li.<\/p>\n    <\/div>\n  <\/details>\n  <details class=\"io-faq__item\">\n    <summary class=\"io-faq__q\"><h3>Mi a k\u00fcl\u00f6nbs\u00e9g a 7 f\u0151csoportos \u00e9s a r\u00e9szletes kos\u00e1r k\u00f6z\u00f6tt?<\/h3><\/summary>\n    <div class=\"io-faq__a\">\n      <p>A 7 f\u0151csoportos n\u00e9zet a KSH hivatalos bont\u00e1sa (p\u00e9ld\u00e1ul \u00e9lelmiszerek, h\u00e1ztart\u00e1si energia, szolg\u00e1ltat\u00e1sok), \u00e9s ez k\u00f6zvetlen\u00fcl \u00f6sszevethet\u0151 a hivatalos infl\u00e1ci\u00f3val. A r\u00e9szletes kos\u00e1r 25 t\u00e9telb\u0151l \u00e1ll, k\u00fcl\u00f6n sorban szerepel benne p\u00e9ld\u00e1ul a villany, a g\u00e1z, a t\u00e1vh\u0151, a lakb\u00e9r, az \u00fczemanyag, a doh\u00e1ny \u00e9s az \u00e9tterem. Ha a k\u00f6lt\u00e9seid jelent\u0151sen elt\u00e9rnek az \u00e1tlagt\u00f3l, a r\u00e9szletes kos\u00e1rral pontosabb eredm\u00e9nyt kapsz.<\/p>\n    <\/div>\n  <\/details>\n  <details class=\"io-faq__item\">\n    <summary class=\"io-faq__q\"><h3>Forintban vagy sz\u00e1zal\u00e9kban adjam meg a kiad\u00e1saimat?<\/h3><\/summary>\n    <div class=\"io-faq__a\">\n      <p>Ahogy k\u00e9nyelmesebb. A Havi \u00f6sszeg (Ft) m\u00f3dban t\u00e9telenk\u00e9nt azt \u00edrod be, mennyit k\u00f6ltesz havonta, a kalkul\u00e1tor ebb\u0151l sz\u00e1molja ki az ar\u00e1nyokat, \u00e9s azt is megmutatja, mennyibe ker\u00fclt volna ugyanez a kos\u00e1r a kezd\u0151\u00e9vben. Az Ar\u00e1ny (%) m\u00f3dban k\u00f6zvetlen\u00fcl a s\u00falyokat adod meg; ha nem j\u00f6n ki pontosan 100%, a kalkul\u00e1tor ar\u00e1nyosan \u00e1tsz\u00e1molja. A k\u00e9t m\u00f3d k\u00f6z\u00f6tt b\u00e1rmikor v\u00e1lthatsz.<\/p>\n    <\/div>\n  <\/details>\n  <details class=\"io-faq__item\">\n    <summary class=\"io-faq__q\"><h3>Mit jelent a j\u00f6vedelem szerinti kos\u00e1r?<\/h3><\/summary>\n    <div class=\"io-faq__a\">\n      <p>A gomb a hozz\u00e1d hasonl\u00f3 j\u00f6vedelm\u0171 h\u00e1ztart\u00e1sok \u00e1tlagos k\u00f6lt\u00e9si szerkezet\u00e9t t\u00f6lti be, a h\u00e1ztart\u00e1s egy f\u0151re jut\u00f3 j\u00f6vedelme alapj\u00e1n. Az alacsonyabb j\u00f6vedelm\u0171 h\u00e1ztart\u00e1sok p\u00e9ld\u00e1ul nagyobb ar\u00e1nyban k\u00f6ltenek \u00e9lelmiszerre \u00e9s energi\u00e1ra, a magasabb j\u00f6vedelm\u0171ek t\u00f6bbet szabadid\u0151re \u00e9s vend\u00e9gl\u00e1t\u00e1sra. Az adat a KSH h\u00e1ztart\u00e1si k\u00f6lts\u00e9gvet\u00e9si felv\u00e9tel\u00e9b\u0151l sz\u00e1rmazik, amelynek tizedes bont\u00e1sa 2020-as (ez a legfrissebb), ez\u00e9rt \u00e9rdemes kiindul\u00f3pontnak haszn\u00e1lni, \u00e9s ut\u00e1na a saj\u00e1t sz\u00e1maidra \u00e1t\u00edrni.<\/p>\n    <\/div>\n  <\/details>\n  <details class=\"io-faq__item\">\n    <summary class=\"io-faq__q\"><h3>Hogyan sz\u00e1mol a szem\u00e9lyes infl\u00e1ci\u00f3kalkul\u00e1tor a hitelt\u00f6rleszt\u00e9ssel \u00e9s a deviz\u00e1s kiad\u00e1sokkal?<\/h3><\/summary>\n    <div class=\"io-faq__a\">\n      <p>A hitelt\u00f6rleszt\u00e9s nem r\u00e9sze a hivatalos infl\u00e1ci\u00f3nak, ez\u00e9rt k\u00fcl\u00f6n sorban adhatod meg. Fix kamat\u00fa hiteln\u00e9l a r\u00e9szlet nem v\u00e1ltozik, \u00edgy a hitel ar\u00e1ny\u00e1ban lefel\u00e9 h\u00fazza a szem\u00e9lyes infl\u00e1ci\u00f3t. V\u00e1ltoz\u00f3 kamatn\u00e1l megadod, mennyivel n\u0151tt vagy cs\u00f6kkent a r\u00e9szleted az id\u0151szak alatt, \u00e9s ez be\u00e9p\u00fcl a sz\u00e1m\u00edt\u00e1sba. A deviz\u00e1ban \u00e1razott kiad\u00e1sokn\u00e1l (m\u0171szaki cikkek, el\u0151fizet\u00e9sek, k\u00fclf\u00f6ldi utaz\u00e1s) a kalkul\u00e1tor a forint \u00e1rfolyam\u00e1nak v\u00e1ltoz\u00e1s\u00e1t \u00e9s az adott deviza\u00f6vezet infl\u00e1ci\u00f3j\u00e1t sz\u00e1molja a magyar \u00e1rindex helyett.<\/p>\n    <\/div>\n  <\/details>\n  <details class=\"io-faq__item\">\n    <summary class=\"io-faq__q\"><h3>Mit mutat a kereseti tizedvonalz\u00f3?<\/h3><\/summary>\n    <div class=\"io-faq__a\">\n      <p>Azt, hogy a havi nett\u00f3 kereseted alapj\u00e1n a teljes munkaid\u0151ben dolgoz\u00f3k h\u00e1nyadik tized\u00e9be tartozol. T\u00f6bb keres\u0151 eset\u00e9n a h\u00e1ztart\u00e1s j\u00f6vedelm\u00e9t a keres\u0151k sz\u00e1m\u00e1val osztja el. A hat\u00e1rok a KSH 2026. I. f\u00e9l\u00e9vi kereseti tizedein alapulnak (NAV-adatokb\u00f3l), a legfrissebb havi medi\u00e1nb\u00e9rhez igaz\u00edtva; a 3., 4., 6. \u00e9s 7. hat\u00e1r becsl\u00e9s, ezeket csillag jel\u00f6li. Ha nem csak fizet\u00e9sb\u0151l \u00e9lsz, p\u00e9ld\u00e1ul nyugd\u00edjb\u00f3l vagy v\u00e1llalkoz\u00e1sb\u00f3l, a besorol\u00e1s csak t\u00e1j\u00e9koztat\u00f3.<\/p>\n    <\/div>\n  <\/details>\n  <details class=\"io-faq__item\">\n    <summary class=\"io-faq__q\"><h3>Hogyan sz\u00e1molja ki a szem\u00e9lyes infl\u00e1ci\u00f3kalkul\u00e1tor a re\u00e1lb\u00e9remet?<\/h3><\/summary>\n    <div class=\"io-faq__a\">\n      <p>Ha a Bev\u00e9tel r\u00e9szben megadod a mostani \u00e9s a kezd\u0151\u00e9vi havi nett\u00f3 j\u00f6vedelmedet, a kalkul\u00e1tor \u00f6sszeveti a fizet\u00e9sed n\u00f6veked\u00e9s\u00e9t a saj\u00e1t infl\u00e1ci\u00f3ddal. A re\u00e1lb\u00e9r-v\u00e1ltoz\u00e1s azt mutatja meg, hogy a mostani fizet\u00e9sedb\u0151l t\u00f6bbet vagy kevesebbet tudsz-e venni a saj\u00e1t kosaradb\u00f3l, mint a kezd\u0151\u00e9vben. Ha a j\u00f6vedelmed gyorsabban n\u0151tt, mint a szem\u00e9lyes infl\u00e1ci\u00f3d, a v\u00e1s\u00e1rl\u00f3er\u0151d javult.<\/p>\n    <\/div>\n  <\/details>\n  <details class=\"io-faq__item\">\n    <summary class=\"io-faq__q\"><h3>Elmenthetem vagy megoszthatom a szem\u00e9lyes infl\u00e1ci\u00f3kalkul\u00e1tor eredm\u00e9ny\u00e9t?<\/h3><\/summary>\n    <div class=\"io-faq__a\">\n      <p>Igen. A grafikont PNG-k\u00e9pk\u00e9nt t\u00f6ltheted le, a teljes sz\u00e1m\u00edt\u00e1st CSV-f\u00e1jlban, amelyet a magyar Excel k\u00f6zvetlen\u00fcl megnyit. A link gombbal olyan linket m\u00e1solhatsz, amely minden be\u00e1ll\u00edt\u00e1sodat meg\u0151rzi, \u00edgy k\u00e9s\u0151bb ugyanonnan folytathatod, vagy elk\u00fcldheted valakinek. A sz\u00e1m\u00edt\u00e1s teljes eg\u00e9sz\u00e9ben a b\u00f6ng\u00e9sz\u0151dben fut, a be\u00edrt adataidat nem k\u00fcldj\u00fck el \u00e9s nem t\u00e1roljuk.<\/p>\n    <\/div>\n  <\/details>\n  <p class=\"io-faq__disclaimer\"><strong>Fontos:<\/strong> a szem\u00e9lyes infl\u00e1ci\u00f3kalkul\u00e1tor t\u00e1j\u00e9koztat\u00f3 jelleg\u0171, az eredm\u00e9ny a megadott kiad\u00e1sokon \u00e9s a hivatalos statisztikai \u00e1tlag\u00e1rakon alapul, ez\u00e9rt nem min\u0151s\u00fcl p\u00e9nz\u00fcgyi, befektet\u00e9si vagy ad\u00f3tan\u00e1csad\u00e1snak.<\/p>\n<\/div>\n<script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@graph\": [\n    {\n      \"@type\": \"Article\",\n      \"@id\": \"https:\/\/iocharts.io\/blog\/szemelyes-inflaciokalkulator\/#article\",\n      \"mainEntityOfPage\": \"https:\/\/iocharts.io\/blog\/szemelyes-inflaciokalkulator\/\",\n      \"headline\": \"Szem\u00e9lyes infl\u00e1ci\u00f3kalkul\u00e1tor: sz\u00e1mold ki a saj\u00e1t infl\u00e1ci\u00f3d\",\n      \"datePublished\": \"2026-10-20\",\n      \"inLanguage\": \"hu\",\n      \"author\": {\n        \"@id\": \"https:\/\/iocharts.io\/blog\/#\/schema\/person\/e285f855a6a9b806cd03c0b62f1c5831\"\n      },\n      \"publisher\": {\n        \"@id\": \"https:\/\/iocharts.io\/blog\/#organization\"\n      },\n      \"about\": {\n        \"@type\": \"Thing\",\n        \"name\": \"Szem\u00e9lyes infl\u00e1ci\u00f3\",\n        \"alternateName\": [\n          \"szem\u00e9lyes infl\u00e1ci\u00f3kalkul\u00e1tor\",\n          \"szem\u00e9lyes infl\u00e1ci\u00f3 kalkul\u00e1tor\",\n          \"saj\u00e1t infl\u00e1ci\u00f3\",\n          \"val\u00f3s infl\u00e1ci\u00f3\",\n          \"fogyaszt\u00f3i kos\u00e1r\"\n        ],\n        \"description\": \"A szem\u00e9lyes infl\u00e1ci\u00f3 kisz\u00e1m\u00edt\u00e1sa a saj\u00e1t fogyaszt\u00f3i kos\u00e1rb\u00f3l, a KSH \u00e9s az Eurostat \u00e1rindexeivel, \u00f6sszevetve a hivatalos infl\u00e1ci\u00f3val.\"\n      },\n      \"mentions\": [\n        {\n          \"@type\": \"GovernmentOrganization\",\n          \"name\": \"K\u00f6zponti Statisztikai Hivatal\",\n          \"alternateName\": \"KSH\",\n          \"url\": \"https:\/\/www.ksh.hu\/\"\n        },\n        {\n          \"@type\": \"GovernmentOrganization\",\n          \"name\": \"Eurostat\",\n          \"url\": \"https:\/\/ec.europa.eu\/eurostat\"\n        },\n        {\n          \"@type\": \"Organization\",\n          \"name\": \"Vil\u00e1gbank\",\n          \"alternateName\": \"World Bank\",\n          \"url\": \"https:\/\/www.worldbank.org\/\"\n        }\n      ],\n      \"citation\": [\n        {\n          \"@type\": \"Dataset\",\n          \"name\": \"KSH STADAT \u2013 A fogyaszt\u00f3i\u00e1r-index f\u0151csoportonk\u00e9nt, \u00e9ves\",\n          \"url\": \"https:\/\/www.ksh.hu\/stadat_files\/ara\/hu\/ara0002.html\"\n        },\n        {\n          \"@type\": \"Dataset\",\n          \"name\": \"Eurostat HICP \u2013 annual data, prc_hicp_ainr\",\n          \"url\": \"https:\/\/ec.europa.eu\/eurostat\/databrowser\/view\/prc_hicp_ainr\/default\/table\"\n        },\n        {\n          \"@type\": \"Dataset\",\n          \"name\": \"Eurostat HICP \u2013 item weights, prc_hicp_iw\",\n          \"url\": \"https:\/\/ec.europa.eu\/eurostat\/databrowser\/view\/prc_hicp_iw\/default\/table\"\n        },\n        {\n          \"@type\": \"Dataset\",\n          \"name\": \"Eurostat EU-SILC \u2013 Distribution of population by tenure status, ilc_lvho02\",\n          \"url\": \"https:\/\/ec.europa.eu\/eurostat\/databrowser\/view\/ilc_lvho02\/default\/table\"\n        }\n      ]\n    },\n    {\n      \"@type\": \"WebApplication\",\n      \"@id\": \"https:\/\/iocharts.io\/blog\/szemelyes-inflaciokalkulator\/#szemelyes-inflaciokalkulator\",\n      \"name\": \"Szem\u00e9lyes infl\u00e1ci\u00f3kalkul\u00e1tor\",\n      \"url\": \"https:\/\/iocharts.io\/blog\/szemelyes-inflaciokalkulator\/\",\n      \"isPartOf\": {\n        \"@id\": \"https:\/\/iocharts.io\/blog\/szemelyes-inflaciokalkulator\/#article\"\n      },\n      \"applicationCategory\": \"FinanceApplication\",\n      \"operatingSystem\": \"Any\",\n      \"browserRequirements\": \"Requires JavaScript\",\n      \"inLanguage\": \"hu\",\n      \"description\": \"Ingyenes szem\u00e9lyes infl\u00e1ci\u00f3 kalkul\u00e1tor: a saj\u00e1t havi kiad\u00e1saidb\u00f3l kisz\u00e1molja a saj\u00e1t infl\u00e1ci\u00f3dat a KSH 7 f\u0151csoportos vagy egy 25 t\u00e9teles r\u00e9szletes kos\u00e1rral, f\u0171t\u00e9sm\u00f3ddal, napelemmel, hitelt\u00f6rleszt\u00e9ssel \u00e9s deviz\u00e1s kiad\u00e1sokkal, re\u00e1lb\u00e9rrel, kereseti tizedvonalz\u00f3val, PNG- \u00e9s CSV-let\u00f6lt\u00e9ssel, megoszthat\u00f3 linkkel.\",\n      \"offers\": {\n        \"@type\": \"Offer\",\n        \"price\": \"0\",\n        \"priceCurrency\": \"HUF\"\n      },\n      \"author\": {\n        \"@id\": \"https:\/\/iocharts.io\/blog\/#\/schema\/person\/e285f855a6a9b806cd03c0b62f1c5831\"\n      }\n    },\n    {\n      \"@type\": \"FAQPage\",\n      \"@id\": \"https:\/\/iocharts.io\/blog\/szemelyes-inflaciokalkulator\/#faq\",\n      \"isPartOf\": {\n        \"@id\": \"https:\/\/iocharts.io\/blog\/szemelyes-inflaciokalkulator\/#article\"\n      },\n      \"mainEntity\": [\n        {\n          \"@type\": \"Question\",\n          \"name\": \"Mi az a szem\u00e9lyes infl\u00e1ci\u00f3?\",\n          \"acceptedAnswer\": {\n            \"@type\": \"Answer\",\n            \"text\": \"A szem\u00e9lyes infl\u00e1ci\u00f3 azt mutatja meg, mennyivel dr\u00e1gult a te saj\u00e1t fogyaszt\u00f3i kosarad, vagyis azok a term\u00e9kek \u00e9s szolg\u00e1ltat\u00e1sok, amelyekre val\u00f3ban k\u00f6ltesz, abban az ar\u00e1nyban, ahogy k\u00f6ltesz r\u00e1juk. A KSH hivatalos infl\u00e1ci\u00f3ja egy \u00e1tlagos h\u00e1ztart\u00e1s kosar\u00e1t m\u00e9ri. A szem\u00e9lyes infl\u00e1ci\u00f3 ett\u0151l elt\u00e9rhet felfel\u00e9 \u00e9s lefel\u00e9 is, att\u00f3l f\u00fcgg\u0151en, hogy a te kiad\u00e1saidban a gyorsan vagy a lassan dr\u00e1gul\u00f3 t\u00e9telek vannak-e t\u00fals\u00falyban.\"\n          }\n        },\n        {\n          \"@type\": \"Question\",\n          \"name\": \"Mi az a szem\u00e9lyes infl\u00e1ci\u00f3kalkul\u00e1tor?\",\n          \"acceptedAnswer\": {\n            \"@type\": \"Answer\",\n            \"text\": \"A szem\u00e9lyes infl\u00e1ci\u00f3kalkul\u00e1tor egy ingyenes online eszk\u00f6z, amellyel a saj\u00e1t havi kiad\u00e1saidb\u00f3l kisz\u00e1molhatod a saj\u00e1t infl\u00e1ci\u00f3dat. Megadod, mire mennyit k\u00f6ltesz, a kalkul\u00e1tor pedig a hivatalos \u00e1rindexekkel kisz\u00e1molja, mennyivel dr\u00e1gult a kosarad egy v\u00e1lasztott \u00e9vben vagy id\u0151szakban, \u00e9s \u00f6sszeveti az eredm\u00e9nyt a KSH-\u00e1tlaggal. Az iO Charts szem\u00e9lyes infl\u00e1ci\u00f3kalkul\u00e1tora a f\u0171t\u00e9sm\u00f3dot, a napelemet, a hitelt\u00f6rleszt\u00e9st \u00e9s a deviz\u00e1ban fizetett kiad\u00e1sokat is figyelembe veszi.\"\n          }\n        },\n        {\n          \"@type\": \"Question\",\n          \"name\": \"Mi\u00e9rt m\u00e1s a szem\u00e9lyes infl\u00e1ci\u00f3m, mint a KSH hivatalos infl\u00e1ci\u00f3ja?\",\n          \"acceptedAnswer\": {\n            \"@type\": \"Answer\",\n            \"text\": \"Mert a KSH kosar\u00e1nak s\u00falyai az eg\u00e9sz orsz\u00e1g \u00e1tlagos k\u00f6lt\u00e9si szerkezet\u00e9t t\u00fckr\u00f6zik, a ti\u00e9d pedig szinte biztosan elt\u00e9r ett\u0151l. A doh\u00e1ny p\u00e9ld\u00e1ul a harmoniz\u00e1lt kos\u00e1r 4.0%-a, a lakb\u00e9r csak 1.7%-a. Egy nemdoh\u00e1nyz\u00f3n\u00e1l az el\u0151bbi kiesik, egy budapesti alb\u00e9rl\u0151n\u00e9l az ut\u00f3bbi a kiad\u00e1sok harmada is lehet. Ha a n\u00e1lad nagy s\u00faly\u00fa t\u00e9telek az \u00e1tlagn\u00e1l gyorsabban dr\u00e1gultak, a szem\u00e9lyes infl\u00e1ci\u00f3d magasabb a hivatalosn\u00e1l, ha lassabban, alacsonyabb.\"\n          }\n        },\n        {\n          \"@type\": \"Question\",\n          \"name\": \"Honnan sz\u00e1rmaznak a szem\u00e9lyes infl\u00e1ci\u00f3kalkul\u00e1tor adatai?\",\n          \"acceptedAnswer\": {\n            \"@type\": \"Answer\",\n            \"text\": \"A 7 f\u0151csoportos n\u00e9zet a KSH fogyaszt\u00f3i\u00e1r-index\u00e9vel \u00e9s a KSH kos\u00e1rs\u00falyaival sz\u00e1mol, a nyugd\u00edjas kos\u00e1r a KSH nyugd\u00edjas index\u00e9vel. A r\u00e9szletes kos\u00e1r az Eurostat harmoniz\u00e1lt fogyaszt\u00f3i\u00e1r-index\u00e9nek (HICP) magyar alcsoport-adatain alapul. A deviz\u00e1s kiad\u00e1sokhoz a Vil\u00e1gbank \u00e9s az Eurostat \u00e1rfolyamait, valamint az amerikai \u00e9s az eur\u00f3\u00f6vezeti infl\u00e1ci\u00f3t haszn\u00e1lja, a j\u00f6vedelemhez a KSH havi medi\u00e1nkereset\u00e9t. Az adatok hetente automatikusan friss\u00fclnek, a foly\u00f3 \u00e9v adata el\u0151zetes, ezt a kalkul\u00e1tor csillaggal jel\u00f6li.\"\n          }\n        },\n        {\n          \"@type\": \"Question\",\n          \"name\": \"Mi a k\u00fcl\u00f6nbs\u00e9g a 7 f\u0151csoportos \u00e9s a r\u00e9szletes kos\u00e1r k\u00f6z\u00f6tt?\",\n          \"acceptedAnswer\": {\n            \"@type\": \"Answer\",\n            \"text\": \"A 7 f\u0151csoportos n\u00e9zet a KSH hivatalos bont\u00e1sa (p\u00e9ld\u00e1ul \u00e9lelmiszerek, h\u00e1ztart\u00e1si energia, szolg\u00e1ltat\u00e1sok), \u00e9s ez k\u00f6zvetlen\u00fcl \u00f6sszevethet\u0151 a hivatalos infl\u00e1ci\u00f3val. A r\u00e9szletes kos\u00e1r 25 t\u00e9telb\u0151l \u00e1ll, k\u00fcl\u00f6n sorban szerepel benne p\u00e9ld\u00e1ul a villany, a g\u00e1z, a t\u00e1vh\u0151, a lakb\u00e9r, az \u00fczemanyag, a doh\u00e1ny \u00e9s az \u00e9tterem. Ha a k\u00f6lt\u00e9seid jelent\u0151sen elt\u00e9rnek az \u00e1tlagt\u00f3l, a r\u00e9szletes kos\u00e1rral pontosabb eredm\u00e9nyt kapsz.\"\n          }\n        },\n        {\n          \"@type\": \"Question\",\n          \"name\": \"Forintban vagy sz\u00e1zal\u00e9kban adjam meg a kiad\u00e1saimat?\",\n          \"acceptedAnswer\": {\n            \"@type\": \"Answer\",\n            \"text\": \"Ahogy k\u00e9nyelmesebb. A Havi \u00f6sszeg (Ft) m\u00f3dban t\u00e9telenk\u00e9nt azt \u00edrod be, mennyit k\u00f6ltesz havonta, a kalkul\u00e1tor ebb\u0151l sz\u00e1molja ki az ar\u00e1nyokat, \u00e9s azt is megmutatja, mennyibe ker\u00fclt volna ugyanez a kos\u00e1r a kezd\u0151\u00e9vben. Az Ar\u00e1ny (%) m\u00f3dban k\u00f6zvetlen\u00fcl a s\u00falyokat adod meg; ha nem j\u00f6n ki pontosan 100%, a kalkul\u00e1tor ar\u00e1nyosan \u00e1tsz\u00e1molja. A k\u00e9t m\u00f3d k\u00f6z\u00f6tt b\u00e1rmikor v\u00e1lthatsz.\"\n          }\n        },\n        {\n          \"@type\": \"Question\",\n          \"name\": \"Mit jelent a j\u00f6vedelem szerinti kos\u00e1r?\",\n          \"acceptedAnswer\": {\n            \"@type\": \"Answer\",\n            \"text\": \"A gomb a hozz\u00e1d hasonl\u00f3 j\u00f6vedelm\u0171 h\u00e1ztart\u00e1sok \u00e1tlagos k\u00f6lt\u00e9si szerkezet\u00e9t t\u00f6lti be, a h\u00e1ztart\u00e1s egy f\u0151re jut\u00f3 j\u00f6vedelme alapj\u00e1n. Az alacsonyabb j\u00f6vedelm\u0171 h\u00e1ztart\u00e1sok p\u00e9ld\u00e1ul nagyobb ar\u00e1nyban k\u00f6ltenek \u00e9lelmiszerre \u00e9s energi\u00e1ra, a magasabb j\u00f6vedelm\u0171ek t\u00f6bbet szabadid\u0151re \u00e9s vend\u00e9gl\u00e1t\u00e1sra. Az adat a KSH h\u00e1ztart\u00e1si k\u00f6lts\u00e9gvet\u00e9si felv\u00e9tel\u00e9b\u0151l sz\u00e1rmazik, amelynek tizedes bont\u00e1sa 2020-as (ez a legfrissebb), ez\u00e9rt \u00e9rdemes kiindul\u00f3pontnak haszn\u00e1lni, \u00e9s ut\u00e1na a saj\u00e1t sz\u00e1maidra \u00e1t\u00edrni.\"\n          }\n        },\n        {\n          \"@type\": \"Question\",\n          \"name\": \"Hogyan sz\u00e1mol a szem\u00e9lyes infl\u00e1ci\u00f3kalkul\u00e1tor a hitelt\u00f6rleszt\u00e9ssel \u00e9s a deviz\u00e1s kiad\u00e1sokkal?\",\n          \"acceptedAnswer\": {\n            \"@type\": \"Answer\",\n            \"text\": \"A hitelt\u00f6rleszt\u00e9s nem r\u00e9sze a hivatalos infl\u00e1ci\u00f3nak, ez\u00e9rt k\u00fcl\u00f6n sorban adhatod meg. Fix kamat\u00fa hiteln\u00e9l a r\u00e9szlet nem v\u00e1ltozik, \u00edgy a hitel ar\u00e1ny\u00e1ban lefel\u00e9 h\u00fazza a szem\u00e9lyes infl\u00e1ci\u00f3t. V\u00e1ltoz\u00f3 kamatn\u00e1l megadod, mennyivel n\u0151tt vagy cs\u00f6kkent a r\u00e9szleted az id\u0151szak alatt, \u00e9s ez be\u00e9p\u00fcl a sz\u00e1m\u00edt\u00e1sba. A deviz\u00e1ban \u00e1razott kiad\u00e1sokn\u00e1l (m\u0171szaki cikkek, el\u0151fizet\u00e9sek, k\u00fclf\u00f6ldi utaz\u00e1s) a kalkul\u00e1tor a forint \u00e1rfolyam\u00e1nak v\u00e1ltoz\u00e1s\u00e1t \u00e9s az adott deviza\u00f6vezet infl\u00e1ci\u00f3j\u00e1t sz\u00e1molja a magyar \u00e1rindex helyett.\"\n          }\n        },\n        {\n          \"@type\": \"Question\",\n          \"name\": \"Mit mutat a kereseti tizedvonalz\u00f3?\",\n          \"acceptedAnswer\": {\n            \"@type\": \"Answer\",\n            \"text\": \"Azt, hogy a havi nett\u00f3 kereseted alapj\u00e1n a teljes munkaid\u0151ben dolgoz\u00f3k h\u00e1nyadik tized\u00e9be tartozol. T\u00f6bb keres\u0151 eset\u00e9n a h\u00e1ztart\u00e1s j\u00f6vedelm\u00e9t a keres\u0151k sz\u00e1m\u00e1val osztja el. A hat\u00e1rok a KSH 2026. I. f\u00e9l\u00e9vi kereseti tizedein alapulnak (NAV-adatokb\u00f3l), a legfrissebb havi medi\u00e1nb\u00e9rhez igaz\u00edtva; a 3., 4., 6. \u00e9s 7. hat\u00e1r becsl\u00e9s, ezeket csillag jel\u00f6li. Ha nem csak fizet\u00e9sb\u0151l \u00e9lsz, p\u00e9ld\u00e1ul nyugd\u00edjb\u00f3l vagy v\u00e1llalkoz\u00e1sb\u00f3l, a besorol\u00e1s csak t\u00e1j\u00e9koztat\u00f3.\"\n          }\n        },\n        {\n          \"@type\": \"Question\",\n          \"name\": \"Hogyan sz\u00e1molja ki a szem\u00e9lyes infl\u00e1ci\u00f3kalkul\u00e1tor a re\u00e1lb\u00e9remet?\",\n          \"acceptedAnswer\": {\n            \"@type\": \"Answer\",\n            \"text\": \"Ha a Bev\u00e9tel r\u00e9szben megadod a mostani \u00e9s a kezd\u0151\u00e9vi havi nett\u00f3 j\u00f6vedelmedet, a kalkul\u00e1tor \u00f6sszeveti a fizet\u00e9sed n\u00f6veked\u00e9s\u00e9t a saj\u00e1t infl\u00e1ci\u00f3ddal. A re\u00e1lb\u00e9r-v\u00e1ltoz\u00e1s azt mutatja meg, hogy a mostani fizet\u00e9sedb\u0151l t\u00f6bbet vagy kevesebbet tudsz-e venni a saj\u00e1t kosaradb\u00f3l, mint a kezd\u0151\u00e9vben. Ha a j\u00f6vedelmed gyorsabban n\u0151tt, mint a szem\u00e9lyes infl\u00e1ci\u00f3d, a v\u00e1s\u00e1rl\u00f3er\u0151d javult.\"\n          }\n        },\n        {\n          \"@type\": \"Question\",\n          \"name\": \"Elmenthetem vagy megoszthatom a szem\u00e9lyes infl\u00e1ci\u00f3kalkul\u00e1tor eredm\u00e9ny\u00e9t?\",\n          \"acceptedAnswer\": {\n            \"@type\": \"Answer\",\n            \"text\": \"Igen. A grafikont PNG-k\u00e9pk\u00e9nt t\u00f6ltheted le, a teljes sz\u00e1m\u00edt\u00e1st CSV-f\u00e1jlban, amelyet a magyar Excel k\u00f6zvetlen\u00fcl megnyit. A link gombbal olyan linket m\u00e1solhatsz, amely minden be\u00e1ll\u00edt\u00e1sodat meg\u0151rzi, \u00edgy k\u00e9s\u0151bb ugyanonnan folytathatod, vagy elk\u00fcldheted valakinek. A sz\u00e1m\u00edt\u00e1s teljes eg\u00e9sz\u00e9ben a b\u00f6ng\u00e9sz\u0151dben fut, a be\u00edrt adataidat nem k\u00fcldj\u00fck el \u00e9s nem t\u00e1roljuk.\"\n          }\n        }\n      ]\n    }\n  ]\n}\n<\/script>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>Itt a szem\u00e9lyes infl\u00e1ci\u00f3kalkul\u00e1tor, ami az el\u0151z\u0151 cikkben bemutatott, \u00e1ltal\u00e1nos infl\u00e1ci\u00f3kalkul\u00e1tort eg\u00e9sz\u00edti ki. Ez azt mutatja meg, ha egy adott orsz\u00e1gban \u00e9lsz, akkor \u00e1ltal\u00e1noss\u00e1gban v\u00e9ve mennyire \u00e9rint a p\u00e9nzroml\u00e1s. Ez egy remek viszony\u00edt\u00e1si pont, viszont a saj\u00e1t fogyaszt\u00e1si kosarad szinte mindig elt\u00e9r att\u00f3l, amit a KSH vagy egy\u00e9b statisztikai szervezetek modelleznek. \ud83d\udc46Ebb\u0151l k\u00f6vetkezik, hogy a [&hellip;]<\/p>\n<div class=\"read-more\"><a href=\"https:\/\/iocharts.io\/blog\/szemelyes-inflaciokalkulator\/\" class=\"btn btn-primary btn-lg\">Tov\u00e1bb<\/a><\/div>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":2,"featured_media":12773,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[459],"tags":[46,464,463,74,465],"class_list":["post-12755","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-kalkulatorok","tag-inflacio","tag-inflacio-kalkulator","tag-ksh","tag-portfolioblogger","tag-szemelyes-inflacio"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Szem\u00e9lyes infl\u00e1ci\u00f3kalkul\u00e1tor: sz\u00e1mold ki a saj\u00e1t infl\u00e1ci\u00f3d<\/title>\n<meta name=\"description\" content=\"Szem\u00e9lyes infl\u00e1ci\u00f3kalkul\u00e1tor: sz\u00e1mold ki, mennyivel dr\u00e1gult a saj\u00e1t kosarad, \u00e9s n\u00e9zd meg, mennyire t\u00e9r el az infl\u00e1ci\u00f3d a hivatalos adatt\u00f3l!\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/iocharts.io\/blog\/szemelyes-inflaciokalkulator\/\" \/>\n<meta property=\"og:locale\" content=\"hu_HU\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Szem\u00e9lyes infl\u00e1ci\u00f3kalkul\u00e1tor: sz\u00e1mold ki a saj\u00e1t infl\u00e1ci\u00f3d\" \/>\n<meta property=\"og:description\" content=\"Szem\u00e9lyes infl\u00e1ci\u00f3kalkul\u00e1tor: sz\u00e1mold ki, mennyivel dr\u00e1gult a saj\u00e1t kosarad, \u00e9s n\u00e9zd meg, mennyire t\u00e9r el az infl\u00e1ci\u00f3d a hivatalos adatt\u00f3l!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/iocharts.io\/blog\/szemelyes-inflaciokalkulator\/\" \/>\n<meta property=\"og:site_name\" content=\"iO Charts\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/iOCharts\" \/>\n<meta property=\"article:published_time\" content=\"2026-10-21T06:01:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/iocharts.io\/blog\/wp-content\/uploads\/szemelyes-inflacio-kalkulator-nyito.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"576\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Marton J. Bulla\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@iOCharts\" \/>\n<meta name=\"twitter:site\" content=\"@iOCharts\" \/>\n<meta name=\"twitter:label1\" content=\"Szerz\u0151:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Marton J. Bulla\" \/>\n\t<meta name=\"twitter:label2\" content=\"Becs\u00fclt olvas\u00e1si id\u0151\" \/>\n\t<meta name=\"twitter:data2\" content=\"13 perc\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/iocharts.io\\\/blog\\\/szemelyes-inflaciokalkulator\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/iocharts.io\\\/blog\\\/szemelyes-inflaciokalkulator\\\/\"},\"author\":{\"name\":\"Marton J. Bulla\",\"@id\":\"https:\\\/\\\/iocharts.io\\\/blog\\\/#\\\/schema\\\/person\\\/e285f855a6a9b806cd03c0b62f1c5831\"},\"headline\":\"Szem\u00e9lyes infl\u00e1ci\u00f3kalkul\u00e1tor: sz\u00e1mold ki a saj\u00e1t infl\u00e1ci\u00f3d\",\"datePublished\":\"2026-10-21T06:01:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/iocharts.io\\\/blog\\\/szemelyes-inflaciokalkulator\\\/\"},\"wordCount\":3412,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/iocharts.io\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/iocharts.io\\\/blog\\\/szemelyes-inflaciokalkulator\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/iocharts.io\\\/blog\\\/wp-content\\\/uploads\\\/szemelyes-inflacio-kalkulator-nyito.jpg\",\"keywords\":[\"infl\u00e1ci\u00f3\",\"infl\u00e1ci\u00f3 kalkul\u00e1tor\",\"KSH\",\"portfolioblogger\",\"szem\u00e9lyes infl\u00e1ci\u00f3\"],\"articleSection\":[\"Kalkul\u00e1torok\"],\"inLanguage\":\"hu\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/iocharts.io\\\/blog\\\/szemelyes-inflaciokalkulator\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/iocharts.io\\\/blog\\\/szemelyes-inflaciokalkulator\\\/\",\"url\":\"https:\\\/\\\/iocharts.io\\\/blog\\\/szemelyes-inflaciokalkulator\\\/\",\"name\":\"Szem\u00e9lyes infl\u00e1ci\u00f3kalkul\u00e1tor: sz\u00e1mold ki a saj\u00e1t infl\u00e1ci\u00f3d\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/iocharts.io\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/iocharts.io\\\/blog\\\/szemelyes-inflaciokalkulator\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/iocharts.io\\\/blog\\\/szemelyes-inflaciokalkulator\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/iocharts.io\\\/blog\\\/wp-content\\\/uploads\\\/szemelyes-inflacio-kalkulator-nyito.jpg\",\"datePublished\":\"2026-10-21T06:01:00+00:00\",\"description\":\"Szem\u00e9lyes infl\u00e1ci\u00f3kalkul\u00e1tor: sz\u00e1mold ki, mennyivel dr\u00e1gult a saj\u00e1t kosarad, \u00e9s n\u00e9zd meg, mennyire t\u00e9r el az infl\u00e1ci\u00f3d a hivatalos adatt\u00f3l!\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/iocharts.io\\\/blog\\\/szemelyes-inflaciokalkulator\\\/#breadcrumb\"},\"inLanguage\":\"hu\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/iocharts.io\\\/blog\\\/szemelyes-inflaciokalkulator\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"hu\",\"@id\":\"https:\\\/\\\/iocharts.io\\\/blog\\\/szemelyes-inflaciokalkulator\\\/#primaryimage\",\"url\":\"https:\\\/\\\/iocharts.io\\\/blog\\\/wp-content\\\/uploads\\\/szemelyes-inflacio-kalkulator-nyito.jpg\",\"contentUrl\":\"https:\\\/\\\/iocharts.io\\\/blog\\\/wp-content\\\/uploads\\\/szemelyes-inflacio-kalkulator-nyito.jpg\",\"width\":1024,\"height\":576,\"caption\":\"Szem\u00e9lyes infl\u00e1ci\u00f3kalkul\u00e1tor\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/iocharts.io\\\/blog\\\/szemelyes-inflaciokalkulator\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/iocharts.io\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Szem\u00e9lyes infl\u00e1ci\u00f3kalkul\u00e1tor: sz\u00e1mold ki a saj\u00e1t infl\u00e1ci\u00f3d\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/iocharts.io\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/iocharts.io\\\/blog\\\/\",\"name\":\"iO Charts\",\"description\":\"Befektet\u00e9s kezd\u0151knek: r\u00e9szv\u00e9ny, ETF, \u00e1llampap\u00edr, kript\u00f3\",\"publisher\":{\"@id\":\"https:\\\/\\\/iocharts.io\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/iocharts.io\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"hu\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/iocharts.io\\\/blog\\\/#organization\",\"name\":\"iO Charts\",\"url\":\"https:\\\/\\\/iocharts.io\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"hu\",\"@id\":\"https:\\\/\\\/iocharts.io\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/iocharts.io\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/01\\\/logo_no_text-1.png\",\"contentUrl\":\"https:\\\/\\\/iocharts.io\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/01\\\/logo_no_text-1.png\",\"width\":113,\"height\":113,\"caption\":\"iO Charts\"},\"image\":{\"@id\":\"https:\\\/\\\/iocharts.io\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/iOCharts\",\"https:\\\/\\\/x.com\\\/iOCharts\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/io-charts\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/iocharts.io\\\/blog\\\/#\\\/schema\\\/person\\\/e285f855a6a9b806cd03c0b62f1c5831\",\"name\":\"Marton J. Bulla\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"hu\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/9de36d5ad5c3e201c61d9296de2ac511a3176fe676b33d3949658f37497f5b4d?s=96&d=retro&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/9de36d5ad5c3e201c61d9296de2ac511a3176fe676b33d3949658f37497f5b4d?s=96&d=retro&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/9de36d5ad5c3e201c61d9296de2ac511a3176fe676b33d3949658f37497f5b4d?s=96&d=retro&r=g\",\"caption\":\"Marton J. Bulla\"},\"description\":\"M\u00e1rton J. Bulla is a fundamental analyst and a committed long-term investor. Instead of forecasting macroeconomic trends, he dives deep into individual companies, focusing on capital allocation, value creation, and sustainable growth. His primary interest lies in the world of serial acquirers, and he increasingly focuses on a concentrated portfolio. M\u00e1rton believes in transparency and authenticity: he manages his entire wealth according to the strategy he publishes on the iO Charts blog. 95% of his assets are invested in individual stocks, while the remaining 5% make up his startup portfolio, a journey he has been documenting since 2021. He holds a degree from IBS, complemented by a background in IT, SEO, and marketing, which allows him to evaluate a company\u2019s technological edge and market position with a unique perspective. When he isn't analyzing financial statements, he is a passionate table soccer player.\",\"url\":\"https:\\\/\\\/iocharts.io\\\/blog\\\/author\\\/marton-bulla\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Szem\u00e9lyes infl\u00e1ci\u00f3kalkul\u00e1tor: sz\u00e1mold ki a saj\u00e1t infl\u00e1ci\u00f3d","description":"Szem\u00e9lyes infl\u00e1ci\u00f3kalkul\u00e1tor: sz\u00e1mold ki, mennyivel dr\u00e1gult a saj\u00e1t kosarad, \u00e9s n\u00e9zd meg, mennyire t\u00e9r el az infl\u00e1ci\u00f3d a hivatalos adatt\u00f3l!","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/iocharts.io\/blog\/szemelyes-inflaciokalkulator\/","og_locale":"hu_HU","og_type":"article","og_title":"Szem\u00e9lyes infl\u00e1ci\u00f3kalkul\u00e1tor: sz\u00e1mold ki a saj\u00e1t infl\u00e1ci\u00f3d","og_description":"Szem\u00e9lyes infl\u00e1ci\u00f3kalkul\u00e1tor: sz\u00e1mold ki, mennyivel dr\u00e1gult a saj\u00e1t kosarad, \u00e9s n\u00e9zd meg, mennyire t\u00e9r el az infl\u00e1ci\u00f3d a hivatalos adatt\u00f3l!","og_url":"https:\/\/iocharts.io\/blog\/szemelyes-inflaciokalkulator\/","og_site_name":"iO Charts","article_publisher":"https:\/\/www.facebook.com\/iOCharts","article_published_time":"2026-10-21T06:01:00+00:00","og_image":[{"width":1024,"height":576,"url":"https:\/\/iocharts.io\/blog\/wp-content\/uploads\/szemelyes-inflacio-kalkulator-nyito.jpg","type":"image\/jpeg"}],"author":"Marton J. Bulla","twitter_card":"summary_large_image","twitter_creator":"@iOCharts","twitter_site":"@iOCharts","twitter_misc":{"Szerz\u0151:":"Marton J. Bulla","Becs\u00fclt olvas\u00e1si id\u0151":"13 perc"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/iocharts.io\/blog\/szemelyes-inflaciokalkulator\/#article","isPartOf":{"@id":"https:\/\/iocharts.io\/blog\/szemelyes-inflaciokalkulator\/"},"author":{"name":"Marton J. Bulla","@id":"https:\/\/iocharts.io\/blog\/#\/schema\/person\/e285f855a6a9b806cd03c0b62f1c5831"},"headline":"Szem\u00e9lyes infl\u00e1ci\u00f3kalkul\u00e1tor: sz\u00e1mold ki a saj\u00e1t infl\u00e1ci\u00f3d","datePublished":"2026-10-21T06:01:00+00:00","mainEntityOfPage":{"@id":"https:\/\/iocharts.io\/blog\/szemelyes-inflaciokalkulator\/"},"wordCount":3412,"commentCount":0,"publisher":{"@id":"https:\/\/iocharts.io\/blog\/#organization"},"image":{"@id":"https:\/\/iocharts.io\/blog\/szemelyes-inflaciokalkulator\/#primaryimage"},"thumbnailUrl":"https:\/\/iocharts.io\/blog\/wp-content\/uploads\/szemelyes-inflacio-kalkulator-nyito.jpg","keywords":["infl\u00e1ci\u00f3","infl\u00e1ci\u00f3 kalkul\u00e1tor","KSH","portfolioblogger","szem\u00e9lyes infl\u00e1ci\u00f3"],"articleSection":["Kalkul\u00e1torok"],"inLanguage":"hu","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/iocharts.io\/blog\/szemelyes-inflaciokalkulator\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/iocharts.io\/blog\/szemelyes-inflaciokalkulator\/","url":"https:\/\/iocharts.io\/blog\/szemelyes-inflaciokalkulator\/","name":"Szem\u00e9lyes infl\u00e1ci\u00f3kalkul\u00e1tor: sz\u00e1mold ki a saj\u00e1t infl\u00e1ci\u00f3d","isPartOf":{"@id":"https:\/\/iocharts.io\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/iocharts.io\/blog\/szemelyes-inflaciokalkulator\/#primaryimage"},"image":{"@id":"https:\/\/iocharts.io\/blog\/szemelyes-inflaciokalkulator\/#primaryimage"},"thumbnailUrl":"https:\/\/iocharts.io\/blog\/wp-content\/uploads\/szemelyes-inflacio-kalkulator-nyito.jpg","datePublished":"2026-10-21T06:01:00+00:00","description":"Szem\u00e9lyes infl\u00e1ci\u00f3kalkul\u00e1tor: sz\u00e1mold ki, mennyivel dr\u00e1gult a saj\u00e1t kosarad, \u00e9s n\u00e9zd meg, mennyire t\u00e9r el az infl\u00e1ci\u00f3d a hivatalos adatt\u00f3l!","breadcrumb":{"@id":"https:\/\/iocharts.io\/blog\/szemelyes-inflaciokalkulator\/#breadcrumb"},"inLanguage":"hu","potentialAction":[{"@type":"ReadAction","target":["https:\/\/iocharts.io\/blog\/szemelyes-inflaciokalkulator\/"]}]},{"@type":"ImageObject","inLanguage":"hu","@id":"https:\/\/iocharts.io\/blog\/szemelyes-inflaciokalkulator\/#primaryimage","url":"https:\/\/iocharts.io\/blog\/wp-content\/uploads\/szemelyes-inflacio-kalkulator-nyito.jpg","contentUrl":"https:\/\/iocharts.io\/blog\/wp-content\/uploads\/szemelyes-inflacio-kalkulator-nyito.jpg","width":1024,"height":576,"caption":"Szem\u00e9lyes infl\u00e1ci\u00f3kalkul\u00e1tor"},{"@type":"BreadcrumbList","@id":"https:\/\/iocharts.io\/blog\/szemelyes-inflaciokalkulator\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/iocharts.io\/blog\/"},{"@type":"ListItem","position":2,"name":"Szem\u00e9lyes infl\u00e1ci\u00f3kalkul\u00e1tor: sz\u00e1mold ki a saj\u00e1t infl\u00e1ci\u00f3d"}]},{"@type":"WebSite","@id":"https:\/\/iocharts.io\/blog\/#website","url":"https:\/\/iocharts.io\/blog\/","name":"iO Charts","description":"Befektet\u00e9s kezd\u0151knek: r\u00e9szv\u00e9ny, ETF, \u00e1llampap\u00edr, kript\u00f3","publisher":{"@id":"https:\/\/iocharts.io\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/iocharts.io\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"hu"},{"@type":"Organization","@id":"https:\/\/iocharts.io\/blog\/#organization","name":"iO Charts","url":"https:\/\/iocharts.io\/blog\/","logo":{"@type":"ImageObject","inLanguage":"hu","@id":"https:\/\/iocharts.io\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/iocharts.io\/blog\/wp-content\/uploads\/2020\/01\/logo_no_text-1.png","contentUrl":"https:\/\/iocharts.io\/blog\/wp-content\/uploads\/2020\/01\/logo_no_text-1.png","width":113,"height":113,"caption":"iO Charts"},"image":{"@id":"https:\/\/iocharts.io\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/iOCharts","https:\/\/x.com\/iOCharts","https:\/\/www.linkedin.com\/company\/io-charts"]},{"@type":"Person","@id":"https:\/\/iocharts.io\/blog\/#\/schema\/person\/e285f855a6a9b806cd03c0b62f1c5831","name":"Marton J. Bulla","image":{"@type":"ImageObject","inLanguage":"hu","@id":"https:\/\/secure.gravatar.com\/avatar\/9de36d5ad5c3e201c61d9296de2ac511a3176fe676b33d3949658f37497f5b4d?s=96&d=retro&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/9de36d5ad5c3e201c61d9296de2ac511a3176fe676b33d3949658f37497f5b4d?s=96&d=retro&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/9de36d5ad5c3e201c61d9296de2ac511a3176fe676b33d3949658f37497f5b4d?s=96&d=retro&r=g","caption":"Marton J. Bulla"},"description":"M\u00e1rton J. Bulla is a fundamental analyst and a committed long-term investor. Instead of forecasting macroeconomic trends, he dives deep into individual companies, focusing on capital allocation, value creation, and sustainable growth. His primary interest lies in the world of serial acquirers, and he increasingly focuses on a concentrated portfolio. M\u00e1rton believes in transparency and authenticity: he manages his entire wealth according to the strategy he publishes on the iO Charts blog. 95% of his assets are invested in individual stocks, while the remaining 5% make up his startup portfolio, a journey he has been documenting since 2021. He holds a degree from IBS, complemented by a background in IT, SEO, and marketing, which allows him to evaluate a company\u2019s technological edge and market position with a unique perspective. When he isn't analyzing financial statements, he is a passionate table soccer player.","url":"https:\/\/iocharts.io\/blog\/author\/marton-bulla\/"}]}},"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"https:\/\/iocharts.io\/blog\/wp-content\/uploads\/szemelyes-inflacio-kalkulator-nyito.jpg","gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/iocharts.io\/blog\/wp-json\/wp\/v2\/posts\/12755","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/iocharts.io\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/iocharts.io\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/iocharts.io\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/iocharts.io\/blog\/wp-json\/wp\/v2\/comments?post=12755"}],"version-history":[{"count":17,"href":"https:\/\/iocharts.io\/blog\/wp-json\/wp\/v2\/posts\/12755\/revisions"}],"predecessor-version":[{"id":12775,"href":"https:\/\/iocharts.io\/blog\/wp-json\/wp\/v2\/posts\/12755\/revisions\/12775"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/iocharts.io\/blog\/wp-json\/wp\/v2\/media\/12773"}],"wp:attachment":[{"href":"https:\/\/iocharts.io\/blog\/wp-json\/wp\/v2\/media?parent=12755"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/iocharts.io\/blog\/wp-json\/wp\/v2\/categories?post=12755"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/iocharts.io\/blog\/wp-json\/wp\/v2\/tags?post=12755"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}