Stock Analysis Report

{% if report_summary %}

{{ report_summary }}

{% endif %} {% if analysis_results %}

Stock Analysis

{{ stock_comparison_table|safe }} {% for analysis in analysis_results %}
{{ analysis.company_name }} ({{ analysis.symbol }})
{% if analysis.recommendation %} {% set rec = analysis.recommendation %} {% set rec_class = 'recommendation-' + rec.action|lower|replace(' ', '-') %}
{{ rec.action }} (Confidence: {{ '%.2f'|format(rec.confidence * 100) }}%)
    {% for reason in rec.reasoning %}
  • {{ reason }}
  • {% endfor %}
{% endif %}
Technical Analysis
{% if analysis.latest_price is defined %}
Price
₹{{ "%.2f"|format(analysis.latest_price) if analysis.latest_price is not none else 'N/A' }}
{% endif %} {% if analysis.volume is defined %}
Volume
{{ "{:,}".format(analysis.volume|int) }}
{% endif %} {% if analysis.rsi is defined %}
RSI (14)
{{ "%.2f"|format(analysis.rsi) if analysis.rsi is not none else 'N/A' }}
{% endif %} {% if analysis.ma_20 is defined %}
20-day MA
₹{{ "%.2f"|format(analysis.ma_20) if analysis.ma_20 is not none else 'N/A' }}
{% endif %} {% if analysis.ma_50 is defined %}
50-day MA
₹{{ "%.2f"|format(analysis.ma_50) if analysis.ma_50 is not none else 'N/A' }}
{% endif %} {% if analysis.ma_200 is defined %}
200-day MA
₹{{ "%.2f"|format(analysis.ma_200) if analysis.ma_200 is not none else 'N/A' }}
{% endif %} {% if analysis.macd is defined and analysis.macd_signal is defined %}
MACD
{{ "%.2f"|format(analysis.macd) if analysis.macd is not none else 'N/A' }}
Signal
{{ "%.2f"|format(analysis.macd_signal) if analysis.macd_signal is not none else 'N/A' }}
{% endif %}
Fundamental Analysis
{% if analysis.fundamentals.get('pe_ratio') is not none %}
P/E Ratio
{{ "%.2f"|format(analysis.fundamentals.get('pe_ratio')) }}
{% endif %} {% if analysis.fundamentals.get('forward_pe') is not none %}
Forward P/E
{{ "%.2f"|format(analysis.fundamentals.get('forward_pe')) }}
{% endif %} {% if analysis.fundamentals.get('pb_ratio') is not none %}
P/B Ratio
{{ "%.2f"|format(analysis.fundamentals.get('pb_ratio')) }}
{% endif %} {% if analysis.fundamentals.get('price_to_sales') is not none %}
P/S Ratio
{{ "%.2f"|format(analysis.fundamentals.get('price_to_sales')) }}
{% endif %} {% if analysis.fundamentals.get('debt_to_equity') is not none %}
Debt/Equity
{{ "%.2f"|format(analysis.fundamentals.get('debt_to_equity')) }}
{% endif %} {% if analysis.fundamentals.get('total_debt') is not none %}
Total Debt
₹{{ "%.2f"|format(analysis.fundamentals.get('total_debt') / 1e9) }}B
{% endif %} {% set rev_growth = analysis.fundamentals.get('revenue_growth') %} {% if rev_growth is not none %}
Revenue Growth
{{ "%.2f"|format(rev_growth * 100) }}%
{% endif %} {% set earn_growth = analysis.fundamentals.get('earnings_growth') %} {% if earn_growth is not none %}
Earnings Growth
{{ "%.2f"|format(earn_growth * 100) }}%
{% endif %} {% if analysis.fundamentals.get('dividend_yield') is not none %}
Dividend Yield
{{ "%.2f"|format(analysis.fundamentals.get('dividend_yield') * 100) }}%
{% endif %} {% if analysis.fundamentals.get('market_cap') is not none %}
Market Cap
₹{{ "%.2f"|format(analysis.fundamentals.get('market_cap') / 1e9) }}B
{% endif %}
{% if analysis.chart_paths %} {% for chart_name, chart_path in analysis.chart_paths.items() %}
{{ chart_name.replace('_', ' ')|title }}
{% endfor %} {% endif %}
{% endfor %} {% endif %} {% if mutual_funds %}

Mutual Fund Analysis

{{ mf_comparison_table|safe }} {% for fund in mutual_funds %}
{{ fund.get('name', 'N/A') }}
Latest NAV
₹{{ "%.2f"|format(fund.get('latest_nav')) if fund.get('latest_nav') and fund.get('latest_nav') != 'N/A' else 'N/A' }}
1Y CAGR
{% set cagr_1y = fund.get('cagr_1y') %}
{{ "%.2f"|format(cagr_1y) if cagr_1y is number else 'N/A' }}%
3Y CAGR
{% set cagr_3y = fund.get('cagr_3y') %}
{{ "%.2f"|format(cagr_3y) if cagr_3y is number else 'N/A' }}%
{{ "%.2f"|format(cagr_3y) if cagr_3y is number else 'N/A' }}%
5Y CAGR
{% set cagr_5y = fund.get('cagr_5y') %}
{{ "%.2f"|format(cagr_5y) if cagr_5y is number else 'N/A' }}%
Expense Ratio
{{ fund.get('expense_ratio', 'N/A') }}%
AUM
₹{{ fund.get('aum', 'N/A') }} Cr
NAV Date
{{ fund.get('nav_date', 'N/A') }}
{% set chart_path = fund.chart_paths.get('nav_performance_chart') %} {% if chart_path %} {{ fund.name }} NAV Performance {% else %}

Chart not available.

{% endif %}
{% endfor %} {% else %}

No stock analysis available for this report.

{% endif %}