impact-compass 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/DOCUMENTATION.md +47 -0
- package/LICENSE +21 -0
- package/README.md +98 -0
- package/SKILLS.md +52 -0
- package/assets/top-banner-readme.png +0 -0
- package/example-coffee.json +15 -0
- package/example-input.json +15 -0
- package/example-output.json +352 -0
- package/example-react.json +15 -0
- package/package.json +52 -0
- package/src/cli.ts +219 -0
- package/src/domain/evidence.test.ts +93 -0
- package/src/domain/evidence.ts +99 -0
- package/src/domain/queryBundle.test.ts +67 -0
- package/src/domain/queryBundle.ts +116 -0
- package/src/domain/scoring.test.ts +184 -0
- package/src/domain/scoring.ts +322 -0
- package/src/services/comparison.test.ts +89 -0
- package/src/services/comparison.ts +84 -0
- package/src/services/demoReport.test.ts +37 -0
- package/src/services/demoReport.ts +32 -0
- package/src/services/publicEvidenceReport.test.ts +66 -0
- package/src/services/publicEvidenceReport.ts +82 -0
- package/src/services/queryDerivedReport.test.ts +68 -0
- package/src/services/queryDerivedReport.ts +227 -0
- package/src/services/reportBuilder.test.ts +90 -0
- package/src/services/reportBuilder.ts +219 -0
- package/src/services/reportInsights.ts +23 -0
- package/src/services/reportStorage.test.ts +77 -0
- package/src/services/reportStorage.ts +113 -0
- package/src/services/reportTypes.ts +49 -0
- package/src/services/sources/extendedAdapters.ts +218 -0
- package/src/services/sources/githubSource.test.ts +48 -0
- package/src/services/sources/githubSource.ts +63 -0
- package/src/services/sources/hackerNewsSource.test.ts +80 -0
- package/src/services/sources/hackerNewsSource.ts +117 -0
- package/src/services/sources/itunesSource.ts +62 -0
- package/src/services/sources/npmSource.ts +65 -0
- package/src/services/sources/redditSource.ts +68 -0
- package/src/services/sources/sourceAdapter.ts +12 -0
- package/src/services/sources/stackExchangeSource.ts +62 -0
- package/src/services/sources/wikipediaSource.ts +62 -0
- package/src/services/therapySeed.ts +183 -0
- package/tsconfig.json +34 -0
package/DOCUMENTATION.md
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Impact Compass Documentation
|
|
2
|
+
|
|
3
|
+
Impact Compass is a purely statistical, deterministic CLI tool that runs your startup idea against public evidence from seven major platforms. It uses zero AI. It calculates demand, pain, momentum, and competition volume using strict mathematical formulas to generate a ruthless product-market fit score.
|
|
4
|
+
|
|
5
|
+
## Creating Your Idea File
|
|
6
|
+
|
|
7
|
+
The CLI requires a JSON file containing the core elements of your startup idea. You do not need to overthink this. Just write down what you know.
|
|
8
|
+
|
|
9
|
+
Create a file named `idea.json` with the following structure:
|
|
10
|
+
|
|
11
|
+
```json
|
|
12
|
+
{
|
|
13
|
+
"name": "Your Idea Name",
|
|
14
|
+
"targetUser": "Who is going to use this?",
|
|
15
|
+
"lens": "What category does this fall under? (e.g. Developer Tools, Productivity)",
|
|
16
|
+
"problem": "What specific problem are you solving?",
|
|
17
|
+
"audienceKeywords": ["keyword1", "keyword2"],
|
|
18
|
+
"problemKeywords": ["complaint1", "pain point 2"],
|
|
19
|
+
"solutionKeywords": ["solution name", "technology"],
|
|
20
|
+
"competitorKeywords": ["existing app 1", "competitor 2"],
|
|
21
|
+
"exclusions": ["unrelated meaning"]
|
|
22
|
+
}
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
### Keywords Matter
|
|
26
|
+
The scoring engine is merciless. If you use generic keywords like "app" or "software", the engine will pull in thousands of irrelevant results. Use the `exclusions` array to filter out noise. If your tool is for "React State Management," put "React Native" in the exclusions if you don't support mobile.
|
|
27
|
+
|
|
28
|
+
## Running the Evaluation
|
|
29
|
+
|
|
30
|
+
Execute the CLI by passing your input file and a destination for the report:
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
npm run cli idea.json output.json
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
The tool takes about 5-10 seconds to scrape the live APIs. It does not use cached data. It will then print an ASCII dashboard to your terminal and save the raw data to your output file.
|
|
37
|
+
|
|
38
|
+
## Interpreting the Score
|
|
39
|
+
|
|
40
|
+
- **90 - 100:** You found a unicorn. Massive demand, massive pain, almost zero competition. Start building immediately.
|
|
41
|
+
- **70 - 89:** Solid validation. There is a clear market, but you will face friction.
|
|
42
|
+
- **50 - 69:** Red Ocean Warning. There is demand, but the market is heavily saturated with competitors. You need a highly specific niche to survive.
|
|
43
|
+
- **0 - 49:** Ghost Town. Nobody is talking about this problem online. Either your keywords are wrong, or you are building something nobody wants.
|
|
44
|
+
|
|
45
|
+
## Advanced Configuration
|
|
46
|
+
|
|
47
|
+
If you want to adjust how the engine punishes saturation, modify the `calculateCompassScore` function in `src/domain/scoring.ts`. If you want to add new data sources, append them to the adapter matrix in `src/services/sources/extendedAdapters.ts`.
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Aditya Chauhan
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
# Impact Compass
|
|
2
|
+
|
|
3
|
+
<p align="center">
|
|
4
|
+
<img src="assets/top-banner-readme.png" alt="Impact Compass CLI hero banner" width="100%" />
|
|
5
|
+
</p>
|
|
6
|
+
|
|
7
|
+
*grab a compass before you sail soldier*
|
|
8
|
+
|
|
9
|
+
A purely statistical, deterministic project idea validator and market research CLI.
|
|
10
|
+
|
|
11
|
+
Impact Compass fetches keyword rankings and engagement signals from real sources like GitHub, npm, Reddit, Stack Exchange, Hacker News, Wikipedia, and the App Store. It checks the *hype* around your project before you waste six months, a billion tokens, and enough coffee to make your keyboard anxious.
|
|
12
|
+
|
|
13
|
+
No AI. No vibes. No GPT wrapper whispering "*yo this idea is goated*" right before it lies to your face and stabs you in the roadmap.
|
|
14
|
+
|
|
15
|
+
Impact Compass is a deterministic engine. It pulls live, real-world evidence through an API-based keyword scoring pipeline, then runs that data through a brutal scoring engine to tell you if you found a blue ocean or if you are walking into another brilliant project that nobody wants.
|
|
16
|
+
|
|
17
|
+
## The Problem
|
|
18
|
+
|
|
19
|
+
You have a project idea. You search for it online. You see a few people talking about it, so you assume there is demand and start building for your billionaire dream.
|
|
20
|
+
|
|
21
|
+
Half a year later, you launch. Nobody cares. Water wasted on those GPUs.
|
|
22
|
+
|
|
23
|
+
Why? Because you didn't measure the noise. High demand means nothing if the market is already drowning in competitors. You need a way to measure actual pain against market saturation without spending weeks doing manual market research.
|
|
24
|
+
|
|
25
|
+
## How It Works
|
|
26
|
+
|
|
27
|
+
Impact Compass takes your idea and compiles a query bundle (problems, solutions, target audiences, and competitors). It then pulls live data from seven pillars of public evidence and runs an advanced logarithmic scoring algorithm.
|
|
28
|
+
|
|
29
|
+
It measures:
|
|
30
|
+
- **Demand & Pain:** Are people actually complaining about this, or is the problem minor?
|
|
31
|
+
- **Momentum & Activity:** Are developers and founders actively building in this space right now?
|
|
32
|
+
- **Competition Fit:** If the tool finds 10,000 competitors, your score tanks. Red oceans get penalized heavily.
|
|
33
|
+
|
|
34
|
+
```math
|
|
35
|
+
\text{Score} =
|
|
36
|
+
\operatorname{clamp}_{0}^{100}
|
|
37
|
+
\left(
|
|
38
|
+
\frac{\sum_i w_i p_i}{\sum_i w_i}
|
|
39
|
+
-
|
|
40
|
+
\begin{cases}
|
|
41
|
+
0.5(30 - C), & D > 70 \land C < 30 \\
|
|
42
|
+
0, & \text{otherwise}
|
|
43
|
+
\end{cases}
|
|
44
|
+
\right)
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Where `p_i` are the pillar scores, `w_i` are the pillar weights, `D` is demand, and `C` is competition fit. Translation: big demand is good, but big demand plus a crushed competition score means you are sailing into a red ocean with a paper boat.
|
|
48
|
+
|
|
49
|
+
The engine spits out a final score out of 100, along with a brutally honest interpretation of whether you should build it, pivot, or drop the idea entirely.
|
|
50
|
+
|
|
51
|
+
<p align="center">
|
|
52
|
+
<!-- Demo GIF coming after npm publish: CLI run, ASCII art, and React State Management score. -->
|
|
53
|
+
</p>
|
|
54
|
+
|
|
55
|
+
## Quickstart
|
|
56
|
+
|
|
57
|
+
Install dependencies, then run an evaluation:
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
npm install
|
|
61
|
+
npm run cli example-react.json output.json
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### The Input Schema
|
|
65
|
+
|
|
66
|
+
Give Impact Compass an idea brief and a locked query bundle. The CLI does the digging.
|
|
67
|
+
|
|
68
|
+
```json
|
|
69
|
+
{
|
|
70
|
+
"idea": {
|
|
71
|
+
"name": "A fast global state manager for React",
|
|
72
|
+
"problem": "Redux has too much boilerplate and React context re-renders everything.",
|
|
73
|
+
"targetUser": "React Developers",
|
|
74
|
+
"lens": "Developer Tools"
|
|
75
|
+
},
|
|
76
|
+
"queryBundleForm": {
|
|
77
|
+
"problemKeywords": "react state management, context api re-renders, redux boilerplate",
|
|
78
|
+
"solutionKeywords": "atomic state, react global state library",
|
|
79
|
+
"audienceKeywords": "frontend developer, react dev",
|
|
80
|
+
"competitorKeywords": "zustand, jotai, recoil",
|
|
81
|
+
"exclusions": "vue, angular"
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
## The Math Behind the Score
|
|
87
|
+
|
|
88
|
+
We stripped out the generic averages. The engine uses logarithmic scaling, so a GitHub repo with 5,000 stars is weighted accurately against one with 5 stars. It applies relevance penalties. If a search result does not contain your target keywords, it loses 60% of its value instantly.
|
|
89
|
+
|
|
90
|
+
Most importantly, we built in a global saturation penalty. If an idea shows massive demand but identical levels of competition, the engine actively drags the score down. It is mathematically impossible to brute-force a 95+ score without finding a true blue ocean.
|
|
91
|
+
|
|
92
|
+
## Contributing
|
|
93
|
+
|
|
94
|
+
Pull requests are welcome. If you want to add a new data adapter, like scraping Twitter or IndieHackers, check out the `extendedAdapters.ts` file. Keep the parsing strict and use real engagement metrics.
|
|
95
|
+
|
|
96
|
+
## License
|
|
97
|
+
|
|
98
|
+
MIT License. See [LICENSE](LICENSE) for details.
|
package/SKILLS.md
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: impact-compass
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
description: |
|
|
5
|
+
Evaluates startup ideas and product-market fit using live market research. Use this
|
|
6
|
+
when a user proposes a new product idea, feature, or tool. The skill formats the
|
|
7
|
+
user's idea into a JSON bundle, runs the Impact Compass CLI, and returns a
|
|
8
|
+
mathematically sound validation score based on real-world demand and competition saturation.
|
|
9
|
+
license: MIT
|
|
10
|
+
compatibility: claude-code opencode
|
|
11
|
+
allowed-tools:
|
|
12
|
+
- Read
|
|
13
|
+
- Write
|
|
14
|
+
- Edit
|
|
15
|
+
- RunCommand
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
# Impact Compass Idea Validator
|
|
19
|
+
|
|
20
|
+
You are equipped with the Impact Compass, a rigorous, purely statistical market research engine. When the user proposes a new app, startup, or feature idea, you must use this deterministic tool to validate it against real-world data before writing any code for them. Do not rely on your own training data to guess market demand—use the math.
|
|
21
|
+
|
|
22
|
+
## Your Task
|
|
23
|
+
|
|
24
|
+
When the user asks you to "validate this idea" or "is this a good startup idea":
|
|
25
|
+
|
|
26
|
+
1. **Ask clarifying questions (if needed):** Ensure you understand the specific target audience, the exact problem, and any known competitors.
|
|
27
|
+
2. **Draft the Query Bundle:** Create an `idea.json` file in the workspace representing the user's idea. Keep the keywords highly specific to avoid false positives.
|
|
28
|
+
3. **Run the CLI:** Execute `npm run cli idea.json output.json` (assuming Impact Compass is installed in the current workspace or accessible globally).
|
|
29
|
+
4. **Read the Output:** Read the resulting `output.json` file.
|
|
30
|
+
5. **Report to the User:** Do not just paste the JSON. Interpret the score for the user. Highlight their strongest pillar (e.g. Demand) and their weakest pillar (e.g. Competition Fit). If the score was heavily penalized due to market saturation (Red Ocean), warn them.
|
|
31
|
+
|
|
32
|
+
## Example JSON Structure
|
|
33
|
+
|
|
34
|
+
Write this to `idea.json` before running the CLI:
|
|
35
|
+
|
|
36
|
+
```json
|
|
37
|
+
{
|
|
38
|
+
"name": "Visual SQL Builder",
|
|
39
|
+
"targetUser": "Data Analysts",
|
|
40
|
+
"lens": "Developer Tools",
|
|
41
|
+
"problem": "Writing complex joins is error-prone for junior analysts.",
|
|
42
|
+
"audienceKeywords": ["data analyst", "BI developer"],
|
|
43
|
+
"problemKeywords": ["sql join error", "too many sql tables"],
|
|
44
|
+
"solutionKeywords": ["visual sql", "no-code sql"],
|
|
45
|
+
"competitorKeywords": ["metabase", "looker"],
|
|
46
|
+
"exclusions": ["nosql", "mongodb"]
|
|
47
|
+
}
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Why This Matters
|
|
51
|
+
|
|
52
|
+
As an AI agent, you are great at writing code, but you suffer from hallucinations when guessing what people actually want to buy. Impact Compass prevents you from building "ghost town" products. The tool itself contains zero AI. By relying on its deterministic, mathematical scoring of live public evidence from GitHub, Hacker News, Reddit, and Stack Exchange, you anchor your development roadmap in cold, hard reality.
|
|
Binary file
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"idea": {
|
|
3
|
+
"name": "Local Small-Batch Coffee Roaster",
|
|
4
|
+
"problem": "People in the neighborhood want fresh roasted beans but only have access to stale supermarket coffee.",
|
|
5
|
+
"targetUser": "Local Coffee Enthusiasts",
|
|
6
|
+
"lens": "Local Business / Retail"
|
|
7
|
+
},
|
|
8
|
+
"queryBundleForm": {
|
|
9
|
+
"problemKeywords": "stale coffee beans, bad local coffee",
|
|
10
|
+
"solutionKeywords": "small batch roaster, local roasted coffee",
|
|
11
|
+
"audienceKeywords": "coffee snob, espresso enthusiast",
|
|
12
|
+
"competitorKeywords": "starbucks, blue bottle",
|
|
13
|
+
"exclusions": "instant coffee, tea"
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"idea": {
|
|
3
|
+
"name": "Privacy-safe session note drafts",
|
|
4
|
+
"problem": "Solo therapists lose unpaid time turning session context into structured notes.",
|
|
5
|
+
"targetUser": "Solo therapists and small private clinics",
|
|
6
|
+
"lens": "B2B Workflow / Vertical SaaS"
|
|
7
|
+
},
|
|
8
|
+
"queryBundleForm": {
|
|
9
|
+
"problemKeywords": "therapist paperwork, therapy documentation, SOAP notes",
|
|
10
|
+
"solutionKeywords": "session note drafts, therapy note automation",
|
|
11
|
+
"audienceKeywords": "solo therapists, private practice therapists",
|
|
12
|
+
"competitorKeywords": "therapy notes app, EHR notes",
|
|
13
|
+
"exclusions": "physical therapy, school therapy notes"
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,352 @@
|
|
|
1
|
+
{
|
|
2
|
+
"methodologyVersion": "0.1",
|
|
3
|
+
"idea": {
|
|
4
|
+
"name": "Privacy-safe session note drafts",
|
|
5
|
+
"problem": "Solo therapists lose unpaid time turning session context into structured notes.",
|
|
6
|
+
"targetUser": "Solo therapists and small private clinics",
|
|
7
|
+
"lens": "B2B Workflow / Vertical SaaS"
|
|
8
|
+
},
|
|
9
|
+
"queryBundle": {
|
|
10
|
+
"version": 1,
|
|
11
|
+
"locked": true,
|
|
12
|
+
"problemKeywords": [
|
|
13
|
+
"therapist paperwork",
|
|
14
|
+
"therapy documentation",
|
|
15
|
+
"SOAP notes"
|
|
16
|
+
],
|
|
17
|
+
"solutionKeywords": [
|
|
18
|
+
"session note drafts",
|
|
19
|
+
"therapy note automation"
|
|
20
|
+
],
|
|
21
|
+
"audienceKeywords": [
|
|
22
|
+
"solo therapists",
|
|
23
|
+
"private practice therapists"
|
|
24
|
+
],
|
|
25
|
+
"competitorKeywords": [
|
|
26
|
+
"therapy notes app",
|
|
27
|
+
"EHR notes"
|
|
28
|
+
],
|
|
29
|
+
"painPhrases": [
|
|
30
|
+
"manual process",
|
|
31
|
+
"too much paperwork",
|
|
32
|
+
"after-hours notes",
|
|
33
|
+
"how do I reduce",
|
|
34
|
+
"alternative to",
|
|
35
|
+
"too expensive",
|
|
36
|
+
"workaround"
|
|
37
|
+
],
|
|
38
|
+
"exclusions": [
|
|
39
|
+
"physical therapy",
|
|
40
|
+
"school therapy notes"
|
|
41
|
+
]
|
|
42
|
+
},
|
|
43
|
+
"queryQuality": {
|
|
44
|
+
"label": "Strong",
|
|
45
|
+
"warning": "Ambiguity controlled with audience terms and exclusions."
|
|
46
|
+
},
|
|
47
|
+
"pillars": [
|
|
48
|
+
{
|
|
49
|
+
"key": "demand",
|
|
50
|
+
"label": "Demand",
|
|
51
|
+
"score": 72,
|
|
52
|
+
"note": "Demand reads public-search targets for \"therapist paperwork\" across free sources."
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"key": "pain",
|
|
56
|
+
"label": "Pain",
|
|
57
|
+
"score": 0,
|
|
58
|
+
"note": "Pain reads workaround and complaint language around \"therapist paperwork\"."
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
"key": "momentum",
|
|
62
|
+
"label": "Momentum",
|
|
63
|
+
"score": 100,
|
|
64
|
+
"note": "Momentum reads recent public activity around \"session note drafts\"."
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"key": "competitionFit",
|
|
68
|
+
"label": "Competition Fit",
|
|
69
|
+
"score": 70,
|
|
70
|
+
"note": "Competition Fit compares visible alternatives such as \"therapy notes app\"."
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"key": "activity",
|
|
74
|
+
"label": "Activity",
|
|
75
|
+
"score": 1,
|
|
76
|
+
"note": "Activity reads builder and package signals around \"session note drafts\"."
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"key": "channelFit",
|
|
80
|
+
"label": "Channel Fit",
|
|
81
|
+
"score": 72,
|
|
82
|
+
"note": "Channel Fit checks whether \"solo therapists\" has reachable public communities."
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
"key": "evidenceQuality",
|
|
86
|
+
"label": "Evidence Quality",
|
|
87
|
+
"score": 0,
|
|
88
|
+
"note": "Evidence Quality rewards source diversity, exclusions, and query specificity."
|
|
89
|
+
}
|
|
90
|
+
],
|
|
91
|
+
"formulas": [
|
|
92
|
+
{
|
|
93
|
+
"pillar": "Demand",
|
|
94
|
+
"formula": "0.45 volume + 0.25 unique authors + 0.20 questions + 0.10 engagement",
|
|
95
|
+
"formulaLatex": "0.45V + 0.25A_u + 0.20Q_i + 0.10E_p",
|
|
96
|
+
"inputs": [
|
|
97
|
+
"mention volume",
|
|
98
|
+
"unique authors",
|
|
99
|
+
"question intent",
|
|
100
|
+
"engagement percentile"
|
|
101
|
+
],
|
|
102
|
+
"score": 72
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
"pillar": "Pain",
|
|
106
|
+
"formula": "0.35 pain density + 0.25 workaround density + 0.20 alternative density + 0.20 discussion depth",
|
|
107
|
+
"formulaLatex": "0.35D_p + 0.25D_w + 0.20D_a + 0.20D_d",
|
|
108
|
+
"inputs": [
|
|
109
|
+
"pain phrases",
|
|
110
|
+
"workarounds",
|
|
111
|
+
"alternative seeking",
|
|
112
|
+
"discussion depth"
|
|
113
|
+
],
|
|
114
|
+
"score": 0
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
"pillar": "Momentum",
|
|
118
|
+
"formula": "0.40 short growth + 0.30 medium growth + 0.20 sustained growth - 0.10 spike penalty",
|
|
119
|
+
"formulaLatex": "0.40G_{30} + 0.30G_{90} + 0.20G_s - 0.10P_{spike}",
|
|
120
|
+
"inputs": [
|
|
121
|
+
"30-day rate",
|
|
122
|
+
"90-day rate",
|
|
123
|
+
"sustained trend",
|
|
124
|
+
"spike penalty"
|
|
125
|
+
],
|
|
126
|
+
"score": 100
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
"pillar": "Competition Fit",
|
|
130
|
+
"formula": "100 * exp(-((supply percentile - 60)^2) / (2 * 25^2))",
|
|
131
|
+
"formulaLatex": "100e^{-\\frac{(P_s - 60)^2}{2 \\cdot 25^2}}",
|
|
132
|
+
"inputs": [
|
|
133
|
+
"competitor count",
|
|
134
|
+
"launch count",
|
|
135
|
+
"repo/package supply",
|
|
136
|
+
"saturation penalty"
|
|
137
|
+
],
|
|
138
|
+
"score": 70
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
"pillar": "Activity",
|
|
142
|
+
"formula": "weighted available activity signals; non-relevant missing metrics excluded",
|
|
143
|
+
"formulaLatex": "\\frac{\\sum w_i s_i}{\\sum w_i}",
|
|
144
|
+
"inputs": [
|
|
145
|
+
"repo activity",
|
|
146
|
+
"package activity",
|
|
147
|
+
"launch recency",
|
|
148
|
+
"discussion freshness"
|
|
149
|
+
],
|
|
150
|
+
"score": 1
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
"pillar": "Channel Fit",
|
|
154
|
+
"formula": "0.35 concentration + 0.25 community count + 0.25 engagement + 0.15 lens match",
|
|
155
|
+
"formulaLatex": "0.35C_s + 0.25C_n + 0.25E_c + 0.15L_m",
|
|
156
|
+
"inputs": [
|
|
157
|
+
"source concentration",
|
|
158
|
+
"community count",
|
|
159
|
+
"top channel engagement",
|
|
160
|
+
"lens match"
|
|
161
|
+
],
|
|
162
|
+
"score": 72
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
"pillar": "Evidence Quality",
|
|
166
|
+
"formula": "0.25 source diversity + 0.20 sample size + 0.20 precision + 0.15 ambiguity inverse + 0.10 duplicate inverse + 0.10 recency coverage",
|
|
167
|
+
"formulaLatex": "0.25D_s + 0.20N + 0.20R_p + 0.15A_i + 0.10D_i + 0.10R_c",
|
|
168
|
+
"inputs": [
|
|
169
|
+
"source diversity",
|
|
170
|
+
"sample size",
|
|
171
|
+
"precision",
|
|
172
|
+
"ambiguity",
|
|
173
|
+
"duplicates",
|
|
174
|
+
"recency"
|
|
175
|
+
],
|
|
176
|
+
"score": 0
|
|
177
|
+
}
|
|
178
|
+
],
|
|
179
|
+
"summary": {
|
|
180
|
+
"score": 47,
|
|
181
|
+
"uncertainty": 9,
|
|
182
|
+
"confidence": "Medium",
|
|
183
|
+
"range": {
|
|
184
|
+
"lower": 38,
|
|
185
|
+
"upper": 56
|
|
186
|
+
}
|
|
187
|
+
},
|
|
188
|
+
"integrity": {
|
|
189
|
+
"finalScoreAvailable": true,
|
|
190
|
+
"confidenceCap": "Low",
|
|
191
|
+
"warnings": [
|
|
192
|
+
"Evidence Quality below 40 caps confidence at Low.",
|
|
193
|
+
"Relevant evidence count is below the minimum confidence threshold."
|
|
194
|
+
]
|
|
195
|
+
},
|
|
196
|
+
"evidence": [
|
|
197
|
+
{
|
|
198
|
+
"id": "github-repo-1176070434",
|
|
199
|
+
"source": "GitHub",
|
|
200
|
+
"sourceType": "repo",
|
|
201
|
+
"date": "2026-03-11",
|
|
202
|
+
"query": "therapist paperwork",
|
|
203
|
+
"snippet": "This is a digital software platform designed to manage patient records and therapy schedules in Ayurvedic clinics and hospitals. It helps doctors and therapists organize patient details and plan treatments. The system reduces manual paperwork, improves coordination between therapists and doctors, and ensures better monitoring of patient treatment.",
|
|
204
|
+
"link": "https://github.com/Sanjana250411/theratrack",
|
|
205
|
+
"metricContribution": "Activity",
|
|
206
|
+
"included": true,
|
|
207
|
+
"reason": "1 stars and 0 forks; updated recently.",
|
|
208
|
+
"duplicateCluster": "github-1176070434",
|
|
209
|
+
"signalStrength": 1
|
|
210
|
+
},
|
|
211
|
+
{
|
|
212
|
+
"id": "github-repo-1141275857",
|
|
213
|
+
"source": "GitHub",
|
|
214
|
+
"sourceType": "repo",
|
|
215
|
+
"date": "2026-04-15",
|
|
216
|
+
"query": "therapist paperwork",
|
|
217
|
+
"snippet": "Praxis-AI is an AI-powered clinical documentation platform that transforms how NDIS Occupational Therapists work. Record your session notes, and our AI automatically generates compliant reports—Functional Capacity Assessments, Progress Reports, and AT Justifications in minutes, not hours. Less paperwork, more therapy.",
|
|
218
|
+
"link": "https://github.com/jennofrie/Praxis-AI",
|
|
219
|
+
"metricContribution": "Activity",
|
|
220
|
+
"included": true,
|
|
221
|
+
"reason": "3 stars and 0 forks; updated recently.",
|
|
222
|
+
"duplicateCluster": "github-1141275857",
|
|
223
|
+
"signalStrength": 3
|
|
224
|
+
},
|
|
225
|
+
{
|
|
226
|
+
"id": "github-repo-1120743198",
|
|
227
|
+
"source": "GitHub",
|
|
228
|
+
"sourceType": "repo",
|
|
229
|
+
"date": "2025-12-21",
|
|
230
|
+
"query": "therapist paperwork",
|
|
231
|
+
"snippet": "An AI-powered platform that helps therapists reduce paperwork and gain meaningful insights, so they can focus more on their clients.",
|
|
232
|
+
"link": "https://github.com/emosapien-dev/emosapien",
|
|
233
|
+
"metricContribution": "Activity",
|
|
234
|
+
"included": true,
|
|
235
|
+
"reason": "0 stars and 0 forks; updated recently.",
|
|
236
|
+
"duplicateCluster": "github-1120743198",
|
|
237
|
+
"signalStrength": 0
|
|
238
|
+
},
|
|
239
|
+
{
|
|
240
|
+
"id": "github-repo-799562268",
|
|
241
|
+
"source": "GitHub",
|
|
242
|
+
"sourceType": "repo",
|
|
243
|
+
"date": "2024-05-28",
|
|
244
|
+
"query": "therapist paperwork",
|
|
245
|
+
"snippet": " Desktop application developed using Java and JavaFX. This application is designed to assist speech therapists in efficiently managing their patients and appointments. It provides an intuitive interface and comprehensive features , allowing therapists to focus more on their patients' progress and less on paperwork.",
|
|
246
|
+
"link": "https://github.com/waelb2/Speech-therapy-clinic-management-system-",
|
|
247
|
+
"metricContribution": "Activity",
|
|
248
|
+
"included": true,
|
|
249
|
+
"reason": "1 stars and 0 forks; updated recently.",
|
|
250
|
+
"duplicateCluster": "github-799562268",
|
|
251
|
+
"signalStrength": 1
|
|
252
|
+
},
|
|
253
|
+
{
|
|
254
|
+
"id": "query-derived-1",
|
|
255
|
+
"date": "2026-05-24",
|
|
256
|
+
"included": true,
|
|
257
|
+
"duplicateCluster": "query-derived-demand",
|
|
258
|
+
"source": "Reddit",
|
|
259
|
+
"sourceType": "post",
|
|
260
|
+
"query": "therapist paperwork",
|
|
261
|
+
"snippet": "Reddit public-search target for \"therapist paperwork\" and \"solo therapists\".",
|
|
262
|
+
"link": "https://www.reddit.com/search/?q=therapist%20paperwork%20solo%20therapists",
|
|
263
|
+
"metricContribution": "Demand",
|
|
264
|
+
"reason": "Generated from the locked problem and audience terms.",
|
|
265
|
+
"signalStrength": 79
|
|
266
|
+
},
|
|
267
|
+
{
|
|
268
|
+
"id": "query-derived-2",
|
|
269
|
+
"date": "2026-05-24",
|
|
270
|
+
"included": true,
|
|
271
|
+
"duplicateCluster": "query-derived-demand",
|
|
272
|
+
"source": "YouTube",
|
|
273
|
+
"sourceType": "video",
|
|
274
|
+
"query": "session note drafts",
|
|
275
|
+
"snippet": "YouTube public-search target for \"session note drafts\" tutorials, reviews, and workflows.",
|
|
276
|
+
"link": "https://www.youtube.com/results?search_query=session%20note%20drafts",
|
|
277
|
+
"metricContribution": "Demand",
|
|
278
|
+
"reason": "Generated from the locked solution terms.",
|
|
279
|
+
"signalStrength": 64
|
|
280
|
+
},
|
|
281
|
+
{
|
|
282
|
+
"id": "query-derived-4",
|
|
283
|
+
"date": "2026-05-24",
|
|
284
|
+
"included": true,
|
|
285
|
+
"duplicateCluster": "query-derived-competition-fit",
|
|
286
|
+
"source": "Product Hunt",
|
|
287
|
+
"sourceType": "launch",
|
|
288
|
+
"query": "therapy notes app",
|
|
289
|
+
"snippet": "Product Hunt search target for comparable launches: \"therapy notes app\".",
|
|
290
|
+
"link": "https://www.producthunt.com/search?q=therapy%20notes%20app",
|
|
291
|
+
"metricContribution": "Competition Fit",
|
|
292
|
+
"reason": "Generated from locked competitor terms.",
|
|
293
|
+
"signalStrength": 70
|
|
294
|
+
},
|
|
295
|
+
{
|
|
296
|
+
"id": "query-derived-6",
|
|
297
|
+
"date": "2026-05-24",
|
|
298
|
+
"included": true,
|
|
299
|
+
"duplicateCluster": "query-derived-channel-fit",
|
|
300
|
+
"source": "Stack Exchange",
|
|
301
|
+
"sourceType": "question",
|
|
302
|
+
"query": "solo therapists",
|
|
303
|
+
"snippet": "Stack Exchange search target for questions from or about \"solo therapists\".",
|
|
304
|
+
"link": "https://stackexchange.com/search?q=solo%20therapists",
|
|
305
|
+
"metricContribution": "Channel Fit",
|
|
306
|
+
"reason": "Generated from locked audience terms.",
|
|
307
|
+
"signalStrength": 72
|
|
308
|
+
},
|
|
309
|
+
{
|
|
310
|
+
"id": "query-derived-7",
|
|
311
|
+
"date": "2026-05-24",
|
|
312
|
+
"included": true,
|
|
313
|
+
"duplicateCluster": "query-derived-momentum",
|
|
314
|
+
"source": "npm",
|
|
315
|
+
"sourceType": "package",
|
|
316
|
+
"query": "session note drafts",
|
|
317
|
+
"snippet": "npm package-search target for builder activity around \"session note drafts\".",
|
|
318
|
+
"link": "https://www.npmjs.com/search?q=session%20note%20drafts",
|
|
319
|
+
"metricContribution": "Momentum",
|
|
320
|
+
"reason": "Generated from locked solution terms and free package-search surface.",
|
|
321
|
+
"signalStrength": 100
|
|
322
|
+
},
|
|
323
|
+
{
|
|
324
|
+
"id": "query-derived-exclusion-control",
|
|
325
|
+
"source": "Reddit",
|
|
326
|
+
"sourceType": "post",
|
|
327
|
+
"date": "2026-05-24",
|
|
328
|
+
"query": "physical therapy",
|
|
329
|
+
"snippet": "Wrong-meaning control query for excluded term \"physical therapy\".",
|
|
330
|
+
"link": "https://www.reddit.com/search/?q=physical%20therapy",
|
|
331
|
+
"metricContribution": "Excluded",
|
|
332
|
+
"included": false,
|
|
333
|
+
"reason": "Excluded by query bundle term: physical therapy.",
|
|
334
|
+
"duplicateCluster": "query-derived-exclusion-control",
|
|
335
|
+
"signalStrength": 0
|
|
336
|
+
}
|
|
337
|
+
],
|
|
338
|
+
"strongestPillar": {
|
|
339
|
+
"key": "momentum",
|
|
340
|
+
"label": "Momentum",
|
|
341
|
+
"score": 100,
|
|
342
|
+
"note": "Momentum reads recent public activity around \"session note drafts\"."
|
|
343
|
+
},
|
|
344
|
+
"weakestPillar": {
|
|
345
|
+
"key": "pain",
|
|
346
|
+
"label": "Pain",
|
|
347
|
+
"score": 0,
|
|
348
|
+
"note": "Pain reads workaround and complaint language around \"therapist paperwork\"."
|
|
349
|
+
},
|
|
350
|
+
"interpretation": "Public evidence supports deeper validation. Pain appears strong, while activity data remains thinner.",
|
|
351
|
+
"disclaimer": "This score reflects public evidence found through selected sources and queries. It is not a prediction of success, customer willingness to pay, or product quality."
|
|
352
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"idea": {
|
|
3
|
+
"name": "A fast global state manager for React",
|
|
4
|
+
"problem": "Redux has too much boilerplate and React context re-renders everything.",
|
|
5
|
+
"targetUser": "React Developers",
|
|
6
|
+
"lens": "Developer Tools"
|
|
7
|
+
},
|
|
8
|
+
"queryBundleForm": {
|
|
9
|
+
"problemKeywords": "react state management, context api re-renders, redux boilerplate",
|
|
10
|
+
"solutionKeywords": "atomic state, react global state library",
|
|
11
|
+
"audienceKeywords": "frontend developer, react dev",
|
|
12
|
+
"competitorKeywords": "zustand, jotai, recoil",
|
|
13
|
+
"exclusions": "vue, angular"
|
|
14
|
+
}
|
|
15
|
+
}
|