Version 1.74.6
Latest April 2026
The home-screen and lock-screen widgets now refresh right after an app update. They no longer hold "Set a budget" or last month's used hours while the app inside already shows the current state
If iCloud syncs price checks from another iPhone or iPad, the widget on every device catches up within a second — no need to open the app first to make it agree with the calculator
If you start Earned with sample data during onboarding, the budget widget now shows your sample budget right away instead of an empty "Set a budget" prompt
iCloud sync feels faster after a check is logged. The push permission CloudKit needs was missing — now in place
Version 1.74.5
April 2026
The Insights hero now reads "You walked away from" with a money total below — same number as before, but the wording makes clear you're looking at purchases you declined, not money sitting in a savings account
The card formerly called "Skipped & Saved" is now "Avoided Spending", and the subtitle below the total reads "you walked away from" instead of "not spent". Honest about what the number means
The skip-rate ring on Insights now uses skipped + bought + delayed as its denominator — the decisions you actually made. Pending checks no longer dilute the number, so the percentage matches the math you'd do in your head
The Bigger Picture badge below the Calculator result now reads as exact hours and minutes — "3 h 30 min · exact" — instead of a decimal like "3.5". Same value, no decimal competing with the whole-hour figure above
Apple Watch corner and circular complications now show a small target icon above the hours number, so a glance at the watch face tells you the figure is your monthly budget remaining
The home-screen and lock-screen widgets now show your monthly budget remaining. The medium and large widgets, plus the rectangular and inline lock-screen complications, all read as "X hours left this month" or "X hours over budget" with a progress bar. Tap to land in Insights or History
The small home-screen widget mutes to grey when your last check is more than two weeks old, so an old number reads as a memory rather than something current
Fresh installs no longer show "40 hours left this month" before you've set a budget. The widget now waits for you to confirm a budget before showing one
The compound-growth strip on the Calculator now shows proper labels in every language. Slovak, Czech, German, and others were quietly rendering raw key identifiers
Version 1.74.1
April 2026
Settings → About now has a Read the Guide link at the top of the Support section — one tap takes you to the help page on earned.jaam.group, above Report a Bug and Request a Feature
The home-screen widget background now matches the app exactly. Same two-corner logo arc, same proportions, same opacity — glance from the Calculator tab to your home screen and you're looking at one design, not two
Widget, lock-screen, and Apple Watch all now agree on the same hour for the same purchase. Before, a €500 buy at your hourly rate might read "24 hours" on the iPhone but "23 hours" on the widget. Everything's on one rule now: under 10 hours shows a decimal only when it changes the number you read, 10 and above is always a whole number
The small home-screen widget now has a quiet LAST CHECK caption above the hero number, so the time on top reads as clearly what it is — your most recent price check — rather than an ambiguous summary
The large home-screen widget no longer shows a vestigial relative-time line next to the hero number. Two time values stacked close together was the single most confusing element across our widget surfaces — now there's one number that clearly means one thing
Various stability and performance improvements
Version 1.73.4
April 2026
Weekly Digest — every Monday, see your week repriced in hours of your life. One headline story (the biggest buy, a category shift, how much you reclaimed by skipping) and up to two supporting notes. Reads top-to-bottom in seconds
Time Pass — the optional add-on that unlocks the Weekly Digest and future AI features. $1.99/month or $14.99/year with a 7-day free trial on yearly. Core Earned (calculator, history, insights, budget, watch, widget) stays included with the app. Manage or cancel from Settings → Time Pass
Refreshed look — new logo mark and app icon, plus a soft branded background on Insights and the Weekly Digest. Two large watermarks tone the edges without competing with your numbers
Time Pass now lives in its own Subscription section in Settings, with a Free trial label you can spot at a glance. One tap opens the subscription sheet with the TIME PASS wordmark on top. Active subscribers see a clear Active status
The Weekly Digest locked card on Insights now shows the TIME PASS wordmark and a Free trial pill, so you can start your trial from the tab where the feature actually lives
The subscription sheet now has tappable Privacy Policy and Terms of Use links in the footer, right above Restore Purchases — both open in your browser
The Apple Watch app icon is now the clean, modern mark that matches the iPhone. The previous Watch icon was still the original textured scaffold — refreshed end-to-end
Weekly Digest headline now shows the strongest real story from your week, not a fixed summary count. On rich weeks the summary falls out of the top three entirely
Weekly Digest copy across all 13 languages now says "last week" instead of "this week". The digest arrives every Monday and looks back at the seven days that just ended
Time Pass paywall now shows a proper loading state while prices come in, and a clear inline error with a Retry button if Apple's servers don't respond. No more silent empty cards
Translations — paywall headline, subheadline, error copy, close button, and all Digest text now render in your language across all 13 supported locales
The Home Screen widget now blends into the app — same card surface, same material, no more mismatched frosted-glass overlay
The widget now follows your in-app Dark or Light setting, not just the system theme. Pick Dark in the app, the widget goes dark too
Privacy Policy now correctly names AMBJA s.r.o. — the Slovak company that holds our Apple Developer account — as the data controller under GDPR. JAAM Group International LLC is the engaged data processor. The two companies behind Earned, with their legal roles made explicit
Weekly Digest hero sub-line said "of your life on purchases" — but the number sums every check, including skipped and delayed items. Now reads "of your life in decisions this week"
Three result-screen layouts were clipping at the largest Dynamic Type size. Re-recorded
Version 1.66.2
April 2026
Spending categories — tag any purchase with one of 10 categories. Earned suggests one from your item name and learns from your history. Browse and filter by category in History
Category Breakdown in Insights — see how many hours you've spent per spending category, sorted by biggest time sink. Scoped to This Month, 3 Months, This Year, or All Time
The Bigger Picture — expand the result card to see comparison purchases, what the price would grow to if invested over 10–30 years, and how many years of retirement freedom skipping it would fund
Auto-snapshot before restore — when you restore from a backup, Earned silently saves your current data first so you can always get back to where you were
The result page is quieter by default — comparisons and investment projections live inside The Bigger Picture, not stacked between the result and your decision buttons
iCloud backup now correctly saves and restores category data, category labels, and Watch-captured entries
The app name now always displays as "Earned" on all devices, regardless of your device language
Version 1.58.0
April 2026
Apple Watch app — turn the Digital Crown to scroll through any price and see how many hours of your life it costs, in real time on your wrist. Enter prices by drawing digits with your finger. Log to iPhone History with one tap
Watch Smart Stack widget — see your monthly budget hours remaining at a glance. Green while you're under, amber at 80%, red when you're over
iCloud Sync now shows its status in Settings → Data & Backup — idle, syncing, last synced time, or if something didn't go through
Home screen widget showed raw key names instead of readable text on some devices. Fixed
Version 1.50.1
New April 2026
A huge update. Since the last version on the App Store, Earned has gone from a simple price-to-time calculator to a full companion for buying decisions
Insights tab — hours reclaimed, skip rate, worth-it rate, top purchases, and freedom hours, filtered by This Month, 3 Months, This Year, or All Time
Monthly budget tracker — set how many hours of life you're willing to spend, see what's left on the Calculator and in History, and look back at previous months
Five decision rule banners that scale with the price — Quick Buy, Worth Checking, Think Twice, Sleep On It, Big Decision — each with its own colour and message
Decision chips on every check — Skip it, Buy anyway, or Not now — tap once and it's saved
"That's like" comparisons — every price converted into lattes, movies, gym visits, and more, fully customisable in Settings
Home screen widget in small, medium, and large — hours reclaimed this month at a glance
Price scanner — point at a price tag and Earned reads it
iCloud Sync and automatic daily backups — your data stays with you across devices, last 7 days kept safe in your private iCloud
Sample data mode — try the whole app with realistic history before entering your income
Settings split into focused sub-pages — Profile, Comparisons, Notifications, Display, Data & Backup, Analytics, About — with your effective hourly rate right on top
Optional anonymous analytics — a count-only toggle in Settings → Analytics to help shape what comes next. Off by default. Prices, amounts, and history never leave your device
Every user-facing string rewritten across all 13 languages with an informal, direct "you" tone
Emotional copy that scales with the price — small purchases read in hours, big ones in weeks of your life
Accessibility pass — 44pt tap targets, VoiceOver labels throughout, full Dynamic Type up to AX5, dark mode polish
Locale-aware number entry — "12,99" and "1 234,56" work the way they should on every device
Offline conversions now show your result with an "estimated" label instead of an error
Changing currency with existing history asks before converting
Dozens of crash, memory, and concurrency fixes from top-to-bottom audits
Version 1.49.0
New April 2026
Optional anonymous analytics — a new toggle in Settings → Analytics lets you share a handful of count-only signals to help shape what comes next. Off by default. Prices, amounts, and history never leave your device
Transparent by default — tap the ⓘ next to the Analytics toggle to see the full list of 12 event names we ever send. No hidden categories
Silent opt-out — flip the toggle off and Earned wipes every queued event and the anonymous ID from your device instantly. No farewell ping
Privacy Policy rewritten to cover the opt-in feature end to end — what gets sent, what never gets sent, how long it's kept, and how opt-out works
All 13 supported languages updated together — the Analytics page and toggle are fully localised on day one
Version 1.34.44
New April 2026
iCloud Sync — your data syncs automatically across all your iPhones. Settings shows a live status: "Synced 2 min ago." Encrypted — only you can see it
Automatic backups — Earned backs up your data to iCloud Drive every day. Restore any backup in one tap from onboarding or Settings
Post-save decision strip — right after saving a check, mark what happened: Bought it, Skipped, or Saved for Later. No scrolling required
Daily reminder notifications — a nudge at your preferred time, only on days you haven't checked a price yet
Insights time windows — switch between This Month, Last 3 Months, This Year, and All Time. Every card updates to match
Investment projections — skip something and invest instead? See what it grows into over 10, 20, and 30 years
Info tips on every card — tap any ⓘ to understand exactly what each number means
Settings split into dedicated pages: Profile, Display, and Data & Backup
Profile shows a full rate breakdown: gross income → after tax → after expenses → effective hourly rate
Calculator state survives force-quitting — your price and label are still there when you reopen the app
Large purchases now read as months and years: "2 months" instead of "10 weeks"
iCloud Sync toggle no longer jumps you to a different tab on confirm
Quick Buy banner no longer appears for purchases over 30 minutes
Number formatting in charts respects your locale's decimal and grouping separators
Version 1.32.5
New April 2026
Post-save decision strip — right after saving a check, mark what you actually did: Bought it, Skipped, or Saved for Later
Monthly Budget — set a spending limit in hours. Watch it fill through the month. Tap "Past months" to see a full year of history
Worth Checking rule — a new banner for purchases between 1–4 hours of your time, bridging the gap between Quick Buy and Think Twice
Daily & shopping reminders — a daily nudge at your preferred time, plus automatic Friday/Saturday prompts
Insights time windows — switch between This Month, Last 3 Months, This Year, and All Time
Widget: hours reclaimed this month at a glance, without opening the app
Investment projections toggle — hide the compound growth table if you want a simpler view
Settings split into dedicated pages: Profile, Display, and Budget
Profile shows a full rate breakdown: gross → after tax → after expenses → effective hourly rate
"Sleep On It" banner now gives a message specific to what the purchase actually costs you
App now always opens on the Calculator after completing onboarding
Default tax rate is 0% when you skip the deductions step — no silent assumptions
Version 1.13.1
Fixes April 2026
Fixed legal text errors in Slovak and Hungarian translations — several mistranslated and nonsense phrases corrected
Sample data now appears in your device language across all 13 supported locales
Sample data redesigned to populate all eight Insights cards so you get a realistic preview of the app from the first launch
Version 1.13.0
New April 2026
Try it instantly — a "Try with sample data" button on the welcome screen loads a demo profile with realistic purchases so you can explore before setting up
Daily streak — a 🔥 flame in the Calculator counts how many days in a row you've used Earned; miss a day and it resets
Sample data now shows in your device language across all 13 supported locales
"Big Decision" rule banner message: now reads "A full work week or more" instead of "A full work week", correctly reflecting that the rule covers any purchase ≥ 40 hours of work, not exactly one week (reported by user in Slovak locale)
Slovak legal text: Cyrillic character in terms title, "Nesbierame"→"Nezbierame" (7×), Czech words mixed in (součty, kdykoľvek, těžiť), nonsense words (neintelercujeme, vykňažať, Vyhadzujeme), spelling errors (framevorku, šifrowania, Stiahnnutím), wrong gender (záväzný zmluvu), wrong title (Duševný vlastník)
Plus 15 additional bug fixes and improvements.
Version 1.12.0
New March 2026
Onboarding redesigned — setup screens now fit on screen without scrolling on most devices
Cleaner empty states throughout the app
Version 1.11.0
New March 2026
price cap: input is limited to 10 working years at the user's effective rate (adapts to income and currency); when the ceiling is hit, the currency symbol pulses orange and a 2-second caption "That's already 10 years of your work." appears — translated into all 13 locales
ⓘ exchange rate info button from price input area into the conversion row ("⇄ €7,93 EUR ⓘ") where it belongs semantically; ✕ clear button stands alone in its own slot
Version 1.10.0
New Fixes March 2026
ⓘ info button to the currency conversion row in Calculator — tapping it explains that today's rate is used, rates refresh daily, and how to change the home currency in Settings; translated into all 13 locales
Shorten conversion info tip to two short lines: "Today's rate, updated daily." and "Tap the currency symbol to change it."
✕ / ⓘ alignment: move InfoButton into the same trailing VStack as the clear button so both icons share the same right edge by construction; remove ⓘ from conversion row
✕ and ⓘ right-edge alignment in Calculator price card — remove trailing padding from ✕ so both icons sit at the same horizontal position
Plus 2 additional bug fixes and improvements.
Version 1.9.0
New Fixes March 2026
live income teaser card to onboarding: after entering a valid income, show 3 concrete examples (coffee, grocery run, streaming) with their time cost at the user's effective hourly rate — payoff is immediate, before any further steps
BudgetCard calculator mode: constrain trailing label to 130 pt with multilineTextAlignment(.trailing) so "39 hours left after this purchase" wraps into two right-aligned lines matching the two-row left side
Restore "X left after this purchase" trailing label in BudgetCard calculator mode; keep two-row layout so context caption sits below and never causes the main row to wrap
BudgetCard calculator mode: remove trailing "X left after this purchase" label — left side (bold item hours + context caption) is sufficient; bar fill communicates the proportion
BudgetCard calculator mode footer: right-side label ("39 hours left after this purchase") now sits in its own trailing-aligned column so any wrapping is right-aligned and intentional, matching the two-column layout of the left side
BudgetCard calculator mode footer alignment — split into two rows: bold pending hours + trailing label on top, context caption ("this item · 40 hours total") below; prevents text wrapping when hours string is long (e.g. "48 minutes")
Plus 4 additional bug fixes and improvements.
Version 1.8.0
New Fixes March 2026
Animation extension with five named spring constants (earnedStandard, earnedSnappy, earnedGentle, earnedHeroReveal, earnedEntrance)
AppTheme.Timing with five named sleep durations (autosaveDebounce, savedBadge, keyboardDismiss, scanConfirmation, launchOverlay)
AppTheme.Spacing scale (micro 4pt through xxl 32pt)
AppTheme.Size with named component dimensions (icon badges, comparison chip, insight ring, progress bar, rate card)
nine ViewModifier-backed font helpers to AppTheme: earnedHeroFont, earnedResultFont, earnedInputFont, earnedInputFieldFont, earnedStatFont, earnedSymbolFont, earnedWordmarkFont, earnedStepTitleFont, earnedCompactWordmarkFont — each owns its @ScaledMetric internally so call sites need zero boilerplate
AppTheme.Typography token namespace with nine base point sizes for use with @ScaledMetric
25 animation call sites across CalculatorView, CalculatorViewModel, HistoryView, OnboardingView, DecisionButtonRow, LabeledSlider, PriceScannerViewModel, SettingsView, and TimeResultCard
5 Task.sleep call sites in CalculatorView, HistoryView, PriceScannerView, and SettingsView
all call sites in TimeResultCard, ShareCardView, CalculatorView, InsightsView, OnboardingView, PriceScannerView, and RateHeroCard to use the shared helpers; remove all per-view @ScaledMetric declarations for these roles
build error: move rateDisplaySize @ScaledMetric from SettingsView to RateHeroCard where it is actually used
build error: add @ScaledMetric heroSize and wordmarkSize to ShareCardView (they were declared on TimeResultCard but used in a separate struct)
Version 1.7.0
New Fixes March 2026
decision-based motivation line to share card: "Smart call. Your time stays yours." (skipped, green), "Worth every minute." (bought, rose), "Good things come to those who wait." (delayed, orange); hidden when no decision is set; localized in all 13 languages
share preview sheet — tapping Share now shows a live preview of the share card before presenting the iOS share sheet
Polish info (ⓘ) popups: icon now shown in a colored rounded-square badge (indigo for general tips, orange for Budget, green for Worth It insights); height adjusted to 240 pt to accommodate the larger badge
Refine share card motivation line to factor in Worth It rating:
Polish share card typography: item name → .callout .semibold (was .subheadline .medium); price → .title2 .semibold (was .title3); hero time → 72 pt .heavy (was 68 pt .bold); "of your life" → .title3 .semibold (was regular); adjusted vertical spacing for tighter hierarchy
Calculator logical ordering: share button moved after label + decision row so item name and motivation line are set before sharing; stat row (workdays/hours/rate) now appears before investment/FI projection row; BudgetCard no longer hidden after saving a purchase
silence "onChange(of: String) action tried to update multiple times per frame" warning — price field now uses .task(id:) instead of .onChange so calculate() runs after the render cycle completes
Plus 5 additional bug fixes and improvements.
Version 1.6.0
New Fixes March 2026
Built-in comparison rows in the picker now use individual accent colors matching the style of custom comparison rows (gym → orange, sleep → blue, movie → purple, concert → pink, etc.)
Strip chips on the Calculator screen now also show each built-in's own color instead of uniform indigo
comparison picker: all built-in comparisons (Time + Price) now appear in a single "Showing in strip" list — visible items have a drag handle and filled checkmark, hidden items are dimmed with an empty circle; no more separate Time/Price sections
Share button no longer flashes black on first tap — 50ms yield between ImageRenderer and sheet presentation lets UIKit prepare the activity controller before animating in
Backup export uses scene.keyWindow instead of deprecated scene.windows.first
Plus 20 additional bug fixes and improvements.
Version 1.5.0
New Fixes March 2026
drag-to-reorder for custom comparisons in the "Showing in strip" section
drag-to-reorder "Selected" section at the top of the comparison picker
Extract LaunchScreenView into Features/Launch/LaunchScreenView.swift, remove inline duplicate from EarnedApp.swift
Cleanup: Delete EarnedLogoMark.swift and ShareCardView.swift stub comment files
Cleanup: Fix EarnedWidget scheme — remove broken test plan reference pointing to non-existent container
Release build Swift optimization was -Onone (no optimization) — corrected to -O
Register all EarnedTests source files in build phase
Plus 9 additional bug fixes and improvements.
Version 1.4.0
New Fixes March 2026
`localizedInputString()` and `localizedDouble()` shared helpers; replace all `String(format:)` & `replacingOccurrences` hacks
ⓘ info button to "That's also…" comparison strip — explains what the cards mean
ⓘ info button to Monthly Budget card in History and Calculator
Quick Scan lock screen widget: a dedicated circular icon that opens Earned's calculator with one tap directly from the Lock Screen
Custom Comparisons: users can create their own "That's also…" items with a name, SF Symbol icon, accent color, reference price, and frequency (once / monthly / yearly)
custom comparisons to the front of the comparison strip (shown before built-in items)
Locale-aware decimal & grouping separators for all price/amount input fields and display (income, expenses, custom comparison price)
comparison picker rows: consistent coloured icon containers for built-in and custom items
missing currency symbol in My Comparisons price labels
info tips: switch from popover to bottom sheet style (matches "If invested" & "Freedom" sheets, fixes text truncation)
Version 1.3.0
New Fixes March 2026
budget teaser line to "How It Works" step
ⓘ info tip popovers to Settings sliders (tax rate, hours/day, days/week, budget limit), iCloud Sync toggle, Worth-It rating buttons in Check Details, and Worth-It Rate card in Insights
`InfoButton` reusable component to Shared/Components
optional `infoTip` parameter to `LabeledSlider`
in-app Privacy Policy (12 sections, GDPR + CCPA compliant)
in-app Terms of Service (9 sections, Slovak Republic / California governing law)
developer identity: replace "Ambja" with JAAM Group International LLC throughout all legal text
privacy contact to privacy@jaam.group and website to https://jaam.group/earned across all 13 locales
onboarding "How It Works" step: replace Scan card with History card ("Log & rate every buy"), update Insights card subtitle to "Worth-it rate & spend trends"
`LegalSection` build error caused by stored property `body` conflicting with `View.body`
Version 1.2.0
New March 2026
Insights tab: Worth-It Rate ring chart and Monthly Spend Trend bar chart (Swift Charts)
Budget History sheet: tap the budget card to see past 12 months with spend breakdown and top items
share functionality (already present in TimeResultCard, now wired through EditCheckView)
History budget card now refreshes immediately when switching to the History tab
Budget card unified across Calculator and History into shared `BudgetCard` component — same card style, same two-tone progress bar
Version 1.1.0
New March 2026
custom currency display order (drag to reorder in Settings)
Price-to-time calculator with hourly rate derived from income, tax, and schedule
Purchase history with bought / skipped / delayed decision tracking
Monthly budget with progress bar