from ETF_Portal.services.nav_erosion_service import NavErosionService import logging # Set up logging logging.basicConfig(level=logging.INFO) logger = logging.getLogger(__name__) def test_portfolio(): # Initialize service service = NavErosionService() # Test portfolio portfolio = ['VTI', 'DEPI', 'MSTY', 'JEPI', 'VOO'] try: # Analyze portfolio analysis = service.analyze_etf_erosion_risk(portfolio) # Print results print("\nPortfolio Analysis Results:") print("=" * 50) print(f"Portfolio NAV Risk: {analysis.portfolio_nav_risk:.1f}/9") print(f"Portfolio Yield Risk: {analysis.portfolio_yield_risk:.1f}/9") print("\nDetailed Results:") print("=" * 50) for result in analysis.results: print(f"\n{result.ticker}:") print(f" NAV Erosion Risk: {result.nav_erosion_risk:.1f}/9") print(f" Yield Erosion Risk: {result.yield_erosion_risk:.1f}/9") print(f" Estimated NAV Erosion: {result.estimated_nav_erosion:.1%}") print(f" Estimated Yield Erosion: {result.estimated_yield_erosion:.1%}") print(f" NAV Risk Explanation: {result.nav_risk_explanation}") print(f" Yield Risk Explanation: {result.yield_risk_explanation}") if result.component_risks: print(" Component Risks:") for component, value in result.component_risks.items(): print(f" {component}: {value:.1%}") except Exception as e: logger.error(f"Error during analysis: {str(e)}") raise if __name__ == "__main__": test_portfolio()