Release Notes

See what's new in NavEd. Product updates, new features, and improvements for micro school, co-op, and homeschool management.

136 releases
Page 8 of 14
v2026.2.14.1

Fixed: Accepting student applications no longer crashes when the parent already has an account.

If a parent submitted an application weeks ago and already had a user account in the system, accepting their application via the bulk dropdown would fail with an internal error. This happened because the system tried to create a parent profile in the wrong database location. Schools with a backlog of applications may have seen this error repeatedly.

This is now fixed. Accepting applications works correctly whether the parent is a brand-new user or already has an existing account. The parent's account type is updated to "Parent" and their profile is created in the correct location.

Fixes

  • Bulk-accepting applications no longer crashes for parents with existing accounts
  • Parent profile creation now happens in the correct database schema
  • Added a safety guard that prevents profile creation in the wrong schema even if future code misses this pattern

v2026.2.13.1

Internal: Transcript data foundation for upcoming in-app transcript feature.

This release adds the data layer for the upcoming transcript generator. The new "Transcripts" link appears in the sidebar under Administrative for schools with the Reports feature enabled. A new transcript data assembly service pulls student academic history, GPA, and school information into a structured format ready for transcript rendering.

New Features

  • Transcripts sidebar link under Administrative section (gated under Reports feature)
  • Transcript data assembly service with per-year GPA and cumulative GPA
  • Expected graduation date field on student profiles

Internal

  • Added expected_graduation_date DateField to Student model (nullable, for transcript display)
  • Created services/transcript_data.py with assemble_transcript_data() function
  • Data assembly uses denormalized fields only (no cross-schema FK traversal)
  • Reuses existing GPA calculation methods for consistency with report cards

v2026.2.12.1

All students now appear in the Progress Report dropdown regardless of grade level.

If your school has students in elementary grades (or grades that haven't been categorized as upper or middle school), those students were not appearing in the Progress Report student dropdown. This meant teachers and administrators couldn't generate progress reports for those students, and parents couldn't see their elementary-age children in the reports page.

This is now fixed. The Progress Report page shows all students for every user type -- administrators see all students and all subjects, students can always generate their own report, and parents see all of their children regardless of grade classification.

Fixes

  • Elementary students now appear in the Progress Report student dropdown
  • Students with uncategorized grade levels now appear in the Progress Report dropdown
  • Students with elementary grades can now generate their own progress reports
  • Parents can now see all their children in the Progress Report page, including elementary students
  • Class Report subject list now includes subjects from all grade levels

v2026.2.11.1

Internal: Modernized user model references for long-term maintainability.

This release completes a major internal refactoring of how NavEd references the user account model throughout the codebase. All code now uses Django's recommended get_user_model() pattern instead of direct imports, and the user account model's initialization logic has been properly consolidated. There are no visible changes for users -- this work improves code quality and sets the foundation for future improvements.

Improvements

  • Consolidated user model initialization into the accounts app where it belongs
  • Modernized 30+ files to use Django's recommended import patterns
  • Added deprecation warnings for legacy import paths to catch future regressions

v2026.2.10.5

Billing history now shows only relevant invoices with detailed line items.

Previously, the billing page showed all invoices from Stripe, including drafts and voided ones that weren't useful. Now only paid, open, and uncollectible invoices appear. Each invoice also shows a breakdown of line items (including proration credits and charges) that you can expand, and every invoice links directly to Stripe's hosted invoice page where you can view full details or download a PDF.

Improvements

  • Billing history hides draft and voided invoices
  • Each invoice row expands to show line item details including proration credits
  • View and PDF buttons link to Stripe's hosted invoice page
  • Session debug logging reduced to keep production logs clean
  • Removed deprecated billing code from pre-v1.7 billing model

v2026.2.10.4

Subscription creation now works instantly when you add a payment method.

When you added a payment method through the Stripe portal, NavEd would try to create your subscription, but metered billing subscriptions have a $0 first invoice (usage gets reported later). With our previous Stripe setting, that $0 invoice required payment confirmation from the browser, which never happened. Your subscription would stay stuck in "incomplete" status, and tier changes wouldn't work.

We've fixed this by changing how we tell Stripe to handle the initial subscription. Now your subscription activates immediately when you add a payment method, so upgrades, downgrades, and cancellations work right away.

Fixes and Improvements

  • Subscriptions now activate immediately after adding payment method
  • Tier changes work correctly without manual intervention
  • Fixed incomplete status issue for metered billing subscriptions

v2026.2.10.3

Billing page now creates your subscription automatically when you visit.

If you added a payment method in the Stripe Customer Portal before this fix was deployed, your upgrade/downgrade/cancel buttons would be hidden because we hadn't created your subscription yet. We've now added a second lazy subscription creation trigger that runs whenever you visit the billing page, not just when you return from the portal. If you have a payment method on file but no subscription, we'll create one for you automatically so all the billing controls appear as expected.

Fixes and Improvements

  • Billing page now creates missing subscriptions for schools with payment methods on file
  • Upgrade, downgrade, and cancel buttons appear correctly for all schools with payment methods
  • Subscription creation happens automatically on any billing page visit (not just portal returns)

v2026.2.10.2

Payment method changes now sync immediately when you return from the Stripe portal.

We fixed a race condition where your card information wouldn't appear right away after adding or updating a payment method in the Stripe Customer Portal. Previously, you'd see "No payment method on file" until the webhook arrived (usually seconds, but sometimes minutes). Now we sync directly from Stripe when you return to the billing page, so your card info appears instantly.

We also added two missing webhook events (payment_method.attached and payment_method.detached) to our Stripe setup, so payment method changes are tracked correctly whether they happen in the portal or elsewhere.

Fixes and Improvements

  • Payment method info now syncs instantly when returning from Stripe portal (no more waiting for webhook)
  • Added missing payment_method.attached and payment_method.detached webhook events
  • Billing page shows your card information immediately after portal updates

v2026.2.10.1

Billing page now works for new schools.

Schools that signed up through our new self-service flow were seeing a "Contact support" dead-end on the billing page instead of a way to add their payment method. We fixed this by automatically setting up your billing account when you first visit the billing page. Now you'll see the "Add Payment Method" button right away. If something goes wrong, you'll see a clear "Retry" option instead of being stuck.

Fixes and Improvements

  • Billing page now auto-creates your Stripe billing account on first visit (no manual setup needed)
  • "Add Payment Method" button appears immediately for new schools
  • If billing setup fails, a "Retry" button lets you try again instead of showing "Contact support"
  • Portal redirect now works for new schools (no more redirect errors)

v2026.2.9.3

Search and feedback just got more reliable.

We spotted two issues affecting a small number of users and moved fast to fix them. First, if you happened to visit nav.education directly (instead of your school's subdomain), submitting feedback would fail silently. Now, you'll be automatically redirected to your school's portal so everything works as expected.

Second, searching for students or staff who hadn't uploaded a profile photo could cause the search to fail. We've fixed this across search results, quick-view cards, and attendance reports.

Fixes and Improvements

  • Authenticated users on the main domain are now automatically redirected to their school's subdomain
  • Fixed search results failing for users without a profile photo
  • Fixed attendance report PDF generation for students without profile photos
  • Fixed student sorting in attendance reports

v2026.2.9.2

Student limit gate now enforced on all student creation paths.

The free plan student limit gate is now wired into the three places students can be created: the add-student form, CSV bulk import, and application approval. When the gate blocks a student add, the form preserves your input and shows the upgrade modal. CSV import checks the limit before importing and shows remaining free slots on the upload page. Application processing checks the batch size before approving.

Improvements

  • Add-student form preserves all entered data when the limit gate blocks submission
  • CSV import page shows remaining free student slots before upload
  • CSV import returns a clear error when the batch would exceed the free limit
  • Application processing checks the batch count before creating student records
  • All three paths use the same centralized gate service

v2026.2.9.1

Student limit gate service and upgrade modal for free plan enforcement.

Schools on the free plan are now limited to 5 students. When you try to add student #6, an encouraging modal explains that your school is growing and directs you to billing settings to unlock unlimited students. The gate applies to all student creation paths -- single add, CSV import, and application approval. Demo schools, legacy schools, and schools with a payment method on file bypass the gate automatically.

New Features

  • Student limit gate blocks adding students beyond the free plan limit
  • Encouraging upgrade modal with exact student count and billing CTA
  • Bypass detection for demo, legacy, exempt, and paying schools
  • Concurrency-safe atomic check using PostgreSQL advisory locks

v2026.2.12.1

All students now appear in the Progress Report dropdown regardless of grade level.

If your school has students in elementary grades (or grades that haven't been categorized as upper or middle school), those students were not appearing in the Progress Report student dropdown. This meant teachers and administrators couldn't generate progress reports for those students, and parents couldn't see their elementary-age children in the reports page.

This is now fixed. The Progress Report page shows all students for every user type -- administrators see all students and all subjects, students can always generate their own report, and parents see all of their children regardless of grade classification.

Fixes

  • Elementary students now appear in the Progress Report student dropdown
  • Students with uncategorized grade levels now appear in the Progress Report dropdown
  • Students with elementary grades can now generate their own progress reports
  • Parents can now see all their children in the Progress Report page, including elementary students
  • Class Report subject list now includes subjects from all grade levels

Want to stay updated?

Sign up for NavEd to get notified about new features and improvements

Get Started Free