SEVPP ANALISIS — Economic Research & Investment Insight is a professional digital market intelligence website that connects to actual, verifiable data sources in order to monitor marketplaces, consumer trends, product performance, competitors, and digital marketing activity.
The product's intent is forensic rather than promotional: it exists so that an operator can look at a market figure and know exactly where that figure came from, when it was retrieved, and over what measurement period it was measured. Every capability in this document is subordinate to that intent.
The audience is Indonesian market-facing operators: analysts who read marketplace and search data daily, the administrators who own the platform integrations and credentials behind that data, and the business decision makers who act on the resulting analysis.
Absolute conditions carried from the source:
SEVPP ANALISIS is delivered as a first-party web application with application-owned identity, a persistent backend, a scheduled synchronization engine, and a verified-data layer that sits between raw source retrieval and everything the user sees.
Current delivery shape:
Actors: three accepted human personas (Market Intelligence Analyst, Data Source & Integration Administrator, Business Strategy Decision Maker) plus typed non-persona actors — the official platform APIs and authorized business accounts (Shopee, Tokopedia, Lazada, TikTok Shop, Google Trends, Google Analytics, Google Search Console, Meta Ads Library, and other officially accessible marketing analytics platforms), and the internal synchronization and validation processes.
Narrow exclusions: no simulated or illustrative figures anywhere in the product; no invented chart history; no merging of figures whose definitions or periods differ; no API keys in frontend code; no bypassing of authentication, access restrictions, or platform terms of use; no claim of successful integration before connection testing and data validation complete.
SEVPP ANALISIS is a first-party application that owns its own identity, its own database of synchronized records, and its own verification layer. It does not own the market data itself: Shopee, Tokopedia, Lazada, TikTok Shop, Google Trends, Google Analytics, Google Search Console, Meta Ads Library, and any other officially accessible analytics platform remain the owners of their data and of the authorization that grants access to it. SEVPP ANALISIS retrieves that data only through official APIs, authorized business accounts, or licensed third-party providers with the right to supply it, and it presents the data together with the source, retrieval time, and measurement period that make it traceable.
Access to the product is application-owned. A first-time user enrolls through self-service; a returning user verifies identity through login. Protected market intelligence, integration administration, and audit surfaces are reachable only after identity is established. The public entry surface is anonymously reachable and carries no protected state.
The boundary between current and future work is explicit. Current work is the functioning integration, synchronization, verification, dashboard, chart, AI analysis, opportunity scoring, source monitoring, and audit capability described in this document. Anything not stated in the authoritative requirements — additional marketplaces beyond those named, additional analytics platforms beyond those with official access, or any capability that would require inventing data to demonstrate — is out of current scope. Where a platform does not expose a public API for a given data type, that data type is simply not synchronized from that platform, and the product says so rather than filling the gap.
Not applicable. No reference directive in this project declares a content_source; all product facts derive from the authoritative user requirement thread and the accepted Planning Scope.
Each requirement below is a distinct story point with its provenance, lifecycle facts, and observable acceptance.
FR-01 — Verified-source market intelligence platform (explicit) As a Market Intelligence Analyst, I should use SEVPP ANALISIS as a professional digital market intelligence website connected to actual data sources, so that I can monitor marketplaces, consumer trends, product performance, competitors, and digital marketing from one place.
FR-02 — Prohibition on simulated or unsourced data (explicit) As a Market Intelligence Analyst, I should never see simulated data, fabricated figures, or data without a clear source, so that every figure I read can be trusted as a measurement.
FR-03 — Honest real-time claims (explicit) As a Market Intelligence Analyst, I should see real-time claims only where the source actually supports real-time updates, so that I am never misled about how current a figure is.
FR-04 — No fabricated sales, revenue, demand, or competitor performance (explicit) As a Market Intelligence Analyst, I should never see fabricated sales counts, revenue, demand, or competitor performance, so that competitive and commercial conclusions rest on real measurements.
FR-05 — Actual data status on unavailability or disconnection (explicit) As a Market Intelligence Analyst, I should see the actual data status when data is unavailable or an integration is disconnected, so that I understand what is missing and why.
FR-06 — Traceability of every figure (explicit) As a Market Intelligence Analyst, I should be able to trace every figure to its source, retrieval time, and measurement period, so that I can defend any number I act on.
FR-07 — Official source integration (explicit) As a Data Source & Integration Administrator, I should connect SEVPP ANALISIS to official data sources including Shopee, Tokopedia, Lazada, TikTok Shop, Google Trends, Google Analytics, Google Search Console, Meta Ads Library, and other marketing analytics platforms providing official access, using official APIs, authorized business accounts, or licensed third-party data providers, so that the product's intelligence rests on legitimate access.
FR-08 — No assumption of universal public APIs; public/private separation (explicit) As a Data Source & Integration Administrator, I should have the product treat each platform's available data types according to what that platform actually exposes, and separate public data from private data available only through seller or advertiser accounts, so that the product never implies access it does not have.
FR-09 — Synchronization of available data fields (explicit) As a Data Source & Integration Administrator, I should have the system synchronize, where available, product name and category, latest price, sales count, sales count change, rating and review count, product search position, promotion information, historical data, search trends, and marketing campaign performance, so that the intelligence layer has the fields the product promises.
FR-10 — Real-time synchronization engine (explicit) As a Data Source & Integration Administrator, I should have an automatic synchronization engine that retrieves data through official APIs, schedules synchronization, accepts platform webhooks where provided, updates automatically within API limits, validates format and consistency, detects duplicates, handles synchronization failures, retries on connection failure, stores update history, and monitors per-source connection status, so that the data behind the product stays current and its history stays auditable.
FR-11 — Per-integration status display (explicit) As a Data Source & Integration Administrator, I should see each integration's status as CONNECTED, SYNCING, VERIFIED, STALE, ERROR, or ACCESS REQUIRED, so that I know the real state of every source.
FR-12 — Connection status is not completeness (explicit) As a Data Source & Integration Administrator, I should never see a successful connection status presented as a guarantee that all data is complete, so that I do not over-trust a connected source.
FR-13 — Verified data layer before display (explicit) As a Market Intelligence Analyst, I should have a verification layer applied before data reaches the dashboard, so that what I see has already passed the checks the product defines.
FR-14 — Consistency, format, duplication, and unusual-change checks (explicit) As a Market Intelligence Analyst, I should have the system check value consistency, format, duplication, and unusual changes, so that anomalies are caught before they reach my analysis.
FR-15 — Cross-source discrepancy display (explicit) As a Market Intelligence Analyst, I should see the difference when two sources disagree, and the product should not merge figures whose definitions or periods differ, so that I can judge the disagreement myself.
FR-16 — Professional market dashboard (explicit) As a Market Intelligence Analyst, I should have a premium market dashboard with red, black, and white dominance summarizing total products successfully monitored, number of categories analyzed, highest-growth category, highest-selling products where data is available, products with the highest popularity increase, product price changes, consumer search trends, number of active integrations, and last synchronization time, so that I get an immediate read on the market.
FR-17 — Dashboard filters (explicit) As a Market Intelligence Analyst, I should filter by platform, category, period, price, product, and region where the source supports it, so that I can narrow the market view to what I am investigating.
FR-18 — Interactive charts from the synchronized database (explicit) As a Market Intelligence Analyst, I should use interactive charts that read directly from the synchronized database — Market Trend Chart, Product Sales Chart, Category Performance Chart, Price Movement Chart, Competitor Comparison Chart, Marketing Performance Chart, and Market Opportunity Chart — so that I can see market movement visually.
FR-19 — Chart tooltips, filters, labels, and sources (explicit) As a Market Intelligence Analyst, I should have every chart carry tooltips, period filters, clear labels, and its data source, so that I can read and cite the chart correctly.
FR-20 — No fabricated chart history (explicit) As a Market Intelligence Analyst, I should never see fake history created to fill a chart when historical data is insufficient, so that the shape of a curve always means something real.
FR-21 — AI market analyst reports (explicit) As a Market Intelligence Analyst, I should have AI analyze the synchronized data and produce reports covering current market conditions, highest-selling products based on available data, highest-growth categories, products starting to gain attention, consumer interest changes, competitor analysis, business opportunities, market risks, digital marketing strategy recommendations, and supporting data sources for conclusions, so that I get an analytical read on the market.
FR-22 — AI uses only available data and states uncertainty (explicit) As a Market Intelligence Analyst, I should have the AI use only genuinely available data and state uncertainty when evidence is insufficient, so that I never mistake an inference for a measurement.
FR-23 — Market opportunity scoring (explicit) As a Business Strategy Decision Maker, I should have a market opportunity scoring system built from sales growth where available, search interest growth, trend consistency, competition level, price changes, margin potential based on known costs, data completeness, and demand change risk, with each score explaining its indicators and calculation method, so that I can compare opportunities on a stated basis.
FR-24 — Popularity is not profitability (explicit) As a Business Strategy Decision Maker, I should never see popularity presented as proof of profitability, so that I do not mistake high demand for good margin.
FR-25 — Dedicated data source monitoring page (explicit) As a Data Source & Integration Administrator, I should have a dedicated page to monitor all data sources showing platform name, connection status, available data types, last synchronization time, update frequency, successfully processed record count, failed record count, error notes, authorization status, and synchronization history, so that I can operate every integration from one place.
FR-26 — Audit log (explicit) As a Data Source & Integration Administrator, I should have an audit log so I can check when data entered, was processed, was updated, or failed validation, so that every data event is accountable.
FR-27 — Security and infrastructure stack (explicit) As a Data Source & Integration Administrator, I should have the product built on React or Next.js frontend, Node.js or Python FastAPI backend, PostgreSQL database, official platform APIs, a synchronization scheduling system, secure credential storage, user authentication and authorization, connection encryption, API access and usage restrictions, and logging and monitoring, so that the platform is operated securely and within platform terms.
FR-28 — No API keys in frontend; no bypassing controls (explicit) As a Data Source & Integration Administrator, I should have API keys kept out of frontend code and no authentication, access restriction, or platform term of use bypassed, so that the product's access remains legitimate.
FR-29 — Verification declaration standard (explicit) As a Market Intelligence Analyst, I should have the product declare data verified only after the relevant checks have successfully passed, so that the word "verified" means something specific.
FR-30 — Acceptance criteria for displayed data (explicit) As a Market Intelligence Analyst, I should have displayed data meet the acceptance criteria — data source identifiable, integration genuinely connected, actual data successfully received, synchronization and its history recorded, displayed figures matching source and measurement period, charts reading from the actual database, connection failures producing no substitute figures, expired data clearly marked, and all access limitations transparently explained — so that what I see meets a stated standard.
FR-31 — Prioritize functioning integration and accuracy (explicit) As a Data Source & Integration Administrator, I should have the product prioritize functioning data integration, measurement accuracy, source transparency, automatic synchronization, and professional charts, so that the platform's effort goes where its promise is.
FR-32 — Self-service enrollment (required_inference) As a first-time user, I should enroll through self-service so that I can establish my identity in the product and reach the protected workspace.
FR-33 — Returning verification through Login (required_inference) As a returning user, I should verify my identity through Login so that I can resume my protected work.
FR-34 — Role assignment and authorization (required_inference) As a Data Source & Integration Administrator, I should have role assignment and authorization govern integration administration and audit access, so that credential handling and audit review are restricted to the role that owns them.
FR-35 — Source authorization and credential setup before private data synchronization (required_inference) As a Data Source & Integration Administrator, I should complete official source authorization and credential setup before private data synchronization begins, so that private data is only retrieved through authorized access.
FR-36 — Connection testing and validation before success is presented (required_inference) As a Data Source & Integration Administrator, I should have connection testing and data validation complete before an integration is presented as successful, so that the product never claims an integration succeeded prematurely.
FR-37 — Scheduled synchronization and recorded history before metrics, charts, or reports (required_inference) As a Market Intelligence Analyst, I should have scheduled synchronization and recorded update history in place before current metrics, charts, or reports are presented, so that what I see is backed by a recorded run.
FR-38 — Validation, completeness, and freshness checks before verification (required_inference) As a Market Intelligence Analyst, I should have data validation, completeness, and freshness checks applied before records are declared verified, so that "verified" reflects checks that actually ran.
Product context. The analyst is the primary daily operator of SEVPP ANALISIS. Their work is reading a market: which categories are moving, which products are gaining attention, how prices are shifting across sellers, and what the search and campaign data say alongside the marketplace data. They work inside the protected workspace and treat the product as an instrument rather than a report generator.
Primary goal. To reach a defensible read on the market where every displayed metric is traceable to a verified source, period, and retrieval time, and where stale or unavailable data is clearly flagged rather than replaced.
Distinct accepted responsibilities. The analyst monitors the professional market dashboard and applies filters by platform, category, period, price, product, and region. They read the seven interactive charts — market trend, product sales, category performance, price movement, competitor comparison, marketing performance, and market opportunity — and rely on each chart's tooltips, period filters, labels, and source attribution. They review AI market analyst reports and market opportunity scores, and they inspect the data quality surface for validation, completeness, freshness, unusual changes, and conflicting source values.
Relevant inputs and decisions. The analyst decides which market question to pursue, which filters to apply, which chart to read, and which figure to trust when two sources disagree. They decide whether a report's stated uncertainty is acceptable for the decision at hand.
Interactions with other accepted participants. The analyst depends on the Data Source & Integration Administrator for the integrations that supply their data: a source left in ACCESS REQUIRED or ERROR directly limits what the analyst can read. The analyst's verified output is what the Business Strategy Decision Maker consumes, so the analyst's traceability work is what makes the decision maker's conclusions defensible.
Observable success. Every metric the analyst reads carries its source, retrieval time, and measurement period; stale data is marked; unavailable data is stated as unavailable; discrepancies between sources are shown rather than merged; and no chart shows a curve that was not measured.
Product context. The administrator owns the data supply side of SEVPP ANALISIS. Their work is connecting and authorizing official marketplace and marketing platform integrations — Shopee, Tokopedia, Lazada, TikTok Shop, Google Trends, Google Analytics, Google Search Console, Meta Ads Library, and other officially accessible analytics platforms — managing secure credential storage, and keeping the synchronization engine healthy.
Primary goal. To have integrations genuinely connected, synchronization and its history recorded, and access limitations transparently explained, so that the analyst's data supply is real and auditable.
Distinct accepted responsibilities. The administrator configures and authorizes sources, runs connection tests, and manages secure credentials. They monitor per-source connection status across CONNECTED, SYNCING, VERIFIED, STALE, ERROR, and ACCESS REQUIRED, and they review synchronization history, successfully processed and failed record counts, and error notes. They maintain the audit log and review the data quality surface for records that failed validation.
Relevant inputs and decisions. The administrator decides which sources to connect, which credentials to supply, whether a source's authorization is sufficient for the private data it is expected to provide, and whether a failing source should be retested or left in its actual status.
Interactions with other accepted participants. The administrator's work directly determines what the Market Intelligence Analyst can read: a source in ACCESS REQUIRED or ERROR is a limit the analyst must see. The administrator's audit log is what allows the Business Strategy Decision Maker's conclusions to be traced back to a recorded synchronization event.
Observable success. Every integration shows its real status; no integration is presented as successful before connection testing and data validation complete; connection status is never presented as a guarantee of completeness; public and private data are distinguished; and every data event is recorded in the audit log.
Product context. The decision maker consumes the verified market intelligence output rather than operating the data pipeline. Their work is deciding where to invest or act, based on the highest-growth categories, products gaining attention, competitor analysis, business opportunities, market risks, and digital marketing strategy recommendations the product produces.
Primary goal. To reach investment and strategy decisions where conclusions are supported by cited data sources and stated uncertainty, and where popularity is never mistaken for proven margin.
Distinct accepted responsibilities. The decision maker reads AI market analyst reports and market opportunity scores, compares opportunities on the stated indicators and calculation methods, and weighs demand against margin potential separately. They follow cited sources back to the underlying records and charts when a conclusion matters.
Relevant inputs and decisions. The decision maker decides which opportunity to pursue, which risk to hedge, and which recommendation to act on. They decide whether the stated data completeness and uncertainty are sufficient for the commitment they are considering.
Interactions with other accepted participants. The decision maker depends on the Market Intelligence Analyst's traceable output and on the Data Source & Integration Administrator's recorded synchronization history. When a report cites a source, the decision maker can follow it to the record the analyst reviewed and the run the administrator recorded.
Observable success. Every conclusion the decision maker acts on cites its supporting data sources; uncertainty is stated where evidence is insufficient; margin potential is stated only where cost data is known; and no score presents popularity as proof of profitability.
The creative direction is authoritative for this section: Less, but better — a Braun-panel instrument for verified market data, with Dieter Rams as the muse. The product's promise is that it never dresses a number up, so the interface is built as a measuring instrument: honest controls, aligned label/value pairs, one signal colour that means something, and no decoration that is not also information.
Mode. Dark mode is the primary and only mode.
Colour tokens by role:
| Role | Token | Value |
|---|---|---|
| Background (ink-black ground) | --bg | #111111 |
| Surface (panel) | --surface | #1B1B1B |
| Text (warm off-white) | --text | #F4F2EE |
| Muted (metadata, timestamps, units only — never a figure) | --muted | #8A8A85 |
| Primary / signal red | --primary | #E4002B |
| Accent / second signal amber | --accent | #FFB000 |
| Hairline rule | --rule | rgba(244, 242, 238, 0.14) |
| White band (verification ledger strip only) | --band | #F4F2EE with #111111 type |
Signal semantics. Signal red #E4002B is rationed: it marks the primary action, the one highest-growth category, ERROR and STALE flags, and the single filled segment of any gauge — never large background fields. Amber #FFB000 is the second signal, reserved for ACCESS REQUIRED and for "data insufficient" states, so red/amber/green-ish semantics stay legible. White is used as a full-width band exactly once per page — the verification ledger strip — to break the dark ground.
Proportion target: 70% black/panel, 22% off-white type and rules, 6% red, 2% amber.
Typography. Headings and body are Archivo. Headings are set at 500–600 with tracking tightened to -0.02em; body is 400 at 16–18px. Labels, status chips, units, and table headers are Archivo 600, uppercase, 11–12px, tracking +0.14em — the small-caps label voice of a control panel. Numbers are the loudest thing on every screen: Archivo 700, tabular-nums, set at 2.4–3.4× the label size so a figure always outweighs its caption. No italic, no light weights, no display serif.
Type scale. 1.25 modular on a 4px baseline: 12 / 14 / 16 / 20 / 25 / 31 / 39 / 49 / 61 / 76px. Body 16px, table body 14px, labels 11–12px, metric numerals 31–49px depending on column count, hero headline clamp(40px, 7.2vw, 76px) with 1.02 line-height.
Shape language. Rounded-rectangle controls with a single 6px radius on buttons, chips, inputs, and panels — Braun radio-bezel geometry, never pills, never fully square. 1px hairline rules everywhere a border is meaningful; 2px rules only as section dividers. Gauges are circles with a 3px arc stroke and a thick needle. No blobs, no soft shadows larger than 8px, no glass, no gradient fills except a 4% black scrim over chart plot areas.
Spacing rhythm. 4px baseline; 8px intra-component, 16px between related elements, 24px between panels, 48px between sections.
Layout. A strict 12-column modular grid at 1280px, 6 columns at 768px, 2 columns at 375px, with a persistent left rail of numbered sections (01 Dashboard, 02 Charts, 03 Analyst, 04 Opportunity, 05 Sources, 06 Audit) that behaves like a device legend. Data is always presented as aligned label/value pairs with the label left and the figure right-aligned to a shared numeric edge — the same edge across every card in a row. The dashboard is dense but ordered: 6 metric tiles in a 3×2 block, then a 2/3 + 1/3 split of a primary chart beside a source-and-freshness column. Every chart sits in a panel with a caption row beneath it carrying source name, retrieval timestamp, and measurement period in 12px uppercase. Filters live in a single horizontal control bar that never collapses into a hidden drawer.
Imagery style. No photography. The visual vocabulary is diagrammatic: schematic line icons for each platform source, hairline sparklines, ruled ledgers, needle gauges, and a small set of 2px-stroke pictograms for data states (plug, clock, shield-check, warning triangle). The one permitted "image" is an abstract verification mark — a circular stamp drawn with concentric hairlines and the word VERIFIED in 11px uppercase — used as a watermark on records that passed checks. Anything decorative that cannot be read as information is cut.
Readable text and controls stay whole at every viewport. Headlines, wordmarks, labels, numbers, card text, and controls stay entirely inside the viewport and their container at 375px, 768px, and 1280px, wrapping or scaling (for example font-size: clamp(...) with its mobile size) to fit, and no other element covers any part of them. The verification ledger band is a moving strip and may cross the viewport edge by design; every item becomes fully readable as it passes, and under prefers-reduced-motion it wraps into rows or becomes horizontally scrollable so each item can be brought fully into view.
The control-panel masthead and the verification ledger band.
The public entry is not a marketing hero. It is a full-bleed #111111 ground carrying a control-panel masthead, and it exists to show the product's honesty as the first thing on screen rather than as a claim.
Left 8 columns. The wordmark SEVPP ANALISIS in Archivo 600 uppercase at clamp(40px, 7.2vw, 76px) with tracking -0.02em, stacked over a 2px red rule (#E4002B) that runs the full 8 columns. Beneath the rule, one line of 16px muted copy (#8A8A85) stating the actual state — for example "9 sumber terdaftar · 4 terverifikasi · pembaruan terakhir 14:02 WIB" — generated from real integration status, never a promise. There is no centred headline, no sub-headline-plus-button stack, no gradient, and no illustration.
Right 4 columns. A vertical stack of nine source rows. Each row is a hairline-ruled label/value pair with the platform name in 12px uppercase, a 10px status LED, and its status word in 11px uppercase — CONNECTED, SYNCING, VERIFIED, STALE, ERROR, or ACCESS REQUIRED. The first screen therefore already shows exactly which integrations are verified, stale, or awaiting authorization.
Across the bottom. A single full-width white band (#F4F2EE) carries the last-sync ledger as a horizontally scrolling strip of records — source, record count, timestamp — with black type on white. It is the only white field in the design, and it moves continuously, pausing on hover.
Why this is the signature. The nine-row live source panel and the ledger band are the product's two defining states — what is connected, and what was actually retrieved — rendered as the first thing a visitor sees. The concept recomposes only accepted content and states: registered sources, their real statuses, record counts, and retrieval times. It introduces no new behaviour, page, or destination.
Interaction Model: Static Motion Tempo: restrained Hero Dimensionality: flat
Landing Hero Motion Brief
#111111 ground. Left 8 columns: the wordmark stacked over the 2px red rule, with the muted state line beneath. Right 4 columns: nine hairline-ruled source rows, each with its LED and spelled-out status. Across the bottom: the white ledger band, already moving.prefers-reduced-motion everything renders in its final state: the SYNCING blink becomes a static filled dot, the number tick is removed, and the ledger band stops moving and wraps into rows or becomes horizontally scrollable so every record can be brought fully into view.NFR-01 — Data authenticity (explicit) All system data must originate from official APIs, authorized integrations, or verifiable public sources. Simulated data, fabricated figures, and data without a clear source are prohibited. Rationale: the product's entire value is that its figures are measurements.
NFR-02 — Traceability (explicit) Every figure must be traceable to its source, retrieval time, and measurement period. Rationale: a figure that cannot be traced cannot be defended or acted on.
NFR-03 — Honest currency claims (explicit) The product must not claim real-time data where the source does not support real-time updates. Rationale: freshness claims are themselves data and must be as honest as the figures.
NFR-04 — No substitute figures on failure (explicit) Connection failures must not produce substitute figures; expired data must be clearly marked; all access limitations must be explained transparently. Rationale: a gap must read as a gap.
NFR-05 — Verification before declaration (explicit) The website may only declare data verified after the relevant checks have successfully passed. Rationale: "verified" must denote a completed check, not an assumption.
NFR-06 — No premature integration success claims (explicit) An integration must not be claimed successful before connection testing and data validation are complete. Rationale: a connected-looking source that returns nothing is worse than an honestly failing one.
NFR-07 — Credential security (explicit) API keys must not be placed in frontend code; credentials must be stored securely; connection encryption must be used. Rationale: credential exposure would break both the product's security and its platform authorizations.
NFR-08 — Access and usage restrictions (explicit) API access and usage must be restricted and must respect platform limits; authentication, access restrictions, and platform terms of use must not be bypassed. Rationale: the product's access to official sources depends on remaining within their terms.
NFR-09 — Authentication and authorization (explicit) User authentication and authorization must be enforced, with integration administration and audit access restricted to the role that owns them. Rationale: credential handling and audit review are sensitive responsibilities.
NFR-10 — Logging and monitoring (explicit) Logging and monitoring must be in place across synchronization, validation, and access. Rationale: the audit trail and the source monitoring surfaces depend on recorded events.
NFR-11 — Public/private data separation (explicit) Public data must be separated from private data available only through seller or advertiser accounts. Rationale: the product must never imply access it does not have.
NFR-12 — No merging of unlike figures (explicit) Figures whose definitions or periods differ must not be merged; the difference must be shown instead. Rationale: merging unlike measurements produces a number that corresponds to no source.
NFR-13 — No fabricated history (explicit) Fake history must not be created to fill charts when historical data is insufficient. Rationale: the shape of a curve is itself a claim.
NFR-14 — AI evidence discipline (explicit) AI may only use genuinely available data and must state uncertainty when evidence is insufficient. Rationale: an AI conclusion is only as defensible as the data behind it.
NFR-15 — Popularity is not profitability (explicit) Popularity must not be treated as proof of profitability. Rationale: high demand and good margin are different measurements.
NFR-16 — Connection status is not completeness (explicit) Successful connection status must not be equated with a guarantee that all data is complete. Rationale: a healthy connection can still return partial data.
NFR-17 — Readable text and controls at every viewport (required_inference) Readable text and controls must remain whole and uncovered at 375px, 768px, and 1280px. Rationale: the product's figures and labels are its content; a cropped figure is a misread figure.
Source-specified choices are preserved exactly.
Assumptions
Constraints
Future requirements
No future-horizon requirements were stated in the authoritative source. All requirements in this document are current.
No completed page designs yet.
Completed design pages will appear here when they are ready to preview.
No completed page designs yet.
Completed design pages will appear here when they are ready to preview.
No comments yet. Be the first!