# Daily investment performance

Provides a daily investment performance which consists of the total return (capital growth and income) for all investments.

Endpoint: GET /f/{businessCode}/{fundCode}/report-data/investment-reports/daily-investment-performance
Version: 1.0
Security: Class_oAuth

## Security:

  - `Class_oAuth` (unknown)
    oauth2 scopes: fund.read

## Path parameters:

  - `businessCode` (string, required)
    Class business code

  - `fundCode` (string, required)
    Class entity code

## Query parameters:

  - `startDate` (string, required)
    The start date for the report period.

  - `endDate` (string, required)
    The end date for the report period.

  - `groupBy` (string, required)
    The grouping method to use on the investment accounts.

  - `benchmarkId` (string)
    benchmarkId

  - `useCachedData` (boolean, required)
    Specifies whether to use cached data for the report.

## Response 200:

  - `200` (unknown)
    Success (Ok)

## Response 200 fields (application/json):

  - `Data` (object, required)
    Portfolio performance information for a fund.

  - `Data.FundCode` (string)
    Fund identifier.
    Example: s7-master-example

  - `Data.FundName` (string)
    Fund display name.
    Example: Master Example Super Fund

  - `Data.AtDate` (string)
    Date at which portfolio performance is reported.
    Example: 2025-06-30

  - `Data.PortfolioDetailList` (array)
    Portfolio performance details for the fund.

  - `Data.PortfolioDetailList.Portfolio` (object)
    Portfolio metadata and holdings.

  - `Data.PortfolioDetailList.Portfolio.Key` (string)
    Unique portfolio key.
    Example: PF-001

  - `Data.PortfolioDetailList.Portfolio.Name` (string)
    Portfolio display name.
    Example: Balanced Growth

  - `Data.PortfolioDetailList.Portfolio.SortingValue` (string)
    Value used for sorting portfolios.
    Example: 001

  - `Data.PortfolioDetailList.Portfolio.HoldingAccounts` (array)
    Holdings included in the portfolio.

  - `Data.PortfolioDetailList.Portfolio.HoldingAccounts.Id` (string)
    Holding identifier.
    Example: f0bea727-0087-42c4-9914-ce43489f16c7

  - `Data.PortfolioDetailList.Portfolio.HoldingAccounts.Code` (string)
    Security Code
    Example: BHP

  - `Data.PortfolioDetailList.Portfolio.HoldingAccounts.ManagedAccountCode` (string)
    Managed account reference.
    Example: MA-001

  - `Data.PortfolioDetailList.Portfolio.HoldingAccounts.Name` (string)
    Holding display name.
    Example: BHP Group Ltd

  - `Data.PortfolioDetailList.Portfolio.HoldingAccounts.MarketAndSecurityInfo` (object)
    Security identifiers for holdings in portfolio context.

  - `Data.PortfolioDetailList.Portfolio.HoldingAccounts.MarketAndSecurityInfo.SecurityCode` (string)
    Security code
    Example: BHP

  - `Data.PortfolioDetailList.Portfolio.HoldingAccounts.MarketAndSecurityInfo.SecurityName` (string)
    Security display name.
    Example: BHP Group Ltd

  - `Data.PortfolioDetailList.Portfolio.HoldingAccounts.MarketAndSecurityInfo.MarketCode` (string)
    Market identifier.
    Example: ASX

  - `Data.PortfolioDetailList.Portfolio.HoldingAccounts.MarketAndSecurityInfo.MarketAcronym` (string)
    Market acronym.
    Example: ASX

  - `Data.PortfolioDetailList.Portfolio.HoldingAccounts.HoldingAccountType` (string)
    Type/category of the holding account.
    Enum: "BankAccount", "ForeignBankAccount", "InvestmentAccount", "PropertyAccount", "CollectibleAccount", "PlatformAccount", "TermDepositAccount"

  - `Data.PortfolioDetailList.Portfolio.HoldingAccounts.IncludeInPerformanceReports` (boolean)
    True to include the holding in performance reports.
    Example: true

  - `Data.PortfolioDetailList.Portfolio.HoldingAccounts.PropertyType` (string)
    Property classification if the holding is a property.
    Enum: "Commercial", "Residential"

  - `Data.PortfolioDetailList.StartDate` (string)
    Start date for the performance dataset.
    Example: 2024-07-01

  - `Data.PortfolioDetailList.EndDate` (string)
    End date for the performance dataset.
    Example: 2025-06-30

  - `Data.PortfolioDetailList.Movements` (array)
    Actual movements recorded.

  - `Data.PortfolioDetailList.Movements.TransactionId` (string)
    Unique identifier of the transaction.
    Example: ed6dd4ef-50e7-47b5-b518-44610fec1877

  - `Data.PortfolioDetailList.Movements.HoldingAccountId` (string)
    Holding account identifier.
    Example: ed6dd4ef-50e7-47b5-b518-44610fec1877

  - `Data.PortfolioDetailList.Movements.EntitlementDate` (string)
    Date on which entitlement is recorded.
    Example: 2025-09-15

  - `Data.PortfolioDetailList.Movements.PaymentDate` (string)
    Date on which payment is made.
    Example: 2025-09-20

  - `Data.PortfolioDetailList.Movements.MovementDate` (string)
    Effective date of the movement.
    Example: 2025-09-15

  - `Data.PortfolioDetailList.Movements.MovementType` (string)
    Type of movement applied to a holding or cost base.
    Enum: "CapitalHoldingTransaction", "CostBaseAdjustmentTransaction", "QuantityAdjustmentTransaction", "IncomeExpenseTransaction"

  - `Data.PortfolioDetailList.Movements.TransactionAmount` (number)
    Amount of the transaction.
    Example: 450.75

  - `Data.PortfolioDetailList.Movements.ProfitOrLoss` (number)
    Realised profit or loss.
    Example: 350

  - `Data.PortfolioDetailList.Movements.QuantityChange` (number)
    Change in units from the movement.
    Example: 250

  - `Data.PortfolioDetailList.Movements.BookCostChange` (number)
    Change in cost base from the movement.
    Example: 6000

  - `Data.PortfolioDetailList.Movements.DepreciatedAmount` (number)
    Depreciation amount if applicable.
    Example: 0

  - `Data.PortfolioDetailList.Movements.ChangeInMarketValue` (number)
    Change in market value caused by the movement.
    Example: 2400

  - `Data.PortfolioDetailList.Movements.FlowAmount` (number)
    Net cash flow associated with the movement.
    Example: 1500

  - `Data.PortfolioDetailList.Movements.IncludeInMarketValuation` (boolean)
    True if the movement is included in valuation.
    Example: true

  - `Data.PortfolioDetailList.Movements.IsFrankingCredit` (boolean)
    True if the movement represents a franking credit.
    Example: false

  - `Data.PortfolioDetailList.Movements.IncomeAccountedDate` (string)
    Date on which the income is accounted.
    Example: 2025-09-21

  - `Data.PortfolioDetailList.ExpectedMovements` (array)
    Expected movements used for forecasting.

  - `Data.PortfolioDetailList.Valuations` (array)
    Daily valuations for holdings.

  - `Data.PortfolioDetailList.Valuations.HoldingAccountId` (string)
    Unique identifier of the holding account.
    Example: e8af114a-a54d-4171-a1cf-60988a6a235d

  - `Data.PortfolioDetailList.Valuations.HoldingAccountCode` (string)
    Internal code of the holding account.
    Example: BFL0019AU

  - `Data.PortfolioDetailList.Valuations.Date` (string)
    Valuation date.
    Example: 2025-11-10

  - `Data.PortfolioDetailList.Valuations.Quantity` (number)
    Units held on the valuation date.
    Example: 10000

  - `Data.PortfolioDetailList.Valuations.QuantityChange` (number)
    Change in units since previous valuation.
    Example: 250

  - `Data.PortfolioDetailList.Valuations.MarketValue` (number)
    Gross market value.
    Example: 123400

  - `Data.PortfolioDetailList.Valuations.MarketValueChange` (number)
    Change in market value since previous valuation.
    Example: 2400

  - `Data.PortfolioDetailList.Valuations.WeightInPortfolio` (number)
    Percentage weight of the holding in the portfolio.
    Example: 2.75

  - `Data.PortfolioDetailList.Valuations.NetMarketValue` (number)
    Market value net of fees and unsettled trades.
    Example: 122900

  - `Data.PortfolioDetailList.Valuations.NetMarketValueChange` (number)
    Change in net market value since previous valuation.
    Example: 2300

  - `Data.PortfolioDetailList.Valuations.PriceDate` (string | null)
    Date of the price used for valuation.
    Example: 2025-11-10

  - `Data.PortfolioDetailList.DailyFlows` (array)
    Daily cash flows and income per holding.

  - `Data.PortfolioDetailList.DailyFlows.HoldingAccountId` (string)
    Holding account identifier.
    Example: e9c64abd-381e-4f85-a109-a6a03dbe3e9e

  - `Data.PortfolioDetailList.DailyFlows.Date` (string)
    Transaction date.
    Example: 2025-11-10

  - `Data.PortfolioDetailList.DailyFlows.Flow` (number)
    Net cash flow amount.
    Example: 1500

  - `Data.PortfolioDetailList.DailyFlows.Income` (number)
    Income amount recorded for the day.
    Example: 45

  - `Data.PortfolioDetailList.DailyFlows.TaxCredits` (number)
    Tax credits recorded for the day.
    Example: 3.5

  - `Data.PortfolioDetailList.DailyFlows.HoldingFlow` (object)
    Daily movement amounts for a holding account.

  - `Data.PortfolioDetailList.DailyFlows.HoldingFlow.FlowAmount` (number, required)
    Net cash flow for the day (positive inflow, negative outflow).
    Example: 1500

  - `Data.PortfolioDetailList.DailyFlows.HoldingFlow.Acquisitions` (number, required)
    Total acquisition amount recorded for the day.
    Example: 1000

  - `Data.PortfolioDetailList.DailyFlows.HoldingFlow.Disposals` (number, required)
    Total disposal amount recorded for the day.
    Example: 500

  - `Data.PortfolioDetailList.DailyFlows.QuantityChange` (number)
    Change in units for the day.
    Example: 250

  - `Data.PortfolioDetailList.Periods` (array)
    Computed performance periods.

  - `Data.PortfolioDetailList.Periods.StartDate` (string)
    Start date of the performance period.
    Example: 2024-07-01

  - `Data.PortfolioDetailList.Periods.EndDate` (string)
    End date of the performance period.
    Example: 2025-06-30

  - `Data.PortfolioDetailList.Periods.StartingPortfolioValue` (number)
    Portfolio value at the start of the period.
    Example: 3800000

  - `Data.PortfolioDetailList.Periods.EndingPortfolioValue` (number)
    Portfolio value at the end of the period.
    Example: 4088000

  - `Data.PortfolioDetailList.Periods.FundExpenses` (number)
    Expenses charged during the period.
    Example: 45000

  - `Data.PortfolioDetailList.Periods.NetFlows` (number)
    Net contributions minus withdrawals.
    Example: 150000

  - `Data.PortfolioDetailList.Periods.CumulativeReturn` (number)
    Cumulative return amount.
    Example: 288000

  - `Data.PortfolioDetailList.Periods.CumulativeReturnCalcFailed` (boolean)
    True if cumulative return calculation failed.
    Example: false

  - `Data.PortfolioDetailList.Periods.CumulativeReturnPercentage` (number)
    Cumulative return percentage.
    Example: 7.58

  - `Data.PortfolioDetailList.Periods.PeriodReturn` (number)
    Return during the period.
    Example: 23850.75

  - `Data.PortfolioDetailList.IsBenchmark` (boolean)
    True if this dataset represents a benchmark.
    Example: false

  - `Data.PortfolioDetailList.BenchmarkId` (string | null)
    Identifier of the benchmark if applicable.
    Example: a91527f3-c5d8-4b82-8eca-06306c5d8052

  - `Data.PortfolioDetailList.PortfolioId` (string)
    Unique portfolio identifier.
    Example: d64388d9-f7fa-43d3-9a09-1f5198784024

  - `Data.PortfolioDetailList.PortfolioCode` (string)
    Portfolio code.
    Example: PORT1

  - `Data.PortfolioDetailList.PortfolioName` (string)
    Portfolio display name.
    Example: Cash Portfolio

  - `Data.Errors` (array)
    Errors returned while processing the request.
    Example: []

  - `Data.Errors.Code` (string)

  - `Data.Errors.Message` (string)

## Response 400:

  - `400` (unknown)
    Error Message

## Response 400 fields (application/json):

  - `Errors` (array)
    A list of validation or request errors.

  - `Errors.code` (string | null)

  - `Errors.message` (string | null)

## Response 401:

  - `401` (unknown)
    Unauthorized

## Response 401 fields (application/json):

  - `Errors` (array)
    A list of authorization errors.

  - `Errors.Code` (string)
    Example: API_NOT_AUTHORISED

  - `Errors.Message` (string)
    Example: Not authorised

## Response 403:

  - `403` (unknown)
    Forbidden

## Response 403 fields (application/json):

  - `Errors` (array)
    A list of forbidden access errors.

  - `Errors.Code` (string)
    Example: FORBIDDEN

  - `Errors.Message` (string)
    Example: You do not have permission to access this resource.

## Response 404:

  - `404` (unknown)
    Resource not available or user does not have access to the requested resource.

## Response 404 fields (application/json):

  - `Errors` (array)
    A list of resource not found errors.

  - `Errors.Code` (string)
    Example: API_NOT_FOUND

  - `Errors.Message` (string)
    Example: Resource not available or user does not have access to the fund.

## Response 500:

  - `500` (unknown)
    Internal Server Error

## Response 500 fields (application/json):

  - `Errors` (array)
    A list of internal server errors.

  - `Errors.Code` (string)
    Example: API_INTERNAL_ERROR

  - `Errors.Message` (string)
    Example: An unexpected error occurred on the server. Please try again later.

## Response default:

  - `default` (unknown)
    Unexpected error

## Response default fields (application/json):

  - `Errors` (array)
    A list of unexpected errors.

  - `Errors.Code` (string)
    Example: API_INTERNAL_ERROR

  - `Errors.Message` (string)
    Example: An unexpected error occurred on the server. Please try again later.

