Skip to content

Repository files navigation

SaaSfit Admin Web

Admin web interface for reviewing and validating SaaSfit Stripe diagnosis outputs.

SaaSfit Admin Web is an internal-facing frontend used to inspect generated SaaS diagnosis reports, review signal and recommendation quality, check data-quality handling, and validate Stripe-based monthly diagnosis behavior before public release.

The app is part of the SaaSfit project.

SaaSfit analyzes Stripe billing data and produces a monthly SaaS diagnosis: what changed, why it matters, what to do next, and what not to do yet.


Purpose

SaaSfit Admin Web is not the public founder-facing product UI.

It exists to help the builder/admin review whether the Stripe diagnosis system is producing trustworthy, explainable, founder-ready outputs.

The admin interface is used to answer questions such as:

  • Is the generated diagnosis correct for the available Stripe data?
  • Are the detected billing signals meaningful?
  • Are weak or distracting signals suppressed properly?
  • Are recommendations and anti-actions aligned with the diagnosis?
  • Is the health score reasonable?
  • Are data-quality warnings visible when the input data is incomplete?
  • Does the generated report explain its reasoning clearly enough for a SaaS founder?

Current scope

This admin web app is implemented for the current Stripe diagnosis MVP.

Current diagnosis focus:

  • last month’s Stripe billing data;
  • comparison against available billing history;
  • monthly SaaS health and risk diagnosis;
  • Stripe CSV / Stripe-import based diagnosis review;
  • deterministic signal, diagnosis, recommendation, and health-score outputs.

The current SaaSfit product is focused on diagnosis quality, not generic analytics.


Core concepts

Diagnosis

A diagnosis is the main founder-facing conclusion generated from billing signals.

A diagnosis should explain:

  • what changed;
  • why it matters;
  • which business area needs attention;
  • what action should come next;
  • what action should not be taken yet;
  • how confident SaaSfit is based on the available data.

Signals

Signals are deterministic observations detected from Stripe billing metrics.

Examples:

  • new MRR slowdown;
  • churned MRR increase;
  • failed-payment pressure;
  • expansion masking acquisition weakness;
  • customer concentration risk;
  • limited billing history;
  • incomplete CSV input.

Signals may be primary, supporting, positive, or suppressed.

Recommendations

Recommendations are action-oriented next steps tied to the diagnosis and supporting signals.

They should be specific enough for a founder to act on.

Anti-actions

Anti-actions tell the founder what not to do yet.

This is important because SaaSfit should prevent overreaction to noisy or incomplete billing data.

Examples:

  • Do not ignore acquisition slowdown just because MRR is still growing.
  • Do not change pricing based on one weak month alone.
  • Do not overreact if the data is incomplete.

Data quality

Data-quality handling is central to SaaSfit.

The admin UI should make it easy to inspect whether SaaSfit correctly detects:

  • missing files;
  • limited history;
  • unavailable Stripe objects;
  • partial CSV uploads;
  • weak confidence caused by incomplete data;
  • diagnosis limitations.

Features

Report review

Review generated Stripe diagnosis reports from the backend.

A report may include:

  • business name;
  • analyzed period;
  • comparison basis;
  • generated timestamp;
  • overall health status;
  • health score;
  • key metrics;
  • detected signals;
  • primary diagnosis;
  • recommended actions;
  • anti-actions;
  • data-quality warnings.

Diagnosis inspection

Inspect the generated diagnosis and verify whether it is founder-ready.

The admin should be able to check:

  • diagnosis headline;
  • diagnosis body;
  • primary focus;
  • confidence score;
  • related signal IDs;
  • whether the diagnosis matches the strongest signal pattern.

Signal review

Review all detected signals, including suppressed signals.

Important fields to inspect:

  • signal ID;
  • severity;
  • category;
  • metric basis;
  • current value;
  • historical or comparison value;
  • change percentage;
  • explanation;
  • suppression state;
  • suppression reason.

Recommendation review

Review generated recommendations and anti-actions.

The admin should verify:

  • actions are relevant to the diagnosis;
  • priorities are reasonable;
  • recommendations are not generic;
  • anti-actions protect against misleading interpretation;
  • every recommendation can be traced back to signals or diagnosis.

Data-quality review

Inspect warnings and limitations caused by incomplete data.

The admin should clearly see when a report is based on:

  • minimum CSV data;
  • better CSV data;
  • complete CSV/Sigma export data;
  • read-only Stripe import;
  • incomplete or weak historical context.

Sample scenario validation

Use simulated or generated scenarios to test diagnosis behavior.

Useful sample scenarios include:

  • acquisition slowdown;
  • retention pressure;
  • failed-payment pressure;
  • expansion masking churn;
  • stable healthy growth;
  • early-stage unclear data;
  • incomplete Stripe CSV upload.

Recommended admin workflow

  1. Generate or import a Stripe diagnosis report.
  2. Open the report in SaaSfit Admin Web.
  3. Review the overall health status and diagnosis headline.
  4. Inspect the primary signals behind the diagnosis.
  5. Check suppressed signals and confirm they should not distract the founder.
  6. Review recommended actions and anti-actions.
  7. Check whether data-quality warnings are present when required.
  8. Decide whether the report is founder-ready.
  9. Record feedback or make backend rule/spec changes.
  10. Re-run the diagnosis and compare the result.

Suggested project structure

saasfit-admin-web/
  public/
    brand/
      saasfit-logo-horizontal.svg
      saasfit-icon.svg
      favicon-32.png
      favicon-16.png
  src/
    components/
      layout/
      reports/
      signals/
      diagnosis/
      recommendations/
      data-quality/
    pages/
      DashboardPage.tsx
      ReportsPage.tsx
      ReportDetailPage.tsx
      ScenarioReviewPage.tsx
    services/
      api.ts
      reportsApi.ts
    types/
      report.ts
      signal.ts
      diagnosis.ts
      recommendation.ts
    utils/
      formatting.ts
      severity.ts
    App.tsx
    main.tsx
  .env.example
  package.json
  README.md

Adjust this structure to match the actual implementation.


Environment variables

Create a local environment file if the app calls the SaaSfit backend API.

Example:

VITE_API_BASE_URL=http://localhost:8000

Use the actual backend URL for your local or deployed environment.


Getting started

Install dependencies:

npm install

Run the development server:

npm run dev

Build for production:

npm run build

Preview the production build:

npm run preview

Backend dependency

SaaSfit Admin Web expects a SaaSfit backend that can provide generated Stripe diagnosis reports.

The backend should expose report data containing the current MVP diagnosis contract, including:

  • schema version;
  • business metadata;
  • period metadata;
  • overall health;
  • metrics;
  • signals;
  • diagnosis;
  • recommendations;
  • anti-actions;
  • data-quality warnings.

If the backend is not running, the admin web app may only support static/sample report review.


Report contract expectations

The admin UI should be compatible with the current MVP report schema.

Important expected fields include:

  • schema_version
  • business
  • period
  • overall_health
  • metrics
  • signals
  • diagnosis
  • recommended_actions
  • anti_actions
  • data_quality

Diagnosis objects should include:

  • pattern_id
  • headline
  • body
  • primary_focus
  • confidence
  • related_signal_ids

Signal objects should include suppression state:

  • suppressed
  • suppressed_by

Design principles

Admin clarity over decoration

The admin UI should make diagnosis quality easy to inspect.

Prefer:

  • clear sections;
  • visible evidence;
  • traceable signal-to-diagnosis relationships;
  • compact but readable report cards;
  • status badges for severity and confidence.

Avoid:

  • dashboard clutter;
  • decorative charts without diagnostic value;
  • hiding data-quality warnings;
  • making incomplete reports look fully reliable.

Trustworthy diagnosis review

The admin interface should help identify when SaaSfit is overstating confidence.

For incomplete or limited data, the UI should clearly show:

  • what is missing;
  • what can still be diagnosed;
  • what cannot be concluded yet;
  • why confidence is limited.

Founder-readiness check

Every report should be judged by whether a SaaS founder can understand:

  • the main issue;
  • the supporting evidence;
  • the next action;
  • the action to avoid;
  • the confidence level.

What this admin app is not

SaaSfit Admin Web is not:

  • a general BI dashboard;
  • a Stripe dashboard replacement;
  • a customer-facing analytics portal;
  • an AI decision-maker;
  • a tool for modifying Stripe accounts.

It is an internal quality and review interface for SaaSfit Stripe diagnosis outputs.


Security notes

The admin web app should not expose unnecessary sensitive Stripe data.

Recommended rules:

  • do not store raw Stripe secrets in the frontend;
  • do not expose restricted keys in client code;
  • keep backend API credentials server-side;
  • treat uploaded Stripe CSV data as sensitive business data;
  • avoid logging full customer or payment records in browser console;
  • restrict access if deployed publicly.

Deployment

The admin web app can be deployed as a static frontend if it only consumes backend APIs.

Common deployment options:

  • Vercel;
  • Netlify;
  • Cloudflare Pages;
  • AWS Amplify;
  • S3 + CloudFront.

For internal MVP usage, local development or protected preview deployment is enough.


Roadmap

Possible next improvements:

  • report comparison across backend revisions;
  • scenario test dashboard;
  • diagnosis quality checklist;
  • data-quality coverage summary;
  • signal suppression inspector;
  • recommendation trace viewer;
  • manual reviewer notes;
  • export reviewed report as JSON or markdown;
  • admin authentication;
  • protected deployment;
  • regression review for generated sample scenarios.

License

Add the project license here.

Example:

MIT

About SaaSfit

SaaSfit helps SaaS founders understand what their Stripe billing movement means.

Instead of asking founders to explore dashboards, SaaSfit produces a monthly diagnosis from Stripe billing data:

  • what changed;
  • why it matters;
  • what risk is building;
  • what to do next;
  • what not to do yet.

About

Admin web app for reviewing SaaSfit Stripe diagnosis reports, CSV analyses, feedback, and validation workflows.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages