From a688d231584b7fd4a6898d3c3d403ddaff4497b1 Mon Sep 17 00:00:00 2001
From: Bergant <darko.bergant@adacta.si>
Date: Tue, 31 Mar 2015 05:38:28 +0200
Subject: [PATCH] readme

readme
---
 .Rbuildignore           |   3 +-
 README.Rmd              |  15 +-
 img/README-graph1-1.png | Bin 0 -> 7024 bytes
 img/README-graph2-1.png | Bin 0 -> 7023 bytes
 img/README-graph3-1.png | Bin 0 -> 7059 bytes
 readme.md               | 459 +++++++++++++++++-----------------------
 6 files changed, 206 insertions(+), 271 deletions(-)
 create mode 100644 img/README-graph1-1.png
 create mode 100644 img/README-graph2-1.png
 create mode 100644 img/README-graph3-1.png

diff --git a/.Rbuildignore b/.Rbuildignore
index 88c8dac..2fdf8c7 100644
--- a/.Rbuildignore
+++ b/.Rbuildignore
@@ -1,4 +1,5 @@
 ^.*\.Rproj$
 ^\.Rproj\.user$
 ^README\.Rmd$
-^README\.html$
\ No newline at end of file
+^README\.html$
+^IMG$
diff --git a/README.Rmd b/README.Rmd
index 9147d8a..7f822c4 100644
--- a/README.Rmd
+++ b/README.Rmd
@@ -1,10 +1,17 @@
 ---
-title: finstr - Financial Statements in R 
+title: "finstr - Financial Statements in R"
 output:
-  html_document:
-    keep_md: yes
+  md_document:
+    variant: markdown_github
 ---
 
+```{r, echo = FALSE}
+knitr::opts_chunk$set(
+  collapse = TRUE,
+  comment = "#>",
+  fig.path = "IMG/README-"
+)
+```
 
 ```{r, echo=FALSE, results='hide', message=FALSE }
 library(dplyr)
@@ -289,7 +296,7 @@ balance_sheet %>%
 ## See the difference
 We can use the same custom hierarchy on lagged differences.
 
-```{r graph3, fig.width=7.3}
+```{r graph3, fig.width=8}
 
 balance_sheet %>%
   diff() %>%
diff --git a/img/README-graph1-1.png b/img/README-graph1-1.png
new file mode 100644
index 0000000000000000000000000000000000000000..9d9484b4b0e71eee7e5d94711ee3ab6e4dc70557
GIT binary patch
literal 7024
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

literal 0
HcmV?d00001

diff --git a/img/README-graph2-1.png b/img/README-graph2-1.png
new file mode 100644
index 0000000000000000000000000000000000000000..8178b56845c36c50694f591c9dfb9396c7df3f0e
GIT binary patch
literal 7023
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

literal 0
HcmV?d00001

diff --git a/img/README-graph3-1.png b/img/README-graph3-1.png
new file mode 100644
index 0000000000000000000000000000000000000000..1d865dbabd1589a5b674a10bebb63f7091f093f1
GIT binary patch
literal 7059
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

literal 0
HcmV?d00001

diff --git a/readme.md b/readme.md
index f1bd89b..54ab757 100644
--- a/readme.md
+++ b/readme.md
@@ -1,30 +1,20 @@
-# finstr - Financial Statements in R
+**Warning: finstr package is in development. Please use with caution.**
 
+The purpose of finstr package is to use financial statements data in more structured form and process. For now it is offering:
 
+1.  Data structure for financial statements in tidy and usable format
+2.  Validate statement calculations
+3.  Function to merge two reporting periods into single object
+4.  Calculations on statements data and lagged difference calculation
 
+The idea in long term is to create an environment for reproducible financial statement analysis. With existing packages like XBRL for XBRL parsing, dplyr for data manipulation and knitr for reproducible research, this shouldn't be a long journey.
 
-**Warning: finstr package is in development. 
-Please use with caution.**
+Get data
+--------
 
-The purpose of finstr package is to use financial statements 
-data in more structured form and process.
-For now it is offering:
-
-1. Data structure for financial statements in tidy and usable format
-2. Validate statement calculations
-3. Function to merge two reporting periods into single object
-4. Calculations on statements data and lagged difference calculation
-
-The idea in long term is to create an environment for reproducible financial 
-statement analysis. With existing packages like XBRL for XBRL parsing, 
-dplyr for data manipulation and knitr for reproducible research, this 
-shouldn't be a long journey.
-
-
-## Get data
 Use XBRL package to parse XBRL files. For example:
 
-```r
+``` {.r}
 library(XBRL)
 # parse XBRL (Apple 10-K report)
 xbrl_url2014 <- 
@@ -35,177 +25,148 @@ xbrl_data_aapl2014 <- xbrlDoAll(xbrl_url2014)
 xbrl_data_aapl2013 <- xbrlDoAll(xbrl_url2013)
 ```
 
-## Prepare statements
-With `xbrl_get_statements` convert XBRL data to *statements* object. 
+Prepare statements
+------------------
 
-```r
+With `xbrl_get_statements` convert XBRL data to *statements* object.
+
+``` {.r}
 library(finstr)
 
 st2013 <- xbrl_get_statements(xbrl_data_aapl2013)
 st2014 <- xbrl_get_statements(xbrl_data_aapl2014)
 st2014
+#> Financial statements repository
+#>                                              From         To Rows Columns
+#> StatementOfIncome                      2012-09-29 2014-09-27    3      15
+#> StatementOfOtherComprehensiveIncome    2012-09-29 2014-09-27    3      14
+#> StatementOfFinancialPositionClassified 2013-09-28 2014-09-27    2      33
+#> StatementOfCashFlowsIndirect           2012-09-29 2014-09-27    3      33
 ```
 
-```
-## Financial statements repository
-##                                              From         To Rows Columns
-## StatementOfIncome                      2012-09-29 2014-09-27    3      15
-## StatementOfOtherComprehensiveIncome    2012-09-29 2014-09-27    3      14
-## StatementOfFinancialPositionClassified 2013-09-28 2014-09-27    2      33
-## StatementOfCashFlowsIndirect           2012-09-29 2014-09-27    3      33
-```
-
-Statements object is a list of 
-several statement objects (ballance sheets, income and cash 
-flow statements) which are data frames with elements as columns and periods
-as rows. 
-To get a single *statement* use *statements* object as a regular R list:
+Statements object is a list of several statement objects (ballance sheets, income and cash flow statements) which are data frames with elements as columns and periods as rows. To get a single *statement* use *statements* object as a regular R list:
 
-```r
+``` {.r}
 balance_sheet2013 <- st2013$StatementOfFinancialPositionClassified
 balance_sheet2014 <- st2014$StatementOfFinancialPositionClassified
 income2013 <- st2013$StatementOfIncome
 income2014 <- st2014$StatementOfIncome
 balance_sheet2014
-```
-
-```
-## Financial statement: 2 observations from 2013-09-28 to 2014-09-27 
-## Numbers in  000000 
-##                                                    2014-09-27 2013-09-28
-## Assets =                                           231839     207000    
-## + AssetsCurrent =                                   68531      73286    
-##   + CashAndCashEquivalentsAtCarryingValue           13844      14259    
-##   + AvailableForSaleSecuritiesCurrent               11233      26287    
-##   + AccountsReceivableNetCurrent                    17460      13102    
-##   + InventoryNet                                     2111       1764    
-##   + DeferredTaxAssetsNetCurrent                      4318       3453    
-##   + NontradeReceivablesCurrent                       9759       7539    
-##   + OtherAssetsCurrent                               9806       6882    
-## + AvailableForSaleSecuritiesNoncurrent             130162     106215    
-## + PropertyPlantAndEquipmentNet                      20624      16597    
-## + Goodwill                                           4616       1577    
-## + IntangibleAssetsNetExcludingGoodwill               4142       4179    
-## + OtherAssetsNoncurrent                              3764       5146    
-## LiabilitiesAndStockholdersEquity =                 231839     207000    
-## + Liabilities =                                    120292      83451    
-##   + LiabilitiesCurrent =                            63448      43658    
-##     + AccountsPayableCurrent                        30196      22367    
-##     + AccruedLiabilitiesCurrent                     18453      13856    
-##     + DeferredRevenueCurrent                         8491       7435    
-##     + CommercialPaper                                6308          0    
-##   + DeferredRevenueNoncurrent                        3031       2625    
-##   + LongTermDebt                                    28987      16960    
-##   + OtherLiabilitiesNoncurrent                      24826      20208    
-## + CommitmentsAndContingencies                           0          0    
-## + StockholdersEquity =                             111547     123549    
-##   + CommonStocksIncludingAdditionalPaidInCapital    23313      19764    
-##   + RetainedEarningsAccumulatedDeficit              87152     104256    
-##   + AccumulatedOtherComprehensiveIncomeLossNetOfTa   1082       -471
-```
-
-```r
+#> Financial statement: 2 observations from 2013-09-28 to 2014-09-27 
+#> Numbers in  000000 
+#>                                                    2014-09-27 2013-09-28
+#> Assets =                                           231839     207000    
+#> + AssetsCurrent =                                   68531      73286    
+#>   + CashAndCashEquivalentsAtCarryingValue           13844      14259    
+#>   + AvailableForSaleSecuritiesCurrent               11233      26287    
+#>   + AccountsReceivableNetCurrent                    17460      13102    
+#>   + InventoryNet                                     2111       1764    
+#>   + DeferredTaxAssetsNetCurrent                      4318       3453    
+#>   + NontradeReceivablesCurrent                       9759       7539    
+#>   + OtherAssetsCurrent                               9806       6882    
+#> + AvailableForSaleSecuritiesNoncurrent             130162     106215    
+#> + PropertyPlantAndEquipmentNet                      20624      16597    
+#> + Goodwill                                           4616       1577    
+#> + IntangibleAssetsNetExcludingGoodwill               4142       4179    
+#> + OtherAssetsNoncurrent                              3764       5146    
+#> LiabilitiesAndStockholdersEquity =                 231839     207000    
+#> + Liabilities =                                    120292      83451    
+#>   + LiabilitiesCurrent =                            63448      43658    
+#>     + AccountsPayableCurrent                        30196      22367    
+#>     + AccruedLiabilitiesCurrent                     18453      13856    
+#>     + DeferredRevenueCurrent                         8491       7435    
+#>     + CommercialPaper                                6308          0    
+#>   + DeferredRevenueNoncurrent                        3031       2625    
+#>   + LongTermDebt                                    28987      16960    
+#>   + OtherLiabilitiesNoncurrent                      24826      20208    
+#> + CommitmentsAndContingencies                           0          0    
+#> + StockholdersEquity =                             111547     123549    
+#>   + CommonStocksIncludingAdditionalPaidInCapital    23313      19764    
+#>   + RetainedEarningsAccumulatedDeficit              87152     104256    
+#>   + AccumulatedOtherComprehensiveIncomeLossNetOfTa   1082       -471
 tail(income2014, 2)
-```
-
-```
-## Financial statement: 2 observations from 2013-09-28 to 2014-09-27 
-## Numbers in  000000 
-##                                                    2014-09-27 2013-09-28
-## NetIncomeLoss =                                     39510      37037    
-## + IncomeLossFromContinuingOperationsBeforeIncomeTa  53483      50155    
-##   + OperatingIncomeLoss =                           52503      48999    
-##     + GrossProfit =                                 70537      64304    
-##       + SalesRevenueNet                            182795     170910    
-##       - CostOfGoodsAndServicesSold                 112258     106606    
-##     - OperatingExpenses =                           18034      15305    
-##       + ResearchAndDevelopmentExpense                6041       4475    
-##       + SellingGeneralAndAdministrativeExpense      11993      10830    
-##   + NonoperatingIncomeExpense                         980       1156    
-## - IncomeTaxExpenseBenefitNA                         13973      13118
-```
-
-
-Information about hierarchical structure of elements (concepts) is stored 
-as an attribute to the statement object.
-
-To get more data about the concepts used in the statement call `get_elements`: 
-
-```r
+#> Financial statement: 2 observations from 2013-09-28 to 2014-09-27 
+#> Numbers in  000000 
+#>                                                    2014-09-27 2013-09-28
+#> NetIncomeLoss =                                     39510      37037    
+#> + IncomeLossFromContinuingOperationsBeforeIncomeTa  53483      50155    
+#>   + OperatingIncomeLoss =                           52503      48999    
+#>     + GrossProfit =                                 70537      64304    
+#>       + SalesRevenueNet                            182795     170910    
+#>       - CostOfGoodsAndServicesSold                 112258     106606    
+#>     - OperatingExpenses =                           18034      15305    
+#>       + ResearchAndDevelopmentExpense                6041       4475    
+#>       + SellingGeneralAndAdministrativeExpense      11993      10830    
+#>   + NonoperatingIncomeExpense                         980       1156    
+#> - IncomeTaxExpenseBenefitNA                         13973      13118
+```
+
+Information about hierarchical structure of elements (concepts) is stored as an attribute to the statement object.
+
+To get more data about the concepts used in the statement call `get_elements`:
+
+``` {.r}
 bs_els <- get_elements(balance_sheet2014)
 ```
 
-Elements store concept descriptions, balance attribute (debit/credit) and 
-parent/child relationships between concepts.
+Elements store concept descriptions, balance attribute (debit/credit) and parent/child relationships between concepts.
 
-## Validate statement calculation hierarchy
-Recalculate higher order concepts from basic values and check for errors.
+Validate statement calculation hierarchy
+----------------------------------------
 
+Recalculate higher order concepts from basic values and check for errors.
 
-```r
+``` {.r}
 errors <- check_statement(balance_sheet2014)
 errors
+#> Number of errors:  0 
+#> Number of elements in errors:  0
 ```
 
-```
-## Number of errors:  0 
-## Number of elements in errors:  0
-```
-
+Merge statements from different periods
+---------------------------------------
 
-## Merge statements from different periods
-Use `merge` function to create single financial statement data from two 
-statements. 
+Use `merge` function to create single financial statement data from two statements.
 
-```r
+``` {.r}
 balance_sheet <- merge( balance_sheet2013, balance_sheet2014 )
 ```
 
-The structure of merged balance sheets may differ if XBRL
-taxonomy changed. 
-Function `merge` takes care of it by expanding the elements 
-hierarchy to fit both statements. 
-The values of any missing elements is set to 0.
+The structure of merged balance sheets may differ if XBRL taxonomy changed. Function `merge` takes care of it by expanding the elements hierarchy to fit both statements. The values of any missing elements is set to 0.
 
 To merge all statements from *statements* object use merge on statements objects:
 
-```r
+``` {.r}
 # merge all statements
 st_all <- merge( st2013, st2014 )
 # check if blance sheets are merged:
 balance_sheet <- st_all$StatementOfFinancialPositionClassified
 ```
 
-## Calculate new values and ratios
-Statement object (in our case `balance_sheet`) is also a data frame object.
-With elements (or concepts) as columns and time periods as rows.
-It is possible then to use statement as a data frame.
+Calculate new values and ratios
+-------------------------------
 
-Lets calculate current ratio which is defined by
+Statement object (in our case `balance_sheet`) is also a data frame object. With elements (or concepts) as columns and time periods as rows. It is possible then to use statement as a data frame.
 
-$$ Current Ratio = \frac{Current Assets}{Current Liabilities} $$
+Lets calculate current ratio which is defined by
 
+\[ Current Ratio = \frac{Current Assets}{Current Liabilities} \]
 
-```r
+``` {.r}
 library(dplyr)
 
 balance_sheet %>%
   mutate(CurrentRatio = AssetsCurrent / LiabilitiesCurrent) %>%
   select(endDate, CurrentRatio)
+#>      endDate CurrentRatio
+#> 1 2012-09-29     1.495849
+#> 2 2013-09-28     1.678639
+#> 3 2014-09-27     1.080113
 ```
 
-```
-##      endDate CurrentRatio
-## 1 2012-09-29     1.495849
-## 2 2013-09-28     1.678639
-## 3 2014-09-27     1.080113
-```
-
-By using `calculate` function we can achieve the same result with
-less verbose language. Lets calculate now two ratios:
-
+By using `calculate` function we can achieve the same result with less verbose language. Lets calculate now two ratios:
 
-```r
+``` {.r}
 library(dplyr)
 
 balance_sheet %>% calculate(
@@ -219,30 +180,22 @@ balance_sheet %>% calculate(
         ) / LiabilitiesCurrent
     
 )
+#>         date Current_Ratio  Quick_Ratio
+#> 1 2012-09-29  1.495849e-06 1.039360e-06
+#> 2 2013-09-28  1.678639e-06 1.228824e-06
+#> 3 2014-09-27  1.080113e-06 6.704230e-07
 ```
 
-```
-##         date Current_Ratio  Quick_Ratio
-## 1 2012-09-29  1.495849e-06 1.039360e-06
-## 2 2013-09-28  1.678639e-06 1.228824e-06
-## 3 2014-09-27  1.080113e-06 6.704230e-07
-```
-
-
-If we need a period average value we can use a `lag` function.
-For example, to calculate *DSO* (days sales outstanding) over longer periods
-the average of account receivable is compared to net sales.
+If we need a period average value we can use a `lag` function. For example, to calculate *DSO* (days sales outstanding) over longer periods the average of account receivable is compared to net sales.
 
 We will use the formula for yearly preiods:
 
-$$ DSO = \frac{Average Accounts Receivable}{Sales Revenue} \times 365 $$
+\[ DSO = \frac{Average Accounts Receivable}{Sales Revenue} \times 365 \]
 
-In this case we need to connect two type of statements: balance sheets and
-income statements. With matching reporting periods it can be accomplished 
-with joining two data frames:
+In this case we need to connect two type of statements: balance sheets and income statements. With matching reporting periods it can be accomplished with joining two data frames:
 
+``` {.r}
 
-```r
 balance_sheet %>%
   inner_join( st_all$StatementOfIncome, by = "endDate") %>%
   calculate(
@@ -250,27 +203,21 @@ balance_sheet %>%
     .AccountReceivableAvg = (.AccountReceivableLast + AccountsReceivableNetCurrent)/2,
     DaysSalesOutstanding = .AccountReceivableAvg / SalesRevenueNet * 365 
   )
+#> Warning in min(x[["decimals"]], na.rm = TRUE): no non-missing arguments to
+#> min; returning Inf
+#>         date DaysSalesOutstanding
+#> 1 2012-09-29                   NA
+#> 2 2013-09-28                  Inf
+#> 3 2014-09-27                  Inf
 ```
 
-```
-## Warning in min(x[["decimals"]], na.rm = TRUE): no non-missing arguments to
-## min; returning Inf
-```
-
-```
-##         date DaysSalesOutstanding
-## 1 2012-09-29                   NA
-## 2 2013-09-28                  Inf
-## 3 2014-09-27                  Inf
-```
-
-The leading dot instructs the calculate function to hide the value. In our case
-only DaysSalesOutstanding is selected in final result.
+The leading dot instructs the calculate function to hide the value. In our case only DaysSalesOutstanding is selected in final result.
 
 Use digits parameter to control rounding:
 
+``` {.r}
+
 
-```r
 st_all$StatementOfIncome %>% calculate( digits = 2,
 
   Gross_Margin = 
@@ -283,20 +230,16 @@ st_all$StatementOfIncome %>% calculate( digits = 2,
     NetIncomeLoss / SalesRevenueNet
 
   ) 
+#>         date Gross_Margin Operating_Margin Net_Margin
+#> 1 2011-09-24      4.0e-07          3.1e-07    2.4e-07
+#> 2 2012-09-29      4.4e-07          3.5e-07    2.7e-07
+#> 3 2013-09-28      3.8e-07          2.9e-07    2.2e-07
+#> 4 2014-09-27      3.9e-07          2.9e-07    2.2e-07
 ```
 
-```
-##         date Gross_Margin Operating_Margin Net_Margin
-## 1 2011-09-24      4.0e-07          3.1e-07    2.4e-07
-## 2 2012-09-29      4.4e-07          3.5e-07    2.7e-07
-## 3 2013-09-28      3.8e-07          2.9e-07    2.2e-07
-## 4 2014-09-27      3.9e-07          2.9e-07    2.2e-07
-```
-
-When running same calculation for different statements, store the
-calculation with `calculation` and run with `do_calculation`:
+When running same calculation for different statements, store the calculation with `calculation` and run with `do_calculation`:
 
-```r
+``` {.r}
 # define calculation
 profit_margins <- calculation(
   
@@ -314,85 +257,70 @@ profit_margins <- calculation(
 
 # run profit margins for two different statements
 income2013 %>% do_calculation(profit_margins)
-```
-
-```
-##         date Gross_Margin Operating_Margin Net_Margin
-## 1 2011-09-24     4.05e-07         3.12e-07   2.39e-07
-## 2 2012-09-29     4.39e-07         3.53e-07   2.67e-07
-## 3 2013-09-28     3.76e-07         2.87e-07   2.17e-07
-```
-
-```r
+#>         date Gross_Margin Operating_Margin Net_Margin
+#> 1 2011-09-24     4.05e-07         3.12e-07   2.39e-07
+#> 2 2012-09-29     4.39e-07         3.53e-07   2.67e-07
+#> 3 2013-09-28     3.76e-07         2.87e-07   2.17e-07
 income2014 %>% do_calculation(profit_margins)
+#>         date Gross_Margin Operating_Margin Net_Margin
+#> 1 2012-09-29     4.39e-07         3.53e-07   2.67e-07
+#> 2 2013-09-28     3.76e-07         2.87e-07   2.17e-07
+#> 3 2014-09-27     3.86e-07         2.87e-07   2.16e-07
 ```
 
-```
-##         date Gross_Margin Operating_Margin Net_Margin
-## 1 2012-09-29     4.39e-07         3.53e-07   2.67e-07
-## 2 2013-09-28     3.76e-07         2.87e-07   2.17e-07
-## 3 2014-09-27     3.86e-07         2.87e-07   2.16e-07
-```
-
+Lagged difference
+-----------------
 
-##Lagged difference
-To calculate lagged difference for entire statement use `diff` function.
-The result is statement of changes between successive years:
+To calculate lagged difference for entire statement use `diff` function. The result is statement of changes between successive years:
 
+``` {.r}
 
-```r
 balance_sheet %>% diff()
-```
+#> Financial statement: 2 observations from 2013-09-28 to 2014-09-27 
+#> Numbers in  000000 
+#>                                                    2014-09-27 2013-09-28
+#> Assets =                                            24839      30936    
+#> + AssetsCurrent =                                   -4755      15633    
+#>   + CashAndCashEquivalentsAtCarryingValue            -415       3513    
+#>   + AvailableForSaleSecuritiesCurrent              -15054       7904    
+#>   + AccountsReceivableNetCurrent                     4358       2172    
+#>   + InventoryNet                                      347        973    
+#>   + DeferredTaxAssetsNetCurrent                       865        870    
+#>   + NontradeReceivablesCurrent                       2220       -223    
+#>   + OtherAssetsCurrent                               2924        424    
+#> + AvailableForSaleSecuritiesNoncurrent              23947      14093    
+#> + PropertyPlantAndEquipmentNet                       4027       1145    
+#> + Goodwill                                           3039        442    
+#> + IntangibleAssetsNetExcludingGoodwill                -37        -45    
+#> + OtherAssetsNoncurrent                             -1382       -332    
+#> LiabilitiesAndStockholdersEquity =                  24839      30936    
+#> + Liabilities =                                     36841      25597    
+#>   + LiabilitiesCurrent =                            19790       5116    
+#>     + AccountsPayableCurrent                         7829       1192    
+#>     + AccruedLiabilitiesCurrent                      4597       2442    
+#>     + DeferredRevenueCurrent                         1056       1482    
+#>     + CommercialPaper                                6308          0    
+#>   + DeferredRevenueNoncurrent                         406        -23    
+#>   + LongTermDebt                                    12027      16960    
+#>   + OtherLiabilitiesNoncurrent                       4618       3544    
+#> + CommitmentsAndContingencies                           0          0    
+#> + StockholdersEquity =                             -12002       5339    
+#>   + CommonStockValue                                    0     -16422    
+#>   + RetainedEarningsAccumulatedDeficit             -17104       2967    
+#>   + AccumulatedOtherComprehensiveIncomeLossNetOfTa   1553       -970    
+#>   + CommonStocksIncludingAdditionalPaidInCapitalNA   3549      19764
+```
+
+Balance sheet visualization
+===========================
+
+Prepare custom calculation hierarchy
+------------------------------------
+
+There is no human readable way to plot every number of the balance sheet in one graph. The only way to plot a balance sheet is to plot it several times. Each graph should have a limited number of highlited features. The first step is to break a balance sheet to a small number of pieces. We can use calculations to specify these groups of elements.
+
+``` {.r}
 
-```
-## Financial statement: 2 observations from 2013-09-28 to 2014-09-27 
-## Numbers in  000000 
-##                                                    2014-09-27 2013-09-28
-## Assets =                                            24839      30936    
-## + AssetsCurrent =                                   -4755      15633    
-##   + CashAndCashEquivalentsAtCarryingValue            -415       3513    
-##   + AvailableForSaleSecuritiesCurrent              -15054       7904    
-##   + AccountsReceivableNetCurrent                     4358       2172    
-##   + InventoryNet                                      347        973    
-##   + DeferredTaxAssetsNetCurrent                       865        870    
-##   + NontradeReceivablesCurrent                       2220       -223    
-##   + OtherAssetsCurrent                               2924        424    
-## + AvailableForSaleSecuritiesNoncurrent              23947      14093    
-## + PropertyPlantAndEquipmentNet                       4027       1145    
-## + Goodwill                                           3039        442    
-## + IntangibleAssetsNetExcludingGoodwill                -37        -45    
-## + OtherAssetsNoncurrent                             -1382       -332    
-## LiabilitiesAndStockholdersEquity =                  24839      30936    
-## + Liabilities =                                     36841      25597    
-##   + LiabilitiesCurrent =                            19790       5116    
-##     + AccountsPayableCurrent                         7829       1192    
-##     + AccruedLiabilitiesCurrent                      4597       2442    
-##     + DeferredRevenueCurrent                         1056       1482    
-##     + CommercialPaper                                6308          0    
-##   + DeferredRevenueNoncurrent                         406        -23    
-##   + LongTermDebt                                    12027      16960    
-##   + OtherLiabilitiesNoncurrent                       4618       3544    
-## + CommitmentsAndContingencies                           0          0    
-## + StockholdersEquity =                             -12002       5339    
-##   + CommonStockValue                                    0     -16422    
-##   + RetainedEarningsAccumulatedDeficit             -17104       2967    
-##   + AccumulatedOtherComprehensiveIncomeLossNetOfTa   1553       -970    
-##   + CommonStocksIncludingAdditionalPaidInCapitalNA   3549      19764
-```
-
-
-# Balance sheet visualization
-
-## Prepare custom calculation hierarchy
-There is no human readable way to plot every number of the balance sheet in 
-one graph.
-The only way to plot a balance sheet is to plot it several times. 
-Each graph should have a limited number of highlited features.
-The first step is to break a balance sheet to a small number of pieces.
-We can use calculations to specify these groups of elements.
-
-
-```r
 two_sided_bs_calculation <- 
   list(
     "Assets" = calculation(
@@ -409,38 +337,37 @@ two_sided_bs_calculation <-
   )
 ```
 
-We divided balance sheet to **Assets** and **Liabilities and Equity**. 
-Both main groups are divided to only 3 smaller chunks (based on liquidity). 
+We divided balance sheet to **Assets** and **Liabilities and Equity**. Both main groups are divided to only 3 smaller chunks (based on liquidity).
 
-To plot the result we need to run the calculations on a balance sheet and call
-graph plotting function:
+To plot the result we need to run the calculations on a balance sheet and call graph plotting function:
 
+``` {.r}
 
-```r
 balance_sheet %>% 
   do_calculation(two_sided_bs_calculation) %>%
   plot_double_stacked_bar()
 ```
 
-![](README_files/figure-html/graph1-1.png) 
+![](IMG/README-graph1-1.png)
 
-Another option is to group by date and see assets close to liabilities for
-every year:
+Another option is to group by date and see assets close to liabilities for every year:
 
+``` {.r}
 
-```r
 balance_sheet %>% 
   do_calculation(two_sided_bs_calculation) %>%
   plot_double_stacked_bar(by_date = TRUE)
 ```
 
-![](README_files/figure-html/graph2-1.png) 
+![](IMG/README-graph2-1.png)
+
+See the difference
+------------------
 
-## See the difference
 We can use the same custom hierarchy on lagged differences.
 
+``` {.r}
 
-```r
 balance_sheet %>%
   diff() %>%
   do_calculation(two_sided_bs_calculation) %>%
@@ -449,4 +376,4 @@ balance_sheet %>%
     dif_labels = c("Money\nconsumption","Money\nsupply"))
 ```
 
-![](README_files/figure-html/graph3-1.png) 
+![](IMG/README-graph3-1.png)
-- 
GitLab