Investment Performance Report Template v1
Report Investment Performance Report Template v1
This template generates an investment performance report with two columns with your logo, header, footer, style and content.
Info
Information to call the Investment Performance Report Template v1
API End Point:
https://api.advicement.io/v1/templates/pub-investment-performance-report-v1/compile
Authentication:
Use your API Security Token (which is generated in your dashboard) in the Adv-Security-Token header parameter
Refer to our authentication guide for more information.
Uses Luatex:
FALSE
Uses Charts:
TRUE
Available On:

Investment Performance Report Template

A JSON to PDF template for an investment performance report is a tool that takes data about a portfolio's performance and presents it in a formatted PDF document. This tool can be used by financial advisors, investment managers, or individual investors who want to track the performance of their investment portfolio over a period of time.

The JSON data would typically include information such as the types of investments held, their respective names, and any income earned. The tool would then use this data to generate charts, graphs, and tables that illustrate the performance of the portfolio over time.

The resulting PDF document could be customized with the company or individual's logo and branding, as well as personalized messaging to clients or investors. This investment performance report can then be shared with clients, investors, or other stakeholders as a summary of the portfolio's performance.

Use Cases for Investment Performance Reports

  1. Providing regular reports to investors to keep them informed about the performance of their investments.
  2. Communicating with clients about their investment portfolios and making recommendations based on their performance.
  3. Preparing reports for regulatory compliance purposes, such as for audits or reporting to government agencies.
  4. Analyzing and comparing the performance of different investment portfolios to identify trends and patterns.

Key Takeaways

Overall, a JSON to PDF template for an investment performance report provides a convenient and efficient way to generate professional-looking reports that help investors track the performance of their portfolios.

{ "documentSettings": { "font": "raleway", "fontSize": 8, "primaryHEXColour": "343D49", "secondaryHEXColour": "0dbb72", "textHEXColour": "444444", "documentName": "Investment Performance Report from ADVICEment", "logo": "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", "logoType": "png", "logoWidth": "4.5cm", "topMargin": "-0.1cm", "rightMargin": "14cm", "bottomMargin": "-0.1cm", "leftMargin": "1cm", "headheight": "3.13cm", "headsep": "0.5cm", "footskip": "1.5cm", "marginparwidth":"12cm", "marginparsep":"1cm", "includehead": true, "includefoot": true, "showframe": false, "header": { "headerLine": false, "leftContent": "\\begin{tikzpicture} \\node (rectange) [rectangle, shading = axis, shading angle=135, left color=Primary, right color=Secondary, anchor=south west, inner sep=0,outer sep =0, fill = Primary, minimum width = 21cm, minimum height = 3.0cm] at ([xshift=0.0cm, yshift=0cm]current page.north west) {}; \\node[right] at ([xshift=0.90cm, yshift=-0.9cm]rectange.north west) {\\bfseries\\color{white}\\huge{Investment Performance Report}}; \\node[right] at ([xshift=0.90cm, yshift=-1.675cm]rectange.north west) {\\color{white}\\LARGE April 2023}; \\node (subtitle) [minimum width=11cm, anchor=north west, text width=11cm, inner sep=0.0cm, outer sep=0] at ([xshift=1.00cm, yshift=-2.25cm]rectange.north west) {\\color{white}\\normalsize\\bfseries{Best Dynamic PDF Generation} }; \\node (logo) [left] at ([xshift=-0.99cm, yshift=-1.5cm]rectange.north east) {\\advGetImage{key = documentSettings.logo, typeKey=documentSettings.logoType, widthKey = documentSettings.logoWidth}}; \\end{tikzpicture}", "centerContent": "", "rightContent": "", "adjustMargin": "1cm" }, "footer": { "footerLine": false, "leftContent": "\\begin{tikzpicture} \\node (rectange) [rectangle, shading = axis, shading angle=135, left color=Primary, right color=Secondary, anchor=south west, inner sep=0,outer sep =0, fill = Primary, minimum width = 21cm, minimum height = 1.0cm] at ([xshift=0.0cm, yshift=0cm]current page.south west) {}; \\node[right] at ([xshift=0.90cm, yshift=0.5cm]rectange.south west) {\\bfseries\\color{white}\\tiny{Legal notice goes here and other fun things}}; \\end{tikzpicture}", "centerContent": "", "rightContent": "", "adjustMargin": "1cm" }, "latexPreamble": "\\definecolor{Blue}{HTML}{00FFFF}" }, "documentContent": { "firstPageLeftColumn": [ { "type": "latex", "content": "\\setlength{\\tabcolsep}{0pt} \\renewcommand{\\arraystretch}{1.5} \\begin{tcolorbox}[colback=White,colframe=Secondary,width=6cm] \\color{TextColour}", "order": 1 }, { "type": "section", "content": "Summary", "order": 2 }, { "type": "kable", "content": "kable(data.frame(lapply(params$documentContent$infoTable,latexifyWithCommands)), escape = FALSE, format = 'latex', format.args = list(scientific = FALSE, big.mark = ' '), col.names = NULL, align = c('L{2.0cm}','R{2.85cm}'),booktabs = T,bottomrule = '',toprule = '',midrule = '',linesep = '')", "order": 3 }, { "type": "latex", "content": "\\end{tcolorbox}", "order": 4 } ], "firstPageRightColumn": [ { "type": "latex", "content": "\\medskip", "order": 1 }, { "type": "section", "content": "Description", "order": 1 }, { "type": "latex", "content": "\\medskip", "order": 2 }, { "type": "paragraph", "content": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.", "order": 3 }, { "type": "section", "content": "Cumulative Wealth Chart", "order": 4 }, { "type": "chart", "content": "ggplot(data=params$documentContent$performanceGraph)+geom_line(aes(x=as.Date(Date), y=CumulativeBenchmarkReturn, color =' Benchmark ' ), linetype='solid', size=1)+geom_line(aes(x=as.Date(Date), y=CumulativeFundReturn, color =' Fund '), linetype='solid', size=1)+scale_colour_manual(breaks = c(' Fund ',' Benchmark '), values=c('#343D49','#0dbb72')) +theme_economist()+theme(panel.background = element_rect(fill = '#FFFFFF', colour = '#FFFFFF'),plot.background = element_rect(fill = '#FFFFFF', colour = '#FFFFFF'),axis.title.x=element_blank()) +theme(panel.grid.major = element_line(colour = '#A7A8AA', size=0.5))+theme(panel.grid.minor = element_blank())+theme(axis.line = element_line(colour = '#A7A8AA', size = 0.5)) +theme(axis.text = element_text(size = 12, colour = '#28334A'))+theme(axis.text.x = element_text(angle = 90, vjust = 0.5)) +theme(axis.ticks.x = element_line(colour = '#A7A8AA', size = 0.5))+theme(legend.position='bottom', legend.title=element_blank(),legend.background=element_rect(fill = '#FFFFFF', colour = '#FFFFFF'))+ theme(legend.text=element_text(size=16,color='#58595b'))+theme(legend.key = element_rect(fill = 'white'))+theme(axis.title.y=element_text(colour = '#28334A',size=12,margin=unit(c(0,0.2,0,0.2),units='cm'))) +theme(axis.title.y = element_blank()) +theme(legend.spacing=unit(0.1, units = 'cm'),legend.margin=margin(t = 0.1, unit='cm')) +scale_x_date(breaks = seq(as.Date('2004-06-30'), as.Date('2050-06-30'), by='6 months'), labels=date_format('%b-%Y'), expand = c(0.1, 0.1))+scale_y_continuous(breaks = pretty(c(params$documentContent$performanceGraph$CumulativeFundReturn,params$documentContent$performanceGraph$CumulativeBenchmarkReturn),n=8),labels=dollar_format(prefix='',big.mark = ' '))", "order": 5, "height": 3.5, "width": 10 }, { "type": "latex", "content": "\\renewcommand{\\arraystretch}{1.25} \\setlength{\\columnsep}{0.5cm} \\begin{multicols}{2} \\small", "order": 6 }, { "type": "section", "content": "Performance Table", "order": 6.5 }, { "type": "kable", "content": "kable(params$documentContent$performanceTable, escape = FALSE, format = 'latex', format.args = list(scientific = FALSE, big.mark = ''), col.names = c('','Fund', 'Benchmark'), align = c('L{1.4cm}','C{1.25cm}','R{1.75cm}'),booktabs = T,bottomrule = '',toprule = '',midrule = '')%>%row_spec(0, bold = T, color = 'white', background = 'Secondary')%>%row_spec(seq(from = 1, to = nrow(params$documentContent$performanceTable), by=2), background = 'gray!6')", "order": 7 }, { "type": "latex", "content": "\\columnbreak \\noindent", "order": 7.5 }, { "type": "section", "content": "Risk Table", "order": 8 }, { "type": "kable", "content": "kable(params$documentContent$riskTable, escape = FALSE, format = 'latex', format.args = list(scientific = FALSE, big.mark = ''), col.names = c('','Fund'), align = c('L{3.0cm}','R{1.75cm}'),booktabs = T,bottomrule = '',toprule = '',midrule = '')%>%row_spec(0, bold = T, color = 'white', background = 'Secondary')%>%row_spec(seq(from = 1, to = nrow(params$documentContent$riskTable), by=2), background = 'gray!6')", "order": 8.5 }, { "type": "latex", "content": "\\end{multicols}", "order": 9 }, { "type": "section", "content": "Asset Allocation", "order": 10 }, { "type": "chart", "content": "ggplot(params$documentContent$assetAllocationChart,aes(x = factor(Name, levels = params$documentContent$assetAllocationChart$Name), y = Weight))+geom_bar(stat='identity', position=position_dodge(width=1), width = 0.75, fill = '#0dbb72')+geom_label(aes(label = Label), fill = 'white', colour = 'black', position= position_dodge(width=1), size = 5) +theme_economist()+scale_colour_economist()+theme(legend.position='bottom')+theme(legend.position='bottom', legend.direction = 'horizontal', legend.title=element_blank(),legend.background=element_rect(fill = '#FFFFFF', colour = '#FFFFFF'),legend.box.background=element_rect(fill = '#FFFFFF', colour = '#FFFFFF'),legend.key=element_rect(fill = '#FFFFFF', colour = '#FFFFFF'))+theme(legend.text=element_text(size=12,color='#2D2323',face='plain'))+guides(fill = guide_legend(nrow = 1))+theme(panel.background = element_rect(fill = '#FFFFFF', colour = '#FFFFFF'),plot.background = element_rect(fill = '#FFFFFF', colour = '#FFFFFF')) +theme(panel.grid.major = element_line(colour = 'lightgrey', size=0.5))+theme(panel.grid.minor = element_blank())+theme(axis.title.x=element_blank()) +theme(axis.title.y=element_text(colour = '#2D2323',size=12,margin=unit(c(0.0,0.25,0.0,0.25),units='cm'))) +theme(legend.spacing.x = unit(0.1, 'cm'))+theme(axis.text = element_text(size=12,color='#2D2323', face='plain'))+theme(axis.title = element_text(size=12,color='#2D2323', face='plain'))+scale_y_continuous(breaks = pretty(c(params$documentContent$assetAllocationChart$Weight),n=6),labels=percent_format(accuracy = 0.1))+labs(y='Weight')+coord_cartesian(clip = 'off')", "order": 10.5, "height": 3.5, "width": 10 }, { "type": "section", "content": "Top Holdings", "order": 11 }, { "type": "latex", "content": "\\small", "order": 11.5 }, { "type": "kable", "content": "kable(params$documentContent$holdingsTable, escape = FALSE, format = 'latex', format.args = list(scientific = FALSE, big.mark = ''), col.names = c('Name','Type','Weight'), align = c('L{4.0cm}','C{4.0cm}','R{2.55cm}'),booktabs = T,bottomrule = '',toprule = '',midrule = '')%>%row_spec(0, bold = T, color = 'white', background = 'Secondary')%>%row_spec(seq(from = 1, to = nrow(params$documentContent$holdings), by=2), background = 'gray!6')", "order": 12 } ], "performanceGraph": [ { "Date": "2017-11-30", "Benchmark": -0.97267, "Fund": -0.63828, "CumulativeFundReturn": 100, "CumulativeBenchmarkReturn": 100 }, { "Date": "2017-12-31", "Benchmark": 5.65561, "Fund": 5.48700, "CumulativeFundReturn": 111.874435153, "CumulativeBenchmarkReturn": 109.896525389 }, { "Date": "2018-01-31", "Benchmark": 1.85912, "Fund": 1.93257, "CumulativeFundReturn": 114.036486924, "CumulativeBenchmarkReturn": 111.939633672 }, { "Date": "2018-02-28", "Benchmark": 3.93107, "Fund": 4.04714, "CumulativeFundReturn": 118.651703201, "CumulativeBenchmarkReturn": 116.340059029 }, { "Date": "2018-03-31", "Benchmark": 2.07089, "Fund": 2.27211, "CumulativeFundReturn": 121.347600415, "CumulativeBenchmarkReturn": 118.749333677 }, { "Date": "2018-04-30", "Benchmark": -0.70247, "Fund": -0.63793, "CumulativeFundReturn": 120.573487668, "CumulativeBenchmarkReturn": 117.915155233 }, { "Date": "2018-05-31", "Benchmark": -1.95493, "Fund": -2.07087, "CumulativeFundReturn": 118.076567484, "CumulativeBenchmarkReturn": 115.609996489 }, { "Date": "2018-06-30", "Benchmark": -1.16986, "Fund": -0.99037, "CumulativeFundReturn": 116.907172583, "CumulativeBenchmarkReturn": 114.257521384 }, { "Date": "2018-07-31", "Benchmark": 2.41846, "Fund": 2.50782, "CumulativeFundReturn": 119.838994038, "CumulativeBenchmarkReturn": 117.020793836 }, { "Date": "2018-08-31", "Benchmark": -1.86541, "Fund": -1.97324, "CumulativeFundReturn": 117.474283072, "CumulativeBenchmarkReturn": 114.837876246 }, { "Date": "2018-09-30", "Benchmark": 0.29964, "Fund": 0.24257, "CumulativeFundReturn": 117.759240440, "CumulativeBenchmarkReturn": 115.181976458 }, { "Date": "2018-10-31", "Benchmark": -1.70793, "Fund": -1.67568, "CumulativeFundReturn": 115.785972400, "CumulativeBenchmarkReturn": 113.214748927 }, { "Date": "2018-11-30", "Benchmark": 3.86599, "Fund": 3.71250, "CumulativeFundReturn": 120.084526625, "CumulativeBenchmarkReturn": 117.591619799 }, { "Date": "2018-12-31", "Benchmark": 0.63850, "Fund": 0.79004, "CumulativeFundReturn": 121.033242419, "CumulativeBenchmarkReturn": 118.342442291 }, { "Date": "2019-01-31", "Benchmark": 2.90183, "Fund": 3.10592, "CumulativeFundReturn": 124.792438102, "CumulativeBenchmarkReturn": 121.776538784 }, { "Date": "2019-02-28", "Benchmark": -0.44066, "Fund": -0.44422, "CumulativeFundReturn": 124.238085133, "CumulativeBenchmarkReturn": 121.239918288 }, { "Date": "2019-03-31", "Benchmark": 1.33168, "Fund": 1.43188, "CumulativeFundReturn": 126.017025426, "CumulativeBenchmarkReturn": 122.854446032 }, { "Date": "2019-04-30", "Benchmark": 0.74959, "Fund": 0.70414, "CumulativeFundReturn": 126.904361709, "CumulativeBenchmarkReturn": 123.775350674 }, { "Date": "2019-05-31", "Benchmark": 0.63846, "Fund": 0.65404, "CumulativeFundReturn": 127.734366996, "CumulativeBenchmarkReturn": 124.565606778 }, { "Date": "2019-06-30", "Benchmark": 2.27430, "Fund": 2.21016, "CumulativeFundReturn": 130.557500882, "CumulativeBenchmarkReturn": 127.398602373 }, { "Date": "2019-07-31", "Benchmark": -0.74383, "Fund": -0.72763, "CumulativeFundReturn": 129.607525338, "CumulativeBenchmarkReturn": 126.450973349 }, { "Date": "2019-08-31", "Benchmark": 0.97689, "Fund": 0.99692, "CumulativeFundReturn": 130.899608680, "CumulativeBenchmarkReturn": 127.686260263 }, { "Date": "2019-09-30", "Benchmark": 0.50809, "Fund": 0.61227, "CumulativeFundReturn": 131.701067714, "CumulativeBenchmarkReturn": 128.335021383 }, { "Date": "2019-10-31", "Benchmark": -0.34954, "Fund": -0.23716, "CumulativeFundReturn": 131.388725462, "CumulativeBenchmarkReturn": 127.886439149 }, { "Date": "2019-11-30", "Benchmark": 0.22171, "Fund": 0.36795, "CumulativeFundReturn": 131.872170277, "CumulativeBenchmarkReturn": 128.169976173 }, { "Date": "2019-12-31", "Benchmark": 1.86239, "Fund": 1.98303, "CumulativeFundReturn": 134.487234975, "CumulativeBenchmarkReturn": 130.557000992 }, { "Date": "2020-01-31", "Benchmark": 1.18597, "Fund": 1.08745, "CumulativeFundReturn": 135.949716412, "CumulativeBenchmarkReturn": 132.105367857 }, { "Date": "2020-02-29", "Benchmark": -0.04372, "Fund": 0.04716, "CumulativeFundReturn": 136.013830298, "CumulativeBenchmarkReturn": 132.047611390 }, { "Date": "2020-03-31", "Benchmark": -9.74728, "Fund": -9.01032, "CumulativeFundReturn": 123.758548944, "CumulativeBenchmarkReturn": 119.176560975 }, { "Date": "2020-04-30", "Benchmark": 3.91826, "Fund": 3.73456, "CumulativeFundReturn": 128.380386209, "CumulativeBenchmarkReturn": 123.846208493 }, { "Date": "2020-05-31", "Benchmark": 7.06428, "Fund": 6.83238, "CumulativeFundReturn": 137.151822040, "CumulativeBenchmarkReturn": 132.595051430 }, { "Date": "2020-06-30", "Benchmark": -1.18342, "Fund": -1.06462, "CumulativeFundReturn": 135.691676312, "CumulativeBenchmarkReturn": 131.025895072 }, { "Date": "2020-07-31", "Benchmark": 0.60863, "Fund": 0.49038, "CumulativeFundReturn": 136.357081154, "CumulativeBenchmarkReturn": 131.823357977 }, { "Date": "2020-08-31", "Benchmark": 0.88928, "Fund": 1.07681, "CumulativeFundReturn": 137.825387840, "CumulativeBenchmarkReturn": 132.995636735 }, { "Date": "2020-09-30", "Benchmark": -0.04772, "Fund": 0.08648, "CumulativeFundReturn": 137.944579235, "CumulativeBenchmarkReturn": 132.932171217 }, { "Date": "2020-10-31", "Benchmark": 0.88891, "Fund": 0.80999, "CumulativeFundReturn": 139.061916532, "CumulativeBenchmarkReturn": 134.113818580 }, { "Date": "2020-11-30", "Benchmark": 3.25401, "Fund": 3.72446, "CumulativeFundReturn": 144.241221988, "CumulativeBenchmarkReturn": 138.477895648 }, { "Date": "2020-12-31", "Benchmark": 2.43968, "Fund": 2.56726, "CumulativeFundReturn": 147.944269184, "CumulativeBenchmarkReturn": 141.856313173 }, { "Date": "2021-01-31", "Benchmark": 0.76247, "Fund": 0.91356, "CumulativeFundReturn": 149.295828850, "CumulativeBenchmarkReturn": 142.937925004 }, { "Date": "2021-02-28", "Benchmark": 0.05895, "Fund": 0.49611, "CumulativeFundReturn": 150.036500387, "CumulativeBenchmarkReturn": 143.022186911 }, { "Date": "2021-03-31", "Benchmark": -2.54122, "Fund": -2.85359, "CumulativeFundReturn": 145.755073816, "CumulativeBenchmarkReturn": 139.387678493 }, { "Date": "2021-04-30", "Benchmark": 1.89623, "Fund": 1.88968, "CumulativeFundReturn": 148.509378295, "CumulativeBenchmarkReturn": 142.030789469 }, { "Date": "2021-05-31", "Benchmark": 3.73286, "Fund": 3.95766, "CumulativeFundReturn": 154.386874556, "CumulativeBenchmarkReturn": 147.332599997 }, { "Date": "2021-06-30", "Benchmark": 1.09316, "Fund": 0.92910, "CumulativeFundReturn": 155.821283007, "CumulativeBenchmarkReturn": 148.943181047 }, { "Date": "2021-07-31", "Benchmark": 0.82569, "Fund": 0.80770, "CumulativeFundReturn": 157.079851510, "CumulativeBenchmarkReturn": 150.172989999 }, { "Date": "2021-08-31", "Benchmark": 1.70121, "Fund": 1.87359, "CumulativeFundReturn": 160.022883900, "CumulativeBenchmarkReturn": 152.727747922 }, { "Date": "2021-09-30", "Benchmark": -2.11882, "Fund": -2.25441, "CumulativeFundReturn": 156.415312003, "CumulativeBenchmarkReturn": 149.491721853 }, { "Date": "2021-10-31", "Benchmark": -0.48298, "Fund": -0.24249, "CumulativeFundReturn": 156.036020513, "CumulativeBenchmarkReturn": 148.769706735 }, { "Date": "2021-11-30", "Benchmark": 0.65862, "Fund": 0.65640, "CumulativeFundReturn": 157.060240952, "CumulativeBenchmarkReturn": 149.749533777 }, { "Date": "2021-12-31", "Benchmark": 2.68809, "Fund": 2.89675, "CumulativeFundReturn": 161.609883482, "CumulativeBenchmarkReturn": 153.774936020 } ], "performanceTable": [ { "Description": "3 Month", "Fund": -0.97267, "Benchmark": -0.63828 }, { "Description": "6 Month", "Fund": -0.97267, "Benchmark": -0.63828 }, { "Description": "1 Year", "Fund": -0.97267, "Benchmark": -0.63828 }, { "Description": "5 Years", "Fund": -0.97267, "Benchmark": -0.63828 }, { "Description": "10 Years", "Fund": -0.97267, "Benchmark": -0.63828 } ], "holdingsTable": [ { "Name": "Naspers", "Type": "Technology", "Weight": "10.35" }, { "Name": "Firstrand Ltd", "Type": "Financials", "Weight": "5.08" }, { "Name": "Anglo American Plc", "Type": "Basic Materials", "Weight": "4.33" }, { "Name": "Mtn Group Ltd", "Type": "Telecommunications", "Weight": "3.87" }, { "Name": "Standard Bank Group Ltd", "Type": "Financials", "Weight": "3.66" }, { "Name": "\\textbf{Total}", "Type": "", "Weight": "\\textbf{28.15}" } ], "assetAllocationChart": [ { "Name": "Local Equity", "Weight": 0.4525, "Label": "45.25%" }, { "Name": "Foreign Equity", "Weight": 0.1941, "Label": "29.41%" }, { "Name": "Local Bonds", "Weight": 0.3382, "Label": "33.82%" }, { "Name": "Foreign Bonds", "Weight": 0.1027, "Label": "10.27%" }, { "Name": "Cash", "Weight": 0.0125, "Label": "1.25%" } ], "riskTable": [ { "Description": "Ann. Risk", "Fund": -0.97267 }, { "Description": "Max. Drawdown", "Fund": -0.97267 }, { "Description": "Highest Monthly Return", "Fund": -0.97267 }, { "Description": "Lowest Monthly Return", "Fund": -0.97267 }, { "Description": "Sharpe Ratio", "Fund": -0.97267 } ], "infoTable": [ { "Column1": "\\textbf{Company}", "Column2": "XX Technologies Private Limited" }, { "Column1": "\\textbf{Sponsor}", "Column2": "YYY" }, { "Column1": "\\textbf{Key Persons}", "Column2": "John Smith \\newline Jan Van Der Merwe" }, { "Column1": "\\textbf{Existing Shareholders}", "Column2": "ZZZ" }, { "Column1": "\\textbf{Investor}", "Column2": "Mr Smith" }, { "Column1": "\\textbf{Type of Security}", "Column2": "Ordinary Bonds" }, { "Column1": "\\textbf{Pre-money Valuation}", "Column2": "$ 1 000 000" }, { "Column1": "\\textbf{Amount of Financing}", "Column2": "$ 500 000" }, { "Column1": "\\textbf{Investment conditions}", "Column2": "Condition 1 \\newline Condition 2 \\newline Condition 3" }, { "Column1": "\\textbf{Capitalization}", "Column2": "The pre-financing and post-financing capital structure will be as set forth in the table." }, { "Column1": "\\textbf{Closing Date}", "Column2": "1st December 2023" }, { "Column1": "\\textbf{Board of Directors}", "Column2": "Paul Smith \\newline Greg Smith" }, { "Column1": "\\textbf{Dividends}", "Column2": "The holders of the Preference shares, shall be entitled to receive non-cumulative dividends in preference to holders of Equity Shares at the rate of 1%." }, { "Column1": "\\textbf{Exit Rights}", "Column2": "The Company shall make best efforts to provide the Investor an exit within 60 months." }, { "Column1": "\\textbf{Due Diligence}", "Column2": "Yes" } ] } }

documentSettings - A JSON object which contains the settings of the template (primaryHEXColour, secondaryHEXColour, textHEXColour, font, documentName, logo, logoType, logoWidth, margins, headSep, footSkip, showframe, header, footer).

font - An optional string which contains the font of the document. Possible options are: 'helvetica', 'avant garde', 'sans serif', 'charter', 'open sans', 'bera', 'venturis', 'raleway', 'overlock', 'roboto', 'spectral', 'clear sans', 'noto sans', 'noto mono', 'josefin', 'bera sans', 'latin modern', 'theano modern', 'droid sans', 'fira sans', 'XCharter', 'bookman', 'gyre bonum', 'gyre schola', 'gyre termes'.

fontSize - An optional integer which contains the font size of the document. Possible options are: 8, 9, 10, 11, 12, 14.

primaryHEXColour - An optional string which contains the primary font colour of the document.

secondaryHEXColour - An optional string which contains the secondary font colour of the document.

textHEXColour - An optional string which contains the text font colour of the document.

documentName - An optional string for the name of the document.

logo - An optional string which contains base64 encoded jpg or png image of your logo.

logoType - An optional string which contains the type of logo image. Possible options are: 'jpg' or 'png'.

logoWidth - An optional string which contains the width of the logo (in cm).

topMargin - An optional string containing the top margin size (in cm).

rightMargin - An optional string containing the right margin size (in cm).

bottomMargin - An optional string containing the bottom margin size (in cm).

leftMargin - An optional string containing the left margin size (in cm).

headheight - An optional string relating to the height of the header (in cm). See LaTeX geometry package documentation for more information on this parameter.

headSep - An optional string relating to the space between the header and the beginning of the document (in cm). See LaTeX geometry package documentation for more information on this parameter.

footSkip - An optional string relating to the space between the end of the document and the footer (in cm). See LaTeX geometry package documentation for more information on this parameter.

marginparwidth - An optional string relating to the space for the right column on the first page (in cm). See LaTeX geometry package documentation for more information on this parameter.

marginparsep - An optional string relating to the space between the left and right columns on the first page (in cm). See LaTeX geometry package documentation for more information on this parameter.

includehead - A boolean expression which determines whether the header is part of the top margin (false) or below it (true).

includehead - A boolean expression which determines whether the footer is part of the bottom margin (false) or below it (true).

showFrame - A boolean expression (true/false) to show the frame of the document.

header - An object containing settings to control the header.

headerLine - A boolean expression that generates a horizontal line between the header and the beginning of the document.

leftContent - The content that appears on the left-hand side of the header. Can contain LaTeX commands, text or simply 'logo'.

centreContent - The content that appears in the centre of the header. Can contain LaTeX commands, text or simply 'logo'.

rightContent - The content that appears of the right-hand side of the header. Can contain LaTeX commands, text or simply 'logo'.

adjustMargin - An optional string containing whether the header margin needs to be adjusted sideways (in cm).

footer - An object containing settings to control the footer.

footerLine - A boolean expression that generates a horizontal line between the footer and the end of the document.

leftContent - The content that appears on the left-hand side of the footer. Can contain LaTeX commands, text or simply 'logo'.

centreContent - The content that appears in the centre of the footer. Can contain LaTeX commands, text or simply 'logo'.

rightContent - The content that appears of the right-hand side of the footer. Can contain LaTeX commands, text or simply 'logo'.

adjustMargin - An optional string containing whether the header margin needs to be adjusted sideways (in cm).

latexPreamble - Contains custom LaTeX commands which will be inserted before '\begin{document}'.

documentContent - A JSON object which contains the content of the template (firstPageLeftColumn, firstPageRightColumn and other data for charts and tables).

secondColumnData - A required object which contains the data for the right column on the first page.

firstPageLeftColumn - An optional array of JSON objects which contains the left column of the first page of the document.

type - A required string which contains the type of text for the body of the document. Possible options are: 'heading', 'section', 'subsection', 'paragraph', 'newpage', 'enumerate', 'itemize', 'table'.

content - A required string or array of strings which contains the text for the body of the document. Can contain LaTeX commands. Note that in an event of a table, this contains the key-name for the table.

order - A required number which determines the order of the text.

height - An optional parameter controling the height of the chart.

width - An optional parameter controling the width of the chart.

firstPageRightColumn - An optional array of JSON objects which contains the right column of the first page of the document.

type - A required string which contains the type of text for the body of the document. Possible options are: 'heading', 'section', 'subsection', 'paragraph', 'newpage', 'enumerate', 'itemize', 'table'.

content - A required string or array of strings which contains the text for the body of the document. Can contain LaTeX commands. Note that in an event of a table, this contains the key-name for the table.

order - A required number which determines the order of the text.

height - An optional parameter controling the height of the chart.

width - An optional parameter controling the width of the chart.