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.
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?
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.
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 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 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 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 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.
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.
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.
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.
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.
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.
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.
- Generate or import a Stripe diagnosis report.
- Open the report in SaaSfit Admin Web.
- Review the overall health status and diagnosis headline.
- Inspect the primary signals behind the diagnosis.
- Check suppressed signals and confirm they should not distract the founder.
- Review recommended actions and anti-actions.
- Check whether data-quality warnings are present when required.
- Decide whether the report is founder-ready.
- Record feedback or make backend rule/spec changes.
- Re-run the diagnosis and compare the result.
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.mdAdjust this structure to match the actual implementation.
Create a local environment file if the app calls the SaaSfit backend API.
Example:
VITE_API_BASE_URL=http://localhost:8000Use the actual backend URL for your local or deployed environment.
Install dependencies:
npm installRun the development server:
npm run devBuild for production:
npm run buildPreview the production build:
npm run previewSaaSfit 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.
The admin UI should be compatible with the current MVP report schema.
Important expected fields include:
schema_versionbusinessperiodoverall_healthmetricssignalsdiagnosisrecommended_actionsanti_actionsdata_quality
Diagnosis objects should include:
pattern_idheadlinebodyprimary_focusconfidencerelated_signal_ids
Signal objects should include suppression state:
suppressedsuppressed_by
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.
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.
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.
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.
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.
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.
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.
Add the project license here.
Example:
MITSaaSfit 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.