We update Taxottic in small, frequent steps. This page is the public record. Subscribe to email-only updates from contact@taxottic.com (we reply with a one-click confirm).
Tick the rows you mean, and finish an import when it is done
Every expense candidate on an import now has a checkbox, with select-all, and one bar at the bottom that applies, accepts Bella's category, or ignores whatever you ticked. The old button read 'Apply manually selected' while nothing on the page could be selected, and it only counted rows you had already saved one at a time, so an import with thirteen suggestions waiting showed a button for one. Refunds and rows already booked have no checkbox at all: a refund is not a deduction, and select-all must not be able to turn one into one. When nothing is left unresolved, a Complete step files the import away, and it can be reopened at any time. The row counts on the import list are now counted from the rows themselves, which fixes imports that said '0 applied' while dozens of their rows were already booked.
ShippedFix
The home page shows the people it is built for
The front page now carries real photographs instead of type alone: someone working through their own estimated-tax paperwork, a one-person workshop, a practice going through a client's file. They change with the view you pick, and a new 'Three ways in' section lower down lets you switch between the personal, business, and firm views without scrolling back to the top. Every photograph is a real photograph, licensed for commercial use, with the source and photographer recorded.
Shipped
Clearer answers about location, and who can see your drives
A new policy page, Location tracking and team visibility, sets out exactly what automatic mileage tracking records, how long each part of it is kept, and what a manager at your company or an engaged accounting firm can see. Short version: only drives you mark as business become visible to your company, and personal or unclassified drives never leave your own account. The screen that asks for location permission now says the same thing before you agree to it. The privacy policy, cookie list, and subprocessor list have also been brought in line with what the app actually does, including the vendors that were live but unlisted.
Shipped
Chat opens on your conversations, not one company room
Chat now lands on a list of your conversations, with 'New message' and 'New group' as the first thing you see. Direct messages and private groups already existed but were hidden behind two small links, so chat felt like a single company-wide room. General is still there with all its history, now as one conversation among the rest. A direct message or private group is readable only by the people in it, enforced in the database, and losing your seat on a company now ends your access to its conversations immediately.
ShippedSecurity
May 2026 audit fixes
Public pricing page, /help, /changelog, /example, DMCA + accessibility policies, OpenGraph image, canonical links, WCAG-compliant viewport (zoom no longer capped), and stricter CORS on app responses. Plus a short 'Single sign-on across Techno Optics products' section in /legal/security explaining why the same Google account signs into multiple products of ours.
ShippedSecurity
Switch accounts
New 'Switch accounts' item in the profile menu. Clears the current session and forces Google / Microsoft to show the account picker so you can pick a different account instead of being silently re-authenticated.
Shipped
CI gate for tax math
GitHub Actions now runs the 125-test Vitest suite plus tsc on every PR. A change that breaks the tax math or any type can't merge silently. Lint reports but isn't yet blocking, backlog cleanup planned before flipping it on.
Ops
Profile menu portal switcher
Super-admins can now jump between Consumer, Enterprise, and HQ from the profile menu. The 'Send feedback' bubble that used to float above Bella moved into the same menu, one launcher, less clutter.
Shipped
Math verification: 125 tests, three layers
Layer 1, IRS-published worked examples (EITC, Saver's Credit, AOTC, state brackets). Layer 2, end-to-end fixture scenarios (W-2, sole prop, combined, AMT, LTCG, EITC). Layer 3, property-based invariants (refund/owed reconciliation, CTC caps, QBI ≤ 20%, monotonicity). Caught one real bug along the way: long-term capital gains weren't being added to AGI for phase-out math.
OpsFix
State tax: real brackets for 10 states
Replaced the flat-rate fallback for CA, NY, NJ, MA, MN, OR, HI, DC, MD, CT with real bracket tables. CA mental-health surcharge and MA Fair Share Amendment included.
Shipped
Education credits (§ 25A)
AOTC + Lifetime Learning Credit with full phase-out, refundable / non-refundable split, and MFS disqualifier.
Shipped
Saver's Credit (§ 25B)
Full math, 10/20/50% bracket lookup against 2025/2026 AGI tables.
Shipped
EITC (§ 32)
Refundable Earned Income Tax Credit with investment-income disqualifier, MFS exclusion, and per-user 'why zero' copy when ineligible.
Shipped
Tax year 2026 + OBBBA
Federal constants updated to Rev. Proc. 2025-32 with the One Big Beautiful Bill Act amendments (CTC raised to $2,200, the $400 QBI minimum, OBBBA mileage rate). All forecast tiles now branch on the configured tax year.
Shipped
QA bug-fix sweep
Microsoft SSO gated until the Azure provider is fully wired, reminders dedupe (no more 8× duplicated quarterly), greeting no longer says 'Contact', PWA manifest 404s fixed, default 404 page improved, robots.txt + sitemap.xml live, feedback button restored.
Fix
Stripe Connect, bank provider option
Stripe Connect added as an alternative to Plaid for users whose bank already lives in a Stripe-connected account. Read-only scope, OAuth flow, transaction sync.
Shipped
Cross-tenant data-leak fix
Signout now correctly clears cookies on the response, busts the Router Cache, and sets no-store so the browser bfcache can't restore the previous user's HTML after a sign-out / sign-in cycle. RLS was always correct; the failure mode was browser-side.