\documentclass[11pt, a4paper]{article} % --- UNIVERSAL PREAMBLE BLOCK --- \usepackage[a4paper, top=2.2cm, bottom=2.2cm, left=1.8cm, right=1.8cm]{geometry} \usepackage{fontspec} \usepackage[english]{babel} % Set default/Latin font to Sans Serif (Noto Sans) \babelfont{rm}{Noto Sans} % --- ADDITIONAL PACKAGES & DESIGN TOKENS --- \usepackage{xcolor} \usepackage{tcolorbox} \tcbuselibrary{skins, breakable} \usepackage{array} \usepackage{colortbl} \usepackage{multicol} \usepackage{enumitem} \usepackage{microtype} % Color Palette (derived from the modern dashboard) \definecolor{accent1}{HTML}{5B21B6} % Indigo/Deep Purple (adjusted for print contrast) \definecolor{accent2}{HTML}{BE185D} % Deep Rose \definecolor{accent3}{HTML}{0F766E} % Deep Teal \definecolor{accent4}{HTML}{B45309} % Amber/Gold \definecolor{bglight}{HTML}{F8FAFC} % Light background for cards \definecolor{bordercolor}{HTML}{E2E8F0} \definecolor{textdark}{HTML}{0F172A} \definecolor{textmuted}{HTML}{475569} % Global Paragraph Adjustments \setlength{\parindent}{0pt} \setlength{\parskip}{8pt} % Custom Styled Command for Progress/Activity Bars \newcommand{\drawbar}[2]{% \begingroup% \color{#1}\rule{#2\linewidth}{6pt}% \endgroup% } % Card Styles \newtcolorbox{statcard}[1]{ colback=bglight, colframe=bordercolor, arc=8pt, boxrule=1pt, valign=center, halign=center, width=\dimexpr0.25\textwidth-12pt\relax, nobeforeafter, boxsep=2pt, top=12pt, bottom=12pt, borderline north={2pt}{0pt}{#1} } \newtcolorbox{insightcard}[2]{ colback=bglight, colframe=bordercolor, arc=6pt, boxrule=0.8pt, top=12pt, bottom=12pt, left=12pt, right=12pt, fonttitle=\bfseries\color{textdark}, title={#1}, borderline west={3pt}{0pt}{#2} } % Hyperref - MUST be the last package \usepackage[colorlinks=true, linkcolor=accent1, urlcolor=accent1]{hyperref} \begin{document} % --- HEADER SECTION --- \begin{center} \begingroup \color{accent3} \bfseries \fontsize{9}{11}\selectfont \rule[3pt]{20pt}{1pt}\quad CHATGPT EXPORT ANALYSIS \quad\rule[3pt]{20pt}{1pt} \endgroup \vspace{8pt} {\fontsize{28}{34}\bfseries\color{textdark} Your AI Conversation Report} \vspace{4pt} {\textcolor{textmuted}{\fontsize{11}{14}\selectfont Dec 2025 --- Apr 2026 \quad\textbullet\quad Full Export Analysis}} \vspace{12pt} % Profile Badge \begin{tcolorbox}[ colback=bglight, colframe=bordercolor, arc=15pt, boxrule=1pt, width=0.75\textwidth, halign=center, top=6pt, bottom=6pt ] \fontsize{10}{12}\selectfont \textcolor{accent1}{\textbf{S}} \quad\textbullet\quad \textcolor{textdark}{User born \textbf{2006}} \quad\textbullet\quad Free Plan \quad\textbullet\quad \textcolor{textdark}{\texttt{syamaeib@gmail.com}} \end{tcolorbox} \end{center} \vspace{16pt} % --- KEY STATS --- \begin{center} \begin{statcard}{accent1} {\textbf{\textcolor{accent1}{\fontsize{20}{24}\selectfont 166}}}\\[4pt] \fontsize{8}{10}\selectfont\color{textmuted}\MakeUppercase{Conversations} \end{statcard}\hfill \begin{statcard}{accent2} {\textbf{\textcolor{accent2}{\fontsize{20}{24}\selectfont 1,902}}}\\[4pt] \fontsize{8}{10}\selectfont\color{textmuted}\MakeUppercase{Your Messages} \end{statcard}\hfill \begin{statcard}{accent3} {\textbf{\textcolor{accent3}{\fontsize{20}{24}\selectfont 2,363}}}\\[4pt] \fontsize{8}{10}\selectfont\color{textmuted}\MakeUppercase{AI Replies} \end{statcard}\hfill \begin{statcard}{accent4} {\textbf{\textcolor{accent4}{\fontsize{20}{24}\selectfont 142}}}\\[4pt] \fontsize{8}{10}\selectfont\color{textmuted}\MakeUppercase{Days Active} \end{statcard} \end{center} \vspace{18pt} % --- SECTION: MONTHLY ACTIVITY --- \begingroup \color{accent1}\fontsize{10}{12}\bfseries\MakeUppercase{Monthly Activity} \endgroup \hrule height 0.5pt\relax \vspace{8pt} \begin{tcolorbox}[colback=bglight, colframe=bordercolor, arc=8pt, boxrule=1pt, top=16pt, bottom=16pt] \begin{tabular}{m{2.5cm} m{8.5cm} r} \textbf{\small DEC '25} & \drawbar{accent1}{0.52} & \textbf{21} \\ \textbf{\small JAN '26} & \drawbar{accent2}{0.98} & \textbf{39} \\ \textbf{\small FEB '26} & \drawbar{accent3}{0.70} & \textbf{28} \\ \textbf{\small MAR '26} & \drawbar{accent4}{0.95} & \textbf{38} \\ \textbf{\small APR '26} & \drawbar{accent1}{1.00} & \textbf{40} \\ \end{tabular} \end{tcolorbox} \vspace{18pt} % --- SECTION: TOPIC BREAKDOWN --- \begingroup \color{accent1}\fontsize{10}{12}\bfseries\MakeUppercase{Topic Breakdown} \endgroup \hrule height 0.5pt\relax \vspace{8pt} \begin{tcolorbox}[colback=bglight, colframe=bordercolor, arc=8pt, boxrule=1pt, top=12pt, bottom=12pt] \fontsize{10}{14}\selectfont \begin{tabular}{m{4.5cm} m{8.5cm} r} \textbf{Nutrition \& Diet} & \drawbar{accent3}{0.72} & \textcolor{accent3}{\textbf{$\approx$ 62}} \\ \textbf{Health \& Medical} & \drawbar{accent2}{0.30} & \textcolor{accent2}{\textbf{$\approx$ 22}} \\ \textbf{Fitness \& Gym} & \drawbar{accent1}{0.25} & \textcolor{accent1}{\textbf{$\approx$ 20}} \\ \textbf{Education \& College} & \drawbar{accent4}{0.18} & \textcolor{accent4}{\textbf{$\approx$ 15}} \\ \textbf{Anime \& Entertainment} & \drawbar{accent2}{0.15} & \textcolor{accent2}{\textbf{$\approx$ 12}} \\ \textbf{Tech \& Gaming} & \drawbar{accent1}{0.14} & \textcolor{accent1}{\textbf{$\approx$ 12}} \\ \textbf{Supplements} & \drawbar{accent3}{0.12} & \textcolor{accent3}{\textbf{$\approx$ 10}} \\ \textbf{Coding \& Math} & \drawbar{accent1}{0.09} & \textcolor{accent1}{\textbf{$\approx$ 8}} \\ \textbf{Personal / Lifestyle} & \drawbar{accent4}{0.09} & \textcolor{accent4}{\textbf{$\approx$ 5}} \\ \end{tabular} \end{tcolorbox} \newpage % --- SECTION: MOST ACTIVE CONVERSATIONS --- \begingroup \color{accent1}\fontsize{10}{12}\bfseries\MakeUppercase{Most Active Conversations} \endgroup \hrule height 0.5pt\relax \vspace{8pt} \begin{tcolorbox}[colback=bglight, colframe=bordercolor, arc=8pt, boxrule=1pt, top=8pt, bottom=8pt, left=12pt, right=12pt] \fontsize{10}{13}\selectfont \begin{tabular}{c m{10cm} r} \textbf{\color{accent1}01} & \textbf{Body Fat Percentage Estimate} \newline \textcolor{textmuted}{1,473 messages \quad\textbullet\quad Health} & \colorbox{accent2!15}{\textcolor{accent2}{\textbf{\fontsize{8}{10}\selectfont EPIC}}} \\ \hline \textbf{\color{accent1}02} & \textbf{Gym Tips for Beginners} \newline \textcolor{textmuted}{645 messages \quad\textbullet\quad Fitness} & \colorbox{accent1!15}{\textcolor{accent1}{\textbf{\fontsize{8}{10}\selectfont LONG}}} \\ \hline \textbf{\color{accent1}03} & \textbf{Lab Report Summary} \newline \textcolor{textmuted}{394 messages \quad\textbullet\quad Medical} & \colorbox{accent3!15}{\textcolor{accent3}{\textbf{\fontsize{8}{10}\selectfont DEEP}}} \\ \hline \textbf{\color{accent1}04} & \textbf{Blood Sugar Post-Meal} \newline \textcolor{textmuted}{84 messages \quad\textbullet\quad Nutrition} & \colorbox{accent4!15}{\textcolor{accent4}{\textbf{\fontsize{8}{10}\selectfont ACTIVE}}} \\ \hline \textbf{\color{accent1}05} & \textbf{Dying Light Steam Price} \newline \textcolor{textmuted}{77 messages \quad\textbullet\quad Gaming} & \colorbox{accent3!15}{\textcolor{accent3}{\textbf{\fontsize{8}{10}\selectfont ACTIVE}}} \\ \end{tabular} \end{tcolorbox} \vspace{18pt} % --- SECTION: KEY INSIGHTS --- \begingroup \color{accent1}\fontsize{10}{12}\bfseries\MakeUppercase{Key Insights} \endgroup \hrule height 0.5pt\relax \vspace{8pt} \begin{multicols}{2} \begin{insightcard}{Managing a Health Condition}{accent2} \fontsize{9.5}{13.5}\selectfont\color{textmuted} You have many conversations about prediabetes, blood sugar, metformin, and lab reports --- suggesting you're actively monitoring and managing a health condition. You asked very detailed, specific questions about glucose, insulin, and organ effects. \end{insightcard} \begin{insightcard}{Serious About Fitness}{accent1} \fontsize{9.5}{13.5}\selectfont\color{textmuted} Gym tips, workout splits, body fat \%, incline walking, creatine, whey protein --- you're deeply invested in fitness and bodybuilding. Your longest single conversation (1,473 msgs!) was about body fat estimation. \end{insightcard} \begin{insightcard}{Making a Big Life Decision}{accent4} \fontsize{9.5}{13.5}\selectfont\color{textmuted} Multiple conversations about Aakash, Physics Wallah, Narayana PU College, PCMC/PCMB switch, and Presidency College exams show you're in the middle of choosing your academic path --- likely preparing for competitive entrance exams. \end{insightcard} \begin{insightcard}{Passionate Anime Fan}{accent2} \fontsize{9.5}{13.5}\selectfont\color{textmuted} You debated Naruto vs AOT vs One Piece multiple times, discussed Gojo vs Yuji, and Minato's absence. One Piece vs Naruto appeared 3 separate times --- clearly a topic you're very passionate about! \end{insightcard} \begin{insightcard}{Tech-Savvy Gamer}{accent3} \fontsize{9.5}{13.5}\selectfont\color{textmuted} You researched KLIM laptops, Lenovo LOQ, DX11 vs DX12, Dying Light pricing, and game difficulty tips (Hunter Build, Master Mode). You compare specs carefully before buying. \end{insightcard} \begin{insightcard}{Nutrition Obsessed}{accent3} \fontsize{9.5}{13.5}\selectfont\color{textmuted} Rice, tofu, soya chunks, sweet potato, stevia, chicken liver --- you asked about almost every food category. You're carefully tracking macros, GI index, and cooking methods, likely tied to managing your health condition. \end{insightcard} \begin{insightcard}{Sleep Struggles}{accent4} \fontsize{9.5}{13.5}\selectfont\color{textmuted} Multiple chats about trouble sleeping, sleep timing impact, sleep rebound effects, nap impact, and sleep duration calculation. Sleep quality is a recurring concern for you. \end{insightcard} \begin{insightcard}{Growing Usage Over Time}{accent1} \fontsize{9.5}{13.5}\selectfont\color{textmuted} You started with 21 conversations in Dec 2025 and peaked at 40 in April 2026 --- nearly doubling your usage. You're relying on ChatGPT more and more each month. \end{insightcard} \end{multicols} \newpage % --- SECTION: FUN FACTS --- \begingroup \color{accent1}\fontsize{10}{12}\bfseries\MakeUppercase{Fun Facts} \endgroup \hrule height 0.5pt\relax \vspace{8pt} \begin{multicols}{2} \begin{insightcard}{Most Debated Topic}{accent2} \fontsize{9.5}{13.5}\selectfont\color{textmuted} \textbf{Naruto vs One Piece} --- you started this debate at least \textcolor{accent2}{\textbf{4 separate times}}! You clearly can't make up your mind. \end{insightcard} \begin{insightcard}{Most Focused Topic}{accent3} \fontsize{9.5}{13.5}\selectfont\color{textmuted} \textbf{Nutrition} makes up over \textcolor{accent3}{\textbf{37\%}} of all your conversations --- you're practically a food scientist at this point! \end{insightcard} \begin{insightcard}{Deepest Dive}{accent1} \fontsize{9.5}{13.5}\selectfont\color{textmuted} The ``Body Fat Percentage Estimate'' conversation had \textcolor{accent1}{\textbf{1,473 messages}} --- that's almost a full book's worth of conversation in one thread! \end{insightcard} \begin{insightcard}{Young \& Curious}{accent4} \fontsize{9.5}{13.5}\selectfont\color{textmuted} Born in \textcolor{accent4}{\textbf{2006}}, you're around 19 years old and using AI to navigate everything from college choices to health and gaming. That's impressive! \end{insightcard} \end{multicols} \vfill % --- FOOTER --- \begin{center} \fontsize{8}{10}\selectfont\color{textmuted}\MakeUppercase{Generated from ChatGPT Export Analysis \quad\textbullet\quad July 2026} \end{center} \end{document}
ls /home/daytona/workspace/ 2>/dev/null && which xelatex && fc-list | grep -i "Noto Sans" | head -5
which pdflatex; which lualatex; which latex; ls /usr/bin/*latex* 2>/dev/null; ls /usr/local/bin/*latex* 2>/dev/null; apt list --installed 2>/dev/null | grep -i texlive | head -10
python3 -c "import reportlab; print(reportlab.Version)"
mkdir -p /home/daytona/workspace/chatgpt-report
~/chatgpt-report/build_report.py
from reportlab.lib.pagesizes import A4
from reportlab.lib.units import mm, pt
from reportlab.lib import colors
from reportlab.lib.colors import HexColor
from reportlab.pdfgen import canvas
from reportlab.platypus import (
SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle,
HRFlowable, KeepTogether, PageBreak
)
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_RIGHT
from reportlab.platypus.flowables import Flowable
import textwrap
# ── Color Palette ──────────────────────────────────────────────
C_ACCENT1 = HexColor('#5B21B6') # Indigo
C_ACCENT2 = HexColor('#BE185D') # Deep Rose
C_ACCENT3 = HexColor('#0F766E') # Teal
C_ACCENT4 = HexColor('#B45309') # Amber
C_BGLIGHT = HexColor('#F8FAFC')
C_BORDER = HexColor('#E2E8F0')
C_TEXTDARK = HexColor('#0F172A')
C_TEXTMUTED = HexColor('#475569')
C_WHITE = colors.white
PAGE_W, PAGE_H = A4
MARGIN_L = 18*mm
MARGIN_R = 18*mm
MARGIN_T = 22*mm
MARGIN_B = 22*mm
CONTENT_W = PAGE_W - MARGIN_L - MARGIN_R
# ── Helper Flowables ───────────────────────────────────────────
class RoundedCard(Flowable):
"""A rounded rectangle card with optional top or left accent stripe."""
def __init__(self, width, height, content_fn, radius=6,
bg=C_BGLIGHT, border=C_BORDER, accent_color=None,
accent_side='top', accent_w=2.5):
super().__init__()
self.card_w = width
self.card_h = height
self.content_fn = content_fn
self.radius = radius
self.bg = bg
self.border = border
self.accent_color = accent_color
self.accent_side = accent_side
self.accent_w = accent_w
self.width = width
self.height = height
def draw(self):
c = self.canv
r = self.radius
w, h = self.card_w, self.card_h
# Shadow-like background
c.setFillColor(self.bg)
c.setStrokeColor(self.border)
c.setLineWidth(0.8)
c.roundRect(0, 0, w, h, r, stroke=1, fill=1)
# Accent stripe
if self.accent_color:
c.setFillColor(self.accent_color)
if self.accent_side == 'top':
# top rounded stripe
c.setStrokeColor(self.accent_color)
c.setLineWidth(0)
c.roundRect(0, h - self.accent_w, w, self.accent_w, r, stroke=0, fill=1)
c.rect(0, h - self.accent_w - r, w, r + 1, stroke=0, fill=1)
elif self.accent_side == 'left':
c.setStrokeColor(self.accent_color)
c.setLineWidth(0)
c.roundRect(0, 0, self.accent_w, h, min(r, self.accent_w//2+1), stroke=0, fill=1)
c.rect(r, 0, self.accent_w - r + 1, h, stroke=0, fill=1)
# Call content drawing function
self.content_fn(c, w, h)
class ProgressBar(Flowable):
def __init__(self, width, height, fraction, color, label_left, label_right, font_size=9):
super().__init__()
self.bar_w = width
self.bar_h = height
self.fraction = fraction
self.color = color
self.label_left = label_left
self.label_right = label_right
self.font_size = font_size
self.width = width
self.height = height + 18
def draw(self):
c = self.canv
y_bar = 2
label_h = 14
# Labels
c.setFont('Helvetica-Bold', self.font_size)
c.setFillColor(C_TEXTDARK)
c.drawString(0, y_bar + self.bar_h + 4, self.label_left)
c.setFillColor(self.color)
c.drawRightString(self.bar_w, y_bar + self.bar_h + 4, self.label_right)
# Track
c.setFillColor(C_BORDER)
c.roundRect(0, y_bar, self.bar_w, self.bar_h, self.bar_h/2, stroke=0, fill=1)
# Fill
fill_w = max(self.bar_w * self.fraction, self.bar_h)
c.setFillColor(self.color)
c.roundRect(0, y_bar, fill_w, self.bar_h, self.bar_h/2, stroke=0, fill=1)
class SectionHeader(Flowable):
def __init__(self, title, color=C_ACCENT1, width=CONTENT_W):
super().__init__()
self.title = title
self.color = color
self.width = width
self.height = 22
def draw(self):
c = self.canv
c.setFont('Helvetica-Bold', 9.5)
c.setFillColor(self.color)
c.drawString(0, 9, self.title.upper())
c.setStrokeColor(C_BORDER)
c.setLineWidth(0.5)
c.line(0, 3, self.width, 3)
# ── Build PDF ─────────────────────────────────────────────────
def build():
out = '/home/daytona/workspace/chatgpt-report/ChatGPT_Report.pdf'
doc = SimpleDocTemplate(
out,
pagesize=A4,
leftMargin=MARGIN_L,
rightMargin=MARGIN_R,
topMargin=MARGIN_T,
bottomMargin=MARGIN_B,
)
story = []
W = CONTENT_W
# ── HEADER ────────────────────────────────────────────────
# Decorative subtitle line
story.append(Paragraph(
'<font color="#0F766E"><b>─── CHATGPT EXPORT ANALYSIS ───</b></font>',
ParagraphStyle('sub', fontName='Helvetica-Bold', fontSize=8.5,
textColor=C_ACCENT3, alignment=TA_CENTER, spaceAfter=6)
))
story.append(Paragraph(
'<font color="#0F172A"><b>Your AI Conversation Report</b></font>',
ParagraphStyle('h1', fontName='Helvetica-Bold', fontSize=26,
textColor=C_TEXTDARK, alignment=TA_CENTER, spaceAfter=4)
))
story.append(Paragraph(
'<font color="#475569">Dec 2025 – Apr 2026 • Full Export Analysis</font>',
ParagraphStyle('sub2', fontName='Helvetica', fontSize=10,
textColor=C_TEXTMUTED, alignment=TA_CENTER, spaceAfter=10)
))
# Profile badge
badge_data = [[
Paragraph(
'<font color="#5B21B6"><b>S</b></font>'
' <font color="#475569">•</font> '
'<font color="#0F172A">User born <b>2006</b></font>'
' <font color="#475569">•</font> '
'<font color="#475569">Free Plan</font>'
' <font color="#475569">•</font> '
'<font color="#0F172A"><b>syamaeib@gmail.com</b></font>',
ParagraphStyle('badge', fontName='Helvetica', fontSize=9.5,
alignment=TA_CENTER, textColor=C_TEXTDARK)
)
]]
badge_w = W * 0.72
badge_table = Table(badge_data, colWidths=[badge_w])
badge_table.setStyle(TableStyle([
('BACKGROUND', (0,0), (-1,-1), C_BGLIGHT),
('BOX', (0,0), (-1,-1), 0.8, C_BORDER),
('ROUNDEDCORNERS', [12]),
('TOPPADDING', (0,0), (-1,-1), 8),
('BOTTOMPADDING', (0,0), (-1,-1), 8),
('LEFTPADDING', (0,0), (-1,-1), 16),
('RIGHTPADDING', (0,0), (-1,-1), 16),
]))
# Center the badge
badge_outer = Table([[badge_table]], colWidths=[W])
badge_outer.setStyle(TableStyle([
('ALIGN', (0,0), (-1,-1), 'CENTER'),
('VALIGN', (0,0), (-1,-1), 'MIDDLE'),
]))
story.append(badge_outer)
story.append(Spacer(1, 16))
# ── KEY STATS (4 cards) ────────────────────────────────────
def make_stat_cell(value, label, accent):
return Paragraph(
f'<font color="{accent.hexval()}"><b><font size="22">{value}</font></b></font>'
f'<br/><font color="#475569" size="7.5">{label.upper()}</font>',
ParagraphStyle('sc', fontName='Helvetica', fontSize=9,
alignment=TA_CENTER, leading=18)
)
stat_data = [[
make_stat_cell('166', 'Conversations', C_ACCENT1),
make_stat_cell('1,902', 'Your Messages', C_ACCENT2),
make_stat_cell('2,363', 'AI Replies', C_ACCENT3),
make_stat_cell('142', 'Days Active', C_ACCENT4),
]]
cw = (W - 3*6) / 4
stat_table = Table(stat_data, colWidths=[cw]*4, hAlign='LEFT')
stat_table.setStyle(TableStyle([
('BACKGROUND', (0,0), (-1,-1), C_BGLIGHT),
('BOX', (0,0), (0,0), 0.8, C_BORDER),
('BOX', (1,0), (1,0), 0.8, C_BORDER),
('BOX', (2,0), (2,0), 0.8, C_BORDER),
('BOX', (3,0), (3,0), 0.8, C_BORDER),
('LINEABOVE', (0,0), (0,0), 2.5, C_ACCENT1),
('LINEABOVE', (1,0), (1,0), 2.5, C_ACCENT2),
('LINEABOVE', (2,0), (2,0), 2.5, C_ACCENT3),
('LINEABOVE', (3,0), (3,0), 2.5, C_ACCENT4),
('TOPPADDING', (0,0), (-1,-1), 14),
('BOTTOMPADDING', (0,0), (-1,-1), 14),
('ALIGN', (0,0), (-1,-1), 'CENTER'),
('VALIGN', (0,0), (-1,-1), 'MIDDLE'),
('ROUNDEDCORNERS', [6]),
]))
story.append(stat_table)
story.append(Spacer(1, 18))
# ── MONTHLY ACTIVITY ──────────────────────────────────────
story.append(SectionHeader('Monthly Activity'))
story.append(Spacer(1, 6))
months = [
("DEC '25", C_ACCENT1, 0.52, '21'),
("JAN '26", C_ACCENT2, 0.98, '39'),
("FEB '26", C_ACCENT3, 0.70, '28'),
("MAR '26", C_ACCENT4, 0.95, '38'),
("APR '26", C_ACCENT1, 1.00, '40'),
]
BAR_H = 9
bar_col_w = W - 60 - 30 - 8 # label col + count col + padding
def month_rows():
rows = []
for label, color, frac, count in months:
lbl = Paragraph(f'<b><font size="9">{label}</font></b>',
ParagraphStyle('ml', fontName='Helvetica-Bold',
fontSize=9, textColor=C_TEXTDARK,
alignment=TA_LEFT))
# bar as a colored rectangle in a nested table
track_w = bar_col_w
bar_fill_w = max(track_w * frac, BAR_H)
class InlineBar(Flowable):
def __init__(self, fill, total, clr, bh=BAR_H):
super().__init__()
self.fill = fill
self.total = total
self.clr = clr
self.bh = bh
self.width = total
self.height = bh + 4
def draw(self):
cv = self.canv
cv.setFillColor(C_BORDER)
cv.roundRect(0, 2, self.total, self.bh, self.bh/2, stroke=0, fill=1)
cv.setFillColor(self.clr)
cv.roundRect(0, 2, max(self.fill, self.bh), self.bh, self.bh/2, stroke=0, fill=1)
bar_flow = InlineBar(bar_fill_w, track_w, color)
cnt = Paragraph(f'<b><font size="10">{count}</font></b>',
ParagraphStyle('mc', fontName='Helvetica-Bold',
fontSize=10, textColor=C_TEXTDARK,
alignment=TA_RIGHT))
rows.append([lbl, bar_flow, cnt])
return rows
month_table = Table(month_rows(), colWidths=[60, bar_col_w, 30],
hAlign='LEFT', rowHeights=22)
month_table.setStyle(TableStyle([
('BACKGROUND', (0,0), (-1,-1), C_BGLIGHT),
('BOX', (0,0), (-1,-1), 0.8, C_BORDER),
('TOPPADDING', (0,0), (-1,-1), 5),
('BOTTOMPADDING', (0,0), (-1,-1), 5),
('LEFTPADDING', (0,0), (-1,-1), 12),
('RIGHTPADDING', (-1,0), (-1,-1), 12),
('VALIGN', (0,0), (-1,-1), 'MIDDLE'),
('ROUNDEDCORNERS', [6]),
]))
story.append(month_table)
story.append(Spacer(1, 18))
# ── TOPIC BREAKDOWN ───────────────────────────────────────
story.append(SectionHeader('Topic Breakdown'))
story.append(Spacer(1, 6))
topics = [
('Nutrition & Diet', C_ACCENT3, 0.72, '≈ 62'),
('Health & Medical', C_ACCENT2, 0.30, '≈ 22'),
('Fitness & Gym', C_ACCENT1, 0.25, '≈ 20'),
('Education & College', C_ACCENT4, 0.18, '≈ 15'),
('Anime & Entertainment', C_ACCENT2, 0.15, '≈ 12'),
('Tech & Gaming', C_ACCENT1, 0.14, '≈ 12'),
('Supplements', C_ACCENT3, 0.12, '≈ 10'),
('Coding & Math', C_ACCENT1, 0.09, '≈ 8'),
('Personal / Lifestyle', C_ACCENT4, 0.09, '≈ 5'),
]
topic_label_w = 110
topic_bar_w = W - topic_label_w - 40 - 8
topic_count_w = 40
def topic_rows():
rows = []
for label, color, frac, count in topics:
lbl = Paragraph(f'<b><font size="9">{label}</font></b>',
ParagraphStyle('tl', fontName='Helvetica-Bold',
fontSize=9, textColor=C_TEXTDARK,
alignment=TA_LEFT))
class TBar(Flowable):
def __init__(self, fill_f, total, clr, bh=8):
super().__init__()
self.fill_f = fill_f
self.total = total
self.clr = clr
self.bh = bh
self.width = total
self.height = bh + 4
def draw(self):
cv = self.canv
cv.setFillColor(C_BORDER)
cv.roundRect(0, 2, self.total, self.bh, self.bh/2, stroke=0, fill=1)
cv.setFillColor(self.clr)
fill_px = max(self.total * self.fill_f, self.bh)
cv.roundRect(0, 2, fill_px, self.bh, self.bh/2, stroke=0, fill=1)
bar_flow = TBar(frac, topic_bar_w, color)
cnt = Paragraph(
f'<font color="{color.hexval()}"><b><font size="9">{count}</font></b></font>',
ParagraphStyle('tc', fontName='Helvetica-Bold', fontSize=9,
alignment=TA_RIGHT))
rows.append([lbl, bar_flow, cnt])
return rows
topic_table = Table(topic_rows(),
colWidths=[topic_label_w, topic_bar_w, topic_count_w],
hAlign='LEFT', rowHeights=21)
topic_table.setStyle(TableStyle([
('BACKGROUND', (0,0), (-1,-1), C_BGLIGHT),
('BOX', (0,0), (-1,-1), 0.8, C_BORDER),
('TOPPADDING', (0,0), (-1,-1), 4),
('BOTTOMPADDING', (0,0), (-1,-1), 4),
('LEFTPADDING', (0,0), (-1,-1), 12),
('RIGHTPADDING', (-1,0), (-1,-1), 12),
('VALIGN', (0,0), (-1,-1), 'MIDDLE'),
('ROWBACKGROUNDS',(0,0), (-1,-1), [C_BGLIGHT, HexColor('#F1F5F9')]),
('ROUNDEDCORNERS', [6]),
]))
story.append(topic_table)
# ── PAGE 2 ────────────────────────────────────────────────
story.append(PageBreak())
# ── MOST ACTIVE CONVERSATIONS ─────────────────────────────
story.append(SectionHeader('Most Active Conversations'))
story.append(Spacer(1, 6))
convos = [
('01', 'Body Fat Percentage Estimate', '1,473 messages • Health', 'EPIC', C_ACCENT2),
('02', 'Gym Tips for Beginners', '645 messages • Fitness', 'LONG', C_ACCENT1),
('03', 'Lab Report Summary', '394 messages • Medical', 'DEEP', C_ACCENT3),
('04', 'Blood Sugar Post-Meal', '84 messages • Nutrition', 'ACTIVE', C_ACCENT4),
('05', 'Dying Light Steam Price', '77 messages • Gaming', 'ACTIVE', C_ACCENT3),
]
def convo_rows():
rows = []
for num, title, meta, badge_text, badge_color in convos:
num_p = Paragraph(
f'<font color="{C_ACCENT1.hexval()}"><b>{num}</b></font>',
ParagraphStyle('cn', fontName='Helvetica-Bold', fontSize=11,
alignment=TA_CENTER, textColor=C_ACCENT1))
detail_p = Paragraph(
f'<b><font size="10">{title}</font></b><br/>'
f'<font color="#475569" size="8">{meta}</font>',
ParagraphStyle('cd', fontName='Helvetica', fontSize=9,
leading=14, textColor=C_TEXTDARK))
# Badge pill
r, g, b = badge_color.red, badge_color.green, badge_color.blue
badge_bg = HexColor('#{:02X}{:02X}{:02X}'.format(
int(r*255*0.15 + 255*0.85),
int(g*255*0.15 + 255*0.85),
int(b*255*0.15 + 255*0.85)
))
badge_p = Paragraph(
f'<font color="{badge_color.hexval()}"><b><font size="7.5">{badge_text}</font></b></font>',
ParagraphStyle('cb', fontName='Helvetica-Bold', fontSize=7.5,
alignment=TA_CENTER))
badge_cell = Table([[badge_p]], colWidths=[46])
badge_cell.setStyle(TableStyle([
('BACKGROUND', (0,0), (-1,-1), badge_bg),
('TOPPADDING', (0,0), (-1,-1), 3),
('BOTTOMPADDING', (0,0), (-1,-1), 3),
('LEFTPADDING', (0,0), (-1,-1), 5),
('RIGHTPADDING', (0,0), (-1,-1), 5),
('ROUNDEDCORNERS', [4]),
]))
rows.append([num_p, detail_p, badge_cell])
return rows
convo_table = Table(convo_rows(), colWidths=[30, W-30-60, 60],
hAlign='LEFT')
line_cmds = []
for i in range(1, len(convos)):
line_cmds.append(('LINEABOVE', (0,i), (-1,i), 0.5, C_BORDER))
convo_table.setStyle(TableStyle([
('BACKGROUND', (0,0), (-1,-1), C_BGLIGHT),
('BOX', (0,0), (-1,-1), 0.8, C_BORDER),
('TOPPADDING', (0,0), (-1,-1), 10),
('BOTTOMPADDING', (0,0), (-1,-1), 10),
('LEFTPADDING', (0,0), (-1,-1), 12),
('RIGHTPADDING', (-1,0), (-1,-1), 12),
('VALIGN', (0,0), (-1,-1), 'MIDDLE'),
('ALIGN', (0,0), (0,-1), 'CENTER'),
('ALIGN', (2,0), (2,-1), 'CENTER'),
('ROUNDEDCORNERS', [6]),
] + line_cmds))
story.append(convo_table)
story.append(Spacer(1, 18))
# ── KEY INSIGHTS ──────────────────────────────────────────
story.append(SectionHeader('Key Insights'))
story.append(Spacer(1, 6))
insights = [
('Managing a Health Condition', C_ACCENT2,
'You have many conversations about prediabetes, blood sugar, metformin, and lab reports - '
"suggesting you're actively monitoring and managing a health condition. You asked very "
'detailed, specific questions about glucose, insulin, and organ effects.'),
('Serious About Fitness', C_ACCENT1,
'Gym tips, workout splits, body fat %, incline walking, creatine, whey protein - '
"you're deeply invested in fitness and bodybuilding. Your longest single conversation "
'(1,473 msgs!) was about body fat estimation.'),
('Making a Big Life Decision', C_ACCENT4,
'Multiple conversations about Aakash, Physics Wallah, Narayana PU College, PCMC/PCMB '
"switch, and Presidency College exams show you're in the middle of choosing your academic "
'path - likely preparing for competitive entrance exams.'),
('Passionate Anime Fan', C_ACCENT2,
'You debated Naruto vs AOT vs One Piece multiple times, discussed Gojo vs Yuji, and '
"Minato's absence. One Piece vs Naruto appeared 3 separate times - clearly a topic "
"you're very passionate about!"),
("Tech-Savvy Gamer", C_ACCENT3,
'You researched KLIM laptops, Lenovo LOQ, DX11 vs DX12, Dying Light pricing, and game '
'difficulty tips (Hunter Build, Master Mode). You compare specs carefully before buying.'),
('Nutrition Obsessed', C_ACCENT3,
'Rice, tofu, soya chunks, sweet potato, stevia, chicken liver - you asked about almost '
"every food category. You're carefully tracking macros, GI index, and cooking methods, "
'likely tied to managing your health condition.'),
('Sleep Struggles', C_ACCENT4,
'Multiple chats about trouble sleeping, sleep timing impact, sleep rebound effects, nap '
'impact, and sleep duration calculation. Sleep quality is a recurring concern for you.'),
('Growing Usage Over Time', C_ACCENT1,
'You started with 21 conversations in Dec 2025 and peaked at 40 in April 2026 - nearly '
"doubling your usage. You're relying on ChatGPT more and more each month."),
]
def insight_cell(title, accent, text):
inner = Table([
[Paragraph(f'<b><font size="9.5" color="#0F172A">{title}</font></b>',
ParagraphStyle('it', fontName='Helvetica-Bold', fontSize=9.5,
textColor=C_TEXTDARK))],
[Paragraph(f'<font color="#475569" size="9">{text}</font>',
ParagraphStyle('ib', fontName='Helvetica', fontSize=9,
textColor=C_TEXTMUTED, leading=13))],
], colWidths=[W/2 - 24 - 5])
inner.setStyle(TableStyle([
('TOPPADDING', (0,0), (-1,-1), 2),
('BOTTOMPADDING', (0,0), (-1,-1), 2),
('LEFTPADDING', (0,0), (-1,-1), 0),
('RIGHTPADDING', (0,0), (-1,-1), 0),
]))
outer = Table([[inner]], colWidths=[W/2 - 10])
outer.setStyle(TableStyle([
('BACKGROUND', (0,0), (-1,-1), C_BGLIGHT),
('BOX', (0,0), (-1,-1), 0.8, C_BORDER),
('LINEBEFORE', (0,0), (0,-1), 3, accent),
('TOPPADDING', (0,0), (-1,-1), 10),
('BOTTOMPADDING', (0,0), (-1,-1), 10),
('LEFTPADDING', (0,0), (-1,-1), 10),
('RIGHTPADDING', (0,0), (-1,-1), 10),
('ROUNDEDCORNERS', [4]),
]))
return outer
# 2-column grid
for i in range(0, len(insights), 2):
left = insight_cell(*insights[i])
right = insight_cell(*insights[i+1]) if i+1 < len(insights) else ''
row = Table([[left, right]], colWidths=[W/2 - 5, W/2 - 5],
hAlign='LEFT')
row.setStyle(TableStyle([
('LEFTPADDING', (0,0), (-1,-1), 0),
('RIGHTPADDING', (0,0), (-1,-1), 0),
('TOPPADDING', (0,0), (-1,-1), 0),
('BOTTOMPADDING', (0,0), (-1,-1), 0),
('VALIGN', (0,0), (-1,-1), 'TOP'),
]))
story.append(row)
story.append(Spacer(1, 7))
# ── PAGE 3 ────────────────────────────────────────────────
story.append(PageBreak())
# ── FUN FACTS ─────────────────────────────────────────────
story.append(SectionHeader('Fun Facts'))
story.append(Spacer(1, 6))
fun_facts = [
('Most Debated Topic', C_ACCENT2,
'Naruto vs One Piece - you started this debate at least '
'<font color="#BE185D"><b>4 separate times</b></font>! '
"You clearly can't make up your mind."),
('Most Focused Topic', C_ACCENT3,
'Nutrition makes up over <font color="#0F766E"><b>37%</b></font> of all your '
"conversations - you're practically a food scientist at this point!"),
('Deepest Dive', C_ACCENT1,
'The "Body Fat Percentage Estimate" conversation had '
'<font color="#5B21B6"><b>1,473 messages</b></font> - '
"that's almost a full book's worth of conversation in one thread!"),
('Young & Curious', C_ACCENT4,
'Born in <font color="#B45309"><b>2006</b></font>, '
"you're around 19 years old and using AI to navigate everything from college choices "
'to health and gaming. That\'s impressive!'),
]
for i in range(0, len(fun_facts), 2):
left = insight_cell(fun_facts[i][0], fun_facts[i][1], fun_facts[i][2])
right = insight_cell(fun_facts[i+1][0], fun_facts[i+1][1], fun_facts[i+1][2]) if i+1 < len(fun_facts) else ''
row = Table([[left, right]], colWidths=[W/2 - 5, W/2 - 5], hAlign='LEFT')
row.setStyle(TableStyle([
('LEFTPADDING', (0,0), (-1,-1), 0),
('RIGHTPADDING', (0,0), (-1,-1), 0),
('TOPPADDING', (0,0), (-1,-1), 0),
('BOTTOMPADDING', (0,0), (-1,-1), 0),
('VALIGN', (0,0), (-1,-1), 'TOP'),
]))
story.append(row)
story.append(Spacer(1, 7))
# ── FOOTER (via onLaterPages / custom) ────────────────────
story.append(Spacer(1, 40))
story.append(Paragraph(
'<font color="#475569" size="8">GENERATED FROM CHATGPT EXPORT ANALYSIS • JULY 2026</font>',
ParagraphStyle('footer', fontName='Helvetica', fontSize=8,
textColor=C_TEXTMUTED, alignment=TA_CENTER)
))
doc.build(story)
print(f'PDF saved to {out}')
build()
cd /home/daytona/workspace/chatgpt-report && python3 build_report.py 2>&1
~/chatgpt-report/build_report.py
Successfully replaced 1 instance(s) of the string in '/home/daytona/workspace/chatgpt-report/build_report.py'
cd /home/daytona/workspace/chatgpt-report && python3 build_report.py 2>&1
ls -lh /home/daytona/workspace/chatgpt-report/ChatGPT_Report.pdf
cd /home/daytona/workspace/chatgpt-report && python3 -c " from reportlab.lib.pagesizes import A4 from pypdf import PdfReader r = PdfReader('ChatGPT_Report.pdf') print('Pages:', len(r.pages)) for i, p in enumerate(r.pages): t = p.extract_text() print(f'--- Page {i+1} ({len(t)} chars) ---') print(t[:300]) " 2>&1
ChatGPT Report
PDF Document · PDF
.tex source#5B21B6, accent2 rose, accent3 teal, accent4 amber), progress bars are proportional to your original fractions, and the left-stripe / top-stripe card styles mirror the insightcard / statcard tcolorbox designs from your source.<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>ChatGPT Conversation Analysis</title> <link href="https://fonts.googleapis.com/css2?family=Syne:wght@400;600;700;800&family=DM+Mono:wght@300;400;500&display=swap" rel="stylesheet"> <style> :root { --bg: #0a0a0f; --surface: #12121a; --card: #1a1a26; --border: #2a2a40; --accent1: #7c6af7; --accent2: #f76a8c; --accent3: #6af7c2; --accent4: #f7c26a; --text: #e8e8f0; --muted: #8888aa; } * { margin: 0; padding: 0; box-sizing: border-box; } body { background: var(--bg); color: var(--text); font-family: 'DM Mono', monospace; min-height: 100vh; overflow-x: hidden; } /* Animated background */ body::before { content: ''; position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: radial-gradient(ellipse 600px 400px at 10% 20%, rgba(124,106,247,0.08) 0%, transparent 70%), radial-gradient(ellipse 500px 300px at 90% 80%, rgba(247,106,140,0.06) 0%, transparent 70%), radial-gradient(ellipse 400px 400px at 50% 50%, rgba(106,247,194,0.04) 0%, transparent 70%); pointer-events: none; z-index: 0; } .container { max-width: 900px; margin: 0 auto; padding: 40px 20px; position: relative; z-index: 1; } /* Header */ .header { text-align: center; margin-bottom: 60px; animation: fadeDown 0.8s ease both; } .header .tag { display: inline-block; font-size: 10px; letter-spacing: 4px; text-transform: uppercase; color: var(--accent3); border: 1px solid rgba(106,247,194,0.3); padding: 6px 16px; border-radius: 2px; margin-bottom: 20px; } .header h1 { font-family: 'Syne', sans-serif; font-size: clamp(32px, 6vw, 56px); font-weight: 800; line-height: 1.1; background: linear-gradient(135deg, var(--text) 0%, var(--accent1) 50%, var(--accent2) 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; margin-bottom: 12px; } .header p { color: var(--muted); font-size: 13px; letter-spacing: 1px; } /* Stats grid */ .stats-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; margin-bottom: 40px; animation: fadeUp 0.8s 0.2s ease both; } @media (min-width: 600px) { .stats-grid { grid-template-columns: repeat(4, 1fr); } } .stat-card { background: var(--card); border: 1px solid var(--border); border-radius: 12px; padding: 20px 16px; text-align: center; position: relative; overflow: hidden; transition: transform 0.2s, border-color 0.2s; } .stat-card:hover { transform: translateY(-3px); border-color: var(--accent1); } .stat-card::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 2px; } .stat-card:nth-child(1)::before { background: var(--accent1); } .stat-card:nth-child(2)::before { background: var(--accent2); } .stat-card:nth-child(3)::before { background: var(--accent3); } .stat-card:nth-child(4)::before { background: var(--accent4); } .stat-number { font-family: 'Syne', sans-serif; font-size: 30px; font-weight: 800; line-height: 1; margin-bottom: 6px; } .stat-card:nth-child(1) .stat-number { color: var(--accent1); } .stat-card:nth-child(2) .stat-number { color: var(--accent2); } .stat-card:nth-child(3) .stat-number { color: var(--accent3); } .stat-card:nth-child(4) .stat-number { color: var(--accent4); } .stat-label { font-size: 10px; color: var(--muted); letter-spacing: 2px; text-transform: uppercase; } /* Section */ .section { margin-bottom: 40px; animation: fadeUp 0.8s 0.4s ease both; } .section-title { font-family: 'Syne', sans-serif; font-size: 11px; font-weight: 700; letter-spacing: 4px; text-transform: uppercase; color: var(--accent1); margin-bottom: 20px; display: flex; align-items: center; gap: 12px; } .section-title::after { content: ''; flex: 1; height: 1px; background: var(--border); } /* Category bars */ .category-list { display: flex; flex-direction: column; gap: 12px; } .cat-item { background: var(--card); border: 1px solid var(--border); border-radius: 10px; padding: 14px 16px; display: grid; grid-template-columns: 160px 1fr 40px; align-items: center; gap: 16px; transition: border-color 0.2s; } .cat-item:hover { border-color: var(--accent1); } .cat-name { font-size: 12px; color: var(--text); white-space: nowrap; } .cat-bar-bg { height: 6px; background: var(--border); border-radius: 3px; overflow: hidden; } .cat-bar { height: 100%; border-radius: 3px; transition: width 1.2s cubic-bezier(0.16, 1, 0.3, 1); animation: barGrow 1.5s cubic-bezier(0.16, 1, 0.3, 1) both; } @keyframes barGrow { from { width: 0% !important; } } .cat-count { font-family: 'Syne', sans-serif; font-size: 14px; font-weight: 700; text-align: right; } /* Monthly chart */ .monthly-chart { background: var(--card); border: 1px solid var(--border); border-radius: 12px; padding: 24px; } .chart-bars { display: flex; align-items: flex-end; gap: 16px; height: 120px; margin-bottom: 12px; } .chart-bar-wrap { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 6px; height: 100%; justify-content: flex-end; } .chart-bar-value { font-size: 11px; color: var(--muted); font-family: 'Syne', sans-serif; font-weight: 700; } .chart-bar-inner { width: 100%; border-radius: 6px 6px 0 0; animation: barUp 1.2s cubic-bezier(0.16,1,0.3,1) both; min-height: 4px; } @keyframes barUp { from { height: 0 !important; } } .chart-labels { display: flex; gap: 16px; } .chart-label { flex: 1; text-align: center; font-size: 10px; color: var(--muted); letter-spacing: 1px; } /* Top conversations */ .top-list { display: flex; flex-direction: column; gap: 8px; } .top-item { background: var(--card); border: 1px solid var(--border); border-radius: 10px; padding: 14px 18px; display: flex; align-items: center; gap: 14px; transition: transform 0.2s, border-color 0.2s; } .top-item:hover { transform: translateX(4px); border-color: var(--accent2); } .top-rank { font-family: 'Syne', sans-serif; font-size: 20px; font-weight: 800; color: var(--border); min-width: 28px; } .top-info { flex: 1; } .top-title { font-size: 13px; color: var(--text); margin-bottom: 3px; } .top-msgs { font-size: 11px; color: var(--muted); } .top-badge { font-size: 10px; padding: 4px 10px; border-radius: 20px; letter-spacing: 1px; } /* Insights */ .insights-grid { display: grid; grid-template-columns: 1fr; gap: 12px; } @media (min-width: 600px) { .insights-grid { grid-template-columns: 1fr 1fr; } } .insight-card { background: var(--card); border: 1px solid var(--border); border-radius: 12px; padding: 20px; transition: border-color 0.2s; } .insight-card:hover { border-color: var(--accent3); } .insight-icon { font-size: 24px; margin-bottom: 10px; } .insight-title { font-family: 'Syne', sans-serif; font-size: 13px; font-weight: 700; color: var(--text); margin-bottom: 8px; } .insight-text { font-size: 12px; color: var(--muted); line-height: 1.8; } /* Footer */ .footer { text-align: center; padding: 40px 0 20px; color: var(--muted); font-size: 11px; letter-spacing: 2px; animation: fadeUp 0.8s 1s ease both; } /* Animations */ @keyframes fadeDown { from { opacity: 0; transform: translateY(-20px); } to { opacity: 1; transform: translateY(0); } } @keyframes fadeUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } .delay-1 { animation-delay: 0.1s; } .delay-2 { animation-delay: 0.3s; } .delay-3 { animation-delay: 0.5s; } .delay-4 { animation-delay: 0.7s; } .delay-5 { animation-delay: 0.9s; } /* Profile chip */ .profile-chip { display: inline-flex; align-items: center; gap: 10px; background: var(--card); border: 1px solid var(--border); border-radius: 100px; padding: 8px 20px 8px 8px; margin-bottom: 30px; } .profile-avatar { width: 32px; height: 32px; background: linear-gradient(135deg, var(--accent1), var(--accent2)); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-family: 'Syne', sans-serif; font-weight: 800; font-size: 14px; color: white; } .profile-text { font-size: 12px; color: var(--muted); } .profile-text span { color: var(--text); } </style> </head> <body> <div class="container"> <!-- Header --> <div class="header"> <div class="tag">ChatGPT Export Analysis</div> <h1>Your AI Conversation<br>Report</h1> <p>Dec 2025 — Apr 2026 · Full Export Analysis</p> <br> <div class="profile-chip"> <div class="profile-avatar">S</div> <div class="profile-text">User born <span>2006</span> · Free Plan · <span>syamaeib@gmail.com</span></div> </div> </div> <!-- Key Stats --> <div class="stats-grid"> <div class="stat-card"> <div class="stat-number">166</div> <div class="stat-label">Conversations</div> </div> <div class="stat-card"> <div class="stat-number">1,902</div> <div class="stat-label">Your Messages</div> </div> <div class="stat-card"> <div class="stat-number">2,363</div> <div class="stat-label">AI Replies</div> </div> <div class="stat-card"> <div class="stat-number">142</div> <div class="stat-label">Days Active</div> </div> </div> <!-- Monthly Activity --> <div class="section delay-2"> <div class="section-title">Monthly Activity</div> <div class="monthly-chart"> <div class="chart-bars"> <!-- Dec 2025: 21 --> <div class="chart-bar-wrap"> <div class="chart-bar-value">21</div> <div class="chart-bar-inner" style="height:52px; background: linear-gradient(180deg, var(--accent1), rgba(124,106,247,0.5));"></div> </div> <!-- Jan 2026: 39 --> <div class="chart-bar-wrap"> <div class="chart-bar-value">39</div> <div class="chart-bar-inner" style="height:98px; background: linear-gradient(180deg, var(--accent2), rgba(247,106,140,0.5));"></div> </div> <!-- Feb 2026: 28 --> <div class="chart-bar-wrap"> <div class="chart-bar-value">28</div> <div class="chart-bar-inner" style="height:70px; background: linear-gradient(180deg, var(--accent3), rgba(106,247,194,0.5));"></div> </div> <!-- Mar 2026: 38 --> <div class="chart-bar-wrap"> <div class="chart-bar-value">38</div> <div class="chart-bar-inner" style="height:95px; background: linear-gradient(180deg, var(--accent4), rgba(247,194,106,0.5));"></div> </div> <!-- Apr 2026: 40 --> <div class="chart-bar-wrap"> <div class="chart-bar-value">40</div> <div class="chart-bar-inner" style="height:100px; background: linear-gradient(180deg, var(--accent1), rgba(124,106,247,0.5));"></div> </div> </div> <div class="chart-labels"> <div class="chart-label">DEC '25</div> <div class="chart-label">JAN '26</div> <div class="chart-label">FEB '26</div> <div class="chart-label">MAR '26</div> <div class="chart-label">APR '26</div> </div> </div> </div> <!-- Topic Breakdown --> <div class="section delay-3"> <div class="section-title">Topic Breakdown</div> <div class="category-list"> <div class="cat-item"> <div class="cat-name">🥗 Nutrition & Diet</div> <div class="cat-bar-bg"><div class="cat-bar" style="width:72%; background: linear-gradient(90deg, var(--accent3), rgba(106,247,194,0.5));"></div></div> <div class="cat-count" style="color:var(--accent3)">~62</div> </div> <div class="cat-item"> <div class="cat-name">🩺 Health & Medical</div> <div class="cat-bar-bg"><div class="cat-bar" style="width:30%; background: linear-gradient(90deg, var(--accent2), rgba(247,106,140,0.5));"></div></div> <div class="cat-count" style="color:var(--accent2)">~22</div> </div> <div class="cat-item"> <div class="cat-name">💪 Fitness & Gym</div> <div class="cat-bar-bg"><div class="cat-bar" style="width:25%; background: linear-gradient(90deg, var(--accent1), rgba(124,106,247,0.5));"></div></div> <div class="cat-count" style="color:var(--accent1)">~20</div> </div> <div class="cat-item"> <div class="cat-name">🎓 Education & College</div> <div class="cat-bar-bg"><div class="cat-bar" style="width:18%; background: linear-gradient(90deg, var(--accent4), rgba(247,194,106,0.5));"></div></div> <div class="cat-count" style="color:var(--accent4)">~15</div> </div> <div class="cat-item"> <div class="cat-name">🎌 Anime & Entertainment</div> <div class="cat-bar-bg"><div class="cat-bar" style="width:15%; background: linear-gradient(90deg, #f76af0, rgba(247,106,240,0.5));"></div></div> <div class="cat-count" style="color:#f76af0">~12</div> </div> <div class="cat-item"> <div class="cat-name">🖥️ Tech & Gaming</div> <div class="cat-bar-bg"><div class="cat-bar" style="width:14%; background: linear-gradient(90deg, #6ab4f7, rgba(106,180,247,0.5));"></div></div> <div class="cat-count" style="color:#6ab4f7">~12</div> </div> <div class="cat-item"> <div class="cat-name">🧬 Supplements</div> <div class="cat-bar-bg"><div class="cat-bar" style="width:12%; background: linear-gradient(90deg, var(--accent3), rgba(106,247,194,0.3));"></div></div> <div class="cat-count" style="color:var(--accent3)">~10</div> </div> <div class="cat-item"> <div class="cat-name">🧮 Coding & Math</div> <div class="cat-bar-bg"><div class="cat-bar" style="width:9%; background: linear-gradient(90deg, var(--accent1), rgba(124,106,247,0.3));"></div></div> <div class="cat-count" style="color:var(--accent1)">~8</div> </div> <div class="cat-item"> <div class="cat-name">🙋 Personal / Lifestyle</div> <div class="cat-bar-bg"><div class="cat-bar" style="width:9%; background: linear-gradient(90deg, var(--accent4), rgba(247,194,106,0.3));"></div></div> <div class="cat-count" style="color:var(--accent4)">~5</div> </div> </div> </div> <!-- Top Conversations --> <div class="section delay-4"> <div class="section-title">Most Active Conversations</div> <div class="top-list"> <div class="top-item"> <div class="top-rank">01</div> <div class="top-info"> <div class="top-title">Body Fat Percentage Estimate</div> <div class="top-msgs">1,473 messages · Health</div> </div> <div class="top-badge" style="background:rgba(247,106,140,0.15);color:var(--accent2)">EPIC</div> </div> <div class="top-item"> <div class="top-rank">02</div> <div class="top-info"> <div class="top-title">Gym Tips for Beginners</div> <div class="top-msgs">645 messages · Fitness</div> </div> <div class="top-badge" style="background:rgba(124,106,247,0.15);color:var(--accent1)">LONG</div> </div> <div class="top-item"> <div class="top-rank">03</div> <div class="top-info"> <div class="top-title">Lab Report Summary</div> <div class="top-msgs">394 messages · Medical</div> </div> <div class="top-badge" style="background:rgba(106,247,194,0.15);color:var(--accent3)">DEEP</div> </div> <div class="top-item"> <div class="top-rank">04</div> <div class="top-info"> <div class="top-title">Blood Sugar Post-Meal</div> <div class="top-msgs">84 messages · Nutrition</div> </div> <div class="top-badge" style="background:rgba(247,194,106,0.15);color:var(--accent4)">ACTIVE</div> </div> <div class="top-item"> <div class="top-rank">05</div> <div class="top-info"> <div class="top-title">Dying Light Steam Price</div> <div class="top-msgs">77 messages · Gaming</div> </div> <div class="top-badge" style="background:rgba(106,180,247,0.15);color:#6ab4f7">ACTIVE</div> </div> </div> </div> <!-- Insights --> <div class="section delay-5"> <div class="section-title">Key Insights</div> <div class="insights-grid"> <div class="insight-card"> <div class="insight-icon">🩸</div> <div class="insight-title">Managing a Health Condition</div> <div class="insight-text">You have many conversations about prediabetes, blood sugar, metformin, and lab reports — suggesting you're actively monitoring and managing a health condition. You asked very detailed, specific questions about glucose, insulin, and organ effects.</div> </div> <div class="insight-card"> <div class="insight-icon">💪</div> <div class="insight-title">Serious About Fitness</div> <div class="insight-text">Gym tips, workout splits, body fat %, incline walking, creatine, whey protein — you're deeply invested in fitness and bodybuilding. Your longest single conversation (1,473 msgs!) was about body fat estimation.</div> </div> <div class="insight-card"> <div class="insight-icon">🎓</div> <div class="insight-title">Making a Big Life Decision</div> <div class="insight-text">Multiple conversations about Aakash, Physics Wallah, Narayana PU College, PCMC/PCMB switch, and Presidency College exams show you're in the middle of choosing your academic path — likely preparing for competitive entrance exams.</div> </div> <div class="insight-card"> <div class="insight-icon">🎌</div> <div class="insight-title">Passionate Anime Fan</div> <div class="insight-text">You debated Naruto vs AOT vs One Piece multiple times, discussed Gojo vs Yuji, and Minato's absence. One Piece vs Naruto appeared 3 separate times — clearly a topic you're very passionate about!</div> </div> <div class="insight-card"> <div class="insight-icon">🖥️</div> <div class="insight-title">Tech-Savvy Gamer</div> <div class="insight-text">You researched KLIM laptops, Lenovo LOQ, DX11 vs DX12, Dying Light pricing, and game difficulty tips (Hunter Build, Master Mode). You compare specs carefully before buying.</div> </div> <div class="insight-card"> <div class="insight-icon">🥗</div> <div class="insight-title">Nutrition Obsessed</div> <div class="insight-text">Rice, tofu, soya chunks, sweet potato, stevia, chicken liver — you asked about almost every food category. You're carefully tracking macros, GI index, and cooking methods, likely tied to managing your health condition.</div> </div> <div class="insight-card"> <div class="insight-icon">😴</div> <div class="insight-title">Sleep Struggles</div> <div class="insight-text">Multiple chats about trouble sleeping, sleep timing impact, sleep rebound effects, nap impact, and sleep duration calc
~/chatgpt-report/report.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ChatGPT Conversation Analysis</title>
<link href="https://fonts.googleapis.com/css2?family=Syne:wght@400;600;700;800&family=DM+Mono:wght@300;400;500&display=swap" rel="stylesheet">
<style>
:root {
--bg: #0a0a0f;
--surface: #12121a;
--card: #1a1a26;
--border: #2a2a40;
--accent1: #7c6af7;
--accent2: #f76a8c;
--accent3: #6af7c2;
--accent4: #f7c26a;
--text: #e8e8f0;
--muted: #8888aa;
}
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
background: var(--bg);
color: var(--text);
font-family: 'DM Mono', monospace;
min-height: 100vh;
overflow-x: hidden;
}
body::before {
content: '';
position: fixed;
top: 0; left: 0; right: 0; bottom: 0;
background:
radial-gradient(ellipse 600px 400px at 10% 20%, rgba(124,106,247,0.08) 0%, transparent 70%),
radial-gradient(ellipse 500px 300px at 90% 80%, rgba(247,106,140,0.06) 0%, transparent 70%),
radial-gradient(ellipse 400px 400px at 50% 50%, rgba(106,247,194,0.04) 0%, transparent 70%);
pointer-events: none;
z-index: 0;
}
.container {
max-width: 900px;
margin: 0 auto;
padding: 40px 20px;
position: relative;
z-index: 1;
}
/* Header */
.header {
text-align: center;
margin-bottom: 60px;
animation: fadeDown 0.8s ease both;
}
.header .tag {
display: inline-block;
font-size: 10px;
letter-spacing: 4px;
text-transform: uppercase;
color: var(--accent3);
border: 1px solid rgba(106,247,194,0.3);
padding: 6px 16px;
border-radius: 2px;
margin-bottom: 20px;
}
.header h1 {
font-family: 'Syne', sans-serif;
font-size: clamp(32px, 6vw, 56px);
font-weight: 800;
line-height: 1.1;
background: linear-gradient(135deg, var(--text) 0%, var(--accent1) 50%, var(--accent2) 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
margin-bottom: 12px;
}
.header p {
color: var(--muted);
font-size: 13px;
letter-spacing: 1px;
}
/* Stats grid */
.stats-grid {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 16px;
margin-bottom: 40px;
animation: fadeUp 0.8s 0.2s ease both;
}
@media (min-width: 600px) {
.stats-grid { grid-template-columns: repeat(4, 1fr); }
}
.stat-card {
background: var(--card);
border: 1px solid var(--border);
border-radius: 12px;
padding: 20px 16px;
text-align: center;
position: relative;
overflow: hidden;
transition: transform 0.2s, border-color 0.2s;
}
.stat-card:hover {
transform: translateY(-3px);
border-color: var(--accent1);
}
.stat-card::before {
content: '';
position: absolute;
top: 0; left: 0; right: 0;
height: 2px;
}
.stat-card:nth-child(1)::before { background: var(--accent1); }
.stat-card:nth-child(2)::before { background: var(--accent2); }
.stat-card:nth-child(3)::before { background: var(--accent3); }
.stat-card:nth-child(4)::before { background: var(--accent4); }
.stat-number {
font-family: 'Syne', sans-serif;
font-size: 30px;
font-weight: 800;
line-height: 1;
margin-bottom: 6px;
}
.stat-card:nth-child(1) .stat-number { color: var(--accent1); }
.stat-card:nth-child(2) .stat-number { color: var(--accent2); }
.stat-card:nth-child(3) .stat-number { color: var(--accent3); }
.stat-card:nth-child(4) .stat-number { color: var(--accent4); }
.stat-label {
font-size: 10px;
color: var(--muted);
letter-spacing: 2px;
text-transform: uppercase;
}
/* Section */
.section {
margin-bottom: 40px;
animation: fadeUp 0.8s 0.4s ease both;
}
.section-title {
font-family: 'Syne', sans-serif;
font-size: 11px;
font-weight: 700;
letter-spacing: 4px;
text-transform: uppercase;
color: var(--accent1);
margin-bottom: 20px;
display: flex;
align-items: center;
gap: 12px;
}
.section-title::after {
content: '';
flex: 1;
height: 1px;
background: var(--border);
}
/* Category bars */
.category-list { display: flex; flex-direction: column; gap: 12px; }
.cat-item {
background: var(--card);
border: 1px solid var(--border);
border-radius: 10px;
padding: 14px 16px;
display: grid;
grid-template-columns: 180px 1fr 44px;
align-items: center;
gap: 16px;
transition: border-color 0.2s;
}
.cat-item:hover { border-color: var(--accent1); }
.cat-name {
font-size: 12px;
color: var(--text);
white-space: nowrap;
}
.cat-bar-bg {
height: 6px;
background: var(--border);
border-radius: 3px;
overflow: hidden;
}
.cat-bar {
height: 100%;
border-radius: 3px;
transition: width 1.2s cubic-bezier(0.16, 1, 0.3, 1);
animation: barGrow 1.5s cubic-bezier(0.16, 1, 0.3, 1) both;
}
@keyframes barGrow {
from { width: 0% !important; }
}
.cat-count {
font-family: 'Syne', sans-serif;
font-size: 14px;
font-weight: 700;
text-align: right;
}
/* Monthly chart */
.monthly-chart {
background: var(--card);
border: 1px solid var(--border);
border-radius: 12px;
padding: 24px;
}
.chart-bars {
display: flex;
align-items: flex-end;
gap: 16px;
height: 120px;
margin-bottom: 12px;
}
.chart-bar-wrap {
flex: 1;
display: flex;
flex-direction: column;
align-items: center;
gap: 6px;
height: 100%;
justify-content: flex-end;
}
.chart-bar-value {
font-size: 11px;
color: var(--muted);
font-family: 'Syne', sans-serif;
font-weight: 700;
}
.chart-bar-inner {
width: 100%;
border-radius: 6px 6px 0 0;
animation: barUp 1.2s cubic-bezier(0.16,1,0.3,1) both;
min-height: 4px;
}
@keyframes barUp {
from { height: 0 !important; }
}
.chart-labels {
display: flex;
gap: 16px;
}
.chart-label {
flex: 1;
text-align: center;
font-size: 10px;
color: var(--muted);
letter-spacing: 1px;
}
/* Top conversations */
.top-list { display: flex; flex-direction: column; gap: 8px; }
.top-item {
background: var(--card);
border: 1px solid var(--border);
border-radius: 10px;
padding: 14px 18px;
display: flex;
align-items: center;
gap: 14px;
transition: transform 0.2s, border-color 0.2s;
}
.top-item:hover {
transform: translateX(4px);
border-color: var(--accent2);
}
.top-rank {
font-family: 'Syne', sans-serif;
font-size: 20px;
font-weight: 800;
color: var(--border);
min-width: 28px;
}
.top-info { flex: 1; }
.top-title {
font-size: 13px;
color: var(--text);
margin-bottom: 3px;
}
.top-msgs {
font-size: 11px;
color: var(--muted);
}
.top-badge {
font-size: 10px;
padding: 4px 10px;
border-radius: 20px;
letter-spacing: 1px;
}
/* Insights */
.insights-grid {
display: grid;
grid-template-columns: 1fr;
gap: 12px;
}
@media (min-width: 600px) {
.insights-grid { grid-template-columns: 1fr 1fr; }
}
.insight-card {
background: var(--card);
border: 1px solid var(--border);
border-radius: 12px;
padding: 20px;
transition: border-color 0.2s;
}
.insight-card:hover { border-color: var(--accent3); }
.insight-icon {
font-size: 24px;
margin-bottom: 10px;
}
.insight-title {
font-family: 'Syne', sans-serif;
font-size: 13px;
font-weight: 700;
color: var(--text);
margin-bottom: 8px;
}
.insight-text {
font-size: 12px;
color: var(--muted);
line-height: 1.8;
}
/* Fun Facts */
.funfacts-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 12px;
}
@media (max-width: 599px) {
.funfacts-grid { grid-template-columns: 1fr; }
}
.funfact-card {
background: var(--card);
border: 1px solid var(--border);
border-radius: 12px;
padding: 20px;
transition: border-color 0.2s;
}
.funfact-card:hover { border-color: var(--accent4); }
.funfact-icon {
font-size: 28px;
margin-bottom: 10px;
}
.funfact-title {
font-family: 'Syne', sans-serif;
font-size: 13px;
font-weight: 700;
color: var(--text);
margin-bottom: 8px;
}
.funfact-text {
font-size: 12px;
color: var(--muted);
line-height: 1.8;
}
.highlight-accent2 { color: var(--accent2); font-weight: 700; }
.highlight-accent3 { color: var(--accent3); font-weight: 700; }
.highlight-accent1 { color: var(--accent1); font-weight: 700; }
.highlight-accent4 { color: var(--accent4); font-weight: 700; }
/* Footer */
.footer {
text-align: center;
padding: 40px 0 20px;
color: var(--muted);
font-size: 11px;
letter-spacing: 2px;
animation: fadeUp 0.8s 1s ease both;
}
/* Animations */
@keyframes fadeDown {
from { opacity: 0; transform: translateY(-20px); }
to { opacity: 1; transform: translateY(0); }
}
@keyframes fadeUp {
from { opacity: 0; transform: translateY(20px); }
to { opacity: 1; transform: translateY(0); }
}
.delay-1 { animation-delay: 0.1s; }
.delay-2 { animation-delay: 0.3s; }
.delay-3 { animation-delay: 0.5s; }
.delay-4 { animation-delay: 0.7s; }
.delay-5 { animation-delay: 0.9s; }
/* Profile chip */
.profile-chip {
display: inline-flex;
align-items: center;
gap: 10px;
background: var(--card);
border: 1px solid var(--border);
border-radius: 100px;
padding: 8px 20px 8px 8px;
margin-bottom: 30px;
}
.profile-avatar {
width: 32px;
height: 32px;
background: linear-gradient(135deg, var(--accent1), var(--accent2));
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
font-family: 'Syne', sans-serif;
font-weight: 800;
font-size: 14px;
color: white;
}
.profile-text { font-size: 12px; color: var(--muted); }
.profile-text span { color: var(--text); }
</style>
</head>
<body>
<div class="container">
<!-- Header -->
<div class="header">
<div class="tag">ChatGPT Export Analysis</div>
<h1>Your AI Conversation<br>Report</h1>
<p>Dec 2025 · Apr 2026 · Full Export Analysis</p>
<br>
<div class="profile-chip">
<div class="profile-avatar">S</div>
<div class="profile-text">User born <span>2006</span> · Free Plan · <span>syamaeib@gmail.com</span></div>
</div>
</div>
<!-- Key Stats -->
<div class="stats-grid">
<div class="stat-card">
<div class="stat-number">166</div>
<div class="stat-label">Conversations</div>
</div>
<div class="stat-card">
<div class="stat-number">1,902</div>
<div class="stat-label">Your Messages</div>
</div>
<div class="stat-card">
<div class="stat-number">2,363</div>
<div class="stat-label">AI Replies</div>
</div>
<div class="stat-card">
<div class="stat-number">142</div>
<div class="stat-label">Days Active</div>
</div>
</div>
<!-- Monthly Activity -->
<div class="section delay-2">
<div class="section-title">Monthly Activity</div>
<div class="monthly-chart">
<div class="chart-bars">
<div class="chart-bar-wrap">
<div class="chart-bar-value">21</div>
<div class="chart-bar-inner" style="height:52px; background: linear-gradient(180deg, var(--accent1), rgba(124,106,247,0.5));"></div>
</div>
<div class="chart-bar-wrap">
<div class="chart-bar-value">39</div>
<div class="chart-bar-inner" style="height:98px; background: linear-gradient(180deg, var(--accent2), rgba(247,106,140,0.5));"></div>
</div>
<div class="chart-bar-wrap">
<div class="chart-bar-value">28</div>
<div class="chart-bar-inner" style="height:70px; background: linear-gradient(180deg, var(--accent3), rgba(106,247,194,0.5));"></div>
</div>
<div class="chart-bar-wrap">
<div class="chart-bar-value">38</div>
<div class="chart-bar-inner" style="height:95px; background: linear-gradient(180deg, var(--accent4), rgba(247,194,106,0.5));"></div>
</div>
<div class="chart-bar-wrap">
<div class="chart-bar-value">40</div>
<div class="chart-bar-inner" style="height:100px; background: linear-gradient(180deg, var(--accent1), rgba(124,106,247,0.5));"></div>
</div>
</div>
<div class="chart-labels">
<div class="chart-label">DEC '25</div>
<div class="chart-label">JAN '26</div>
<div class="chart-label">FEB '26</div>
<div class="chart-label">MAR '26</div>
<div class="chart-label">APR '26</div>
</div>
</div>
</div>
<!-- Topic Breakdown -->
<div class="section delay-3">
<div class="section-title">Topic Breakdown</div>
<div class="category-list">
<div class="cat-item">
<div class="cat-name">🥗 Nutrition & Diet</div>
<div class="cat-bar-bg"><div class="cat-bar" style="width:72%; background: linear-gradient(90deg, var(--accent3), rgba(106,247,194,0.5));"></div></div>
<div class="cat-count" style="color:var(--accent3)">~62</div>
</div>
<div class="cat-item">
<div class="cat-name">🩺 Health & Medical</div>
<div class="cat-bar-bg"><div class="cat-bar" style="width:30%; background: linear-gradient(90deg, var(--accent2), rgba(247,106,140,0.5));"></div></div>
<div class="cat-count" style="color:var(--accent2)">~22</div>
</div>
<div class="cat-item">
<div class="cat-name">💪 Fitness & Gym</div>
<div class="cat-bar-bg"><div class="cat-bar" style="width:25%; background: linear-gradient(90deg, var(--accent1), rgba(124,106,247,0.5));"></div></div>
<div class="cat-count" style="color:var(--accent1)">~20</div>
</div>
<div class="cat-item">
<div class="cat-name">🎓 Education & College</div>
<div class="cat-bar-bg"><div class="cat-bar" style="width:18%; background: linear-gradient(90deg, var(--accent4), rgba(247,194,106,0.5));"></div></div>
<div class="cat-count" style="color:var(--accent4)">~15</div>
</div>
<div class="cat-item">
<div class="cat-name">🎌 Anime & Entertainment</div>
<div class="cat-bar-bg"><div class="cat-bar" style="width:15%; background: linear-gradient(90deg, #f76af0, rgba(247,106,240,0.5));"></div></div>
<div class="cat-count" style="color:#f76af0">~12</div>
</div>
<div class="cat-item">
<div class="cat-name">🖥️ Tech & Gaming</div>
<div class="cat-bar-bg"><div class="cat-bar" style="width:14%; background: linear-gradient(90deg, #6ab4f7, rgba(106,180,247,0.5));"></div></div>
<div class="cat-count" style="color:#6ab4f7">~12</div>
</div>
<div class="cat-item">
<div class="cat-name">🧬 Supplements</div>
<div class="cat-bar-bg"><div class="cat-bar" style="width:12%; background: linear-gradient(90deg, var(--accent3), rgba(106,247,194,0.3));"></div></div>
<div class="cat-count" style="color:var(--accent3)">~10</div>
</div>
<div class="cat-item">
<div class="cat-name">🧮 Coding & Math</div>
<div class="cat-bar-bg"><div class="cat-bar" style="width:9%; background: linear-gradient(90deg, var(--accent1), rgba(124,106,247,0.3));"></div></div>
<div class="cat-count" style="color:var(--accent1)">~8</div>
</div>
<div class="cat-item">
<div class="cat-name">🙋 Personal / Lifestyle</div>
<div class="cat-bar-bg"><div class="cat-bar" style="width:9%; background: linear-gradient(90deg, var(--accent4), rgba(247,194,106,0.3));"></div></div>
<div class="cat-count" style="color:var(--accent4)">~5</div>
</div>
</div>
</div>
<!-- Top Conversations -->
<div class="section delay-4">
<div class="section-title">Most Active Conversations</div>
<div class="top-list">
<div class="top-item">
<div class="top-rank">01</div>
<div class="top-info">
<div class="top-title">Body Fat Percentage Estimate</div>
<div class="top-msgs">1,473 messages · Health</div>
</div>
<div class="top-badge" style="background:rgba(247,106,140,0.15);color:var(--accent2)">EPIC</div>
</div>
<div class="top-item">
<div class="top-rank">02</div>
<div class="top-info">
<div class="top-title">Gym Tips for Beginners</div>
<div class="top-msgs">645 messages · Fitness</div>
</div>
<div class="top-badge" style="background:rgba(124,106,247,0.15);color:var(--accent1)">LONG</div>
</div>
<div class="top-item">
<div class="top-rank">03</div>
<div class="top-info">
<div class="top-title">Lab Report Summary</div>
<div class="top-msgs">394 messages · Medical</div>
</div>
<div class="top-badge" style="background:rgba(106,247,194,0.15);color:var(--accent3)">DEEP</div>
</div>
<div class="top-item">
<div class="top-rank">04</div>
<div class="top-info">
<div class="top-title">Blood Sugar Post-Meal</div>
<div class="top-msgs">84 messages · Nutrition</div>
</div>
<div class="top-badge" style="background:rgba(247,194,106,0.15);color:var(--accent4)">ACTIVE</div>
</div>
<div class="top-item">
<div class="top-rank">05</div>
<div class="top-info">
<div class="top-title">Dying Light Steam Price</div>
<div class="top-msgs">77 messages · Gaming</div>
</div>
<div class="top-badge" style="background:rgba(106,180,247,0.15);color:#6ab4f7">ACTIVE</div>
</div>
</div>
</div>
<!-- Key Insights -->
<div class="section delay-5">
<div class="section-title">Key Insights</div>
<div class="insights-grid">
<div class="insight-card">
<div class="insight-icon">🩸</div>
<div class="insight-title">Managing a Health Condition</div>
<div class="insight-text">You have many conversations about prediabetes, blood sugar, metformin, and lab reports — suggesting you're actively monitoring and managing a health condition. You asked very detailed, specific questions about glucose, insulin, and organ effects.</div>
</div>
<div class="insight-card">
<div class="insight-icon">💪</div>
<div class="insight-title">Serious About Fitness</div>
<div class="insight-text">Gym tips, workout splits, body fat %, incline walking, creatine, whey protein — you're deeply invested in fitness and bodybuilding. Your longest single conversation (1,473 msgs!) was about body fat estimation.</div>
</div>
<div class="insight-card">
<div class="insight-icon">🎓</div>
<div class="insight-title">Making a Big Life Decision</div>
<div class="insight-text">Multiple conversations about Aakash, Physics Wallah, Narayana PU College, PCMC/PCMB switch, and Presidency College exams show you're in the middle of choosing your academic path — likely preparing for competitive entrance exams.</div>
</div>
<div class="insight-card">
<div class="insight-icon">🎌</div>
<div class="insight-title">Passionate Anime Fan</div>
<div class="insight-text">You debated Naruto vs AOT vs One Piece multiple times, discussed Gojo vs Yuji, and Minato's absence. One Piece vs Naruto appeared 3 separate times — clearly a topic you're very passionate about!</div>
</div>
<div class="insight-card">
<div class="insight-icon">🖥️</div>
<div class="insight-title">Tech-Savvy Gamer</div>
<div class="insight-text">You researched KLIM laptops, Lenovo LOQ, DX11 vs DX12, Dying Light pricing, and game difficulty tips (Hunter Build, Master Mode). You compare specs carefully before buying.</div>
</div>
<div class="insight-card">
<div class="insight-icon">🥗</div>
<div class="insight-title">Nutrition Obsessed</div>
<div class="insight-text">Rice, tofu, soya chunks, sweet potato, stevia, chicken liver — you asked about almost every food category. You're carefully tracking macros, GI index, and cooking methods, likely tied to managing your health condition.</div>
</div>
<div class="insight-card">
<div class="insight-icon">😴</div>
<div class="insight-title">Sleep Struggles</div>
<div class="insight-text">Multiple chats about trouble sleeping, sleep timing impact, sleep rebound effects, nap impact, and sleep duration calculation. Sleep quality is a recurring concern for you.</div>
</div>
<div class="insight-card">
<div class="insight-icon">📈</div>
<div class="insight-title">Growing Usage Over Time</div>
<div class="insight-text">You started with 21 conversations in Dec 2025 and peaked at 40 in April 2026 — nearly doubling your usage. You're relying on ChatGPT more and more each month.</div>
</div>
</div>
</div>
<!-- Fun Facts -->
<div class="section delay-5">
<div class="section-title">Fun Facts</div>
<div class="funfacts-grid">
<div class="funfact-card">
<div class="funfact-icon">⚔️</div>
<div class="funfact-title">Most Debated Topic</div>
<div class="funfact-text"><span class="highlight-accent2">Naruto vs One Piece</span> — you started this debate at least <span class="highlight-accent2">4 separate times</span>! You clearly can't make up your mind.</div>
</div>
<div class="funfact-card">
<div class="funfact-icon">🔬</div>
<div class="funfact-title">Most Focused Topic</div>
<div class="funfact-text"><span class="highlight-accent3">Nutrition</span> makes up over <span class="highlight-accent3">37%</span> of all your conversations — you're practically a food scientist at this point!</div>
</div>
<div class="funfact-card">
<div class="funfact-icon">📚</div>
<div class="funfact-title">Deepest Dive</div>
<div class="funfact-text">The "Body Fat Percentage Estimate" conversation had <span class="highlight-accent1">1,473 messages</span> — that's almost a full book's worth of conversation in one thread!</div>
</div>
<div class="funfact-card">
<div class="funfact-icon">🌟</div>
<div class="funfact-title">Young & Curious</div>
<div class="funfact-text">Born in <span class="highlight-accent4">2006</span>, you're around 19 years old and using AI to navigate everything from college choices to health and gaming. That's impressive!</div>
</div>
</div>
</div>
<!-- Footer -->
<div class="footer">
GENERATED FROM CHATGPT EXPORT ANALYSIS · JULY 2026
</div>
</div>
</body>
</html>
which chromium-browser; which chromium; which google-chrome; which google-chrome-stable; which wkhtmltopdf; which puppeteer; node -e "require('puppeteer')" 2>/dev/null && echo "puppeteer ok"; node -e "require('playwright')" 2>/dev/null && echo "playwright ok"
/usr/bin/chromium --headless --no-sandbox --disable-gpu \ --print-to-pdf=/home/daytona/workspace/chatgpt-report/ChatGPT_Report_Web.pdf \ --print-to-pdf-no-header \ --no-pdf-header-footer \ --run-all-compositor-stages-before-draw \ --virtual-time-budget=3000 \ "file:///home/daytona/workspace/chatgpt-report/report.html" 2>&1
python3 -c " from pypdf import PdfReader r = PdfReader('/home/daytona/workspace/chatgpt-report/ChatGPT_Report_Web.pdf') print('Pages:', len(r.pages)) for i, p in enumerate(r.pages): print(f'Page {i+1}: {len(p.extract_text())} chars') "
ChatGPT Report Web
PDF Document · PDF
report
HTML File · HTML
#0a0a0f), gradient bars, colored stat numbers, badge pills, and the Syne/DM Mono font stack.& characters in topic names (Nutrition & Diet, etc.) were properly HTML-escaped to prevent rendering issues.Analyze it for me
| Metric | Value | What it means |
|---|---|---|
| 166 conversations | ~1.17/day | You open a new chat almost every single day |
| 1,902 user messages | ~11.5/convo avg | You're not browsing — you're having real back-and-forth sessions |
| 2,363 AI replies | 1.24 AI replies per your message | Healthy ratio — you're asking follow-ups, not just one-shots |
| 142 active days out of ~150 | 94.7% day coverage | You barely missed a day across 5 months |
Dec ████████░░░░░░░░░░░░ 21
Jan ████████████████████ 39 (+86% from Dec)
Feb ██████████████░░░░░░ 28 (-28% dip)
Mar ███████████████████░ 38 (+36% recovery)
Apr ████████████████████ 40 (new peak)
You will be my new guide
Heath i heard you are best at this
This is my weight now and I am not using any medication,Bro this my diet This is my diet, everyday 100g of mutton (goat), 150g fish, with any organ meat 35g, and 50g rice and nutritional fortified yeast 2g and 200g banana and 200g of Tempeh with 10ml of ghee AND 5 EGGS, and 200g of cabbage, 2 tablet calcium element calcium in each table is 350mg only , 1 tablet vit+d3, I want you to calculate everything in my new diet and make analysis report for me, every vit and minerals, even boron and chromium, tablet magnesium.Skin less thighs, lean bone less and some fat, fish basa,tempayy, white basmati rice, 50g each eggs, my organ rotation is like mutton kidney, chicken liver, mutton karpura and same thing for next 3days like that and only 35g organ meat per day. And i take 5g of iodised salt with my food, and i take magnesium glycinate it have 150mg element magnesium, and for my meat i take 1 onion medium size and 10g of garlic and 5g of ginger and all the spices and 16g of coriander seed and cinnamon, turmeric, chilli powder etc and i drink 2.5l of water and glycinate 1100mg - element magnesium 150mg, tata 1mg 4x strength Salmon Omega 2 tablet with vit E 10mg, everything is raw weight except, every thing is bone less and i take isabgol 10g everyday in the morning , this is my new diet broooo, nothing else I am taking. But chicken liver is only 25g,
~/chatgpt-report/nutrition_calc.py
"""
SYAM's FULL DAILY NUTRITION CALCULATOR
======================================
All raw weights. All values per day.
Organ rotation averaged over 3-day cycle:
Day 1: mutton kidney 35g
Day 2: chicken liver 25g
Day 3: mutton karpura (testes) 35g
Average/day used for all nutrients.
Sources: USDA FoodData Central values + Indian food composition tables
"""
# ─── FOOD DATABASE (per 100g raw edible) ──────────────────────────────────────
# Format: {cal, prot, fat, carb, fiber, vitamins/minerals}
# All mineral values in mg unless noted (mcg for B12, D, folate, K, selenium)
foods = {
# ── MEATS ─────────────────────────────────────────────────────────────────
"mutton_thigh_skinless": { # boneless, lean with some fat, goat leg
"g": 100,
"cal": 143, "prot": 27.1, "fat": 3.7, "carb": 0, "fiber": 0,
"vit_a_mcg": 0, "vit_c": 0, "vit_d_mcg": 0, "vit_e": 0.1,
"vit_k_mcg": 0, "vit_b1": 0.15, "vit_b2": 0.27, "vit_b3": 6.2,
"vit_b5": 0.8, "vit_b6": 0.4, "vit_b9_mcg": 5, "vit_b12_mcg": 2.6,
"calcium": 17, "phosphorus": 230, "magnesium": 25, "potassium": 385,
"sodium": 72, "iron": 2.3, "zinc": 5.3, "copper": 0.14,
"manganese": 0.03, "selenium_mcg": 9, "chromium_mcg": 1.5,
"iodine_mcg": 4, "boron_mcg": 0,
"choline": 70,
},
"fish_basa": { # pangasius, raw
"g": 100,
"cal": 89, "prot": 17.2, "fat": 2.0, "carb": 0, "fiber": 0,
"vit_a_mcg": 12, "vit_c": 0, "vit_d_mcg": 1.5, "vit_e": 0.6,
"vit_k_mcg": 0.1, "vit_b1": 0.08, "vit_b2": 0.07, "vit_b3": 3.9,
"vit_b5": 0.5, "vit_b6": 0.28, "vit_b9_mcg": 12, "vit_b12_mcg": 1.5,
"calcium": 35, "phosphorus": 210, "magnesium": 22, "potassium": 310,
"sodium": 55, "iron": 0.4, "zinc": 0.5, "copper": 0.05,
"manganese": 0.01, "selenium_mcg": 26, "chromium_mcg": 0.5,
"iodine_mcg": 40, "boron_mcg": 0,
"choline": 65,
},
# ── ORGAN ROTATION (averaged over 3 days) ────────────────────────────────
# Day1: mutton kidney 35g | Day2: chicken liver 25g | Day3: mutton karpura 35g
# Per 100g values:
"mutton_kidney": {
"g": 100,
"cal": 112, "prot": 18.5, "fat": 3.6, "carb": 0.8, "fiber": 0,
"vit_a_mcg": 118, "vit_c": 10, "vit_d_mcg": 0.5, "vit_e": 0.5,
"vit_k_mcg": 0, "vit_b1": 0.36, "vit_b2": 2.2, "vit_b3": 7.5,
"vit_b5": 3.8, "vit_b6": 0.45, "vit_b9_mcg": 88, "vit_b12_mcg": 79,
"calcium": 14, "phosphorus": 265, "magnesium": 17, "potassium": 295,
"sodium": 180, "iron": 6.2, "zinc": 2.9, "copper": 0.45,
"manganese": 0.18, "selenium_mcg": 141, "chromium_mcg": 8,
"iodine_mcg": 14, "boron_mcg": 0,
"choline": 350,
},
"chicken_liver": {
"g": 100,
"cal": 119, "prot": 17.1, "fat": 4.8, "carb": 0.7, "fiber": 0,
"vit_a_mcg": 3296, "vit_c": 17.9, "vit_d_mcg": 0.3, "vit_e": 0.7,
"vit_k_mcg": 0.7, "vit_b1": 0.29, "vit_b2": 2.31, "vit_b3": 9.7,
"vit_b5": 6.24, "vit_b6": 0.81, "vit_b9_mcg": 578, "vit_b12_mcg": 16.6,
"calcium": 8, "phosphorus": 297, "magnesium": 20, "potassium": 230,
"sodium": 71, "iron": 9.0, "zinc": 3.9, "copper": 0.49,
"manganese": 0.36, "selenium_mcg": 54.6, "chromium_mcg": 5,
"iodine_mcg": 15, "boron_mcg": 0,
"choline": 290,
},
"mutton_karpura": { # goat testes, similar to lamb testes
"g": 100,
"cal": 106, "prot": 17.8, "fat": 3.4, "carb": 0.5, "fiber": 0,
"vit_a_mcg": 5, "vit_c": 3, "vit_d_mcg": 0.2, "vit_e": 0.4,
"vit_k_mcg": 0, "vit_b1": 0.25, "vit_b2": 0.45, "vit_b3": 5.8,
"vit_b5": 1.5, "vit_b6": 0.38, "vit_b9_mcg": 22, "vit_b12_mcg": 3.5,
"calcium": 12, "phosphorus": 240, "magnesium": 20, "potassium": 330,
"sodium": 85, "iron": 3.0, "zinc": 4.5, "copper": 0.20,
"manganese": 0.08, "selenium_mcg": 28, "chromium_mcg": 2,
"iodine_mcg": 8, "boron_mcg": 0,
"choline": 80,
},
# ── PLANT FOODS ──────────────────────────────────────────────────────────
"white_basmati_rice_cooked": { # 50g raw = ~145g cooked; nutrients per 100g RAW
"g": 100,
"cal": 357, "prot": 6.7, "fat": 0.5, "carb": 79, "fiber": 0.6,
"vit_a_mcg": 0, "vit_c": 0, "vit_d_mcg": 0, "vit_e": 0.1,
"vit_k_mcg": 0, "vit_b1": 0.06, "vit_b2": 0.03, "vit_b3": 1.6,
"vit_b5": 0.5, "vit_b6": 0.12, "vit_b9_mcg": 8, "vit_b12_mcg": 0,
"calcium": 10, "phosphorus": 96, "magnesium": 12, "potassium": 85,
"sodium": 1, "iron": 0.4, "zinc": 0.5, "copper": 0.1,
"manganese": 0.5, "selenium_mcg": 7.5, "chromium_mcg": 0.5,
"iodine_mcg": 2, "boron_mcg": 20,
"choline": 2,
},
"banana": { # raw
"g": 100,
"cal": 89, "prot": 1.1, "fat": 0.3, "carb": 22.8, "fiber": 2.6,
"vit_a_mcg": 3, "vit_c": 8.7, "vit_d_mcg": 0, "vit_e": 0.1,
"vit_k_mcg": 0.5, "vit_b1": 0.03, "vit_b2": 0.07, "vit_b3": 0.67,
"vit_b5": 0.33, "vit_b6": 0.37, "vit_b9_mcg": 20, "vit_b12_mcg": 0,
"calcium": 5, "phosphorus": 22, "magnesium": 27, "potassium": 358,
"sodium": 1, "iron": 0.26, "zinc": 0.15, "copper": 0.08,
"manganese": 0.27, "selenium_mcg": 1, "chromium_mcg": 1,
"iodine_mcg": 3, "boron_mcg": 180,
"choline": 9.8,
},
"tempeh": { # raw
"g": 100,
"cal": 193, "prot": 18.5, "fat": 10.8, "carb": 9.4, "fiber": 4.1,
"vit_a_mcg": 0, "vit_c": 0, "vit_d_mcg": 0, "vit_e": 0.1,
"vit_k_mcg": 0, "vit_b1": 0.08, "vit_b2": 0.36, "vit_b3": 2.6,
"vit_b5": 0.28, "vit_b6": 0.22, "vit_b9_mcg": 24, "vit_b12_mcg": 0,
"calcium": 111, "phosphorus": 266, "magnesium": 81, "potassium": 412,
"sodium": 9, "iron": 2.7, "zinc": 1.14, "copper": 0.56,
"manganese": 1.30, "selenium_mcg": 0.3, "chromium_mcg": 0,
"iodine_mcg": 0, "boron_mcg": 450,
"choline": 87,
},
"cabbage": { # raw
"g": 100,
"cal": 25, "prot": 1.3, "fat": 0.1, "carb": 5.8, "fiber": 2.5,
"vit_a_mcg": 5, "vit_c": 36.6, "vit_d_mcg": 0, "vit_e": 0.15,
"vit_k_mcg": 76, "vit_b1": 0.06, "vit_b2": 0.04, "vit_b3": 0.23,
"vit_b5": 0.21, "vit_b6": 0.12, "vit_b9_mcg": 43, "vit_b12_mcg": 0,
"calcium": 40, "phosphorus": 26, "magnesium": 12, "potassium": 170,
"sodium": 18, "iron": 0.47, "zinc": 0.18, "copper": 0.02,
"manganese": 0.16, "selenium_mcg": 0.3, "chromium_mcg": 0.5,
"iodine_mcg": 0, "boron_mcg": 730,
"choline": 10.7,
},
"eggs_whole": { # large egg ~50g each, raw
"g": 100, # per 100g
"cal": 143, "prot": 12.6, "fat": 9.5, "carb": 0.7, "fiber": 0,
"vit_a_mcg": 149, "vit_c": 0, "vit_d_mcg": 2.0, "vit_e": 1.05,
"vit_k_mcg": 0.3, "vit_b1": 0.04, "vit_b2": 0.46, "vit_b3": 0.07,
"vit_b5": 1.53, "vit_b6": 0.17, "vit_b9_mcg": 47, "vit_b12_mcg": 1.11,
"calcium": 56, "phosphorus": 198, "magnesium": 12, "potassium": 138,
"sodium": 142, "iron": 1.75, "zinc": 1.29, "copper": 0.07,
"manganese": 0.03, "selenium_mcg": 30, "chromium_mcg": 1,
"iodine_mcg": 53, "boron_mcg": 0,
"choline": 294,
},
"ghee": { # per 100g
"g": 100,
"cal": 900, "prot": 0, "fat": 99.5, "carb": 0, "fiber": 0,
"vit_a_mcg": 840, "vit_c": 0, "vit_d_mcg": 1.5, "vit_e": 2.8,
"vit_k_mcg": 8.5, "vit_b1": 0, "vit_b2": 0, "vit_b3": 0,
"vit_b5": 0, "vit_b6": 0, "vit_b9_mcg": 0, "vit_b12_mcg": 0,
"calcium": 0, "phosphorus": 3, "magnesium": 0, "potassium": 5,
"sodium": 2, "iron": 0, "zinc": 0.05, "copper": 0,
"manganese": 0, "selenium_mcg": 0.5, "chromium_mcg": 0,
"iodine_mcg": 0, "boron_mcg": 0,
"choline": 0,
},
"nutritional_yeast": { # fortified, Urban Platter (standard nooch values)
"g": 100,
"cal": 360, "prot": 45, "fat": 5, "carb": 35, "fiber": 14,
"vit_a_mcg": 0, "vit_c": 0, "vit_d_mcg": 0, "vit_e": 0,
"vit_k_mcg": 0, "vit_b1": 10, "vit_b2": 10, "vit_b3": 50,
"vit_b5": 10, "vit_b6": 10, "vit_b9_mcg": 600, "vit_b12_mcg": 50,
"calcium": 50, "phosphorus": 1100, "magnesium": 250, "potassium": 1500,
"sodium": 10, "iron": 5, "zinc": 3.5, "copper": 0.5,
"manganese": 0.5, "selenium_mcg": 5, "chromium_mcg": 100,
"iodine_mcg": 0, "boron_mcg": 0,
"choline": 30,
},
# ── AROMATICS / SPICES ────────────────────────────────────────────────────
"onion_medium": { # ~110g per medium onion
"g": 100,
"cal": 40, "prot": 1.1, "fat": 0.1, "carb": 9.3, "fiber": 1.7,
"vit_a_mcg": 0, "vit_c": 7.4, "vit_d_mcg": 0, "vit_e": 0.02,
"vit_k_mcg": 0.4, "vit_b1": 0.05, "vit_b2": 0.03, "vit_b3": 0.12,
"vit_b5": 0.12, "vit_b6": 0.12, "vit_b9_mcg": 19, "vit_b12_mcg": 0,
"calcium": 23, "phosphorus": 29, "magnesium": 10, "potassium": 166,
"sodium": 4, "iron": 0.21, "zinc": 0.17, "copper": 0.04,
"manganese": 0.13, "selenium_mcg": 0.5, "chromium_mcg": 0,
"iodine_mcg": 3, "boron_mcg": 390,
"choline": 6.1,
},
"garlic": {
"g": 100,
"cal": 149, "prot": 6.4, "fat": 0.5, "carb": 33.1, "fiber": 2.1,
"vit_a_mcg": 0, "vit_c": 31.2, "vit_d_mcg": 0, "vit_e": 0.08,
"vit_k_mcg": 1.7, "vit_b1": 0.2, "vit_b2": 0.11, "vit_b3": 0.7,
"vit_b5": 0.6, "vit_b6": 1.24, "vit_b9_mcg": 3, "vit_b12_mcg": 0,
"calcium": 181, "phosphorus": 153, "magnesium": 25, "potassium": 401,
"sodium": 17, "iron": 1.7, "zinc": 1.16, "copper": 0.3,
"manganese": 1.67, "selenium_mcg": 14.2, "chromium_mcg": 0,
"iodine_mcg": 0, "boron_mcg": 0,
"choline": 23.2,
},
"ginger": {
"g": 100,
"cal": 80, "prot": 1.8, "fat": 0.8, "carb": 17.8, "fiber": 2.0,
"vit_a_mcg": 0, "vit_c": 5.0, "vit_d_mcg": 0, "vit_e": 0.26,
"vit_k_mcg": 0.1, "vit_b1": 0.03, "vit_b2": 0.03, "vit_b3": 0.75,
"vit_b5": 0.2, "vit_b6": 0.16, "vit_b9_mcg": 11, "vit_b12_mcg": 0,
"calcium": 16, "phosphorus": 34, "magnesium": 43, "potassium": 415,
"sodium": 13, "iron": 0.6, "zinc": 0.34, "copper": 0.23,
"manganese": 0.23, "selenium_mcg": 0.7, "chromium_mcg": 0,
"iodine_mcg": 0, "boron_mcg": 0,
"choline": 28.8,
},
"coriander_seed": {
"g": 100,
"cal": 298, "prot": 12.4, "fat": 17.8, "carb": 54.99, "fiber": 41.9,
"vit_a_mcg": 0, "vit_c": 21, "vit_d_mcg": 0, "vit_e": 2.5,
"vit_k_mcg": 0, "vit_b1": 0.24, "vit_b2": 0.29, "vit_b3": 2.13,
"vit_b5": 1.8, "vit_b6": 0.43, "vit_b9_mcg": 0, "vit_b12_mcg": 0,
"calcium": 709, "phosphorus": 409, "magnesium": 330, "potassium": 1267,
"sodium": 35, "iron": 16.3, "zinc": 4.7, "copper": 0.98,
"manganese": 1.9, "selenium_mcg": 26.2, "chromium_mcg": 0,
"iodine_mcg": 0, "boron_mcg": 0,
"choline": 0,
},
"iodised_salt": { # iodised: ~77mcg iodine per gram
"g": 100,
"cal": 0, "prot": 0, "fat": 0, "carb": 0, "fiber": 0,
"vit_a_mcg": 0, "vit_c": 0, "vit_d_mcg": 0, "vit_e": 0,
"vit_k_mcg": 0, "vit_b1": 0, "vit_b2": 0, "vit_b3": 0,
"vit_b5": 0, "vit_b6": 0, "vit_b9_mcg": 0, "vit_b12_mcg": 0,
"calcium": 24, "phosphorus": 0, "magnesium": 0, "potassium": 8,
"sodium": 38758, "iron": 0.3, "zinc": 0.1, "copper": 0,
"manganese": 0, "selenium_mcg": 0, "chromium_mcg": 0,
"iodine_mcg": 7700, "boron_mcg": 0,
"choline": 0,
},
"isabgol": { # psyllium husk
"g": 100,
"cal": 200, "prot": 3, "fat": 0.5, "carb": 85, "fiber": 70,
"vit_a_mcg": 0, "vit_c": 0, "vit_d_mcg": 0, "vit_e": 0,
"vit_k_mcg": 0, "vit_b1": 0, "vit_b2": 0, "vit_b3": 0,
"vit_b5": 0, "vit_b6": 0, "vit_b9_mcg": 0, "vit_b12_mcg": 0,
"calcium": 70, "phosphorus": 30, "magnesium": 30, "potassium": 80,
"sodium": 10, "iron": 15, "zinc": 0, "copper": 0,
"manganese": 0, "selenium_mcg": 0, "chromium_mcg": 0,
"iodine_mcg": 0, "boron_mcg": 0,
"choline": 0,
},
}
# ─── DAILY AMOUNTS ────────────────────────────────────────────────────────────
daily_amounts = {
"mutton_thigh_skinless": 100, # g
"fish_basa": 150, # g
# Organ rotation average per day:
# Kidney day: 35g × (1/3) + Liver day: 25g × (1/3) + Karpura day: 35g × (1/3)
# computed per food below
"mutton_kidney": 35/3, # average g/day
"chicken_liver": 25/3, # average g/day
"mutton_karpura": 35/3, # average g/day
"white_basmati_rice_cooked": 50, # g raw
"banana": 200, # g
"tempeh": 200, # g
"cabbage": 200, # g
"eggs_whole": 250, # 5 eggs × 50g each
"ghee": 10, # ml ≈ 10g (ghee density ~0.9, close enough)
"nutritional_yeast": 2, # g
"onion_medium": 110, # 1 medium onion ≈ 110g
"garlic": 10, # g
"ginger": 5, # g
"coriander_seed": 16, # g
"iodised_salt": 5, # g
"isabgol": 10, # g
# Spices (turmeric, chilli, cinnamon) — minor contributors, ~3g total
# included as approximate 1g each below for completeness
}
# ─── SUPPLEMENTS ──────────────────────────────────────────────────────────────
supplements = {
# Naturaltein Calcium Citrate × 2 tablets
"calcium_supp": 700, # mg calcium (2 × 315mg elemental) [NOTE: image says 315mg but user said 350mg — using image value 315mg × 2 = 630mg; will flag]
"vit_d3_calcium_supp": 1200, # IU (2 × 600 IU)
"k2_mk7_calcium_supp": 55, # mcg (2 × 27.5 mcg)
# Tata 1mg Vitamin D3 + K2 MK-7 × 1 tablet
"vit_d3_tata": 600, # IU (100% RDA India = 600 IU)
"k2_mk7_tata": 55, # mcg per tablet
# Magnesium glycinate — 150mg elemental Mg
"magnesium_supp": 150, # mg
# Tata 1mg Salmon Omega × 2 capsules
"epa": 1440, # mg (2 × 720)
"dha": 960, # mg (2 × 480)
"fish_oil_total": 4000, # mg (2 × 2000)
"vit_e_omega": 20, # mg (2 × 10mg)
# Nutritional yeast B12 contribution included in food above
}
# ─── CALCULATION ENGINE ───────────────────────────────────────────────────────
nutrients = {
"cal": 0, "prot": 0, "fat": 0, "carb": 0, "fiber": 0,
"vit_a_mcg": 0, "vit_c": 0, "vit_d_mcg": 0, "vit_e": 0,
"vit_k_mcg": 0, "vit_b1": 0, "vit_b2": 0, "vit_b3": 0,
"vit_b5": 0, "vit_b6": 0, "vit_b9_mcg": 0, "vit_b12_mcg": 0,
"calcium": 0, "phosphorus": 0, "magnesium": 0, "potassium": 0,
"sodium": 0, "iron": 0, "zinc": 0, "copper": 0,
"manganese": 0, "selenium_mcg": 0, "chromium_mcg": 0,
"iodine_mcg": 0, "boron_mcg": 0, "choline": 0,
}
breakdown = {}
for food, grams in daily_amounts.items():
data = foods[food]
ratio = grams / 100.0
row = {}
for k in nutrients:
val = data.get(k, 0) * ratio
nutrients[k] += val
row[k] = round(val, 2)
row["grams"] = round(grams, 1)
breakdown[food] = row
# Add supplements
nutrients["calcium"] += supplements["calcium_supp"]
nutrients["vit_d_mcg"] += (supplements["vit_d3_calcium_supp"] + supplements["vit_d3_tata"]) / 40 # IU to mcg (1 mcg = 40 IU)
nutrients["vit_k_mcg"] += supplements["k2_mk7_calcium_supp"] + supplements["k2_mk7_tata"]
nutrients["magnesium"] += supplements["magnesium_supp"]
nutrients["vit_e"] += supplements["vit_e_omega"] # mg alpha-tocopherol
# EPA/DHA added for reference
nutrients["epa_dha_mg"] = supplements["epa"] + supplements["dha"]
# ─── RDA / AI VALUES (19-year-old male, Indian ICMR / WHO standards) ──────────
rda = {
"cal": 2400, # kcal (active 81kg male, estimated TDEE moderate)
"prot": 60, # g (ICMR 0.8g/kg × 75kg ideal; higher for muscle building)
"fat": 80, # g (30% of 2400 kcal)
"carb": 300, # g (50% of 2400 kcal)
"fiber": 38, # g
"vit_a_mcg": 900, # mcg RAE
"vit_c": 90, # mg
"vit_d_mcg": 15, # mcg (600 IU)
"vit_e": 15, # mg
"vit_k_mcg": 120, # mcg
"vit_b1": 1.2, # mg
"vit_b2": 1.3, # mg
"vit_b3": 16, # mg NE
"vit_b5": 5, # mg AI
"vit_b6": 1.3, # mg
"vit_b9_mcg": 400, # mcg DFE
"vit_b12_mcg": 2.4, # mcg
"calcium": 1000, # mg (19yo male)
"phosphorus": 700, # mg
"magnesium": 400, # mg
"potassium": 3500, # mg AI
"sodium": 2300, # mg (UL)
"iron": 8, # mg (adult male)
"zinc": 11, # mg
"copper": 0.9, # mg
"manganese": 2.3, # mg AI
"selenium_mcg": 55, # mcg
"chromium_mcg": 35, # mcg AI
"iodine_mcg": 150, # mcg
"boron_mcg": 1000, # mcg (no RDA; suggested AI ~1-3mg/day)
"choline": 550, # mg AI
"epa_dha_mg": 500, # mg combined (WHO minimum; optimal 1g+)
}
# Upper Tolerable Intake Limits (UL)
ul = {
"vit_a_mcg": 3000,
"vit_d_mcg": 100, # mcg (4000 IU)
"vit_e": 1000,
"vit_k_mcg": None,
"vit_c": 2000,
"vit_b6": 100,
"vit_b9_mcg": 1000,
"calcium": 2500,
"phosphorus": 4000,
"magnesium": 350, # supplemental only
"iron": 45,
"zinc": 40,
"copper": 10,
"selenium_mcg": 400,
"iodine_mcg": 1100,
"sodium": 2300,
"manganese": 11,
"choline": 3500,
}
# ─── PRINT REPORT ─────────────────────────────────────────────────────────────
print("=" * 72)
print(" SYAM'S COMPLETE DAILY NUTRITION ANALYSIS")
print(" Profile: Male, 19yr, 81kg, 179cm, 20.8% BF, BMR 1794 kcal")
print("=" * 72)
print("\n📦 DAILY FOOD BREAKDOWN (grams/day)")
print("-" * 50)
foods_display = {
"mutton_thigh_skinless": "Mutton (goat thigh, skinless boneless)",
"fish_basa": "Fish (Basa, boneless)",
"mutton_kidney": "Mutton Kidney (avg/day from rotation)",
"chicken_liver": "Chicken Liver (avg/day from rotation)",
"mutton_karpura": "Mutton Karpura (avg/day from rotation)",
"white_basmati_rice_cooked": "White Basmati Rice (raw weight)",
"banana": "Banana",
"tempeh": "Tempeh",
"cabbage": "Cabbage",
"eggs_whole": "Eggs (5 × 50g)",
"ghee": "Ghee",
"nutritional_yeast": "Nutritional Yeast (fortified)",
"onion_medium": "Onion (1 medium, ~110g)",
"garlic": "Garlic",
"ginger": "Ginger",
"coriander_seed": "Coriander Seeds",
"iodised_salt": "Iodised Salt",
"isabgol": "Isabgol (Psyllium Husk)",
}
for k, label in foods_display.items():
print(f" {label:<45} {daily_amounts[k]:.1f}g")
print("\n📊 MACRONUTRIENTS")
print("-" * 50)
macros = ["cal", "prot", "fat", "carb", "fiber"]
macro_names = {
"cal": "Energy (kcal)", "prot": "Protein (g)", "fat": "Total Fat (g)",
"carb": "Carbohydrates (g)", "fiber": "Dietary Fiber (g)"
}
for m in macros:
val = nutrients[m]
r = rda[m]
pct = (val / r * 100) if r else 0
flag = "⚠️ LOW" if pct < 70 else ("🔴 HIGH" if pct > 150 else "✅")
print(f" {macro_names[m]:<30} {val:>8.1f} | RDA {r} | {pct:.0f}% {flag}")
print("\n🧪 FAT BREAKDOWN (estimated)")
total_fat = nutrients["fat"]
# Estimate SFA/MUFA/PUFA from food composition
# Omega-3 from supplements: EPA 1440 + DHA 960 = 2400mg from caps + Basa fish
print(f" Total Fat: {total_fat:.1f}g")
print(f" EPA (from omega-3 caps): 1440 mg")
print(f" DHA (from omega-3 caps): 960 mg")
print(f" Basa fish omega-3 (est): ~450 mg")
print(f" TOTAL EPA+DHA: ~{nutrients['epa_dha_mg'] + 450} mg | RDA min 500mg ✅ EXCELLENT")
print("\n🌈 VITAMINS")
print("-" * 72)
vitamins = [
("vit_a_mcg", "Vitamin A (mcg RAE)"),
("vit_c", "Vitamin C (mg)"),
("vit_d_mcg", "Vitamin D (mcg)"),
("vit_e", "Vitamin E (mg)"),
("vit_k_mcg", "Vitamin K total (mcg)"),
("vit_b1", "Vitamin B1 Thiamine (mg)"),
("vit_b2", "Vitamin B2 Riboflavin (mg)"),
("vit_b3", "Vitamin B3 Niacin (mg)"),
("vit_b5", "Vitamin B5 Pantothenic (mg)"),
("vit_b6", "Vitamin B6 (mg)"),
("vit_b9_mcg", "Vitamin B9 Folate (mcg)"),
("vit_b12_mcg","Vitamin B12 (mcg)"),
("choline", "Choline (mg)"),
]
for key, name in vitamins:
val = nutrients[key]
r = rda[key]
pct = (val / r * 100) if r else 0
flag = "⚠️ LOW" if pct < 70 else ("🔴 EXCESS" if pct > 300 else "✅")
ul_val = ul.get(key)
ul_str = f" UL={ul_val}" if ul_val else ""
print(f" {name:<35} {val:>8.1f} | RDA {r}{ul_str} | {pct:.0f}% {flag}")
print("\n⚙️ MINERALS")
print("-" * 72)
minerals = [
("calcium", "Calcium (mg)"),
("phosphorus", "Phosphorus (mg)"),
("magnesium", "Magnesium (mg)"),
("potassium", "Potassium (mg)"),
("sodium", "Sodium (mg)"),
("iron", "Iron (mg)"),
("zinc", "Zinc (mg)"),
("copper", "Copper (mg)"),
("manganese", "Manganese (mg)"),
("selenium_mcg", "Selenium (mcg)"),
("chromium_mcg", "Chromium (mcg)"),
("iodine_mcg", "Iodine (mcg)"),
("boron_mcg", "Boron (mcg)"),
]
for key, name in minerals:
val = nutrients[key]
r = rda[key]
pct = (val / r * 100) if r else 0
flag = "⚠️ LOW" if pct < 70 else ("🔴 EXCESS" if pct > 300 else "✅")
ul_val = ul.get(key)
ul_str = f" UL={ul_val}" if ul_val else ""
if key == "sodium":
flag = "🔴 HIGH" if val > 2300 else "✅"
print(f" {name:<35} {val:>8.1f} | RDA {r}{ul_str} | {pct:.0f}% {flag}")
print("\n💊 SUPPLEMENTS SUMMARY")
print("-" * 50)
print(f" Calcium Citrate ×2: +630mg Ca, +1200 IU D3, +55mcg K2(MK-7)")
print(f" Tata 1mg D3+K2 ×1: +600 IU D3, +55mcg K2(MK-7)")
print(f" Total D3 from supplements: {(1200+600)/40:.1f} mcg ({1200+600} IU)")
print(f" Total K2(MK-7) from supps: {55+55}mcg")
print(f" Magnesium Glycinate: +150mg Mg elemental")
print(f" Salmon Omega ×2 caps: EPA 1440mg + DHA 960mg + Vit E 20mg")
print("\n🔬 ORGAN ROTATION NOTE")
print("-" * 50)
print(" Values above represent 3-day averages:")
print(f" Day 1: Mutton Kidney 35g — Massive B12, selenium, folate")
print(f" Day 2: Chicken Liver 25g — Vitamin A overdose risk! (see below)")
print(f" Day 3: Mutton Karpura 35g — Zinc, B12, moderate nutrients")
print()
print(" ⚠️ ON CHICKEN LIVER DAY:")
vit_a_liver_day = (nutrients["vit_a_mcg"]
- foods["chicken_liver"]["vit_a_mcg"] * (25/3/100)
+ foods["chicken_liver"]["vit_a_mcg"] * (25/100))
print(f" Vitamin A = {vit_a_liver_day:.0f} mcg RAE (UL = 3000 mcg) 🔴 EXCEEDS UL!")
print("\n📈 CALORIC SUMMARY")
print("-" * 50)
cal = nutrients["cal"]
bmr = 1794
tdee_moderate = bmr * 1.55 # moderate activity
tdee_light = bmr * 1.375
print(f" Diet calories: {cal:.0f} kcal")
print(f" Your BMR: 1794 kcal")
print(f" TDEE (light activity): {tdee_light:.0f} kcal")
print(f" TDEE (moderate): {tdee_moderate:.0f} kcal")
surplus_mod = cal - tdee_moderate
print(f" Surplus/deficit (mod): {surplus_mod:+.0f} kcal ({'deficit — will lose weight' if surplus_mod < 0 else 'surplus — will gain weight'})")
print("\n" + "=" * 72)
print(" END OF CALCULATION")
print("=" * 72)
mkdir -p /tmp/workspace/nutrition && cat > /tmp/workspace/nutrition/calc.py << 'PYEOF' foods = { "mutton_thigh_skinless": { "cal": 143, "prot": 27.1, "fat": 3.7, "carb": 0, "fiber": 0, "vit_a_mcg": 0, "vit_c": 0, "vit_d_mcg": 0, "vit_e": 0.1, "vit_k_mcg": 0, "vit_b1": 0.15, "vit_b2": 0.27, "vit_b3": 6.2, "vit_b5": 0.8, "vit_b6": 0.4, "vit_b9_mcg": 5, "vit_b12_mcg": 2.6, "calcium": 17, "phosphorus": 230, "magnesium": 25, "potassium": 385, "sodium": 72, "iron": 2.3, "zinc": 5.3, "copper": 0.14, "manganese": 0.03, "selenium_mcg": 9, "chromium_mcg": 1.5, "iodine_mcg": 4, "boron_mcg": 0, "choline": 70, }, "fish_basa": { "cal": 89, "prot": 17.2, "fat": 2.0, "carb": 0, "fiber": 0, "vit_a_mcg": 12, "vit_c": 0, "vit_d_mcg": 1.5, "vit_e": 0.6, "vit_k_mcg": 0.1, "vit_b1": 0.08, "vit_b2": 0.07, "vit_b3": 3.9, "vit_b5": 0.5, "vit_b6": 0.28, "vit_b9_mcg": 12, "vit_b12_mcg": 1.5, "calcium": 35, "phosphorus": 210, "magnesium": 22, "potassium": 310, "sodium": 55, "iron": 0.4, "zinc": 0.5, "copper": 0.05, "manganese": 0.01, "selenium_mcg": 26, "chromium_mcg": 0.5, "iodine_mcg": 40, "boron_mcg": 0, "choline": 65, }, "mutton_kidney": { "cal": 112, "prot": 18.5, "fat": 3.6, "carb": 0.8, "fiber": 0, "vit_a_mcg": 118, "vit_c": 10, "vit_d_mcg": 0.5, "vit_e": 0.5, "vit_k_mcg": 0, "vit_b1": 0.36, "vit_b2": 2.2, "vit_b3": 7.5, "vit_b5": 3.8, "vit_b6": 0.45, "vit_b9_mcg": 88, "vit_b12_mcg": 79, "calcium": 14, "phosphorus": 265, "magnesium": 17, "potassium": 295, "sodium": 180, "iron": 6.2, "zinc": 2.9, "copper": 0.45, "manganese": 0.18, "selenium_mcg": 141, "chromium_mcg": 8, "iodine_mcg": 14, "boron_mcg": 0, "choline": 350, }, "chicken_liver": { "cal": 119, "prot": 17.1, "fat": 4.8, "carb": 0.7, "fiber": 0, "vit_a_mcg": 3296, "vit_c": 17.9, "vit_d_mcg": 0.3, "vit_e": 0.7, "vit_k_mcg": 0.7, "vit_b1": 0.29, "vit_b2": 2.31, "vit_b3": 9.7, "vit_b5": 6.24, "vit_b6": 0.81, "vit_b9_mcg": 578, "vit_b12_mcg": 16.6, "calcium": 8, "phosphorus": 297, "magnesium": 20, "potassium": 230, "sodium": 71, "iron": 9.0, "zinc": 3.9, "copper": 0.49, "manganese": 0.36, "selenium_mcg": 54.6, "chromium_mcg": 5, "iodine_mcg": 15, "boron_mcg": 0, "choline": 290, }, "mutton_karpura": { "cal": 106, "prot": 17.8, "fat": 3.4, "carb": 0.5, "fiber": 0, "vit_a_mcg": 5, "vit_c": 3, "vit_d_mcg": 0.2, "vit_e": 0.4, "vit_k_mcg": 0, "vit_b1": 0.25, "vit_b2": 0.45, "vit_b3": 5.8, "vit_b5": 1.5, "vit_b6": 0.38, "vit_b9_mcg": 22, "vit_b12_mcg": 3.5, "calcium": 12, "phosphorus": 240, "magnesium": 20, "potassium": 330, "sodium": 85, "iron": 3.0, "zinc": 4.5, "copper": 0.20, "manganese": 0.08, "selenium_mcg": 28, "chromium_mcg": 2, "iodine_mcg": 8, "boron_mcg": 0, "choline": 80, }, "white_basmati_rice": { "cal": 357, "prot": 6.7, "fat": 0.5, "carb": 79, "fiber": 0.6, "vit_a_mcg": 0, "vit_c": 0, "vit_d_mcg": 0, "vit_e": 0.1, "vit_k_mcg": 0, "vit_b1": 0.06, "vit_b2": 0.03, "vit_b3": 1.6, "vit_b5": 0.5, "vit_b6": 0.12, "vit_b9_mcg": 8, "vit_b12_mcg": 0, "calcium": 10, "phosphorus": 96, "magnesium": 12, "potassium": 85, "sodium": 1, "iron": 0.4, "zinc": 0.5, "copper": 0.1, "manganese": 0.5, "selenium_mcg": 7.5, "chromium_mcg": 0.5, "iodine_mcg": 2, "boron_mcg": 20, "choline": 2, }, "banana": { "cal": 89, "prot": 1.1, "fat": 0.3, "carb": 22.8, "fiber": 2.6, "vit_a_mcg": 3, "vit_c": 8.7, "vit_d_mcg": 0, "vit_e": 0.1, "vit_k_mcg": 0.5, "vit_b1": 0.03, "vit_b2": 0.07, "vit_b3": 0.67, "vit_b5": 0.33, "vit_b6": 0.37, "vit_b9_mcg": 20, "vit_b12_mcg": 0, "calcium": 5, "phosphorus": 22, "magnesium": 27, "potassium": 358, "sodium": 1, "iron": 0.26, "zinc": 0.15, "copper": 0.08, "manganese": 0.27, "selenium_mcg": 1, "chromium_mcg": 1, "iodine_mcg": 3, "boron_mcg": 180, "choline": 9.8, }, "tempeh": { "cal": 193, "prot": 18.5, "fat": 10.8, "carb": 9.4, "fiber": 4.1, "vit_a_mcg": 0, "vit_c": 0, "vit_d_mcg": 0, "vit_e": 0.1, "vit_k_mcg": 0, "vit_b1": 0.08, "vit_b2": 0.36, "vit_b3": 2.6, "vit_b5": 0.28, "vit_b6": 0.22, "vit_b9_mcg": 24, "vit_b12_mcg": 0, "calcium": 111, "phosphorus": 266, "magnesium": 81, "potassium": 412, "sodium": 9, "iron": 2.7, "zinc": 1.14, "copper": 0.56, "manganese": 1.30, "selenium_mcg": 0.3, "chromium_mcg": 0, "iodine_mcg": 0, "boron_mcg": 450, "choline": 87, }, "cabbage": { "cal": 25, "prot": 1.3, "fat": 0.1, "carb": 5.8, "fiber": 2.5, "vit_a_mcg": 5, "vit_c": 36.6, "vit_d_mcg": 0, "vit_e": 0.15, "vit_k_mcg": 76, "vit_b1": 0.06, "vit_b2": 0.04, "vit_b3": 0.23, "vit_b5": 0.21, "vit_b6": 0.12, "vit_b9_mcg": 43, "vit_b12_mcg": 0, "calcium": 40, "phosphorus": 26, "magnesium": 12, "potassium": 170, "sodium": 18, "iron": 0.47, "zinc": 0.18, "copper": 0.02, "manganese": 0.16, "selenium_mcg": 0.3, "chromium_mcg": 0.5, "iodine_mcg": 0, "boron_mcg": 730, "choline": 10.7, }, "eggs_whole": { "cal": 143, "prot": 12.6, "fat": 9.5, "carb": 0.7, "fiber": 0, "vit_a_mcg": 149, "vit_c": 0, "vit_d_mcg": 2.0, "vit_e": 1.05, "vit_k_mcg": 0.3, "vit_b1": 0.04, "vit_b2": 0.46, "vit_b3": 0.07, "vit_b5": 1.53, "vit_b6": 0.17, "vit_b9_mcg": 47, "vit_b12_mcg": 1.11, "calcium": 56, "phosphorus": 198, "magnesium": 12, "potassium": 138, "sodium": 142, "iron": 1.75, "zinc": 1.29, "copper": 0.07, "manganese": 0.03, "selenium_mcg": 30, "chromium_mcg": 1, "iodine_mcg": 53, "boron_mcg": 0, "choline": 294, }, "ghee": { "cal": 900, "prot": 0, "fat": 99.5, "carb": 0, "fiber": 0, "vit_a_mcg": 840, "vit_c": 0, "vit_d_mcg": 1.5, "vit_e": 2.8, "vit_k_mcg": 8.5, "vit_b1": 0, "vit_b2": 0, "vit_b3": 0, "vit_b5": 0, "vit_b6": 0, "vit_b9_mcg": 0, "vit_b12_mcg": 0, "calcium": 0, "phosphorus": 3, "magnesium": 0, "potassium": 5, "sodium": 2, "iron": 0, "zinc": 0.05, "copper": 0, "manganese": 0, "selenium_mcg": 0.5, "chromium_mcg": 0, "iodine_mcg": 0, "boron_mcg": 0, "choline": 0, }, "nutritional_yeast": { "cal": 360, "prot": 45, "fat": 5, "carb": 35, "fiber": 14, "vit_a_mcg": 0, "vit_c": 0, "vit_d_mcg": 0, "vit_e": 0, "vit_k_mcg": 0, "vit_b1": 10, "vit_b2": 10, "vit_b3": 50, "vit_b5": 10, "vit_b6": 10, "vit_b9_mcg": 600, "vit_b12_mcg": 50, "calcium": 50, "phosphorus": 1100, "magnesium": 250, "potassium": 1500, "sodium": 10, "iron": 5, "zinc": 3.5, "copper": 0.5, "manganese": 0.5, "selenium_mcg": 5, "chromium_mcg": 100, "iodine_mcg": 0, "boron_mcg": 0, "choline": 30, }, "onion": { "cal": 40, "prot": 1.1, "fat": 0.1, "carb": 9.3, "fiber": 1.7, "vit_a_mcg": 0, "vit_c": 7.4, "vit_d_mcg": 0, "vit_e": 0.02, "vit_k_mcg": 0.4, "vit_b1": 0.05, "vit_b2": 0.03, "vit_b3": 0.12, "vit_b5": 0.12, "vit_b6": 0.12, "vit_b9_mcg": 19, "vit_b12_mcg": 0, "calcium": 23, "phosphorus": 29, "magnesium": 10, "potassium": 166, "sodium": 4, "iron": 0.21, "zinc": 0.17, "copper": 0.04, "manganese": 0.13, "selenium_mcg": 0.5, "chromium_mcg": 0, "iodine_mcg": 3, "boron_mcg": 390, "choline": 6.1, }, "garlic": { "cal": 149, "prot": 6.4, "fat": 0.5, "carb": 33.1, "fiber": 2.1, "vit_a_mcg": 0, "vit_c": 31.2, "vit_d_mcg": 0, "vit_e": 0.08, "vit_k_mcg": 1.7, "vit_b1": 0.2, "vit_b2": 0.11, "vit_b3": 0.7, "vit_b5": 0.6, "vit_b6": 1.24, "vit_b9_mcg": 3, "vit_b12_mcg": 0, "calcium": 181, "phosphorus": 153, "magnesium": 25, "potassium": 401, "sodium": 17, "iron": 1.7, "zinc": 1.16, "copper": 0.3, "manganese": 1.67, "selenium_mcg": 14.2, "chromium_mcg": 0, "iodine_mcg": 0, "boron_mcg": 0, "choline": 23.2, }, "ginger": { "cal": 80, "prot": 1.8, "fat": 0.8, "carb": 17.8, "fiber": 2.0, "vit_a_mcg": 0, "vit_c": 5.0, "vit_d_mcg": 0, "vit_e": 0.26, "vit_k_mcg": 0.1, "vit_b1": 0.03, "vit_b2": 0.03, "vit_b3": 0.75, "vit_b5": 0.2, "vit_b6": 0.16, "vit_b9_mcg": 11, "vit_b12_mcg": 0, "calcium": 16, "phosphorus": 34, "magnesium": 43, "potassium": 415, "sodium": 13, "iron": 0.6, "zinc": 0.34, "copper": 0.23, "manganese": 0.23, "selenium_mcg": 0.7, "chromium_mcg": 0, "iodine_mcg": 0, "boron_mcg": 0, "choline": 28.8, }, "coriander_seed": { "cal": 298, "prot": 12.4, "fat": 17.8, "carb": 55.0, "fiber": 41.9, "vit_a_mcg": 0, "vit_c": 21, "vit_d_mcg": 0, "vit_e": 2.5, "vit_k_mcg": 0, "vit_b1": 0.24, "vit_b2": 0.29, "vit_b3": 2.13, "vit_b5": 1.8, "vit_b6": 0.43, "vit_b9_mcg": 0, "vit_b12_mcg": 0, "calcium": 709, "phosphorus": 409, "magnesium": 330, "potassium": 1267, "sodium": 35, "iron": 16.3, "zinc": 4.7, "copper": 0.98, "manganese": 1.9, "selenium_mcg": 26.2, "chromium_mcg": 0, "iodine_mcg": 0, "boron_mcg": 0, "choline": 0, }, "iodised_salt": { "cal": 0, "prot": 0, "fat": 0, "carb": 0, "fiber": 0, "vit_a_mcg": 0, "vit_c": 0, "vit_d_mcg": 0, "vit_e": 0, "vit_k_mcg": 0, "vit_b1": 0, "vit_b2": 0, "vit_b3": 0, "vit_b5": 0, "vit_b6": 0, "vit_b9_mcg": 0, "vit_b12_mcg": 0, "calcium": 24, "phosphorus": 0, "magnesium": 0, "potassium": 8, "sodium": 38758, "iron": 0.3, "zinc": 0.1, "copper": 0, "manganese": 0, "selenium_mcg": 0, "chromium_mcg": 0, "iodine_mcg": 7700, "boron_mcg": 0, "choline": 0, }, "isabgol": { "cal": 200, "prot": 3, "fat": 0.5, "carb": 85, "fiber": 70, "vit_a_mcg": 0, "vit_c": 0, "vit_d_mcg": 0, "vit_e": 0, "vit_k_mcg": 0, "vit_b1": 0, "vit_b2": 0, "vit_b3": 0, "vit_b5": 0, "vit_b6": 0, "vit_b9_mcg": 0, "vit_b12_mcg": 0, "calcium": 70, "phosphorus": 30, "magnesium": 30, "potassium": 80, "sodium": 10, "iron": 15, "zinc": 0, "copper": 0, "manganese": 0, "selenium_mcg": 0, "chromium_mcg": 0, "iodine_mcg": 0, "boron_mcg": 0, "choline": 0, }, } daily_amounts = { "mutton_thigh_skinless": 100, "fish_basa": 150, "mutton_kidney": 35/3, "chicken_liver": 25/3, "mutton_karpura": 35/3, "white_basmati_rice": 50, "banana": 200, "tempeh": 200, "cabbage": 200, "eggs_whole": 250, "ghee": 10, "nutritional_yeast": 2, "onion": 110, "garlic": 10, "ginger": 5, "coriander_seed": 16, "iodised_salt": 5, "isabgol": 10, } nutrients = {k: 0.0 for k in [ "cal","prot","fat","carb","fiber", "vit_a_mcg","vit_c","vit_d_mcg","vit_e","vit_k_mcg", "vit_b1","vit_b2","vit_b3","vit_b5","vit_b6","vit_b9_mcg","vit_b12_mcg", "calcium","phosphorus","magnesium","potassium","sodium", "iron","zinc","copper","manganese","selenium_mcg","chromium_mcg", "iodine_mcg","boron_mcg","choline" ]} for food, grams in daily_amounts.items(): ratio = grams / 100.0 for k in nutrients: nutrients[k] += foods[food].get(k, 0) * ratio # Add supplements supplements_added = { "calcium": 630, "vit_d_mcg": (1200+600)/40.0, "vit_k_mcg": 55+55, "magnesium": 150, "vit_e": 20, } for k, v in supplements_added.items(): nutrients[k] += v epa_dha_total = 1440 + 960 # mg from caps rda = { "cal": 2600, "prot": 60, "fat": 80, "carb": 325, "fiber": 38, "vit_a_mcg": 900, "vit_c": 90, "vit_d_mcg": 15, "vit_e": 15, "vit_k_mcg": 120, "vit_b1": 1.2, "vit_b2": 1.3, "vit_b3": 16, "vit_b5": 5, "vit_b6": 1.3, "vit_b9_mcg": 400, "vit_b12_mcg": 2.4, "calcium": 1000, "phosphorus": 700, "magnesium": 400, "potassium": 3500, "sodium": 2300, "iron": 8, "zinc": 11, "copper": 0.9, "manganese": 2.3, "selenium_mcg": 55, "chromium_mcg": 35, "iodine_mcg": 150, "boron_mcg": 1000, "choline": 550, } ul = { "vit_a_mcg": 3000, "vit_d_mcg": 100, "vit_e": 1000, "vit_c": 2000, "vit_b6": 100, "vit_b9_mcg": 1000, "calcium": 2500, "phosphorus": 4000, "magnesium_supp": 350, "iron": 45, "zinc": 40, "copper": 10, "selenium_mcg": 400, "iodine_mcg": 1100, "sodium": 2300, "manganese": 11, "choline": 3500, } print("=" * 74) print(" SYAM — COMPLETE DAILY NUTRITION REPORT") print(" Profile: Male | Age 18 (report date) → 19 | 81 kg | 179 cm") print(" Body Fat: 20.8% | Lean Mass: 64.2 kg | BMR: 1794 kcal") print("=" * 74) print("\n>>> MACRONUTRIENTS & CALORIES") print(f"{'Nutrient':<28} {'Your Diet':>10} {'RDA':>8} {'% RDA':>8} Status") print("-" * 74) for k, name in [("cal","Energy (kcal)"),("prot","Protein (g)"), ("fat","Fat (g)"),("carb","Carbohydrates (g)"),("fiber","Fiber (g)")]: v = nutrients[k]; r = rda[k]; pct = v/r*100 if pct < 70: s = "⚠ LOW" elif pct > 200: s = "🔴 VERY HIGH" elif pct > 130: s = "↑ HIGH" else: s = "✅ OK" print(f" {name:<26} {v:>10.1f} {r:>8} {pct:>7.0f}% {s}") print(f"\n Estimated TDEE (moderate activity, 81kg): ~2780 kcal") deficit = nutrients["cal"] - 2780 print(f" Caloric balance: {deficit:+.0f} kcal ({'DEFICIT — weight loss mode' if deficit < 0 else 'SURPLUS — gain mode'})") print("\n>>> VITAMINS") print(f"{'Vitamin':<35} {'Your Diet':>10} {'RDA':>8} {'% RDA':>8} Status") print("-" * 74) vit_list = [ ("vit_a_mcg","Vitamin A (mcg RAE)"), ("vit_c","Vitamin C (mg)"), ("vit_d_mcg","Vitamin D (mcg / IU equiv)"), ("vit_e","Vitamin E (mg α-TE)"), ("vit_k_mcg","Vitamin K total (mcg)"), ("vit_b1","B1 Thiamine (mg)"), ("vit_b2","B2 Riboflavin (mg)"), ("vit_b3","B3 Niacin (mg NE)"), ("vit_b5","B5 Pantothenic acid (mg)"), ("vit_b6","B6 Pyridoxine (mg)"), ("vit_b9_mcg","B9 Folate (mcg DFE)"), ("vit_b12_mcg","B12 Cobalamin (mcg)"), ("choline","Choline (mg)"), ] for k, name in vit_list: v = nutrients[k]; r = rda[k]; pct = v/r*100 u = ul.get(k) if pct < 70: s = "⚠ LOW" elif u and v > u: s = f"🔴 EXCEEDS UL ({u})" elif pct > 300: s = "🔴 VERY HIGH" elif pct > 150: s = "↑ HIGH" else: s = "✅ OK" extra = f" [UL={u}]" if u else "" if k == "vit_d_mcg": iu = v * 40 print(f" {name:<33} {v:>8.1f}mcg {r:>7} {pct:>7.0f}% {s} ({iu:.0f} IU)") else: print(f" {name:<33} {v:>10.1f} {r:>8} {pct:>7.0f}% {s}{extra}") print("\n>>> MINERALS") print(f"{'Mineral':<35} {'Your Diet':>10} {'RDA':>8} {'% RDA':>8} Status") print("-" * 74) min_list = [ ("calcium","Calcium (mg)"), ("phosphorus","Phosphorus (mg)"), ("magnesium","Magnesium (mg)"), ("potassium","Potassium (mg)"), ("sodium","Sodium (mg)"), ("iron","Iron (mg)"), ("zinc","Zinc (mg)"), ("copper","Copper (mg)"), ("manganese","Manganese (mg)"), ("selenium_mcg","Selenium (mcg)"), ("chromium_mcg","Chromium (mcg)"), ("iodine_mcg","Iodine (mcg)"), ("boron_mcg","Boron (mcg)"), ] for k, name in min_list: v = nutrients[k]; r = rda[k]; pct = v/r*100 u = ul.get(k) if k == "sodium": s = "🔴 HIGH — kidney risk" if v > 2300 else "✅ OK" elif k == "iodine_mcg": s = "🔴 TOXIC LEVEL" if v > ul["iodine_mcg"] else ("⚠ LOW" if pct < 70 else "✅ OK") elif pct < 70: s = "⚠ LOW" elif u and v > u: s = f"🔴 EXCEEDS UL ({u})" elif pct > 300: s = "🔴 VERY HIGH" elif pct > 150: s = "↑ HIGH" else: s = "✅ OK" print(f" {name:<33} {v:>10.1f} {r:>8} {pct:>7.0f}% {s}") print("\n>>> OMEGA-3 FATTY ACIDS (from supplements)") print(f" EPA (from omega-3 caps ×2): 1440 mg") print(f" DHA (from omega-3 caps ×2): 960 mg") print(f" Basa fish omega-3 estimate: ~270 mg") print(f" TOTAL EPA+DHA: ~2670 mg | RDA min 500mg ✅ EXCELLENT") print("\n>>> SPECIAL FLAGS & CLINICAL NOTES") print("-" * 74) # Vit A on liver day vit_a_liver_day = (nutrients["vit_a_mcg"] - foods["chicken_liver"]["vit_a_mcg"]*(25/3/100) + foods["chicken_liver"]["vit_a_mcg"]*(25/100)) print(f"\n 🔴 VITAMIN A — CHICKEN LIVER DAY:") print(f" On the day you eat chicken liver (25g), Vitamin A = {vit_a_liver_day:.0f} mcg RAE") print(f" UL is 3000 mcg. Your average is {nutrients['vit_a_mcg']:.0f} mcg (OK).") print(f" But ON LIVER DAY you hit {vit_a_liver_day:.0f} mcg — {vit_a_liver_day/3000*100:.0f}% of UL. Manageable but watch it.") # Sodium print(f"\n 🔴 SODIUM — {nutrients['sodium']:.0f} mg/day:") print(f" This is mostly from iodised salt ({0.05*38758:.0f}mg from 5g salt).") print(f" UL = 2300 mg. You are at {nutrients['sodium']:.0f} mg = {nutrients['sodium']/2300*100:.0f}% of UL.") print(f" For a prediabetic, high sodium raises BP and worsens insulin resistance.") print(f" RECOMMENDATION: Cut to 3-4g salt/day (≈2100-2700mg sodium).") # Iodine print(f"\n 🔴 IODINE — {nutrients['iodine_mcg']:.0f} mcg/day:") print(f" 5g iodised salt = {5*77:.0f}mcg iodine alone. Add food sources = {nutrients['iodine_mcg']:.0f} mcg total.") print(f" UL = 1100 mcg. You are at {nutrients['iodine_mcg']:.0f} mcg = {nutrients['iodine_mcg']/1100*100:.0f}% of UL.") print(f" Still within UL but excessive iodine can disrupt thyroid.") print(f" RECOMMENDATION: Use iodised salt sparingly — 2-3g/day max is safer.") # Selenium print(f"\n ⚠ SELENIUM — {nutrients['selenium_mcg']:.0f} mcg/day (average):") print(f" On mutton kidney day: selenium spikes to ~{nutrients['selenium_mcg'] - foods['mutton_kidney']['selenium_mcg']*(35/3/100) + foods['mutton_kidney']['selenium_mcg']*(35/100):.0f} mcg.") print(f" UL = 400 mcg. Fine on average. Kidney day may push toward UL.") # Calories print(f"\n ⚠ CALORIES — {nutrients['cal']:.0f} kcal vs estimated TDEE 2600-2780 kcal:") print(f" You are in a caloric deficit of ~{2780 - nutrients['cal']:.0f} kcal.") print(f" For weight loss this is intentional. But at 81kg with 20.8% BF,") print(f" with high protein ({nutrients['prot']:.0f}g), lean mass will be preserved.") print(f" If you're also gym training, consider adding 200-300 kcal.") # Protein print(f"\n ✅ PROTEIN — {nutrients['prot']:.0f}g/day:") print(f" For muscle building at 81kg: target ~130-160g. You're at {nutrients['prot']:.0f}g.") print(f" This is solid. Distribute across meals for optimal MPS.") # Calcium:Phosphorus ratio ca = nutrients["calcium"]; ph = nutrients["phosphorus"] print(f"\n ✅ CALCIUM:PHOSPHORUS RATIO — {ca:.0f}:{ph:.0f} = 1:{ph/ca:.1f}") print(f" Ideal ratio is 1:1 to 1:1.5. Yours is good.") # Magnesium print(f"\n ✅ MAGNESIUM — {nutrients['magnesium']:.0f} mg (food + 150mg glycinate supplement)") print(f" Magnesium glycinate is the best-absorbed form. Well chosen.") print(f" Great for insulin sensitivity, sleep, and muscle function — all relevant for you.") # B12 print(f"\n ✅ VITAMIN B12 — {nutrients['vit_b12_mcg']:.0f} mcg/day (avg)") print(f" The nutritional yeast contributes 1 mcg/day (2g × 50mcg/100g).") print(f" Organs + meat + fish cover the rest. No deficiency risk.") # D3 + K2 d3_total_iu = nutrients["vit_d_mcg"] * 40 print(f"\n ✅ VITAMIN D3 — {nutrients['vit_d_mcg']:.1f} mcg = {d3_total_iu:.0f} IU/day") print(f" Good combination with K2 (MK-7). D3 directs calcium to bones, K2 keeps") print(f" it out of arteries. Your dual-product setup (Tata + Naturaltein) is smart.") # Chromium print(f"\n ✅ CHROMIUM — {nutrients['chromium_mcg']:.0f} mcg/day (primarily from nutritional yeast):") print(f" Chromium enhances insulin signalling. This is a direct benefit for prediabetes.") print(f" Even 2g of nutritional yeast gives ~2mcg. Adding more nooch would help.") # Fiber print(f"\n ✅ FIBER — {nutrients['fiber']:.0f}g/day (including isabgol 7g soluble fiber):") print(f" Isabgol (psyllium) is excellent for blunting post-meal glucose spikes.") print(f" Take it 15-20 min before meals for best blood sugar effect.") print("\n>>> ORGAN ROTATION DAILY NUTRITION (for reference)") print("-" * 74) for organ, g_actual in [("mutton_kidney",35),("chicken_liver",25),("mutton_karpura",35)]: r = g_actual/100.0 d = foods[organ] print(f"\n [{organ.upper().replace('_',' ')}] on its dedicated day ({g_actual}g):") print(f" Cal:{d['cal']*r:.0f} Prot:{d['prot']*r:.1f}g Fat:{d['fat']*r:.1f}g") print(f" B12:{d['vit_b12_mcg']*r:.1f}mcg Folate:{d['vit_b9_mcg']*r:.0f}mcg Iron:{d['iron']*r:.1f}mg") print(f" Selenium:{d['selenium_mcg']*r:.0f}mcg Zinc:{d['zinc']*r:.1f}mg Vit A:{d['vit_a_mcg']*r:.0f}mcg RAE") print("\n" + "=" * 74) print(" SUMMARY SCORECARD") print("=" * 74) scores = { "✅ Excellent": ["Protein","B12","Selenium","Zinc","Iron","Omega-3 EPA+DHA","Choline","Iodine (food sources)","Chromium","Magnesium","Vitamin K","Vitamin D3 + K2 combo","Fiber + Isabgol"], "⚠ Watch": ["Calories (slight deficit — intentional?)","Vitamin A on liver day","Selenium spike on kidney day"], "🔴 Fix Now": ["SODIUM too high (3x UL from salt alone)", "IODINE approaching UL (5g salt = 385mcg iodine, total diet = high)"], "➕ Could add": ["More complex carbs for energy (currently low-carb)","Extra nooch (5g instead of 2g) for chromium+B vitamins"], } for label, items in scores.items(): print(f"\n {label}:") for item in items: print(f" • {item}") print("\n NOTE: Values for spices (turmeric, chilli, cinnamon) not quantified") print(" (minor macro contributors but significant phytochemical benefit).") print(" Cinnamon particularly relevant for prediabetes — keep using it.") print("=" * 74) PYEOF python3 /tmp/workspace/nutrition/calc.py
| Nutrient | Your Diet | Target | Status |
|---|---|---|---|
| Calories | 1,690 kcal | 2,600–2,780 | ⚠️ DEFICIT of ~1,090 kcal |
| Protein | 140 g | 60g RDA / 130–160g for muscle | ✅ Perfect |
| Fat | 67.5 g | 80g | ✅ Good |
| Carbohydrates | 150 g | 325g | ⚠️ Very low |
| Fiber | 35 g | 38g | ✅ Excellent |
| Vitamin | Your Daily Total | RDA | % | Status |
|---|---|---|---|---|
| Vitamin A | 780 mcg RAE | 900 | 87% | ✅ OK (avg) |
| Vitamin C | 109 mg | 90 | 121% | ✅ Good |
| Vitamin D3 | 52.5 mcg (2,100 IU) | 15 mcg | 350% | ✅ Fine (UL is 4,000 IU) |
| Vitamin E | 25 mg | 15 | 168% | ✅ Fine (UL is 1,000 mg) |
| Vitamin K total | 265 mcg | 120 | 221% | ✅ Good — K2 from supps directs to bones |
| B1 Thiamine | 1.2 mg | 1.2 | 96% | ✅ |
| B2 Riboflavin | 3.3 mg | 1.3 | 252% | ✅ OK (no UL) |
| B3 Niacin | 24 mg | 16 | 150% | ✅ |
| B5 Pantothenic | 9.1 mg | 5 | 182% | ✅ |
| B6 Pyridoxine | 3.4 mg | 1.3 | 263% | ✅ (UL is 100mg — you're nowhere near it) |
| B9 Folate | 413 mcg | 400 | 103% | ✅ Right on target |
| B12 | 19.6 mcg | 2.4 | 818% | ✅ Organs are doing their job |
| Choline | 1,204 mg | 550 | 219% | ✅ (UL 3,500 — fine) |
| Mineral | Your Daily Total | RDA | % | Status |
|---|---|---|---|---|
| Calcium | 1,327 mg | 1,000 | 133% | ✅ Good |
| Phosphorus | 1,939 mg | 700 | 277% | ↑ High but OK (UL 4,000) |
| Magnesium | 566 mg | 400 | 142% | ✅ Excellent |
| Potassium | 3,695 mg | 3,500 | 106% | ✅ Perfect |
| Sodium | 2,554 mg | 2,300 | 111% | 🔴 Over UL |
| Iron | 20.8 mg | 8 | 260% | ↑ High but normal for meat eaters |
| Zinc | 14.8 mg | 11 | 135% | ✅ |
| Copper | 2.1 mg | 0.9 | 237% | ↑ High (UL 10mg — still safe) |
| Manganese | 4.5 mg | 2.3 | 197% | ↑ Watch (UL 11mg — fine) |
| Selenium | 161 mcg | 55 | 292% | ↑ High avg; kidney day hits ~193 mcg (UL 400) |
| Chromium | 11.6 mcg | 35 | 33% | ⚠️ LOW — important for prediabetes |
| Iodine | 596 mcg | 150 | 397% | ⚠️ High (UL 1,100) — from salt |
| Boron | 3,159 mcg | 1,000 AI | 316% | Fine — no firm UL, mostly from tempeh/cabbage/banana |
| Category | Result |
|---|---|
| Calories | ⚠️ 1,090 kcal deficit — too aggressive |
| Protein | ✅ 140g — spot on |
| Carbs | ⚠️ 150g — very low, add more |
| Vitamins | ✅ All covered except nothing missing |
| Minerals | ✅ Mostly excellent |
| Sodium | 🔴 Too high — cut salt |
| Chromium | ⚠️ Low — increase nutritional yeast |
| Iodine | ⚠️ High — cut salt fixes this too |
| Omega-3 | ✅ Excellent (2,670 mg EPA+DHA) |
| Overall diet quality | 9/10 — genuinely exceptional |
I only take 1 tablet of omega 3 and white rice 60g raw why vit a low should I add liver to 35g
| Day | Organ | Vit A from organ | Total diet Vit A |
|---|---|---|---|
| Kidney day | Mutton kidney 35g | ~41 mcg | ~700 mcg |
| Liver day | Chicken liver 25g | ~824 mcg | ~1,600 mcg |
| Karpura day | Karpura 35g | ~2 mcg | ~660 mcg |
| 25g liver | 35g liver | |
|---|---|---|
| Vit A on liver day | ~1,600 mcg | ~1,955 mcg |
| UL | 3,000 mcg | 3,000 mcg |
| % of UL | 53% | 65% |
| Change | Effect |
|---|---|
| Rice 60g vs 50g | +36 kcal, +8g carbs → Calories now ~1,726 kcal (still a ~1,050 deficit) |
| 1 omega-3 cap | EPA 720mg + DHA 480mg = 1,200 mg total EPA+DHA — still 2.4x the minimum recommendation ✅ |
My HBA1C is 5.1
| Range | Classification |
|---|---|
| Below 5.7% | Normal ✅ |
| 5.7% – 6.4% | Prediabetes |
| 6.5% and above | Diabetes |
What is my TDEE, I do nothing at home and i don't walk like just sit all and go gym, and i do bro split , and rate my diet and give me advantages and disadvantage of my diet plan
(10 × 81) + (6.25 × 179) - (5 × 19) + 5 = 1,847 kcal
| Lifestyle | Multiplier | Your TDEE |
|---|---|---|
| Sedentary (desk, no exercise) | 1.2 | 2,184 kcal |
| Lightly active (sedentary + gym 3-4x/week) | 1.375 | 2,503 kcal |
Bro vit c from cabbage is 74.mg right and pre workout i take a banana
| What banana gives | Why it matters pre-workout |
|---|---|
| ~46g carbs (200g banana) | Tops up muscle glycogen for the session |
| ~2g fructose + glucose mix | Fast + sustained energy, no crash mid-session |
| B6 (0.74mg) | Involved in muscle protein metabolism |
| Potassium (716mg) | Prevents cramps, supports muscle contraction |
| Magnesium (54mg) | Pre-loading on top of your glycinate supplement |
| Low fiber (5.2g) | Won't cause bloating or discomfort during training |
Even eggs are non heme iron right
| Food | Iron/day | Type | Absorption |
|---|---|---|---|
| Mutton (100g) | 2.3mg | Heme | 15–35% ✅ |
| Organ rotation avg | ~1.2mg | Heme | 15–35% ✅ |
| Coriander seeds (16g) | 2.6mg | Non-heme | 2–8% |
| Isabgol (10g) | 1.5mg | Non-heme | 2–8% |
| Tempeh (200g) | 5.4mg | Non-heme | 2–8% → better with Vit C |
| Fish Basa (150g) | 0.6mg | Heme | 15–35% ✅ |
| Eggs (250g) | 4.4mg | Non-heme (phosvitin) | 1–3% ❌ |
In the morning i eat cabbage, eggs, fish, and pre workout 1 banana, night Post workout i eat mutton, rice, banana, tempeh
| Meal | Foods | Approx kcal | Protein |
|---|---|---|---|
| Morning | Cabbage 200g + Eggs 5 + Fish 150g | ~580 kcal | ~72g |
| Pre-workout | Banana 200g | ~178 kcal | ~2g |
| Post-workout (night) | Mutton 100g + Rice 60g + Banana 200g + Tempeh 200g | ~968 kcal | ~66g |
| Total | ~1,726 kcal | ~140g |
| Meal | What to eat | Why |
|---|---|---|
| Morning | Cabbage + 5 eggs + fish + organ meat (on rotation day) + ghee 10ml + garlic/ginger/onion/spices | All cooked together as one dish — the onion, garlic, ginger go into the cooking naturally |
| Pre-workout (60–90 min before) | Banana + 2–3 eggs (hard boiled) | Adds protein + carbs together — much better than banana alone. Amino acids available during training |
| Post-workout (within 30–45 min after) | Mutton + rice 60g + tempeh + banana | Keep as is — this is good |
| Supplements timing | Magnesium glycinate → take at night after post-workout meal. D3+K2 → with morning meal (fat soluble, needs ghee/egg fat). Calcium → split morning and night. Omega-3 → with your biggest fat-containing meal (morning or night) | Fat-soluble supplements absorb dramatically better with dietary fat |
In the morning i eat cabbage, eggs, fish, and pre workout 1 banana, night Post workout i eat mutton with organ meat, rice, banana, tempeh and i fry tempeh with ghee and fish with ghee too, and mutton and organ meat also with ghee i make curry
| Meal | Foods | Notes |
|---|---|---|
| Morning | Cabbage 200g + 5 eggs + Fish 150g (fried in ghee) | All cooked in the 10ml ghee |
| Pre-workout | Banana 200g | 60–90 min before gym |
| Post-workout night | Mutton 100g + Organ meat (rotation) + Rice 60g + Banana 200g + Tempeh 200g (fried in ghee) — all cooked as curry/fry with onion, garlic, ginger, coriander, spices | The whole 10ml ghee is split across cooking |
| Supplement | When | Why |
|---|---|---|
| D3 + K2 (Tata) | Morning with fish + eggs meal | Fat from ghee + eggs = maximum absorption |
| Calcium citrate tablet 1 | Morning with meal | Split dosing, body absorbs ~500mg at a time |
| Omega-3 cap | Morning with meal | Fat present = best absorption |
| Calcium citrate tablet 2 | Night with post-workout meal | Second dose absorbed separately |
| Magnesium glycinate | Night after post-workout meal | Promotes sleep, overnight muscle recovery, morning insulin sensitivity |
| Isabgol | Morning 15–20 min before breakfast | Slows glucose absorption from the whole day |
Morning i eat at 8am and night at 8pm all vit and omega 3 are in morning and magnesium at night
| Time | What happens |
|---|---|
| ~7:45am | Isabgol 10g in water — 15 min before eating |
| 8:00am | Morning meal — cabbage + 5 eggs + fish, all fried in ghee |
| 8:00am | All supplements with this meal — D3+K2, both calcium tablets, omega-3 |
| ~12–1pm | Pre-workout banana |
| ~1–2pm | Gym (bro split) |
| ~3–4pm | Post-workout done |
| 8:00pm | Night meal — mutton curry + organ + rice + banana + tempeh fried in ghee |
| After 8pm | Magnesium glycinate |
3 hard-boiled eggs + banana
I go gym at evening 6pm
| Time | What happens |
|---|---|
| 7:45am | Isabgol in water |
| 8:00am | Morning meal — eggs + fish + cabbage + all supplements |
| ~5:00pm | Pre-workout banana |
| ~6:00pm | Gym |
| ~7:30pm | Done at gym |
| 8:00pm | Post-workout meal — mutton + organ + rice + banana + tempeh |
| After 8pm | Magnesium glycinate |
| Without eggs | With eggs | |
|---|---|---|
| Pre-workout protein | 0g | ~13–19g |
| Amino acids during training | Low | Circulating ✅ |
| Muscle breakdown during session | Higher | Minimised |
| Extra calories | 0 | ~143–215 kcal |
| Extra effort | Zero | Boil eggs in morning |
| Time | Meal | kcal | Protein |
|---|---|---|---|
| 8:00am | Cabbage + 5 eggs + 150g fish + ghee + supplements | ~580 | ~72g |
| 5:00pm | Banana + 2 hard boiled eggs | ~320 | ~13g |
| 8:00pm | Mutton + organ + rice + banana + tempeh + ghee | ~968 | ~66g |
| Total | ~1,868 kcal | ~151g |
I am still losing weight because I want to get to 10% bodyfat
| Metric | Value |
|---|---|
| Weight | 81 kg |
| Body fat % | 20.8% |
| Fat mass | 16.8 kg |
| Lean mass | 64.2 kg |
| Target | Calculation |
|---|---|
| Lean mass to keep | 64.2 kg |
| Target fat mass at 10% | 64.2 ÷ 0.90 × 0.10 = 7.1 kg |
| Fat to lose | 16.8 - 7.1 = 9.7 kg of pure fat |
| Target body weight | 64.2 + 7.1 = ~71.3 kg |
| Deficit/day | Weekly fat loss | Time to lose 9.7 kg |
|---|---|---|
| 725 kcal | ~0.66 kg/week | ~14–15 weeks |
| 500 kcal (with 2 eggs added) | ~0.45 kg/week | ~21–22 weeks |
| 300 kcal (conservative) | ~0.27 kg/week | ~36 weeks |
| Your BF % | Recommended deficit | Weekly loss target |
|---|---|---|
| Now — 20.8% | 600–700 kcal | 0.5–0.6 kg/week ✅ Current is fine |
| 15–18% | 400–500 kcal | 0.35–0.45 kg/week |
| 12–15% | 250–350 kcal | 0.2–0.3 kg/week |
| 10–12% | 200–250 kcal | 0.15–0.2 kg/week — very slow and careful |
| Factor | Why it helps cutting to 10% |
|---|---|
| 140g protein | Highest priority for cutting — protects lean mass ✅ |
| High fiber (35g) | Keeps you full in a deficit, no hunger crashes ✅ |
| Omega-3 (1,200mg EPA+DHA) | Actively prevents muscle breakdown during deficit ✅ |
| Magnesium glycinate | Improves sleep quality — poor sleep = cortisol = muscle loss ✅ |
| Organ meats | Micronutrient density prevents deficiencies that appear during long cuts ✅ |
| Low carb (~160g) | Keeps insulin low, promotes fat oxidation ✅ |
| Bro split | Maintains muscle stimulus during cut ✅ |
| Milestone | Estimated timeframe |
|---|---|
| 18% BF (~78 kg) | 4–5 weeks |
| 15% BF (~75 kg) | 8–10 weeks |
| 12% BF (~72.5 kg) | 14–16 weeks |
| 10% BF (~71 kg) | 18–22 weeks from now |
I want you to explain me everything about dieting and why should I eat 3-4 meals in al day and what is mps and why to maintain my muscles, and explain what you know about body which I need to know and what is catabolic and anabolic and so I want to explain me clearly
i eat very High Leucine right and if i eat 3-4 meals a day how can I drink water bro and give me a better option for bro split like which should I do, and why does muscle get hypersensitivity to protein after resistance training, and how sets should I do and why do we lose muscle when we don't use it and even after being in a maintenance calories, and explain me what resistance training do to me and my muscles and can i add whey concentrate 30g to my diet it have 24g protein per 30g, and can take Pre workout as 15g whey and banana and i go gym after 1hr is it fine, I made this plan, morning 8am 2 eggs, cabbage 100g, fish and 3 eggs at 1:30pm and pre workout 1 banana and 15g whey, night 100g cabbage Tempeh, mutton ( in organ meat ALSo curry) curry, and i eat raw onion 1, white rice 60g raw weight, and a banana that's it. And can I take creatine monohydrate 3g and why is Leucine explain to me about other amino acids like EAA etc and plants vs meat protein and and explain to me which fats are important and explain to me about micron and macro nutrients and how does it effect in day to day life how can I be happy and what is perfect body fat for male and why do you start to lose bone mass after 18 years old how can you Stop it and why do you loose muscles when don't do any training and how can you build muscle and explain to me about anti nutrients in plants and does cholesterol intake effect your cardiovascular health and explain to me about how should I keep my gut health and explain me about kidneys function and explain to me about liver function and every organ function in human body and does eating High protein effect your kidney in long term, explain me about brain and spinal cord and what is function of muscle and tendons, veins etc and explain to me about human biology and explain to me about creatine monohydrate
| Test | Your Result | Range | Status |
|---|---|---|---|
| RBC | 5.64 | 4.50–5.30 | ⚠️ Slightly HIGH |
| Hemoglobin | 14.7 g/dL | 12–16 | ✅ Good |
| Hematocrit | 44.9% | 33–51 | ✅ Good |
| MCV | 79.6 fL | 78–97 | ✅ Low-normal |
| MCH | 26.1 pg | 25–35 | ✅ Good |
| MCHC | 32.9 g/dL | 32–36 | ✅ Good |
| RDW | 14.0% | 11.5–14 | ⚠️ At upper limit |
| Platelets | 263 | 150–410 | ✅ Perfect |
| WBC | 9.00 | 4–10 | ✅ Good |
| Neutrophils | 67.6% | 34–64 | ⚠️ Slightly HIGH |
| Lymphocytes | 20.8% | 8–41 | ✅ Good |
| Monocytes | 8.5% | 3–6 | ⚠️ Slightly HIGH |
| Test | Result | Range | Status |
|---|---|---|---|
| Fasting glucose | 83 mg/dL | <100 | ✅ Perfect |
| Random glucose | 83 mg/dL | 56–145 | ✅ Perfect |
| Test | Result | Range | Status |
|---|---|---|---|
| Serum Sodium | 135.5 mmol/L | 136–144 | ⚠️ Just below range |
| Serum Potassium | 3.94 mmol/L | 3.60–5.10 | ✅ Good |
| Serum Chloride | 101.7 mmol/L | 101–111 | ✅ Good |
| Test | Result | Range | Status |
|---|---|---|---|
| Serum Creatinine | 0.75 mg/dL | 0.30–1.00 | ✅ Excellent |
| Serum Urea | 26.7 mg/dL | 17–43 | ✅ Good |
| Test | Result | Range | Status |
|---|---|---|---|
| T3 | 1.450 ng/mL | 0.690–2.010 | ✅ Perfect |
| T4 | 11.150 µg/dL | 4.800–11.500 | ✅ Good — upper normal |
| TSH | 1.234 µIU/mL | 0.370–6.000 | ✅ Perfect |
| Test | Result | Range | Status |
|---|---|---|---|
| Total Protein | 7.2 g/dL | 6.1–8.0 | ✅ Good |
| Serum Albumin | 4.3 g/dL | 2.5–3.5 | ✅ Excellent |
| Serum Globulin | 2.9 g/dL | 1.00–2.50 | ⚠️ Slightly high |
| A/G Ratio | 1.48 | 1.00–2.20 | ✅ Good |
| Total Bilirubin | 0.55 mg/dL | 0.20–0.70 | ✅ Perfect |
| Direct Bilirubin | 0.12 mg/dL | 0.10–0.50 | ✅ Good |
| Indirect Bilirubin | 0.43 mg/dL | 0.10–0.50 | ✅ Good |
| ALP | 30 U/L | 52–171 | ⚠️ LOW |
| SGOT/AST | 77 U/L | 8–36 | 🔴 HIGH |
| SGPT/ALT | 48 U/L | [8–36] | 🔴 HIGH |
| GGT | 38–? | — | Borderline |
| System | Aug 2025 (age 17) | Now (estimated, July 2026) |
|---|---|---|
| Blood sugar | Normal ✅ | Better ✅ (HbA1c 5.1%) |
| Kidney | Perfect ✅ | Still perfect ✅ |
| Thyroid | Perfect ✅ | Still perfect ✅ |
| Liver | ⚠️ Elevated enzymes | Likely much improved |
| Blood cells | Minor iron pattern | Likely resolved with current diet |
| Electrolytes | Borderline sodium | Fine with current diet |
| Food | Leucine per day |
|---|---|
| Mutton 100g | ~2.1g |
| Fish 150g | ~1.9g |
| Eggs 250g (5 eggs) | ~1.3g |
| Tempeh 200g | ~1.4g |
| Whey 30g (if added) | ~2.8g |
| Total (without whey) | ~6.7g |
| EAA | Why it matters | Best source in your diet |
|---|---|---|
| Leucine | #1 MPS trigger | Meat, eggs, whey |
| Isoleucine | Energy during exercise, glucose uptake | Meat, fish |
| Valine | Muscle repair, energy | Meat, eggs |
| Lysine | Collagen, immune function, calcium absorption | Meat, fish |
| Methionine | Liver detox, antioxidant (makes glutathione) | Eggs, meat |
| Phenylalanine | Makes dopamine, noradrenaline | Meat, eggs |
| Threonine | Collagen, gut lining integrity | Meat, fish |
| Tryptophan | Makes serotonin and melatonin — sleep and mood | Eggs, meat |
| Histidine | Makes histamine, nerve myelin sheath | Meat, fish |
| Meal | Protein | Calories | Rating |
|---|---|---|---|
| 8am (2 eggs + 100g cabbage + 150g fish) | ~48g | ~390 kcal | Good |
| 1:30pm (3 eggs) | ~19g | ~215 kcal | Good — fills the gap |
| 5pm (banana + 15g whey) | ~14g | ~250 kcal | Good pre-workout |
| 8pm (full night meal) | ~66g | ~968 kcal | Excellent |
| Total | ~147g | ~1,823 kcal | 7.5/10 |
| Day | Muscles |
|---|---|
| Monday | Push — Chest, Shoulders, Triceps |
| Tuesday | Pull — Back, Biceps |
| Wednesday | Legs — Quads, Hamstrings, Glutes, Calves |
| Thursday | Push (repeat) |
| Friday | Pull (repeat) |
| Saturday | Legs (repeat) |
| Sunday | Rest |
| Day | Muscles |
|---|---|
| Monday | Upper body |
| Tuesday | Lower body |
| Wednesday | Rest |
| Thursday | Upper body |
| Friday | Lower body |
| Weekend | Rest |
| Sets per week | Result |
|---|---|
| Below 10 | Maintenance |
| 10–15 | Good growth |
| 15–20 | Optimal growth |
| Above 20 | Diminishing returns, recovery issues |
| Deficiency | Daily life impact |
|---|---|
| Iron | Fatigue, poor concentration, low motivation, cold hands |
| Magnesium | Poor sleep, muscle cramps, anxiety, headaches |
| Zinc | Slow wound healing, poor immunity, low testosterone, hair loss |
| Vitamin D | Depression, fatigue, weak bones, poor immune function |
| B12 | Brain fog, nerve tingling, fatigue, mood issues |
| Iodine | Slow thyroid, weight gain, brain fog, cold sensitivity |
| Chromium | Poor blood sugar control, carb cravings |
| Vitamin B6 | Poor sleep (can't make serotonin or melatonin properly), irritability |
| Body Fat % | What It Looks Like | Health Status |
|---|---|---|
| 3–5% | Competition level bodybuilder — veins everywhere, unhealthy long-term | Dangerous to maintain |
| 6–9% | Very lean, full abs visible, very defined | Athletes, short-term cut |
| 10–14% | Lean, abs visible, athletic look | Optimal — your target |
| 15–19% | Fit, slight ab definition, healthy | Good range |
| 20–24% | Average, softness, some belly | Your current level — normal |
| 25%+ | Overweight range | Metabolic risk increases |
| Meal | Foods | Verdict |
|---|---|---|
| 8am | 2 eggs + 100g cabbage + fish | ✅ Good. Consider keeping 3 eggs here for more morning leucine |
| 1:30pm | 3 eggs | ✅ Fills MPS gap perfectly |
| 5pm | Banana + 15g whey | ✅ Ideal pre-workout — carbs + fast protein |
| 8pm | Cabbage 100g + tempeh + mutton + organ + rice 60g + raw onion + banana | ✅ Perfect post-workout meal |
| Creatine 3g | With any meal | ✅ Add it |
| Water | Between meals | ✅ 2.5L as now |
| Question | Answer |
|---|---|
| Leucine high? | Yes — 6–7g/day, saturating MPS threshold at every meal ✅ |
| Water with 3 meals? | Drink between meals, 500–750ml windows ✅ |
| New meal plan good? | Yes — 7.5/10, solid structure |
| Whey 30g OK? | Yes, use 15g pre-workout |
| Pre-workout 15g whey + banana, 1hr before? | ✅ Perfect |
| Better than bro split? | PPL — each muscle 2x/week, more growth |
| Sets? | 10–20 sets/muscle/week, 6–12 reps for size |
| Why lose muscle without training? | FOXO/MAFbx pathway activates, muscle tagged for breakdown |
| Creatine 3g? | ✅ Yes — monohydrate, 3–5g/day, post-workout or any meal |
| High protein and kidneys? | Safe with healthy kidneys — your creatinine 0.75 confirms this |
| Cholesterol and heart? | Dietary cholesterol does not cause heart disease in healthy people |
| Best body fat for males? | 10–14% optimal |
| Bone loss after 18? | Bone building slows but continues to 25–30. Your D3+K2+calcium+training protects it ✅ |
| Lab results | Get a repeat liver function test NOW — this is priority #1 |
explain to me about cortisol and other hormones and what break does to your body and why does it hurts in between chest and some kinda buring and pain will be there and why is first love hurts the most and if i was never experienced love from other, why do i fear girls since my childhood, why do like to be alone but it hurts to be alone, and why does it feels talking with make me sacred like i don't want talk kinda feeling and why does first love for a male (me) she feels special to me, but she is not and she likes someone and why I am sacred of women, and in life ukg and 1 class i was in hostel and then form class 2- class 11th I was at home, when my first love accepted i felt so happy but after some days she left me because she had some or she wanted some rich because she is rich but why do i feel so sad about it and it been 1.5 years too, and don't find a gf or made a girl as friend, and since I was born to today I made 4 girls as my friends, explain about mental health,