Build history
🏗️

Build history

Version 2.7.0

Build 254

ShowSecurityID deprecated, SecurityIdentifier added with valid values NAME, ID, NAME_ID

Build 253

Convexity for perturbational securities now displayed if C is supplied

Build 252

Corrected issue with annualised performance contribution

Build 251

Decision-based attribution functionality added

Version 2.6.1

Build 248, 249, 250

Internal refactor

Build 247

5, 30 year AU bond futures added

More work done on context reports - all Brinson settings (BF/BHB, interaction, FX) confirmed

Fixed bug in context report for AA; added equation showing how AA and SS returns calculated

Build 246

OffBenchmark functionality added for spread return

Spread added to security and portfolio risk reports

Build 245

New switch ResidualIsSpread does what it says. Used for when SpreadAllocationSectors is active and spread data is not available

Build 244

EE and MV were shown the wrong way round in interactive reports, corrected

Build 243

More diagnostic info supplied in routine VerifySecurityDefined, including date when a subportfolio has missing data

ValidateYTM bypassed if ImpliedAnalytics is off

Build 242

For sectors or securities with leverage, local and base returns now correct

Build 241

P and B always shown even when Brinson active, unless ShowActiveOnly is on; sector classifications with empty value now ignored, instead of setting up an empty sector

Build 240

Bug involving unallocated sectors fixed - if a sector is not set up, its value is set to the unclassified label

Bug in ranked reports fixed - active data in wrong place when Brinson attribution active

Build 239

Bug fixed in SummaryAttributionReport: when ShowRiskType is on, active residual was zero in all cases

Build 237, 238

Internal refactor

Build 236

Active weight, return, contribution added to ranked reports

Build 235

Log report restructured: error, warning, advice categories added

Build 234

Adjusted local and base returns on interactive report to be consistent with contributions in all circumstances

Build 233

New switch ImpliedAnalytics, UnclassifiedLabel added

Build 232

Reduction of duplicate error messages

Bank bill futures pricing function FT_BILL_FUTURE added

Build 231

Minor reformats of context reports

Build 230

Custom names can be assigned to stand-alone reports

Version 2.6.0

Build 229

Check on zero holdings in ranked reports amended

Build 228

Fix for multiple single-portfolio ranked reports; SingleDrilldownReport has p_sorted_security_weights etc cleared

Build 227

New checks for coupon frequency between 0 and 12, not negative

Build 226

New boolean switch Unfold added - if true, interactive reports are unfolded by default. Applies to columns as well as rows

Ranked report tabs and file names changed to portfolio_name, report name, interval, TOP_BOTTOM, rank_count, type with type left blank for context report

Build 223, 224, 225

Corrected case when only securities shown in ranked report, an empty gap was left in each report

Build 222

Names of indices in index file, and names refernced in risk functions, are converted to upper-case internally

Build 221

ShowSecurityID now display security code in brackets after security name instead of replacing it

Version 2.5.2

Build 220

Context reporting and ranked contributions, holdings reporting added

ShowActiveOnly with no benchmark data downgraded to warning, turns ShowActiveOnly off

Build 219

Bug fixed in PriceReturn when custom residual buckets set up in security master file

FX explicitly disallowed as residual sector

Boolean add_spreads switch added, default spread label changed to Spread from OAS

Build 218

Boolean switches LookThrough, RootLevelOnly removed from code

Build 217

Code updated to calculate net MV, EE, EE_W for nested portfolios correctly

FilterPortfolio and FilterBenchmark switches added for ESG attribution

Paydown return calculation amended, check that PSA < 1666

Build 216

If one or more non-alphanumeric characters present in portfolio names, each is converted to ‘_’ rather than FIA generating error message

Build 215

Risk function Inflation now shown as Inflation on reports

Build 214

New risk function Inflation3m added

Build 213

Internal improvements to error handling will now provide impoved diagnostics when running via the Web API

Build 212

BlankZeros functionality rewritten after clarification from users

Build 211

New setting BlankZeros added: if true, zero values in CSV and XLSX reports are shown as blanks

Build 210

Input data files with type CSV are assumed to be comma-delimited. Input data files with type TXT are assumed to be tab-delimited. TXT files can be used when, for instance, security names include commas.

If ShowActiveOnly is on, a benchmark must be present or FIA will halt.

Build 209

All labels on summary report are now user-configurable

Test added for duplicate supplied tab names in Excel report

Wrong sort order for maturity and duration buckets in interactive report when securities are not shown was fixed

Interactive reports now have alternating white and grey column backgrounds

All tabs in Excel reports can have their names supplied by user

Maximum file upload size in API increased to 1GB

Build 208

Undefined securities only flagged once

Security IDs can now include punctuation characters

Build 207

Bug fix: Overflow appeared in credit return labels when SpreadAttribution was false, corrected

Build 206

Internal refactoring

Build 205

MV and EE formats changed to dollars in interactive reports

Build 204

Internal refactoring and speed increase

Build 203

Internal refactoring and speed increase

Build 202 (3rd April 2023)

Identical results generated when BrinsonAllocationSectors=NONE and when BrinsonAllocationSectors not set. New internal tests added for consistency of absolute and relative performance data on reports.

Build 201 (28th March 2023)

In some circumstances Excel will leave orphan records when summarising from top. TotalsAtTop now defaults to False and is deprecated for future use,

Build 200 (14th March 2023)

LOCAL_ME deprecated as not needed, identical to local active contribution

Build 198-199

Internal development builds, new regression testing suite put in place

Version 2.4.6

Build 197

Program aborts cleanly if bad data found on end date; start and end dates on summary and interactive report now match StartDate and EndDate in configuration file

Build 188-196

Internal development builds, extensive refactoring of interactive reporting routines to allow generation of JSON reports.

Build 187 (11th January 2023)

SORT option added to interactive reports, allowing security-level data to be sorted by weight, base and local return, and base and local contribution. Sort order can be applied to portfolio, benchmark and active values if applicable. The SortDescending boolean switch controls whether values are ascending or descending.

ME_LOCAL_C and ME_BASE_C colums added to interactive report to display local and base management contributions.

Version 2.4.5

Build 186 (7th January 2023)

Some warning messages that were being directed to console now written to log file.

If bad data provided at some date in the run (eg portfolio return < -1), program now generates reports from first good date after that date, and the issue is recorded in the log file.

In some cases, running Brinson attribution when annualisation was active generated incorrect results - fixed.

When annualisation run, results calculated over full period rather than period held.

Build 185 (22nd December 2022)

New boolean switch ShowActiveOnly added: when portfolio and benchmark provided, only active data is shown on reports

Build 184 (16th December 2022)

Bug in CalculateYieldCurveEffects fixed: in some circumstances. when combination of yc-sensitive and non yc-sensitive securities present, carry return wrongly assigned to duration return

In security attribution report, interval over which security is held is used when calculating annualised return

Build 183 (8th December 2022)

Aggregate return error (portfolio return < -1) downgraded to warning in all cases at client request

Security attribution and unit price report annualisation corrected

Build 182 (7th December 2022)

Corrected issue in which reports could show inconsistent totals when a sector’s weight was exactly zero with non-zero return and Brinson allocation in use

Build 181 (6th December 2022)

Internal release

Build 180 (26th November 2022)

Aggregate return error (portfolio return < -1) downgraded to warning in some cases

Build 179 (24th November 2022)

BrinsonAllocationSector=SECURITY now treated as special case, consistent with other sector settings

Request for allocation analysis without benchmark present downgraded to warning

Build 178 (23rd November 2022)

Names of allocation sectors updated to reflect documentation

Request for allocation analysis without benchmark present flagged as error

Build 177 (21st November 2022)

Corrected issue seen when using OffBenchmarkSector over multiple reporting intervals (MTD, QTD etc). A non-zero benchmark holding over some dates affected results over all intervals, even when there was a zero holding in that interval.

Build 176 (19th November 2022)

Bug fixed when calculating rolldown from first principles

Rolldown assigned its own risk category on summary attribution report

Build 175 (14th November 2022)

Summary attribution report now groups return types together

Security attribution returns and summary unit price reports can be annualised

Build 174 (7th November 2022)

Reports over given date intervals and over selected intervals (eg, MTD) now work correctly when Carino smooth is active and Brinson attribution is in use

Build 173 (30th October 2022)

QuantLib bond pricing routines integrated with OpenPricing API as a proof of concept. QuantLib code is about 10 times slower than FIA’s custom routines, so not included in production

Build 172 (21st October 2022)

Compiled with source code for LibXL to fix authorisation isssue when called in virtual Linux enviroments

Build 171 (10th October 2022)

Issue with calling order of OffBenchmark and OffBenchmarkSector corrected

Build 170 (2nd October 2022)

Internal release

Build 169 (26th September 2022)

New AnnualisedReturn switch added, making annualised returns available on reports where relevant.

Build 168 (20th September 2022)

Internal release

Build 167 (12th September 2022)

Internal numerical limits changed to handle cases where asset allocation is very small (<10^-9) and return is very large. Previously, this could lead to inconsistent active base returns and attribution contributions.

API function FIA_get_version() now works correctly

Build 166 (8th September 2022)

New unit tests added to test file headers in supplied data.

New unit test added for verification that portfolio and benchmark names are different.

Build 165 (5th September 2022)

Internal bug fixed when geometric smoothing active, benchmark returns zero.

Total return for base returns on interactive report corrected to show absolute values.

Version 2.4.4

Build 164 (10th July 2022)

LibXL build upgraded to v4.0.4, statically linked to Linux distribution

Logging code updated in Windows

Build 163 (15th June 2022)

File encryption for Web API added

JSON reporting added

Build 162 (1st June 2022)

OffBenchmarkSector functionality added

Build 161 (23rd May 2022)

Unit price reports added

Total curve changes added to yield curve reports

Build 160 (13th May 2022)

Corrected bug in yield curve report for date, risk sheet

Simplified spread attribution in place, replacing OAS and Z-spread attribution

If a security has no maturity date defined, this quantity is shown as blank on security risk and attribution reports, rather than 1-Jan-2000

If CarryAllocationSectors or ResidualAllocationSectors active, names of these effects now reflects any changes made to the base variable name (eg ‘Residual’ changed to ‘Credit’)

UseCashOffset switch removed

Pricing return amended to give correct return when no position present in portfolio or benchmark files

New logging functionality applied to API client code