diff --git a/app/src/Router.tsx b/app/src/Router.tsx index efc450ad..c734b3b2 100644 --- a/app/src/Router.tsx +++ b/app/src/Router.tsx @@ -9,6 +9,7 @@ import { SimulationCreationFlow } from './flows/simulationCreationFlow'; import DashboardPage from './pages/Dashboard.page'; import DonatePage from './pages/Donate.page'; import HomePage from './pages/Home.page'; +import AIMLPage from './pages/ML.page'; import PoliciesPage from './pages/Policies.page'; import PopulationsPage from './pages/Populations.page'; import PrivacyPage from './pages/Privacy.page'; @@ -142,6 +143,10 @@ const router = createBrowserRouter( path: 'terms', element: , }, + { + path: 'ai-ml', + element: , + }, { path: 'methodology', element:
Methodology page
, diff --git a/app/src/assets/ai-analysis.png b/app/src/assets/ai-analysis.png new file mode 100644 index 00000000..2a14b886 Binary files /dev/null and b/app/src/assets/ai-analysis.png differ diff --git a/app/src/assets/us-household-ai.png b/app/src/assets/us-household-ai.png new file mode 100644 index 00000000..cfcea4f1 Binary files /dev/null and b/app/src/assets/us-household-ai.png differ diff --git a/app/src/components/TwoColumnView.tsx b/app/src/components/TwoColumnView.tsx index e57af7e6..ed15089e 100644 --- a/app/src/components/TwoColumnView.tsx +++ b/app/src/components/TwoColumnView.tsx @@ -1,4 +1,4 @@ -import { Grid, Paper, Title } from '@mantine/core'; +import { Box, Grid, Paper, Title } from '@mantine/core'; import { colors, spacing, typography } from '@/designTokens'; interface TwoColumnViewProps { @@ -20,29 +20,31 @@ const TwoColumnView = ({ title, leftColumn, rightColumn, backgroundColor }: TwoC }; return ( - - - {title} - - - {leftColumn} - {rightColumn} - - + + + {title} + + + {leftColumn} + {rightColumn} + + + ); }; diff --git a/app/src/components/shared/static/CardsWithHeader.tsx b/app/src/components/shared/static/CardsWithHeader.tsx index 3e7af154..33128113 100644 --- a/app/src/components/shared/static/CardsWithHeader.tsx +++ b/app/src/components/shared/static/CardsWithHeader.tsx @@ -11,8 +11,6 @@ export function CardsWithHeader({ containerTitle, cards }: CardsContainerProps) return ( - - - - {title} - - + + + + {title} + + - + - + - - - {description} - - - + + + {description} + + + + ); } diff --git a/app/src/components/shared/static/TextCardWithHeader.tsx b/app/src/components/shared/static/TextCardWithHeader.tsx index 6bfd5649..8a320d6f 100644 --- a/app/src/components/shared/static/TextCardWithHeader.tsx +++ b/app/src/components/shared/static/TextCardWithHeader.tsx @@ -29,7 +29,7 @@ export const TitleCardWithHeader: React.FC = ({ textColor = colors.text.inverse; break; case 'gray': - resolvedBackgroundColor = colors.gray[200]; + resolvedBackgroundColor = colors.gray[100]; textColor = colors.text.primary; break; case 'white': @@ -47,7 +47,7 @@ export const TitleCardWithHeader: React.FC = ({ {/* Card with content */} - + {sections.map((section, idx) => ( <> diff --git a/app/src/pages/ML.page.tsx b/app/src/pages/ML.page.tsx new file mode 100644 index 00000000..00696d68 --- /dev/null +++ b/app/src/pages/ML.page.tsx @@ -0,0 +1,137 @@ +import { Box } from '@mantine/core'; +import aiAnalysisImg from '@/assets/ai-analysis.png'; +import usHouseholdAiImg from '@/assets/us-household-ai.png'; +import CalloutWithImage from '@/components/shared/static/CalloutWithImage'; +import { CardsWithHeader } from '@/components/shared/static/CardsWithHeader'; +import PageHeader from '@/components/shared/static/PageHeader'; +import { TitleCardWithHeader } from '@/components/shared/static/TextCardWithHeader'; +import TwoColumnView from '@/components/TwoColumnView'; +import { spacing } from '@/designTokens'; + +export default function AIMLPage() { + const leftColumnContent = ( + <> + PolicyEngine integrates large language models with our computational tax-benefit engine to + transform complex calculations into clear explanations. +
+
+ For household calculations, we process thousands of intermediate values across tax and benefit + programs, then use Anthropic's Claude API to generate plain-language explanations of + eligibility, amounts, and potential changes. +
+
+ For policy analysis, we leverage GPT-4 to weave narratives from our computational results, + explaining reforms in terms anyone can understand - from simplified `ELI5` explanations to + detailed technical analyses for policy experts. + + ); + + const rightColumnContent = ( + Diagram illustrating AI analysis + ); + + return ( + + + + console.log('clicked')} + imageSrc={usHouseholdAiImg} + imageAlt="AI Explanations Tool Preview" + /> + + + + + + + +

Watch our AI Demo

+