Friday, March 12, 2010
You are here:  Blog
 
Search Blogs Minimize
FinFolio Blogs Minimize
Blog_Archive Minimize
FinFolio Blog
Nov 20

Written by: Matt Abar
11/20/2009 9:43 AM

Callouts are large text areas where you can use variables and conditional criteria to write messages to clients. You can talk about specific performance numbers, call your clients by name, or remind them which model you selected. Conditional text can say different things for different clients, based on the model they own, the account market value, or anything else. Think of it as a super mail merge.

It's a subtle thing, but these descriptive text blocks tie everything together to give your reports a professionally-designed feel. We've added callout sections to the table of contents and several other summary reports. You can put a personal touch on your data presentations and explain the numbers in plain English, taking information normally included in a cover letter, and spreading it throughout the client report, explaining things in the proper context.

You can do text substitution in any field that displays text. Simply start your text with an equals sign, then enclose anything after the equals sign in quotes (like Excel). Break your quotes to add calculations and other text variables. It's easy to learn, and once you get the hang of it, there's no limit to the complexity of the text substitution.

Here are some examples of what string substitution can do--I've purposely listed some complicated substitutions, in progressive order of complexity:

 

Text:   This is my text.
Result: This is my text.

Text:   ="This is my text."
Result: This is my text.

Text:   ="This is " + "my text."
Result: This is my text.

Text:   ="This is my text.".ToUpper()
Result: THIS IS MY TEXT.

Text:   =(100+20)/10
Result: 12

Text:   ="For the account " + folio.DisplayName
Result: For the account John Smith, IRA

Text:   ="For the period starting " + start.ToShortDateString() + " and ending " + end.ToShortDateString()
Result: For the period starting 1/1/2008 and ending 12/31/2008

Text:   ="For the period starting " + start.ToLongDateString() + " and ending " + end.ToLongDateString()
Result: For the period starting Tuesday, January 01, 2008 and ending Wednesday, December 31, 2008

Text:   ="Your market value is " + data.MarketValue(end)
Result: Your market value is $14,810.68

Text:   ="Your performance was " + data.Return(ReturnType.DollarWeighted, start, end)
Result: Your performance was 20.00 %

Text:   ="Your basis is " + data.Basis(end)
Result: Your basis is $12,342.23

Text:   ="Your target model is " + folio.Model.DisplayName
Result: Your target model is Long Term Aggressive

Text:   ="Your fee schedule is " + folio.FeeSchedule.DisplayName
Result: Your fee schedule is Standard 1.25%

Text:   ="Your performance was " + iif(data.Return(ReturnType.DollarWeighted, start, end) > .1, "good", "bad") + "!"
Result: Your performance was good!

Text:   =iif(folio.DisplayName == "John Smith, IRA", "Custom message for John Smith", iif(folio.DisplayName == "Baker Individual", "Custom message for Pete Baker", "Standard message"))
Result: Custom message for John Smith

We experimented with different ways to do callouts and settled on C# as the template for the text substitution. The syntax is different, but no more complicated than Excel's macro language. We mitigate the complexity by making the snippet editor* aware of the most common fields that can be inserted so you always know what's available.

When you insert variables, you start with one of three objects:

  • data - Gives you access to all FinFolio calculations like Market Value, Return and Basis.
  • report - Gives you access to properties on the report like Title, Start Date and End Date.
  • folio - Gives you access to the current folio on which you are reporting with fields like Display Name, Sort Name and Model.

Once you type one of the three "starting" objects, the editor displays all the fields you can access on the object. And some objects have other objects beneath them.

*Note to our beta users: The snippet editor shown above didn't make the cut for Beta 2, but you'll see it in the final release. Text substitution still works, it's just the friendly editor that didn't make it.

We used the text substitution functionality to create a cover letter report that lets you write a custom introduction to each client. (Don't worry, you can also include Word documents too.) The text substitution can also be used in the report title, footer fields, column names, and any other place you can display text.

Tags:
Privacy Statement | Terms Of Use