public Object getValue() {
        DataRow dataRow = getState().getDataRow();
        InvestmentReportModel reportModel = (InvestmentReportModel)dataRow.getReportModel();
        double yield = 0.0;
        
        String securityName = (String)dataRow.getValue(securityField);
        if (securityName.length() > 0) {
            List<SecurityHolding> holdings = reportModel.getSecurityHoldings();
            for (SecurityHolding h : holdings) {
                SecurityRecord s = h.getSecurity();
                if (s.getName().equals(securityName)) {
                    double shares = h.getTotalShares();
                    double cost = h.getTotalCost();
                    double price = s.getPrice();
                    if (shares > 0.0 && cost > 0.0)
                        yield = ((price*shares-cost)/cost)*100.0;
                        
                    break;
                }
            }
        }
        
        return String.format("%.2f%%", yield);
    }