Finance: Statement Images & Account Summaries
Financial statement images and account summary graphics turn your app's data into shareable, visual content that users actually want to post. Think Spotify Wrapped, but for money.
Every December, millions of people share their Spotify listening stats. It's free marketing at a scale money can't buy. Fintech apps are sitting on data that's just as personal and just as shareable. But most finance apps present spending breakdowns and investment returns as tables buried in a dashboard. Nobody screenshots a table.
I've helped three fintech startups build year-in-review campaigns and monthly summary cards. The approach is always the same: turn raw numbers into templated images that users share. Here's how we do it.
Types of financial statement imagesTypes of Financial Statement Images
Monthly account summariesMonthly Account Summaries
A visual snapshot of the month's financial activity.
What to include:
- Total income and spending
- Net savings (income minus spending)
- Top 3-5 spending categories with percentages
- Comparison to previous month (up/down arrows)
- Account balance (masked or omitted for privacy)
Spending category breakdownsSpending Category Breakdowns
Visual pie chart or bar chart showing where money went.
- Category names and percentages
- Color-coded segments
- Most notable category highlighted
- Comparison to national average (optional but engaging)
Year in review wrapped styleYear-in-Review ("Wrapped" Style)
The big annual content play. According to Plaid's Fintech Effect Report, 80% of Americans now use fintech apps, and they want to share their financial wins.
- Total transactions processed
- Total amount saved
- Biggest spending category
- Longest streak of staying under budget
- Fun stats ("You bought coffee 247 times")
- Financial personality type ("The Saver," "The Investor," "The Spontaneous Spender")
Investment portfolio snapshotsInvestment Portfolio Snapshots
For investment and trading apps:
- Portfolio total return (percentage and dollar amount)
- Top performing holding
- Asset allocation breakdown
- Comparison to benchmark (S&P 500, etc.)
Savings goal progressSavings Goal Progress
- Goal name ("Emergency Fund," "Vacation," "New Car")
- Progress bar with percentage
- Amount saved vs. target
- Estimated completion date
Transaction receiptsTransaction Receipts
Individual transaction confirmations as branded images:
- Transaction amount and type
- Merchant name
- Date and time
- Running balance (optional)
Privacy first designPrivacy-First Design
Financial data is sensitive. Every image you generate needs to be designed with privacy in mind.
Rules:
| Data Type | In-App Image | Shareable Image |
|---|---|---|
| Account balance | Last 4 digits only | Never show |
| Transaction amounts | Show full | Show percentages only |
| Income | Show if user opts in | Never show |
| Spending categories | Show amounts | Show percentages only |
| Account numbers | Never show full | Never show |
| Personal name | Show | Show first name only |
Two template variants for each image type:
- Private version: full details, for the user's eyes only (in-app dashboard, email)
- Shareable version: percentages and categories only, no dollar amounts (social media)
This is a critical design decision. Users want to share their financial personality ("I spent 40% on food!") without revealing their salary.
Generating financial summary imagesGenerating Financial Summary Images
Monthly summaryMonthly Summary
curl -X POST 'https://render.imejis.io/v1/MONTHLY_SUMMARY_TEMPLATE' \
-H 'dma-api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"user_name": {
"text": "Alex"
},
"month": {
"text": "March 2026"
},
"total_spent": {
"text": "$3,247"
},
"total_income": {
"text": "$5,800"
},
"net_saved": {
"text": "+$2,553"
},
"top_category": {
"text": "Housing (35%)"
},
"category_2": {
"text": "Food & Dining (22%)"
},
"category_3": {
"text": "Transportation (12%)"
},
"vs_last_month": {
"text": "↓ 8% less spending"
}
}'Shareable version no dollar amountsShareable Version (No Dollar Amounts)
{
"user_name": { "text": "Alex" },
"month": { "text": "March 2026" },
"headline": { "text": "I saved 44% of my income this month" },
"category_1": { "text": "Housing — 35%" },
"category_2": { "text": "Food — 22%" },
"category_3": { "text": "Transport — 12%" },
"category_4": { "text": "Entertainment — 8%" },
"category_5": { "text": "Other — 23%" },
"app_branding": { "text": "Tracked with YourApp" }
}Building a year in review campaignBuilding a Year-in-Review Campaign
Year-in-review is your biggest content marketing opportunity. Here's how to execute it.
Step 1 aggregate user dataStep 1: Aggregate User Data
In November, start computing annual stats for each user:
def compute_year_stats(user_id, year=2026):
transactions = get_transactions(user_id, year)
return {
'total_transactions': len(transactions),
'total_spent': sum(t['amount'] for t in transactions if t['type'] == 'debit'),
'total_saved': compute_savings(user_id, year),
'top_category': get_top_category(transactions),
'top_merchant': get_top_merchant(transactions),
'coffee_count': count_merchant_type(transactions, 'coffee'),
'longest_budget_streak': get_budget_streak(user_id, year),
'personality_type': assign_personality(transactions),
}Step 2 design multi slide templatesStep 2: Design Multi-Slide Templates
Year-in-review works best as a series of images (like Instagram carousel or Stories):
| Slide | Content |
|---|---|
| 1 | "Your 2026 in Review" with name and branding |
| 2 | Total transactions and spending overview |
| 3 | Top spending category with fun visual |
| 4 | Savings highlight and biggest achievement |
| 5 | Fun stats ("You ordered takeout 89 times") |
| 6 | Financial personality type |
| 7 | CTA: "Share your stats" |
Create a template for each slide in Imejis.io.
Step 3 generate for all usersStep 3: Generate for All Users
async function generateYearInReview(userId) {
const stats = await computeYearStats(userId, 2026)
const slides = [
{ template: "YIR_INTRO", data: { user_name: { text: stats.firstName } } },
{
template: "YIR_OVERVIEW",
data: {
transactions: { text: stats.totalTransactions.toLocaleString() },
total_spent: { text: `$${stats.totalSpent.toLocaleString()}` },
},
},
{
template: "YIR_TOP_CATEGORY",
data: {
category: { text: stats.topCategory.name },
percentage: { text: `${stats.topCategory.pct}%` },
},
},
{
template: "YIR_SAVINGS",
data: {
saved: { text: `$${stats.totalSaved.toLocaleString()}` },
streak: { text: `${stats.longestBudgetStreak} days` },
},
},
{
template: "YIR_FUN_STATS",
data: {
coffee: { text: `${stats.coffeeCount} coffees` },
top_merchant: { text: stats.topMerchant },
},
},
{
template: "YIR_PERSONALITY",
data: { type: { text: stats.personalityType } },
},
]
const images = []
for (const slide of slides) {
const image = await generateImage(slide.template, slide.data)
images.push(image)
}
await saveYearInReview(userId, images)
await sendPushNotification(userId, "Your 2026 Year in Review is ready!")
}Step 4 make it shareableStep 4: Make It Shareable
Add "Share to Instagram Stories" and "Share to Twitter" buttons. Pre-generate the shareable (privacy-safe) versions alongside the full versions.
The goal: users share at least one slide. Each shared image has your app's branding. Their friends see it, get curious, download your app.
For social sharing best practices, check our social media image automation guide.
Savings goal progress cardsSavings Goal Progress Cards
These are small but high-impact. When a user hits a savings milestone, celebrate it:
{
"user_name": { "text": "Alex" },
"goal_name": { "text": "Emergency Fund" },
"progress_pct": { "text": "75%" },
"amount_saved": { "text": "$7,500" },
"target_amount": { "text": "$10,000" },
"eta": { "text": "Est. completion: July 2026" }
}These milestone images are push notification content gold. "You're 75% to your Emergency Fund goal!" with a personalized image gets opened at 3-4x the rate of a text-only notification.
Security considerationsSecurity Considerations
Financial images require extra care:
- Use HTTPS for all API calls: never send financial data over unencrypted connections
- Mask sensitive data before sending: the API doesn't need full account numbers
- Don't cache shareable images with private data: separate private and shareable templates
- Comply with your regulator's guidelines: PCI DSS for payment data, SOC 2 for general security
- Log image generation requests: audit trail for compliance
For more on API security in general, read our API security best practices guide.
Cost at scaleCost at Scale
| Fintech Type | Monthly Images | Plan | Cost |
|---|---|---|---|
| Early-stage app (1K users) | ~1,000 | Starter | $14.99/month |
| Growing app (10K users) | ~10,000 | Pro | $24.99/month |
| Year-in-review campaign (100K users × 6 slides) | 600,000 (one-time) | Enterprise | Custom |
The year-in-review campaign is a spike. Plan for it in advance with Enterprise pricing if you have a large user base. Monthly summaries are steady-state and predictable.
Check our pricing for current tier details.
FaqFAQ
How do i handle sensitive financial data in generated imagesHow do I handle sensitive financial data in generated images?
Never include full account numbers, SSNs, or passwords in generated images. Mask sensitive data before sending to the API; show only last 4 digits of account numbers. Use HTTPS for all API calls. The image API processes data in transit and doesn't store your financial information.
What types of financial images can i generateWhat types of financial images can I generate?
Monthly account summaries, spending category breakdowns, investment portfolio snapshots, year-in-review graphics, transaction receipts, savings goal progress, credit score cards, and budget vs. actual comparisons. Any financial data that fits a template.
Can users share financial summaries on social mediaCan users share financial summaries on social media?
Yes, but design for privacy. Create a "shareable" version that shows percentages and categories without revealing actual dollar amounts. Users can share their spending breakdown (40% housing, 25% food) without exposing their income.
How do fintech companies use year in review imagesHow do fintech companies use year-in-review images?
Similar to Spotify Wrapped. Generate personalized year-end summaries showing total transactions, top spending categories, savings milestones, and fun stats. These go viral when users share them, driving organic app downloads.
How much does financial image generation costHow much does financial image generation cost?
Imejis.io starts at $14.99/month for 1,000 images. A fintech app generating monthly summaries for 5,000 users needs 5,000 images/month, covered by the Pro tier at $24.99/month. Year-in-review campaigns for 100K users need Enterprise pricing.
Your users data deserves better than a spreadsheetYour Users' Data Deserves Better Than a Spreadsheet
Every fintech app sits on rich, personal data. Most of it lives in dashboards that users check once and forget.
Turn that data into images people want to save, share, and celebrate. Monthly summaries that feel like a magazine. Year-in-review content that goes viral. Savings milestones that make users proud.
The data already exists. The templates are the easy part.