Manažerské účetnictví pro digitální kancelář daňového poradc


Simona Fialova

Ing. Simona Fialová, MBA
daňový poradce 3534
CEO ECOVIS FACTA a.s.

" title="Write an email" style="margin: 0px; padding: 0px; text-decoration-line: underline; color: #3860c4; outline: none;">
www.ecovisfacta.cz  

Ing. Petr Hanzal, Ph.D.
Jihočeská univerzita v Českých Budějovicích
ekonomická fakulta 
" title="Write an email" style="margin: 0px; padding: 0px; text-decoration-line: underline; color: #3860c4; outline: none;">
www.ef.jcu.cz

jednatel Komplexní informační technologie s.r.o.
" title="Write an email" style="margin: 0px; padding: 0px; text-decoration-line: underline; color: #3860c4; outline: none;">
www.kit.cz

 

Na úvod

Během relativně krátké doby vyrostla naše poradenská firma z jednoho zaměstnance na dnešních 40 lidí, přičemž tempo růstu se v posledních letech zvyšuje exponenciálně. Jako firma založená na poskytování služeb jsme přímo závislí na výkonu našich zaměstnanců. Ekonomické hodnocení každé provedené činnosti je pro dosažení vyššího výkonu firmy naprosto klíčové.

 

V jednom z předchozích číslech e-Bulletinu byly popsány metody zvyšování profitability poradenské firmy, včetně praktických příkladů.  Dnes bychom na toto rádi navázali tématem, které poskytuje rozšířený finanční pohled na digitální kancelář daňového poradce.

 

Definice interních a fakturačních hodinových sazeb 

Pro to, abychom mohli vyhodnocovat efektivnost naší práce ve všech oblastech je nutné vědět, kolik nás stojí zaměstnanci, jaké máme hodinové sazby u zákazníků, oddělení, činností, atd. V praxi může nastat poměrně hodně variant, které je třeba v informační systému podchytit. Interní sazba je sazba, která po vynásobení počtem hodin představuje nákladovou položku. Měla by obsahovat všechny náklady na zaměstnance, včetně jeho podílu na celkových režiích, přepočtených na jednu hodinu. Typické příklady interních sazeb jsou sazba za zaměstnance, kombinace zaměstnance a činnosti, kombinace oddělení a činnosti, kombinace oddělení a skupiny činností. Na obrázku níže je možné vidět nastavení interních sazeb u zaměstnanců, profesních skupin, zákazníků, zákazníků v kombinaci s různými typy činností, nebo skupin činností, či projektu. Důležité je také časové hledisko, tedy od kdy, případně do kdy je aktuální sazba platná.
 

Naproti tomu externí sazba představuje sazbu, která je fakturována zákazníkovi. Na dalším obrázku je zobrazen příklad nastavení externích sazeb v kombinaci odběratel, zaměstnanec a druh činnosti.

Určení nákladových a výnosové dimenzí

Klasické finanční účetnictví nám zpravidla dává přehled o hospodaření firmy jako celku, což bývá z pohledu vyhodnocení dílčích částí firmy, případně činností, nedostatečné. K tomu, abychom mohli lépe tyto skutečnosti podchytit, potřebujeme nákladové, resp. manažerské účetnictví. Manažerské účetnictví umožňuje ke každému dokladu přidat další atributy, které dovolí evidovat náklady na střediska, nositele nákladů, dimenze, obory činností, segmenty trhu, či jednotlivé zákazníky. Při volbě dimenzí je třeba mít jasno v tom, co budeme chtít nejen vyhodnocovat z pohledu počtu hodin a v peněžním vyjádření, ale i třeba co budeme chtít plánovat. Toto se může v každé firmě výrazně lišit, viz příklady na dalších obrázcích.

Číselník středisek představuje základní rozdělení firmy.
 

Nositelé nákladů jsou reprezentovány například jednotlivými zaměstnanci

Oddělení mohou být reprezentována například skupinami činností

Jednotliví zákazníci představují další dimenzi

Dále nás budou zajímat náklady a výnosy v oblasti pozic zaměstnanců
 

Z výše uvedeného je zřejmé, že pro sledování profitability dílčích oblastí je nezbytné mít v tyto dimenze jasně vymezené. Naše firma dříve používala pro tyto dodatečné analýzy tabulky Excelu. S růstem počtu zaměstnanců již nebylo možné zaručit úplnost všech dat. Chybovost stoupala a ani křížové kontroly nedokázaly odhalit všechna opomenutí. Zavedením specializovaného softwaru jsme tyto nedostatky eliminovali. Otevřela se nám tím také možnost sledování různých statistik a četných reportů.  

 

Transparentní proces fakturace 

Pro proces fakturace je naprosto nezbytné i ekonomické hodnocení, ve kterém na první pohled vidíme, zda u daného zákazníka realizujeme kladnou marži. Při návrhu faktury můžeme vidět nejen ekonomické hodnocení ale i detail výkonů, které byly zákazníkovi provedeny.
 

Na následujících obrázcích jsou znázorněny obrazovky s přehledem podkladů pro fakturaci výkonů za vedení účetnictví na firmu ABC. Význam sloupců je následující:
Výkon – vlastní náklady, tedy počet odpracovaných hodin pro zákazníka oceněný interní hodinovou sazbou
Honorář – fakturovaná částka. V záhlaví je uvedeno 15000, v jednotlivých řádcích potom rozpuštěných 15000 fakturační hodinovou sazbou pracovníka, násobených počtem odpracovaných hodin.
Marže I – uvádí rozdíl mezi sloupcem Honorář a sloupcem Výkon
Marže II – uvádí rozdíl mezi sloupcem Původní honorář a sloupcem Honorář. Původní honorář je částka, ke které bychom dospěli, kdybychom neprováděli fakturaci paušálem, ale dle skutečných odpracovaných hodin, násobených fakturační hodinovou sazbou. Pokud tedy zanalyzujeme následující obrazovku, dospějeme k názoru, že fakturace přímou hodinovou sazbou by byla výhodnější, jelikož sloupec Marže II je záporný, nicméně stále výše honoráře převyšuje vlastní náklady, tudíž sloupec Marže I je kladný.
 

Na následující obrazovce je znázorněna situace, kdy jsme se se zákazníkem dohodli, že v tomto fakturačním období nepoužijeme dohodnutý paušál 15000, ale vyfakturujeme částku 16500. Změnu z „paušální“ na „manuální“ fakturaci jsme provedli jednoduše v návrhu faktur. Tím pádem je sloupec Marže II již kladný.

Reporting a statistiky

Manažerské účetnictví nám poskytuje celou řadu standardních výstupů, které jsme dříve z klasického finančního účetnictví získávali jen velmi složitým způsobem. První výhodou je zcela jistě možnost tvorby vlastní struktury manažerské výsledovky, která plně respektuje naše požadavky na reporting. Její příklad vidíte na dalším obrázku. V horní části je časová lišta, která ukazuje, za jaké období jsou hodnoty znázorněny, a kterou lze velmi jednoduše ovládat v již vygenerovaném výkazu. Řádky výsledovky jsme si nadefinovali podle našich potřeb, sloupce představují finanční hodnoty v aktuálním roce, minulém roce, případně plánu. V dalších sloupcích jsou znázorněny odchylky v absolutním a relativním vyjádření. Ve spodní části obrázku lze sledovat i grafické vyjádření a porovnání pomocí sloupcového grafu. Podobných reportů si můžeme nastavit v neomezeném množství a podobě. 
 

Další možností reportingu je vyhodnocování profitability jednotlivých dimenzí manažerského účetnictví. Je tedy velmi jednoduché vyhodnocovat jednotlivá střediska, zaměstnance, zákazníky, pracovní pozice, skupiny činností, viz následující obrázek. Při generování reportu zadáváme přednastavené atributy (střediska, nositel nákladů, oddělení, činnost atd.) podle aktuální potřeby, jakou informaci potřebujeme získat. Atributy přitom můžeme zadávat v různém pořadí. Máme tak možnost získat naprosto neomezené množství pohledů, zjednodušeně řečeno stromů, do kterých se následně můžeme postupně „vnořovat“ jednoduše prokliknutím dané položky pro získání dalších detailů, a to včetně srovnávání v čase.

Další výhodou je možnost zadání i jiné než finanční jednotky (Kč). Pro naše potřeby jsme využili jednotku času (hod). Tím, že systém využíváme v kombinaci (i) finančního účetnictví a (ii) evidence výkonů (naše timesheety), je možné na jednotlivých dimenzích sledovat i odpracované hodiny, a to opět v závislosti na dalších atributech. Nově jsme například zavedli plánování času na jednotlivých zákaznících a systém nám umožňuje vyhodnocování efektivity naší práce, a to např. i po jednotlivých pracovních pozicích.  Následně můžeme sledovat případě i ukazatele typu výnosy či náklady na jednu odpracovanou hodinu, viz následující obrázek. Všechny reporty ve všech myslitelných variantách máme k dispozici online ihned po zadání potřebných informací nutných pro zobrazení. Na dalším obrázku můžeme vidět porovnání plánovaných a skutečných hodin pro určitou dimenzi manažerského účetnictví.

Závěrem 

Po implementaci našeho nového systému jsem si ověřili, že pro dosažení trvale vysoké úrovně výkonu firmy je třeba věnovat zvýšenou pozornost profitabilitě všech dílčích oblastí poradenství. Základní ukazatele je možné kalkulovat i bez sofistikovaného softwaru za předpokladu, že všichni pracovníci jsou ochotní plně evidovat své hodiny strávené na příslušných klientech a činnostech. Pokud však chceme získat údaje na úrovni jednotlivých pracovníků, a to podle konkrétních klientů a současně v závislosti na příslušných typech činností, bez podrobnější analýzy se již neobejdeme. Tuto analýzu nám „na jedno kliknutí“ generuje software BMD. Přitom tyto údaje vidíme přehledně přímo při generování a vystavování faktury, kdy můžeme fakturovanou hodnotu upravit, nebo při generování na míru připravených reportů.  Navíc hodinové sazby lze v BMD zadat i zcela individuálně, nejen pro každého pracovníka, ale také pro konkrétního klienta či skupinu klientů. Následně se výše popsané reporty příslušným způsobem přepočítávají. Tím pádem se dokážeme velmi dobře zaměřit na ty činnosti, které jsou pro firmu efektivní.  V předchozích statích článku jsme se pokusili vyjmenovat hlavní ingredience finančního pohledu na digitální kancelář daňového poradce a vysvětlili to, jak toto souvisí s využíváním informačních technologií. Na našem trhu existují poměrně sofistikovaná řešení elektronické kanceláře, která mají přes tisíc uživatelů v celé EU (např. www.kit.cz, www.bmd.com).

Hledáte spíše individuální řešení?

Chcete dostávat další informace?

¤ ×
¤ ×

Errors

PHP Deprecated: ini_set(): Use of iconv.internal_encoding is deprecated in /data/web/virtuals/4874/virtual/www/_nette/libs/Nette/Environment/Configurator.php:176
PHP Deprecated: ini_set(): Use of mbstring.internal_encoding is deprecated in /data/web/virtuals/4874/virtual/www/_nette/libs/Nette/Environment/Configurator.php:176
PHP Notice: The variable 'page' does not exist in template. in /data/web/virtuals/4874/virtual/www/_nette/libs/Nette/Templates/BaseTemplate.php:284
PHP Notice: Trying to get property of non-object in /data/web/virtuals/4874/virtual/www/_nette/app/presenters/Peebo.php:546
PHP Notice: Trying to get property of non-object in /data/web/virtuals/4874/virtual/www/_nette/app/presenters/Peebo.php:547
PHP Notice: Undefined offset: 64 in /data/web/virtuals/4874/virtual/www/_nette/app/temp/c-Nette.Template/_templates.include.footer.phtml-53a4e0cec099a0916af44a1964d9a2e6.php:174
PHP Notice: Trying to get property of non-object in /data/web/virtuals/4874/virtual/www/_nette/app/temp/c-Nette.Template/_templates.include.footer.phtml-53a4e0cec099a0916af44a1964d9a2e6.php:174
PHP Notice: Undefined offset: 46 in /data/web/virtuals/4874/virtual/www/_nette/app/temp/c-Nette.Template/_templates.include.footer.phtml-53a4e0cec099a0916af44a1964d9a2e6.php:176
PHP Notice: Trying to get property of non-object in /data/web/virtuals/4874/virtual/www/_nette/app/temp/c-Nette.Template/_templates.include.footer.phtml-53a4e0cec099a0916af44a1964d9a2e6.php:176
¤ ×
¤ ×

0×TODO (in 0 files)

File Line Todo
¤ ×

Peebo CMS

verze 4.0.6
prostor 222 / 500 MB
úroveň menu 2
více stránek Ne
volba zobrazení Ne
Typy menu
Menu Ano
Skrytá stránka Ano
Submenu Ano
Typ galerie
slider Ne
adgallery Ne
loopedSlider Ne
s3Slider Ne
Jazykové mutace webu
cs Čeština
de Němčina
en Angličtina
Nástroje
Smazat temp provést
Reinstalovat CMS provést
Upravit config.ini provést
Upravit db.ini provést
Instalace CMS provést
¤ ×

Queries: 16, time: 5,728 ms

TimeSQL StatementRowsConnection
0,138
explain ►
SELECT * 
FROM `redirects`
#row id select_type table type possible_keys key key_len ref rows Extra
0 1 SIMPLE redirects ALL 100
models/Redirects.php:26
100mysql/0
0,199
explain ►
SELECT * 
FROM `admin_bloky` 
WHERE `automaticke_nacteni`=1 AND `lang`='cs'
#row id select_type table type possible_keys key key_len ref rows Extra
0 1 SIMPLE admin_bloky ALL 55 Using where
models/Web.php:97
19mysql/0
0,316
explain ►
SELECT * 
FROM `admin_novinky` 
WHERE `lang`='cs' 
ORDER BY `pridano` DESC
#row id select_type table type possible_keys key key_len ref rows Extra
0 1 SIMPLE admin_novinky ALL 49 Using where; Using filesort
models/Web.php:102
45mysql/0
0,128
explain ►
SELECT *
FROM (
SELECT * 
FROM `admin_akce` 
WHERE `lang`='cs' 
ORDER BY `datum` ASC) t
#row id select_type table type possible_keys key key_len ref rows Extra
0 1 SIMPLE admin_akce ALL 6 Using where
presenters/Peebo.php:498
6mysql/0
0,105
explain ►
SELECT * 
FROM `admin_novinky` 
WHERE `lang`='cs' 
ORDER BY `pridano` DESC 
limit 2
#row id select_type table type possible_keys key key_len ref rows Extra
0 1 SIMPLE admin_novinky ALL 49 Using where; Using filesort
models/Web.php:106
2mysql/0
0,224
explain ►
SELECT * 
FROM `admin_fotogalerie` 
WHERE `id`=11
#row id select_type table type possible_keys key key_len ref rows Extra
0 1 SIMPLE admin_fotogalerie const PRIMARY PRIMARY 4 const 1
models/Web.php:73
1mysql/0
0,163
explain ►
SELECT * 
FROM `admin_fotogalerie_obrazky` 
WHERE `galerie`=11 
ORDER By `razeni` ASC
#row id select_type table type possible_keys key key_len ref rows Extra
0 1 SIMPLE admin_fotogalerie_obrazky ALL 8 Using where; Using filesort
models/Web.php:74
4mysql/0
0,218
explain ►
SELECT `system_reference_lidi`.*,`system_reference_obrazky_lidi`.`obrazek` as obrazek 
FROM `system_reference_lidi`
LEFT JOIN (
SELECT * 
FROM `system_reference_obrazky_lidi` 
WHERE `system_reference_obrazky_lidi`.`razeni` < 1 AND `system_reference_obrazky_lidi`.`hlavni` = 0
 ) `system_reference_obrazky_lidi` ON `system_reference_lidi`.`id` =
`system_reference_obrazky_lidi`.`produkt`
WHERE `system_reference_lidi`.`lang`='cs' AND `system_reference_lidi`.`hlavni_stranka`=1 
GROUP By `system_reference_lidi`.`id` 
ORDER BY `id` DESC
#row id select_type table type possible_keys key key_len ref rows Extra
0 1 SIMPLE system_reference_lidi ALL 27 Using where; Using temporary; Using filesort
1 1 SIMPLE system_reference_obrazky_lidi ALL 28 Using where; Using join buffer (flat, BNL join)
models/Reference.php:48
9mysql/0
0,091
explain ►
SELECT `system_reference_lidi`.*,`system_reference_obrazky_lidi`.`obrazek` as obrazek 
FROM `system_reference_lidi`
LEFT JOIN (
SELECT * 
FROM `system_reference_obrazky_lidi` 
WHERE `system_reference_obrazky_lidi`.`razeni` < 1 AND `system_reference_obrazky_lidi`.`hlavni` = 0
 ) `system_reference_obrazky_lidi` ON `system_reference_lidi`.`id` =
`system_reference_obrazky_lidi`.`produkt`
WHERE `system_reference_lidi`.`lang`='cs' 
GROUP By `system_reference_lidi`.`id` 
ORDER BY `id` DESC
#row id select_type table type possible_keys key key_len ref rows Extra
0 1 SIMPLE system_reference_lidi ALL 27 Using where; Using temporary; Using filesort
1 1 SIMPLE system_reference_obrazky_lidi ALL 28 Using where; Using join buffer (flat, BNL join)
models/Reference.php:38
9mysql/0
0,204
explain ►
SELECT `system_reference`.*,`system_reference_obrazky`.`obrazek` as obrazek 
FROM `system_reference`
LEFT JOIN (
SELECT * 
FROM `system_reference_obrazky` 
WHERE `system_reference_obrazky`.`razeni` < 1 AND `system_reference_obrazky`.`hlavni` = 0
 ) `system_reference_obrazky` ON `system_reference`.`id` = `system_reference_obrazky`.`produkt`
WHERE `system_reference`.`lang`='cs' 
GROUP By `system_reference`.`id` 
ORDER BY `id` DESC
#row id select_type table type possible_keys key key_len ref rows Extra
0 1 SIMPLE system_reference ALL 84 Using where; Using temporary; Using filesort
1 1 SIMPLE system_reference_obrazky ALL 84 Using where; Using join buffer (flat, BNL join)
models/Produkty.php:58
28mysql/0
0,109
explain ►
SELECT `system_reference`.*,`system_reference_obrazky`.`obrazek` as obrazek 
FROM `system_reference`
LEFT JOIN (
SELECT * 
FROM `system_reference_obrazky` 
WHERE `system_reference_obrazky`.`razeni` < 1 AND `system_reference_obrazky`.`hlavni` = 0
 ) `system_reference_obrazky` ON `system_reference`.`id` = `system_reference_obrazky`.`produkt`
WHERE `system_reference`.`lang`='cs' 
GROUP By `system_reference`.`id` 
ORDER BY `id` DESC 
LIMIT 8
#row id select_type table type possible_keys key key_len ref rows Extra
0 1 SIMPLE system_reference ALL 84 Using where; Using temporary; Using filesort
1 1 SIMPLE system_reference_obrazky ALL 84 Using where; Using join buffer (flat, BNL join)
models/Produkty.php:44
8mysql/0
1,185
explain ►
SELECT `system_reference`.*,`system_reference_obrazky`.`obrazek` as obrazek 
FROM `system_reference`
LEFT JOIN (
SELECT * 
FROM `system_reference_obrazky` 
WHERE `system_reference_obrazky`.`razeni` < 1 AND `system_reference_obrazky`.`hlavni` = 0
 ) `system_reference_obrazky` ON `system_reference`.`id` = `system_reference_obrazky`.`produkt`
WHERE `system_reference`.`lang`='cs' 
GROUP By `system_reference`.`id` 
ORDER BY RAND() DESC 
LIMIT 4
#row id select_type table type possible_keys key key_len ref rows Extra
0 1 SIMPLE system_reference ALL 84 Using where; Using temporary; Using filesort
1 1 SIMPLE system_reference_obrazky ALL 84 Using where; Using join buffer (flat, BNL join)
models/Produkty.php:82
4mysql/0
0,139
explain ►
SELECT * 
FROM `admin_novinky` 
WHERE `lang`='cs' AND `link`='manazerske-ucetnictvi-pro-digitalni-kancelar-danoveho-poradc'
#row id select_type table type possible_keys key key_len ref rows Extra
0 1 SIMPLE admin_novinky ALL 49 Using where
models/Web.php:45
1mysql/0
0,105
explain ►
SELECT * 
FROM `admin_menu` 
WHERE `lang`='cs' AND `verejna`=1 
ORDER By `razeni` ASC
#row id select_type table type possible_keys key key_len ref rows Extra
0 1 SIMPLE admin_menu ALL 76 Using where; Using filesort
models/Web.php:81
17mysql/0
0,137
explain ►
SELECT id, sub, link, uvod,url 
FROM `admin_menu` 
ORDER BY id,razeni DESC
#row id select_type table type possible_keys key key_len ref rows Extra
0 1 SIMPLE admin_menu ALL 76 Using filesort
models/Web.php:132
76mysql/0
0,154
explain ►
SELECT * 
FROM `admin_menu` 
WHERE `lang`='cs' AND `verejna`=1 
ORDER By `razeni` ASC
#row id select_type table type possible_keys key key_len ref rows Extra
0 1 SIMPLE admin_menu ALL 76 Using where; Using filesort
models/Web.php:81
17mysql/0
¤ ×

Web:news

Parameter Value
lang cs
news manazerske-ucetnictvi-pro-digitalni-kancelar-danoveho-poradc

Routers

Matched? Class Mask Defaults Request
no Route presenter = Web
action = page
lang = cs
uroven1 = 
NULL

uroven2 = 
NULL

no Route admin/<presenter>/<action>/ presenter = Login
action = default
module = app
no Route /newsletter presenter = Peebo
lang = cs
action = newsletter
no Route captcha/<key> presenter = Captcha
action = show
no Route /sitemap.xml presenter = Web
lang = cs
action = sitemap
yes Route <lang [a-z]{2}>/novinka/<news>/ lang = cs
news = 
NULL

presenter = Web
action = news
Web:news
lang = cs
news = manazerske-ucetnictvi-pro-digitalni-kancelar-danoveho-poradc
no Route /demo/<product>/ lang = cs
product = 
NULL

presenter = Web
action = demo
no Route <lang [a-z]{2}>/static/<file>.html presenter = Web
lang = cs
action = static
no Route /cml/export.html presenter = Peebo
lang = cs
action = cml
may Route [<lang [a-z]{2}>/][<uroven1>/][<uroven2>/][<uroven3>/][<uroven4>/][<uroven5>/][<uroven6>/][<uroven7>/]<otevrit [0-9]{1,10}>-<link>.html lang = cs
news = 
NULL

uroven1 = 
NULL

uroven2 = 
NULL

uroven3 = 
NULL

uroven4 = 
NULL

uroven5 = 
NULL

uroven6 = 
NULL

uroven7 = 
NULL

otevrit = 
NULL

link = 
NULL

presenter = Web
action = page
Web:page
lang = cs
uroven1 = novinka
uroven2 = manazerske-ucetnictvi-pro-digitalni-kancelar-danoveho-poradc
news = 
NULL

uroven3 = 
NULL

uroven4 = 
NULL

uroven5 = 
NULL

uroven6 = 
NULL

uroven7 = 
NULL

otevrit = 
NULL

link = 
NULL

¤ ×