From e27a0229b812acf803803f1f84ccb9a40cfa5f0a Mon Sep 17 00:00:00 2001 From: hug-sch Date: Wed, 31 Jul 2024 14:05:27 +0200 Subject: [PATCH] split import.md into two files (csv-import.md and pdf-import.md) and separate folder --- docs/en/assets/PDF-Debug Testfile.pdf | Bin 0 -> 68528 bytes .../getting-started/manage-portfolio/buy.md | 2 +- docs/en/getting-started/updating-portfolio.md | 4 +- docs/en/how-to/benchmarking.md | 2 +- docs/en/how-to/copy-securities.md | 2 +- .../downloading-historical-prices/csv-file.md | 2 +- docs/en/how-to/gold-prices.md | 2 +- docs/en/how-to/index.md | 2 +- .../mnu-file-import-pdf-debug-extract.png | Bin 0 -> 38131 bytes .../file/images/mnu-file-import-pdf-error.png | Bin 0 -> 30774 bytes .../file/{import.md => import/csv-import.md} | 34 ++- docs/en/reference/file/import/index copy.md | 225 ++++++++++++++++++ .../view/securities/all-securities.md | 2 +- 13 files changed, 250 insertions(+), 27 deletions(-) create mode 100644 docs/en/assets/PDF-Debug Testfile.pdf create mode 100644 docs/en/reference/file/images/mnu-file-import-pdf-debug-extract.png create mode 100644 docs/en/reference/file/images/mnu-file-import-pdf-error.png rename docs/en/reference/file/{import.md => import/csv-import.md} (94%) create mode 100644 docs/en/reference/file/import/index copy.md diff --git a/docs/en/assets/PDF-Debug Testfile.pdf b/docs/en/assets/PDF-Debug Testfile.pdf new file mode 100644 index 0000000000000000000000000000000000000000..8a00e83a43b06b3286dcf3481f9ff84172c4c049 GIT binary patch literal 68528 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�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 literal 0 HcmV?d00001 diff --git a/docs/en/getting-started/manage-portfolio/buy.md b/docs/en/getting-started/manage-portfolio/buy.md index 58987bd36..5fb14ae56 100644 --- a/docs/en/getting-started/manage-portfolio/buy.md +++ b/docs/en/getting-started/manage-portfolio/buy.md @@ -1,7 +1,7 @@ --- title: Recording a Buy transaction --- -When you receive a notification from your bank or broker detailing a transaction, as shown in Figure 1, you need to record this transaction in PP. If it's on paper, you must do this manually. Otherwise, you can attempt to [import](../../reference/file/import.md) the transaction. +When you receive a notification from your bank or broker detailing a transaction, as shown in Figure 1, you need to record this transaction in PP. If it's on paper, you must do this manually. Otherwise, you can attempt to [import](../../reference/file/import/csv-import.md) the transaction. # Transaction with one currency diff --git a/docs/en/getting-started/updating-portfolio.md b/docs/en/getting-started/updating-portfolio.md index caeff6c81..5ac2d254e 100644 --- a/docs/en/getting-started/updating-portfolio.md +++ b/docs/en/getting-started/updating-portfolio.md @@ -10,6 +10,6 @@ After making physical transactions with your broker or bank, you need to update - **Automatic Import**: You can import transaction data from your bank automatically. Depending on the format, this can be done using PDF documents or CSV files. It is very important that the structure and format of your data match the required format from the import wizard. For example, your CSV file might use a semicolon as a list separator (common in European countries). The import wizard should match this setting. - - **Importing a CSV File**: Use the menu `File > Import > CSV files (comma-separated values)` to import historical quotes, accounts, securities, and transactions. See [Reference > File > Import](../reference/file/import.md#csv-files-comma-separated-values) for further information. + - **Importing a CSV File**: Use the menu `File > Import > CSV files (comma-separated values)` to import historical quotes, accounts, securities, and transactions. See [Reference > File > Import](../reference/file/import/csv-import.md#csv-files-comma-separated-values) for further information. - - **Importing PDF Documents**: Banks and brokers often provide account statements on paper or in PDF format. PP can read PDF documents from more than 90 banks or brokers. To verify if your bank is supported, try to import a PDF document. The import wizard will either recognise it automatically or display an error message listing all the banks/brokers it has tried. You can also search the [forum](https://forum.portfolio-performance.info/c/english/) using the term `PDF import` or `PDF import [name-of-your-bank-or-broker]` to see if an importer for your institution is available or if there are any issues with it. See [Reference > File > Import > PDF Bank Documents](../reference/file/import.md#pdf-bank-documents) for further information, including how to request a new importer for your bank. + - **Importing PDF Documents**: Banks and brokers often provide account statements on paper or in PDF format. PP can read PDF documents from more than 90 banks or brokers. To verify if your bank is supported, try to import a PDF document. The import wizard will either recognise it automatically or display an error message listing all the banks/brokers it has tried. You can also search the [forum](https://forum.portfolio-performance.info/c/english/) using the term `PDF import` or `PDF import [name-of-your-bank-or-broker]` to see if an importer for your institution is available or if there are any issues with it. See [Reference > File > Import > PDF Bank Documents](../reference/file/import/csv-import.md#pdf-bank-documents) for further information, including how to request a new importer for your bank. diff --git a/docs/en/how-to/benchmarking.md b/docs/en/how-to/benchmarking.md index f4c5075d0..a41963e8d 100644 --- a/docs/en/how-to/benchmarking.md +++ b/docs/en/how-to/benchmarking.md @@ -10,7 +10,7 @@ A stock index is a measure of the value of a hypothetical portfolio of investmen A list of major indexes can be found on several financial websites such as [investing.com](https://www.investing.com/indices/major-indices) and [Yahoo Finance](https://finance.yahoo.com/world-indices/). In order to use an index for benchmarking your portfolio, you need to add it as a security. -For the indexes listed on Yahoo Finance, simply [add a new security](../getting-started/adding-securities.md) and search for the ticker symbol; e.g. ^GSPC. If you want to use the data from investing.com, you have to download the historical prices. Select the correct time period and click the download button to receive a CSV-file (you need a free registration for that). Create a new empty instrument. See the section [File > Import](../reference/file/import.md#csv-files-comma-separated-values) and [How-to > Downloading Historical Prices](./downloading-historical-prices/csv-file.md#investingcom) for a detailed explanation how to import these historical prices. For appending the future daily prices, you can use the daily updated table from the last month. Set the Quote Feed of the Historical Quotes to `Table on website` and use the following Feed URL: https://www.investing.com/indices/us-spx-500-historical-data. This Quote Feed will not overwrite the existing prices but will append new ones. +For the indexes listed on Yahoo Finance, simply [add a new security](../getting-started/adding-securities.md) and search for the ticker symbol; e.g. ^GSPC. If you want to use the data from investing.com, you have to download the historical prices. Select the correct time period and click the download button to receive a CSV-file (you need a free registration for that). Create a new empty instrument. See the section [File > Import](../reference/file/import/csv-import.md#csv-files-comma-separated-values) and [How-to > Downloading Historical Prices](./downloading-historical-prices/csv-file.md#investingcom) for a detailed explanation how to import these historical prices. For appending the future daily prices, you can use the daily updated table from the last month. Set the Quote Feed of the Historical Quotes to `Table on website` and use the following Feed URL: https://www.investing.com/indices/us-spx-500-historical-data. This Quote Feed will not overwrite the existing prices but will append new ones. There are plenty of mutual funds or ETF's that replicate an index. For example, both [Vanguard 500 Index Fund Admiral](https://investor.vanguard.com/investment-products/mutual-funds/profile/vfiax#portfolio-composition) and the [iShares Core S&P 500 ETF](https://www.ishares.com/us/products/239726/ishares-core-sp-500-etf) replicate the S&P 500 quite narrowly. So, you could use also one these funds as benchmark. diff --git a/docs/en/how-to/copy-securities.md b/docs/en/how-to/copy-securities.md index 9ff8ff376..d4241b2a5 100644 --- a/docs/en/how-to/copy-securities.md +++ b/docs/en/how-to/copy-securities.md @@ -56,7 +56,7 @@ At times, it may be simpler to manually copy and paste the desired transactions, 3. For a non-contiguous selection, click the first row, press and hold CTRL (Windows), and click on the following rows accordingly. 4. Once all desired rows are selected, press CTRL+C (Windows) to copy the content to the clipboard. 5. Navigate to a spreadsheet or text editor and paste the content. PP uses the TAB-code as a list separator. -6. Unfortunately, the header isn't copied along with the data. Therefore, you should either map the fields during the importing process (you can use a [template](../reference/file/import.md#csv-files-comma-separated-values) for that) or manually add them to the pasted content. +6. Unfortunately, the header isn't copied along with the data. Therefore, you should either map the fields during the importing process (you can use a [template](../reference/file/import/csv-import.md#csv-files-comma-separated-values) for that) or manually add them to the pasted content. 7. You still have to save the file with extension CSV and import it. This technique will also work in the `All Transactions` view (see previous topic). diff --git a/docs/en/how-to/downloading-historical-prices/csv-file.md b/docs/en/how-to/downloading-historical-prices/csv-file.md index dd0d1bdae..a6b4c4825 100644 --- a/docs/en/how-to/downloading-historical-prices/csv-file.md +++ b/docs/en/how-to/downloading-historical-prices/csv-file.md @@ -1,7 +1,7 @@ --- title: Downloading a CSV file --- -In PP, importing historical prices from a CSV file is a straightforward process through the menu [`File > Import > CSV Files`](../../reference/file/import.md#historical-quotes-import). Naturally, you would require a file containing the relevant quotes for this operation. +In PP, importing historical prices from a CSV file is a straightforward process through the menu [`File > Import > CSV Files`](../../reference/file/import/csv-import.md#historical-quotes-import). Naturally, you would require a file containing the relevant quotes for this operation. A csv file is a comma-separated values file, which is a text file that stores tabular data. Each row in the file represents a record, and each column represents a field. For example, a typical historical quotes CSV file will contain two columns (date and quote) and several rows, one for each date with its corresponding historical quote. A csv file can be opened and edited by spreadsheet software and easily imported into PP. diff --git a/docs/en/how-to/gold-prices.md b/docs/en/how-to/gold-prices.md index 02728611c..4a771cbb3 100644 --- a/docs/en/how-to/gold-prices.md +++ b/docs/en/how-to/gold-prices.md @@ -20,7 +20,7 @@ You can also replace the Quote Feed URL by one of the previous months (e.g. `htt But, perhaps the better method is to use a [dynamic data URLs](https://help.portfolio-performance.info/de/kursdaten_laden/#dynamische-kursdaten-urls). Replace the `month=2024-02-29` in the URL from above in the macro version `month={DATE:yyyy-MM-32}`. This macro will iterate through all previous months (going back to 2003) and send a request for each month until there is no data available. If you start from scratch, this process can take some time and will put a significant load on the ariva.de web server. -Another option to obtain historical gold prices is to register for a free account. Then you can download the historical prices as a CSV file, which can be [imported](../reference/file/import.md#csv-files-comma-separated-values) into Portfolio Performance (PP). +Another option to obtain historical gold prices is to register for a free account. Then you can download the historical prices as a CSV file, which can be [imported](../reference/file/import/csv-import.md#csv-files-comma-separated-values) into Portfolio Performance (PP). ## London Bullion Market Association (LBMA) diff --git a/docs/en/how-to/index.md b/docs/en/how-to/index.md index 09b22f992..287fa1c16 100644 --- a/docs/en/how-to/index.md +++ b/docs/en/how-to/index.md @@ -10,7 +10,7 @@ Figure: Documentation framework.{class="align-right" style="width:50%"} This how-to section of this manual is designed to help you to use all features and functions of the Portfolio Performance program in a real working context. Unlike the "Getting-started" section, which is more general and uses simplified examples, the how-to section shows you how to handle the program in a real environment with real data. -The how-to section covers topics such as [importing stock data](../reference/file/import.md), [reinvesting dividends](./handling-choice-dividend.md), recording [stock splits](./recording-stock-split.md) and [spin-offs](./recording-spin-off.md), [downloading historical data](./downloading-historical-prices/index.md) from various sources, and many more. +The how-to section covers topics such as [importing stock data](../reference/file/import/csv-import.md), [reinvesting dividends](./handling-choice-dividend.md), recording [stock splits](./recording-stock-split.md) and [spin-offs](./recording-spin-off.md), [downloading historical data](./downloading-historical-prices/index.md) from various sources, and many more. The how-to section is not a substitute for the tutorials, which provide a more comprehensive and pedagogical introduction to the program. Nor is it a substitute for the basic concepts and the reference manual sections, which explain the theoretical foundations and the technical details of the program. The how-to section is meant to complement these other sections by providing practical guidance and tips for using the program effectively. diff --git a/docs/en/reference/file/images/mnu-file-import-pdf-debug-extract.png b/docs/en/reference/file/images/mnu-file-import-pdf-debug-extract.png new file mode 100644 index 0000000000000000000000000000000000000000..582ca4a6d91637b693a3a8b21212c7bf42fa08d2 GIT binary patch literal 38131 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 z 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 HSibl_g?224 literal 0 HcmV?d00001 diff --git a/docs/en/reference/file/import.md b/docs/en/reference/file/import/csv-import.md similarity index 94% rename from docs/en/reference/file/import.md rename to docs/en/reference/file/import/csv-import.md index 1af97a427..a5ace0a8f 100644 --- a/docs/en/reference/file/import.md +++ b/docs/en/reference/file/import/csv-import.md @@ -6,11 +6,10 @@ In PP you can enter your data (buy, sell, dividends, historical quotes, … ) ma Figure: Menu File > Import.{class=pp-figure} -![](./images/mnu-file-import.png) +![](../images/mnu-file-import.png) There are two primary data sources: PDF documents and CSV files. Some brokers or banks may present this information in a proprietary format. Templates for major banks or brokers are available. -## PDF Bank Documents ## CSV files (comma-separated values) @@ -30,7 +29,7 @@ In **step 2** of the wizard, you need to select the appropriate import type or t Figure: Saving the mapping configuration.{class=align-right style="width:50%"} -![](./images/mnu-file-import-step-2-template.png) +![](../images/mnu-file-import-step-2-template.png) - *Save Configuration* (Gear icon): To save the current mapping, click on the gear icon to the right of "Type of data." A list of `Built-in configurations` will be displayed, such as comDirect, Consorsbank, etc. (see Figure 3). Using the option `Save current configuration` will save your current mapping configuration as a custom template. This template will be available under `User-specific Configurations`, for example, `test (Account Transactions)` (see Figure 2). You can delete, export, and import configurations. The export function uses a JSON format. @@ -56,7 +55,7 @@ Please note that the date in Table 1 is in the format `YYYY-MM-DD`. By double-cl Figure: Importing Historical Quotes (step 2).{class=pp-figure} -![](./images/mnu-file-import-step-2.png) +![](../images/mnu-file-import-step-2.png) In Figure 3, the `Next` and `Finish` buttons are greyed out because not all necessary information is available. The message at the top, "Unmapped required field(s): Quote," provides a clue. For this type of import, two fields are required: `Date` and `Quote`. However, the CSV file uses the headings `Date` and `Price`. The field `Price` should be mapped to the internal `Quote` field. Double-click on the column and select the appropriate mapping field, e.g. `Quote`. The `Next` and `Finish` buttons will then become available. @@ -64,11 +63,11 @@ In step 3 of the wizard, you can select the security that the prices will be add Figure: Importing Historical Quotes (step 3).{class=pp-figure} -![](./images/mnu-file-import-step-3-historical-prices.png) +![](../images/mnu-file-import-step-3-historical-prices.png) ### 2. Securities import -Use this type to create new securities from a CSV file. There are no required fields. The optional fields include `Ticker Symbol`, `Security Name`, `WKN`, `ISIN`, `Currency`, `Date of Quote`, `Note`, and `Quote`. It is evident that at least one of the first four fields should be mapped. Refer to the [glossary](../../concepts/PP-terminology.md) for the meaning of these terms. See Table 2 for an example of the CSV-file. +Use this type to create new securities from a CSV file. There are no required fields. The optional fields include `Ticker Symbol`, `Security Name`, `WKN`, `ISIN`, `Currency`, `Date of Quote`, `Note`, and `Quote`. It is evident that at least one of the first four fields should be mapped. Refer to the [glossary](../../../concepts/PP-terminology.md) for the meaning of these terms. See Table 2 for an example of the CSV-file. *Table 2: Source data for the import of Historical Prices.* ``` @@ -80,13 +79,13 @@ Two securities will be added to the portfolio; e.g. BASF and NVIDIA. The ISIN co Figure: Importing securities (Step 2).{class=pp-figure} -![](./images/mnu-file-import-securities-step-2.png) +![](../images/mnu-file-import-securities-step-2.png) The field `Currency` is not recognized by PP; in fact it should be named `Transaction Currency`. You should map it manually. In step 3 (below), you can observe that the status of both securities contains a green check mark, indicating that the import will be successful. Click Finish. Figure: Importing securities (Step 3).{class=pp-figure} -![](./images/mnu-file-import-securities-step-3.png) +![](../images/mnu-file-import-securities-step-3.png) The securities are now created and appear in the `All Securities list`. It does not make sense to add or change the cash or security account because there is no associated buy or sell transaction. The security is only created in the `All Securities` list. Please note that several other fields such as Calendar, Additional Attributes, and Taxonomies cannot be added through CSV-import. The Quote Feed for the Historical Prices could partially be added in the following step (see Figure 7). @@ -94,7 +93,7 @@ After the securities are created, an additional step allows you to search for a Figure: Importing securities (Step 4).{class=pp-figure} -![](./images/mnu-file-import-securities-step-4.png) +![](../images/mnu-file-import-securities-step-4.png) Only securities listed on XETRA (Deutsche Börse) and analyzed by the Portfolio Report are eligible for an automatic Quote Feed. The BASF security in Figure 7 meets these criteria and can therefore receive an automatic quote feed. However, the NVIDIA security is not listed on XETRA in USD, so automatic quotes should be obtained through another candidate provider e.g. Yahoo Finance. @@ -114,7 +113,7 @@ If multiple currencies in the same Buy transaction are involved, then another ty Figure: Importing securities (Step 4).{class=pp-figure} -![](./images/mnu-file-import-securities-account-step-2.png) +![](../images/mnu-file-import-securities-account-step-2.png) ### 4. Account Transactions import @@ -135,17 +134,17 @@ If the Cash and Securities account are not provided in the CSV file, the value f Figure: Importing account transactions - content CSV file{class=pp-figure} -![](./images/mnu-file-import-account-transactions-csv-file.png) +![](../images/mnu-file-import-account-transactions-csv-file.png) Figure 9 displays the content of a sample CSV file. Four transactions are described. Note that the Cash account of the first transaction is not provided. The default account from the top panel is taken in that case. Figure: Importing account transactions - content CSV file{class=pp-figure} -![](./images/mnu-file-import-account-transactions-step-2.png) +![](../images/mnu-file-import-account-transactions-step-2.png) Figure: Importing account transactions - content CSV file{class=pp-figure} -![](./images/mnu-file-import-account-transactions-step-3.png) +![](../images/mnu-file-import-account-transactions-step-3.png) #### Dividend transaction @@ -175,7 +174,7 @@ In this instance, we are receiving a dividend payment for three shares, with a ` Figure: Step 1 of the Import wizard: type dividends. {class=pp-figure} -![](./images/mnu-file-import-portfolio-account-transactions-dividend-step-1.png) +![](../images/mnu-file-import-portfolio-account-transactions-dividend-step-1.png) The necessity of the `Gross Amount` field is not apparent, particularly as it is not utilized in the subsequent section. However, the Portfolio Performance (PP) software verifies the values within this field, ensuring that the following calculation holds true: `Gross Amount` multiplied by the `Exchange Rate` equals the `Value`. If the numbers do not correspond, an error message will be displayed, preventing progression to the next step. @@ -186,7 +185,7 @@ Upon importing the CSV file detailed above and selecting the `Account Transactio Figure: Result of import from above. {class=pp-figure} -![](images/mnu-file-import-portfolio-account-transactions-dividend-result.png) +![](../images/mnu-file-import-portfolio-account-transactions-dividend-result.png) ### 5. Portfolio Transactions import @@ -216,12 +215,11 @@ Because the `(Net) Value` field is required, it makes no sense to add the `Gross Figure: Result of import from above. {class=pp-figure} -![](images/mnu-file-import-portfolio-account-transactions-result.svg) +![](../images/mnu-file-import-portfolio-account-transactions-result.svg) Figure 13 displays the first step of the Import wizard. Be sure that the type Portfolio Transactions is selected in step 1; otherwise an error will occur in step 2. Figure: Result of import from above. {class=pp-figure} -![](images/mnu-file-import-portfolio-transactions.png) - +![](../images/mnu-file-import-portfolio-transactions.png) diff --git a/docs/en/reference/file/import/index copy.md b/docs/en/reference/file/import/index copy.md new file mode 100644 index 000000000..a5ace0a8f --- /dev/null +++ b/docs/en/reference/file/import/index copy.md @@ -0,0 +1,225 @@ +--- +title: File > Import +todo: import of pdf bank documents, templates, experimental features +--- +In PP you can enter your data (buy, sell, dividends, historical quotes, … ) manually but you can also *import* this info from a CSV file (comma-separated values) or from a PDF document. Figure 1 displays the expanded `File > Import` menu. + +Figure: Menu File > Import.{class=pp-figure} + +![](../images/mnu-file-import.png) + +There are two primary data sources: PDF documents and CSV files. Some brokers or banks may present this information in a proprietary format. Templates for major banks or brokers are available. + + +## CSV files (comma-separated values) + +PP employs a wizard to lead you through the import process, consisting of three steps. At each step, you are required to furnish additional information. + +**Step 1**. Start with the menu `File > Import > CSV files (comma-separated values)`, navigate to the correct folder and select the appropriate CSV file. Only files with the extension `CSV` are displayed. + +A CSV file is simply a text file. The first line contains the names of the fields (columns); separated by a marker such as a comma. The second and following lines contain the data, also separated by a marker. The number and type of fields the file should contain, depend on the type of import. The names in the heading can be freely chosen, although it is preferable for them to match PP's internal usage, as it simplifies the mapping process (associating each column with its corresponding field in PP). The printout of a CSV file in Table 1 (see below) comprises two fields or columns and four lines of data that could be utilized for importing historical prices. + +In **step 2** of the wizard, you need to select the appropriate import type or template by clicking on the drop down box (see Figure 3). PP distinguishes between 5 types of import: `Account Transactions`, `Portfolio Transactions`, `Securities`, `Historical Quotes`, and `Securities Account`. These templates are discussed in detail below. You also need to decide about the following options. + +- *Delimiter*: PP will probably choose the correct delimiter; in this case a semicolon. Other possibilities include comma and the tab symbol. +- *Encoding*: "strange" characters in the output table indicate a mismatch between the chosen encoding and the source file encoding. There are numerous possibilities, and the correct choice depends on the application used to create the file. A good choice is likely `UTF-8` or `Windows-1250`. +- *First line contains header*: enable this option if the first line of your CSV contains field labels. +- *Skip lines*: sometimes the CSV-file contains irrelevant information in the first few lines. You can skip them with this option. +- *Mapping fields*: PP needs to determine the corresponding columns for its internal fields. If PP recognizes a field, it will be indicated by a message `-> 'Field'` in the second row of the output; otherwise, a message `Double click here` will appear (see Figure 3). To associate a column with an internal PP field, double-click on the second line. You can then choose from the available fields. If you don't want to associate a field, select the `---` option. PP will then ignore this column. To change the format of a column, e.g. Date format of a date, double-click on the name in the second line. + +Figure: Saving the mapping configuration.{class=align-right style="width:50%"} + +![](../images/mnu-file-import-step-2-template.png) + +- *Save Configuration* (Gear icon): To save the current mapping, click on the gear icon to the right of "Type of data." A list of `Built-in configurations` will be displayed, such as comDirect, Consorsbank, etc. (see Figure 3). Using the option `Save current configuration` will save your current mapping configuration as a custom template. This template will be available under `User-specific Configurations`, for example, `test (Account Transactions)` (see Figure 2). You can delete, export, and import configurations. The export function uses a JSON format. + +**Step 3**: set additional info, depending on the import type such as accounts and check the preview of the import process. +Step 3 differs depending on the selected type of import. For the historical quotes import type, only the share name should be additional selected. For the other types, you need to set the security and cash account. + +!!! Note + The cash and security account could be set globally for all import rows of the CSV file through the top panel; see for example Figure 6. You can also provide this information as part of the CSV file (include a column Cash account and Securities account). Or you can set the accounts through the context menu. Right-click on a row in the table preview and choose the appropriate account. + +### 1. Historical Quotes import + +To import historical quotes for a security, you only need two columns in the CSV file: one for the date and another for the corresponding quote. These are *required* fields. No *optional* fields are allowed. The security's name must be provided in a separate step. You cannot proceed to the next step if any of the required fields are missing. + +*Table 1: Source data for the import of Historical Quotes.* +``` +Date; Price +2024-01-09; 22,51 +2024-01-08; 22,54 +2024-01-05; 22,43 +2024-01-04; 22,46 +``` +Please note that the date in Table 1 is in the format `YYYY-MM-DD`. By double-clicking on the second row of the output panel; e.g. `-> 'Date'`, you can set the correct date format. January 7th and 6th are not included as these are weekend days (although they could be). In this case, the price information uses a comma as a decimal separator, which is standard in Europe. Therefore, a semicolon (;) is used to separate the fields. The file is saved in Excel with UTF-8 encoding. The heading labels are Date and Price. + +Figure: Importing Historical Quotes (step 2).{class=pp-figure} + +![](../images/mnu-file-import-step-2.png) + +In Figure 3, the `Next` and `Finish` buttons are greyed out because not all necessary information is available. The message at the top, "Unmapped required field(s): Quote," provides a clue. For this type of import, two fields are required: `Date` and `Quote`. However, the CSV file uses the headings `Date` and `Price`. The field `Price` should be mapped to the internal `Quote` field. Double-click on the column and select the appropriate mapping field, e.g. `Quote`. The `Next` and `Finish` buttons will then become available. + +In step 3 of the wizard, you can select the security that the prices will be added to. If the chosen security already has some historical prices, the quotes will be added (no duplicates). + +Figure: Importing Historical Quotes (step 3).{class=pp-figure} + +![](../images/mnu-file-import-step-3-historical-prices.png) + +### 2. Securities import + +Use this type to create new securities from a CSV file. There are no required fields. The optional fields include `Ticker Symbol`, `Security Name`, `WKN`, `ISIN`, `Currency`, `Date of Quote`, `Note`, and `Quote`. It is evident that at least one of the first four fields should be mapped. Refer to the [glossary](../../../concepts/PP-terminology.md) for the meaning of these terms. See Table 2 for an example of the CSV-file. + +*Table 2: Source data for the import of Historical Prices.* +``` +Ticker Symbol; ISIN; Security Name ;Currency +BAS; DE000BASF111; BASF; EUR +NVDA; ; NVIDIA; USD +``` +Two securities will be added to the portfolio; e.g. BASF and NVIDIA. The ISIN code for the second security (traded on NASDAQ) is unavailable. Also note that the NVIDIA stock is traded in USD. Importing this CSV file will display the dialogs of Figure 5 and 6. + +Figure: Importing securities (Step 2).{class=pp-figure} + +![](../images/mnu-file-import-securities-step-2.png) + +The field `Currency` is not recognized by PP; in fact it should be named `Transaction Currency`. You should map it manually. In step 3 (below), you can observe that the status of both securities contains a green check mark, indicating that the import will be successful. Click Finish. + +Figure: Importing securities (Step 3).{class=pp-figure} + +![](../images/mnu-file-import-securities-step-3.png) + +The securities are now created and appear in the `All Securities list`. It does not make sense to add or change the cash or security account because there is no associated buy or sell transaction. The security is only created in the `All Securities` list. Please note that several other fields such as Calendar, Additional Attributes, and Taxonomies cannot be added through CSV-import. The Quote Feed for the Historical Prices could partially be added in the following step (see Figure 7). + +After the securities are created, an additional step allows you to search for a suitable quote feed. This can also be performed manually by right-clicking on a security and choosing `Quotes > Search for providers of historical prices...` + +Figure: Importing securities (Step 4).{class=pp-figure} + +![](../images/mnu-file-import-securities-step-4.png) + +Only securities listed on XETRA (Deutsche Börse) and analyzed by the Portfolio Report are eligible for an automatic Quote Feed. The BASF security in Figure 7 meets these criteria and can therefore receive an automatic quote feed. However, the NVIDIA security is not listed on XETRA in USD, so automatic quotes should be obtained through another candidate provider e.g. Yahoo Finance. + +### 3. Securities Account import + +With this import type, you can create a new security (see above), while adding at the same time the first Buy transaction. The required fields are `Shares`, and `Value`. The optional fields are `Ticker`, `Symbol`, `ISIN`, `WKN`, `Time`, `Currency`, `Note`, `Date of Quote`, `Securities Account`, `Cash Account`, `Quote`, `Date of Value`, and `Security Name`. This works well as long as the securities have the same currency. The following CSV file will be imported in Figure 8. +``` +Ticker Symbol; ISIN; Security Name; Currency; shares; value +BAS; DE000BASF111; BASF; EUR; 20; 900 +NVDA; ; NVIDIA; USD; 10; 5450 +``` +Two securities will be created and at the same time a Buy transaction will also be recorded (20 shares of BASF for a total value of 900 EUR and 10 shares of NVIDIA for a total value of 5450 USD). Note that the status of the Buy transaction of the BASF share is OK. +There is however a problem with the NVIDIA share. The error message (bottom) explains that the transaction currency, which is USD does not match the currency of the cash account broker-A (EUR) that is set at the top. It is possible by right-clicking the second row to set the cash account for that specific transaction to another account. This is of course not feasible for a large amount of shares. + +If multiple currencies in the same Buy transaction are involved, then another type of import should be chosen (see below). + + +Figure: Importing securities (Step 4).{class=pp-figure} + +![](../images/mnu-file-import-securities-account-step-2.png) + + +### 4. Account Transactions import + +The Account Transactions import type will be used to register transactions on a deposit or cash account such as deposit, removal, interest, ... It is equivalent with manual recording a transaction with the menu Transaction (third group). The required fields are `Date`, and `Value`. + +!!! Important + The Account Transactions and Portfolio Transactions import types are quite similar. Internally, an account transaction is reserved to work with cash accounts and their transactions such as deposits. A portfolio transaction works with instruments and their transactions: buy, sell, delivery, ... A buy/sell transaction however has both components: something is added/removed from the securities account and some money is deducted/added to the cash account. In most cases, both types could be used interchangeably. + + :warning: + Use Account Transactions type for deposit, removal, ... and Portfolio Transactions type for buy, sell, ... + +The required fields are `Date`, and `Value`. Optional fields are `Type`, `Transaction Currency`, `Security Name`, `Shares`, `Securities Account`, `Exchange Rate`, `Gross Amount`, `Currency Gross Amount`, `Ticker Symbol`, `Taxes`, `Note`, `Cash Account`, `Fees`, `ISIN`, `WKN`, `Offset Account`, and `Time`. + +Acceptable values for the field `Type` are `Deposit`, `Removal`, `Buy`, `Sell`, `Dividend`, `Interest`, `Interest Charge`, `Fees`, `Fees Refund`, `Taxes`, `Tax Refund`, `Transfer (Inbound)`, `Transfer (Outbound)`, `Delivery (Inbound)`, and `Delivery (Outbound)`. The default value for `Type` is `Deposit`. + +If the Cash and Securities account are not provided in the CSV file, the value from the top panel is used. It's important to note that Fees and Taxes can be included as part of the Buy or Sell transaction through a dedicated column in the CSV file. In this case, the taxes and fees are subtracted from the total value field (Value = Gross Amount + Taxes + Fees). Alternatively, a separate transaction with the type Fees or Taxes can be created, and the amount is then specified in the Value column. In this case, the fees and taxes are added to the value. + +Figure: Importing account transactions - content CSV file{class=pp-figure} + +![](../images/mnu-file-import-account-transactions-csv-file.png) + +Figure 9 displays the content of a sample CSV file. Four transactions are described. Note that the Cash account of the first transaction is not provided. The default account from the top panel is taken in that case. + +Figure: Importing account transactions - content CSV file{class=pp-figure} + +![](../images/mnu-file-import-account-transactions-step-2.png) + +Figure: Importing account transactions - content CSV file{class=pp-figure} + +![](../images/mnu-file-import-account-transactions-step-3.png) + +#### Dividend transaction + +It is noteworthy to address the dividend transaction separately, as it presents unique challenges, particularly when dealing with foreign dividends. For instance, complications may arise when dividends are paid in USD but deposited into a cash account denominated in EUR. + +To illustrate, let us assume that three USD dividends are paid, with a hypothetical simple exchange rate of 0.5 EUR-for-1-USD. For the purpose of this example, we will use a cash account `Broker-A (EUR)` denominated in EUR for the deposit. + + + + +| Date | Type | Security Name | Shares | Currency | Gross Amount | Exchange Rate | Cash Account | Value (EUR) | +| ---------- | -------- | ------------- | ------ | -------- | ------------ | ------------- | ------------ | ---------- | +| 2024-01-13 | Dividend | NVIDIA | 3 | USD | 15 | 0.5 | broker-A (EUR) | 7.5 | + +In this example, the CSV file contains columns for the date, type of transaction (in this case, a dividend), the security name (NVIDIA), the number of shares, the currency in which the dividend was paid (USD), the gross amount of the dividend, the applicable exchange rate, the cash account into which the dividend was deposited `broker-A (EUR)`, and the converted value of the total dividend in EUR. + +The raw CSV-file looks like: + +``` +Date;Type;Security Name;Shares; Currency Gross Amount; Gross Amount; Exchange Rate; Cash Account; Value +2024-01-13; Dividend; NVIDIA; 3; USD; 15; 0,5; broker-A (EUR); 7,5 +``` + +Figure 12 illustrates the initial step in the import wizard process. As the CSV file incorporates the accurately spelled field names, no mapping adjustments are required. It is crucial to take note of number formatting of the various fields, particularly the exchange rate field, which will likely always contain a decimal separator (comma or point). Also check the date format; `YYYY-MM-DD`, or `DD/MM/YY`, or .... + +In this instance, we are receiving a dividend payment for three shares, with a `Gross Amount` of 15 USD. Consequently, the dividend value should be 5 USD per share (see Figure 13). Given the `Exchange Rate` of 0.5 EUR-for-1-USD, the net `Value` of the dividend, once deposited into the `broker-A (EUR)` account, should amount to 7.5 EUR. + +Figure: Step 1 of the Import wizard: type dividends. {class=pp-figure} + +![](../images/mnu-file-import-portfolio-account-transactions-dividend-step-1.png) + +The necessity of the `Gross Amount` field is not apparent, particularly as it is not utilized in the subsequent section. However, the Portfolio Performance (PP) software verifies the values within this field, ensuring that the following calculation holds true: `Gross Amount` multiplied by the `Exchange Rate` equals the `Value`. If the numbers do not correspond, an error message will be displayed, preventing progression to the next step. + +Upon importing the CSV file detailed above and selecting the `Account Transactions` type, the dividend transaction will be generated as depicted in Figure 13. + +!!! Important + Regrettably, the software does not currently support the inclusion of Fees and Taxes, either in the foreign or domestic currency. + +Figure: Result of import from above. {class=pp-figure} + +![](../images/mnu-file-import-portfolio-account-transactions-dividend-result.png) + + +### 5. Portfolio Transactions import + +!!! Important + If you have transactions with securities in different currencies, it is good practice to explicitly add the `Security Account` and `Cash Account` to the CSV-file. As the `Date` is a required field, pay attention to the default date format (YYYY-MM-DD). + +This type of import requires three fields: Shares, Date, Value. The optional fields are the same as above; except that the optional Offset Account field is replaced with Offset Securities Account. The selection of required fields may seem somewhat arbitrary. For transactions like buy and sell, a security identification is essential (such as name, ISIN, etc.). However, for an interest payment, the 'Shares' field is not necessary. + +Because the number of shares is a required field, one would assume that simple deposit of removal transactions are not allowed; but they are. The number of shares is then ignored. + +The acceptable values for the field `Type` are: `Deposit`, `Removal`, `Interest`, `Interest Charge`, `Dividend`, `Fees`, `Fees Refund`, `Taxes`, `Tax Refund`, `Buy`, `Sell`, `Transfer (Inbound)`, and `Transfer (Outbound)`. The default value of Type is `Sell`. + +Suppose that you wish to import two portfolio transactions: a sell of 2 shares of BASF in EUR and a buy of 3 shares NVIDIA in USD. Since we are using the EUR cash account in both cases, the transaction in USD must be converted into EUR. In this case, PP will handle this automatically because the NVIDIA security is listed in USD and the security account in EUR. Alternatively, you can designate the `Currency Gross Amount` column as `USD`. However, a more efficient workflow may involve defining the `Cash Account`, and eventually the `Securities Account`. This prevents the import from defaulting to standard accounts, such as `broker-A` and `broker-A (EUR)` in this case. + +Figure 15 displays the `Mapped to Field` dialog box is shown (accessible via double-clicking the Value column). It's advisable to confirm that the selected format aligns with your language settings, especially if you use a comma as the decimal point as in this example. + +The CSV file should look as follows. + +``` +Date;Type;Shares;Security Name;Value;Exchange rate;fees;taxes;Securities Account;Cash Account +2024-01-04; Sell; 2; BASF; 90; ;5; 3; broker-A; broker-A (EUR) +2024-01-13; Buy; 3; NVIDIA; 1740,98; 1,0837; 15; 10; broker-A; broker-A (EUR) +``` +Because the `(Net) Value` field is required, it makes no sense to add the `Gross Value`, which will be overwritten anyway (Gross Value = Value + Fees + Taxes). Please note that the `Exchange Rate` field is empty (or zero) in case of the BASF transaction. Figure 14 displays the result of this import transaction. + + +Figure: Result of import from above. {class=pp-figure} + +![](../images/mnu-file-import-portfolio-account-transactions-result.svg) + +Figure 13 displays the first step of the Import wizard. Be sure that the type Portfolio Transactions is selected in step 1; otherwise an error will occur in step 2. + +Figure: Result of import from above. {class=pp-figure} + +![](../images/mnu-file-import-portfolio-transactions.png) + diff --git a/docs/en/reference/view/securities/all-securities.md b/docs/en/reference/view/securities/all-securities.md index eda29f178..10d070454 100644 --- a/docs/en/reference/view/securities/all-securities.md +++ b/docs/en/reference/view/securities/all-securities.md @@ -138,7 +138,7 @@ Figure: Context menu of Historical Quotes in the information pane.{class=pp-figu - Search for suppliers of historical prices ...: displays the first step of the [File > New](../../file/new.md#file-❯-new) wizard. - - Import from CSV file ...: This command is equivalent with the [File > Import](../../file/import.md) menu. The CSV file must contain at least two columns. + - Import from CSV file ...: This command is equivalent with the [File > Import](../../file/import/csv-import.md) menu. The CSV file must contain at least two columns.