{
    "source": "Total Growth Investing",
    "url": "https://totalgrowthinvesting.com/stock.php?symbol=BFC",
    "version": "2.5.0",
    "symbol": "BFC",
    "name": "Bank First Corp",
    "legal_type": "Stock",
    "sector": "Financials",
    "industry": "Regional Banks",
    "notes": null,
    "date_updated": "8/17/2026",
    "scores": {
        "tgi": 267,
        "hii": 11,
        "pgi": 165,
        "dgi": 185,
        "balanced_income": 139,
        "balanced_growth": 216,
        "average_all": 157
    },
    "price": {
        "current": "152.76",
        "price_growth_1y": "0.2670",
        "price_growth_3y": "0.8885",
        "price_growth_5y": "1.2290",
        "price_growth_10y": "4.2733",
        "total_return_10y": "5.4890",
        "avg_price_growth": "2.4294"
    },
    "dividend": {
        "per_share": "0.60",
        "frequency": 4,
        "yield_4yr_avg": "0.0205",
        "yield_calc": "0.0157",
        "div_growth_1y": "0.1143",
        "div_growth_3y": "0.2292",
        "div_growth_5y": "0.1863",
        "div_growth_10y": "0.1370",
        "avg_div_growth": "0.1667",
        "payout_ratio": "0.4830"
    },
    "methodology": {
        "score_range": "1 to approximately 900",
        "lower_is_better": true,
        "watchlist_size": "900+",
        "scores_explained": {
            "tgi": "Dividend growth + price growth + low payout ratio. Primary TGI rank.",
            "hii": "Dividend growth + price growth + proximity to 4% yield target. Income focus.",
            "pgi": "Price growth only, averaged across 1/3/5/10 year timeframes.",
            "dgi": "Dividend growth across timeframes, weighted with payout ratio.",
            "balanced_income": "(TGI + HII) / 2. Balances growth and income objectives.",
            "balanced_growth": "(TGI + PGI) / 2. Balances dividend discipline and price appreciation.",
            "average_all": "(TGI + HII + PGI + DGI) / 4. Composite across all four scores."
        }
    },
    "percent_note": "All growth and yield values are decimals. Multiply by 100 for percentage. Example: 0.3510 = 35.10%. A null value means the field was absent from the source data \u2014 it is NOT a zero.",
    "disclaimer": "Not financial advice. Do your own research."
}