bba2bcbad2fab7d0dba423b0bc23557de888ed6dea0585e8b59e971c4f916956  backend/alembic/env.py
d1ac3c04d069cbbb195d7a9e605c663476ad9a7c7b337d8d989a56f778efd10b  backend/alembic.ini
84435ac106d8a53545b3f1969720d88241e16ce9e172ed44cdb12e6c78408dca  backend/alembic/script.py.mako
ac0c8127d38b166cc4de4214edf33e7c2e104095a64aecf1670a07fb6b80c84d  backend/alembic/versions/0001_initial_schema.py
e1afb58a80dd686c24442a351e9fab2b7f9f3cc695cff19f9567261eae647b5c  backend/alembic/versions/0002_confidence_data_quality_scores.py
c1bd737bdd2fa0ae8b1b41d501c5d65d2d2609847079adcd0199a70ea5715795  backend/alembic/versions/0003_revoked_tokens.py
de08ccffbc8e535fed71f897980298fd8c74365474b6a5472b59443bde1a8f8c  backend/alembic/versions/0004_alert_events_emerging.py
f4fd2dc266df3047c21414ee64cc11587c80384a80f9dbab84d6d353df062501  backend/app/adapters/base.py
1e8c04dcf94838fa759347e24e4b8debe14ebac20e0cc1ee2a5f2cb27d901222  backend/app/adapters/demo.py
fbea00fac610d0cad9aca248ba0d99174c24b4caf86c02e0115c5578dae2d9c5  backend/app/adapters/eodhd.py
54080d4b561935a92c2dcb51a94b9de8f8a6011389403942e4e730fe870fddd1  backend/app/adapters/fmp.py
86586aadc3416f38627b3b6e94343cfced598ed5d23fde01bead8282eab98b8c  backend/app/adapters/__init__.py
670994146a74c132be4ee08bf8c50627c78d911a7239469767a826c6e5337e96  backend/app/adapters/resolver.py
233f1caff590a88a0ebfcc897047c92426bff31a40ce3b69d890410a27ac7560  backend/app/adapters/schemas.py
486737385fd5ee3a3863fc04f385b3ce4d2c462938f914c2f21170e9999929f1  backend/app/adapters/validation.py
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855  backend/app/api/__init__.py
42dc0ee9836918a62ed97a9de5a467104ed0b2743033070f83d58a50e69b4639  backend/app/api/v1/aggregation.py
62adcadf66a1af874dcfb59ea097734adc037b5aafe3c0e7bc546da6de2c0a4e  backend/app/api/v1/auth.py
d7fbd03468ec6391c7912c500c6aca0e17aa2bb15ce1a557b675881c72f7b118  backend/app/api/v1/companies.py
466d8ad87d131a224aed7b32003e45afebeec425973f8496952fc830b84ead54  backend/app/api/v1/deps.py
865ba171029096f8bd40f0964128ea4467f25228f16d5da2be799675974f33d6  backend/app/api/v1/health.py
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855  backend/app/api/v1/__init__.py
26c76be15899ddd89f45ed40f9457aa811885fbb403ffd0d2dbf73e483fa5daf  backend/app/api/v1/rankings.py
5497cbb6ba10694251cc17832e42097d9cd1db79f1ae477df4e21d126985f093  backend/app/api/v1/screeners.py
03b4fe618e9a0506ba755d95af3c2bfcdcec68b49a639d6fe40865228936f8a6  backend/app/api/v1/search.py
8f7dc1e1180d2ea06c71fcfa8e410a2489765315f03706a20f3ee41305aba569  backend/app/api/v1/serializers.py
dcec5257b0c8404cc040cd649eb8a4d1f19072c772ddaf9b4fcd7fb41528fc0d  backend/app/api/v1/watchlist.py
85e74ee9aac1631abe1eb36387e2fd7ee5861ca50b833fb40833f468ee70914c  backend/app/core/config.py
1b608df47c325b2a70e1aabc9ab77045f4ec73d518f88c8b9ca8a713faa86718  backend/app/core/db.py
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855  backend/app/core/__init__.py
40c3c52a3b0d5e6762961ca4b19fbdd896f3c84768a0a9345ebf586935127e2e  backend/app/core/logging.py
1adeeec1fb771087d7e209c2082d4bfdf5fc6440e62ff15e108f50210f2fa317  backend/app/core/model_version.py
2bf27182e98b6dcd0687fd87503b18edaa72b64e374cbc9c03fcf004728105b8  backend/app/core/security.py
48449683fb559724c0527c174789e2a58f376ae0c73a8b9ce5b02fecde2ddab8  backend/app/core/token_revocation.py
f00535512f78a2ef1dd7fc2d27bb7313827a4cac39fcb1813106f5e9cbc05f0e  backend/app/engines/alerts.py
21bc6decf4119ccf61a71efd0f03a61d5af947fda1d315dd2bc2e6ec9c5fe6db  backend/app/engines/backtesting/__init__.py
e70318120687c2aaf6957e313d79385ae31dc4e7b695b5b6c3d3f7a9ec92c46c  backend/app/engines/backtesting/performance.py
5b8ccba0591758fb3970851363ee997579049c2a1ecf0f5c505d268b02e7e17d  backend/app/engines/backtesting/replay.py
327f2bff4111ad051f2926dd5d6d5befd62c3a77e937f89709c0e32e95e466a0  backend/app/engines/backtesting/robustness.py
817d4b2ed448b6c89addf4526d83d683dd8647f0f7e66a7a0b62e81178634fbd  backend/app/engines/currency.py
4430971552a9411b9e8971a6bfc57e9b67bca6529978dabc9bb00ae7aaa88e92  backend/app/engines/discovery/emerging.py
d56124178733ad7efc394de66768e88253d4ffa229026ab15502e3b205052363  backend/app/engines/discovery/__init__.py
d77e65aeeb954f4f678d3e34f1abb3b651831b788ada91bcd75833c0359f2e25  backend/app/engines/estimates.py
bfd9d94404a728c38b4e01d68dc4811f0374b41eaa324bf94ea76cf5357eb7bc  backend/app/engines/identity.py
63a0b07d915a011af28cfe2adb37beb58c6e35832afd5f5889a678df1cc5c9fa  backend/app/engines/industry_applicability.py
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855  backend/app/engines/__init__.py
8b70ec7a9b8e2d0ef98c1b4f480cd0939a41e05e05e3944d5c65a3fe2f38d8d3  backend/app/engines/macro/context.py
cff88d9a53abff2d54e38882e08b7970545ee47807beb14a91a8a1dba3cb98b3  backend/app/engines/macro/__init__.py
f0d5fc42c4c6278b3976dde6ef9686fb71a146db3a9f36235f43adae41197e17  backend/app/engines/metrics/core.py
8016eb4aeb2da498b9017615e05fb41efe8727b0861ca731a6a68e9cb396ba26  backend/app/engines/metrics/formula_utils.py
9b1bbbe72251ce52a5991868912c47cd4025a67cb2b07dc94f13fafdcaad7e0d  backend/app/engines/metrics/__init__.py
cf16d1e909dfac04cf5fcdf84098f83b5b1e150c06529514d628be686acbea2f  backend/app/engines/metrics/point_in_time.py
c560f5fdcc92fc1fd9043af25856e41d22f4ed2729f21da497ebd8d0de90d6f0  backend/app/engines/multibagger/__init__.py
f5347aab28ae35bfc04d8bd963c42f2953d7e2035bc8ea6f5233fdcb75ce3e0c  backend/app/engines/multibagger/score.py
ccbc2c2b84e19c5ab310a52a07ab93ffa3e9bf2e1b5d69a7366fb7522404fbd2  backend/app/engines/normalize.py
5fd8b8de40c4be8c100202623fdff2f57765ea6e0373952cb618305477569a4e  backend/app/engines/quality/accounting.py
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855  backend/app/engines/quality/__init__.py
681c3afc3bd7e127c0ad4919112a316a50e21308de5d95a95861ad1f882f6256  backend/app/engines/recommendation/bands.py
3881176d8023585d7584259b1416df6db97f2847dd5dfbe43ff6d7de8280176c  backend/app/engines/recommendation/engine.py
e37e0a2b66c6959475258bac0c83a81896328e723842408d8de2bc7c968856ab  backend/app/engines/recommendation/__init__.py
e3ac1a5609e639957575a0bbd5fb1f7c9c92eeda6a61334b3f760080f2d423fe  backend/app/engines/recommendation/sell_trigger_builder.py
ce3ec91cfe5e966e1f1b189240a897832d3da36b78dd3902dfc397fe7fff2766  backend/app/engines/recommendation/sell_triggers.py
ffc78d35dab9322671e8089b8a20ebf3f734f9d7f31c03522d13fa66abe1f9ee  backend/app/engines/reference_data.py
effd142099314817ad67858a3944961b18e54e4e2e6938a8428ff132248206d8  backend/app/engines/scoring/confidence.py
5b07dcbb96973a6a5635051417b1493f89686d0fa7c3479605da1460fb04ce17  backend/app/engines/scoring/data_quality.py
7e709f60542380e36d98305f6966aac8d6f442010051cad4d7da8e670b8aa016  backend/app/engines/scoring/__init__.py
ba8b72dba834dd9c031a09ab0541767c18f22af617e463252e704fdfbd8933fb  backend/app/engines/scoring/overall.py
161d0b5932cded71374fd5b2b8cca915fbb90950b1449a7ab5cbf2a2e98f3e9f  backend/app/engines/scoring/peer_groups.py
aa0ffb0332d97033c68afc3a22519b31531d09938490775dfc11a203b8c5ea97  backend/app/engines/scoring/percentile.py
91e79347aeb25b659fdd1c6da31e6c4f9aa7bbff820ca9b5e8c9807f283fe1bb  backend/app/engines/scoring/persistence.py
d9b796ada7f07420196d956436f6cbe3c4d5a1f81de1929abf5f93d36de5576e  backend/app/engines/scoring/subscores.py
0000912a9fab537381d8355a38cee70d9144e39fc31a65d53db7747b1685fe4b  backend/app/engines/scoring/wiring.py
02b6950d17f9297f9386fa5d5cc8dccaa1c5702e788952001f62a2f5c4eee51f  backend/app/engines/screening/executor.py
33e372216a2aa0e3560d8de86110d6c703ae19893d5e9dc18389b1d7cb1e52d4  backend/app/engines/screening/presets.py
2c43c53efc6b8fe54b216e2bb074219091b906639ab4fdbf98f818653a1dffdb  backend/app/engines/ttm.py
753c165eed13653e56772ae057e382473f39ec9301068c89d0e309b5506dcef1  backend/app/engines/types.py
e0bac4c14795494a6cd94708102c2f3f174c0f7a34e865f67e0388f5693d4616  backend/app/engines/valuation/blend.py
703fcd4df12b80ae9e311139ad181ddb96e3abf5d744c12339f5a201ee881b55  backend/app/engines/valuation/dcf.py
1ea5feb78ab0db5be5207d30bfb8d94ad0794f526d304ea8ac93149a8e08ec1d  backend/app/engines/valuation/expected_return.py
d87cd91906b80a96db9afaf1e3bf3419f4808f7ee9d40476ba72f3403943f529  backend/app/engines/valuation/__init__.py
d9e9e8150861be50b10ab1d6fd8bb22c19cff4b3adc89fe22aa95069f34125df  backend/app/engines/valuation/margin_of_safety.py
b5af4465bc61faaf9174ed5c36ad5c70c22d6226f136a4ef7a317d7b863d2a5a  backend/app/engines/valuation/multiples.py
033f0082d98e523044e09196c7067fe4d729099e68e2f66dc045dffdf1aac959  backend/app/engines/valuation/wacc.py
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855  backend/app/__init__.py
3f37ce9d0213a060c55e7404f7d11b29485196f28aba98eb8436697e6bca94c3  backend/app/main.py
9151edee0a3b40dbe6242d2b8dc551d1ba23e4fcbd34a726ea0f8ca97c9bb840  backend/app/models/base.py
14d5836dd9c63e44e3b49ed1249bdc643cdb9e154678efb5772f7ce4677d5e8e  backend/app/models/companies.py
0d01891855c23b4079eaecdc1b387368085adf25e7a2cd920e75f8d795d3fc98  backend/app/models/derived.py
bc24958a9e68a43e4fd6af4ca7695149523aef931cd4ecee1264f47a3d00a977  backend/app/models/financials.py
1bc468b9c94aa8a313411b2d44cf47cce58d884956ac54c32ffdad751567d78b  backend/app/models/governance.py
edcc047f90aedae1db2381c297101b7f51e37a2828c775e1e2d93068f005ae1c  backend/app/models/__init__.py
67a25116b0aa72751559964f2180618a7284fc30174f3c25678411bfd901a01a  backend/app/models/market.py
bd19e36ba42fe63e6d30cffad91e9c20beadb1064670f4e91b37e3a7833d0226  backend/app/models/reference.py
16afbe11baf8ae64f0b430a035d93bca66ddc91e84d12f62195d975b828f38d3  backend/app/models/user_facing.py
2e8e3dc1841da440341c33d2d8c0c8abdb86b9d03835f396e026b2957e892869  backend/app/schemas/auth.py
77c3deb8f1277e47394b874d3ab5144f99b6f62b5e5ecb2311ae4151a3a60921  backend/app/schemas/common.py
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855  backend/app/schemas/__init__.py
5524fd8019ab51a560bcc7fb02a0e857c236853cff5b96285293a56fab0ac09a  backend/app/workers/backtest.py
e520245f7e8b8a2cf34af68aa5a88cc66219e5743ff68f1f4c475d8a51493a0c  backend/app/workers/celery_app.py
fc05c617c4f2ee81cac42da7f61d0d101345cb100eea32cfb84621e6bb552110  backend/app/workers/discovery.py
00515c566771560e86dc9cb2e61fc48ac070a50d3c5e8e425a99a22ad34e059b  backend/app/workers/ingest.py
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855  backend/app/workers/__init__.py
4b370236915042fc898d23877e5b360e0aec71517125ff5188867f3aefc3839f  backend/app/workers/peer_groups.py
c11180b688559acaa14b249b5052a2a60a08cb578217eda5b19d4cb5e15b9841  backend/app/workers/recompute.py
7b527f86fd6e9e1441d4677294b2b9d4d3e669e6ebae697535b4c051c106c467  backend/app/workers/token_cleanup.py
9839e8486df38e1ed77f4107eac37989e7d4a2f311d2f55cd00d5278ee3a093c  backend/Dockerfile
62ec6bbe2cbb84adbb5e7277c3b6f522f59dadbfc04ae15cfcd3fce200ded674  backend/Dockerfile.backup-20260909-093051
b9a00a5896bc8759c3320ab1fee17d1c7394c4fc5ac8ca3ae9637e3b0100bd69  backend/Dockerfile.worker
b3d2a2e1fa1ac8b1c75c058e57a812770d81553cd28bdd7b1f92df433cd72839  backend/pytest.ini
63eb7c047710e3db9716a112ff144113a2195ac3b20ea857ff487d16e0f7090b  backend/requirements-dev.txt
9b20f20b7f1db6a37801002082c178f21196a2f670cb98c7637a584c9b33a4e5  backend/requirements.txt
a2d5f119f0e54319bfebcf6cc3b071bbd7d2d1b8b58796ce40802d046c3127d8  backend/scripts/demo_pipeline_smoke_test.py
e8bf4e7a44d70f4c34ce1306032020a8fca156c8d0984472c03d1024d522c08d  backend/scripts/seed_demo.py
bc1cd7c92ad02b9cdd6c66e52b485f7ed3a7aefeca81a8ff2a118369d27706b7  backend/tests/fixtures/company_profiles.py
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855  backend/tests/fixtures/__init__.py
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855  backend/tests/__init__.py
80afc6483c5099b96ae064e01f787517d686d0c3c803e83ee783ec440381ec8a  backend/tests/test_accounting_quality.py
2a6da4a3edc1c00cddfc92e78d3d3579de8896e43ba169de03f9d1bdd37bbc3c  backend/tests/test_alerts.py
9311cb47690d884882964308173ebb18659d03ef95e2aa2399a9e4c15a11bc2a  backend/tests/test_api_aggregation.py
a454dc3403d1d18b5a55daf1c925c2d4d973ea96d5ecba857dcd87fa46ba5c14  backend/tests/test_api_contract.py
f0a76a6f800b0b0dc539260a1d18aaf8fb99c08adc7829a72cda790e95f39145  backend/tests/test_backtesting.py
5932499f2b66611ea96d5309dc72f33849840939613ac59ee65ef996948e5d56  backend/tests/test_config.py
ae14b105d69589928934a5f0ef9231fceea39b1db47cd4b8dc7fca67b5ea1c58  backend/tests/test_cross_metric.py
ece7c021f08a823980562eb415834410ec08417091dccb878bc22599179f5ee0  backend/tests/test_currency.py
621f3533d87da87518a289759a0eea4660e5e4b47f3cfb4943739497553b5a28  backend/tests/test_demo_adapter.py
bd60de9b6d97e1c7f2548b49b4451c0a24b70d7cbf181745fd2eeec1294c9259  backend/tests/test_discovery.py
599ae863a77a02342a3311bc5630a926dfe827edf542ba2fb96d736e53011120  backend/tests/test_emerging.py
2d511be51a7404648c7cfd11d59d7552a749962f9ca9952f3ab0afee09af11fe  backend/tests/test_eodhd_adapter.py
3e59f341b34d5f85a3fee7e1513431e78d6a516b7cec1e0ae19240d48eac339d  backend/tests/test_estimates.py
f9efdc557649faa9db20a181032a0242f6485a7f795ee35dc86c00d1016083be  backend/tests/test_fixture_validation.py
ae99bff20a2aaf9a6bb35d7ee34a0e76e0436936ffbb17ab59f18a201f1462e3  backend/tests/test_fmp_adapter.py
b4acd34ee4cb87f358350caeb3e84560810b2d5c8c6c2d459d2ebe22ecf3c1cf  backend/tests/test_identity.py
822dc3dab01ceff2ba4bbb094fe38a90a950fe2df3aaad213ec6526a1e3abf07  backend/tests/test_macro_context.py
6cac0a80700291dbd9095533b48a1990a78cc62bf4b1968cdc1fd26975b5c27f  backend/tests/test_metrics_known_cases.py
9c77b9d956f6fa85e25f83495407ae3264909620060ab57f33198a00725b7aee  backend/tests/test_model_version.py
59e9ce7f118a49dac2d73bce46c67a10a6f31da4e3750e95eae0f415f861073a  backend/tests/test_multibagger.py
ccb68da04fa172413cdb7817236b172e391514fa54e31a3c885a52c892a91441  backend/tests/test_peer_groups.py
6357de7c7f45c176bb268cdc1b19cc6ea4eaa5dc7817ed373179a0c45ef1e08d  backend/tests/test_pillar_wiring.py
546fefe3a297f249129954ec816cee1fae3472c599cf7b8cfdaa72d861ed00f7  backend/tests/test_point_in_time.py
0dd74d391feda2eb9705b09fedcc3c81894c18e092d723b285721a29af1215e6  backend/tests/test_provider_resilience.py
bb2c7971843e7095a4d57e0185f29d7b1297e92747b953ce22b805093d5d7904  backend/tests/test_recommendation.py
d4668a578a0aa99448e4fe03f8c4332bbeee6cefa86c44a0ae9b3811f3887661  backend/tests/test_replay.py
6f68a9b4f3b7a4263809dc3619897b08fee7d80da8cffa6f9b83c536a36d436f  backend/tests/test_scoring.py
633ebd0e36e57db4f08e4749b0c5cd326defe7bb7dbc861ff53246d3bb5f883e  backend/tests/test_seed_reference_data.py
a67d3b3109ad6d591968d58916dc252d09d9cfaccce4a58080cf195e92a791d4  backend/tests/test_ttm.py
511d8d96ac3911fa49c80fffaaea8da9fa965e80e7ebdc094fc107a259d16b22  backend/tests/test_validation.py
afae257a0416629972f2550a03e24f225099ae2b576a58fc5c63e43da59fd0d7  backend/tests/test_valuation.py
9a4c38f446f585a80537beed9ac416219e62c53392ecb096503207a3ac5ee2fc  frontend/app/company/[ticker]/page.tsx
cadfa26c97faa5b0351184560922f6f88b6f1c26aa3e028f42d1ff57546aacc2  frontend/app/error.tsx
07970c076b8c1d7a31b175a69cf276e008e33f9843586e73aa0e3029adfd7547  frontend/app/globals.css
68809a11140c4f9d0faffe47039c5878fac80d17b7cd5e5e349f10f1f0c6fc24  frontend/app/layout.tsx
0c744724f4b690d6e40d7146bc6d059bf41917b044ad17633ed0387863545ad6  frontend/app/loading.tsx
1cfbbc38b71d80a6bc2fde875c37e8eeabb39c3b897d85c0b7b83cfeb97a6f7d  frontend/app/page.tsx
25ff255105e5eb0d640ac6f9364b5c2f79d8ea7d74c130fea5231ebfbef9a3d9  frontend/app/rankings/page.tsx
dc5b91a3fbae42d6f83554d1cdd4f2a9e09b0c25d6feaeb568d24071c8ce6ba8  frontend/app/screener/page.tsx
c7c4a8da52d4916f5639f98f8e321b06ddfbb832b8817fd933f41f8f7161f4c5  frontend/app/watchlist/page.tsx
dfafd650f06baeef00381068e0313ecc83ddbdd5d746b08aca491e9959d30aee  frontend/components/Nav.tsx
ca87668a64d34bc0e48bb987a791e08a893930065e7cdcba0a9db6fb07574d2c  frontend/components/RecommendationBadge.tsx
62c84c25eb9c368938101e1d4d62c0b201bbd56997e7e681a4573739866cc5b2  frontend/components/ScoreBar.tsx
a4f8baa4d366d7b77c4e72e50ac3a2363b9c1dfe4c64e2df5168852b7276a054  frontend/Dockerfile
3f128f7bcc9e494ed59572c5ba212a714724bbb2427cd03f7d28b4db632b2a66  frontend/lib/api.ts
df979de5d6a202711dc7e50d4a7a91db3a4fea64c27b142aeb82038b09346035  frontend/next.config.js
b915761cb099801011b19cc34631067235c3465fa066bfd994a6bd825ce87ec8  frontend/package.json
01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b  frontend/public/.gitkeep
a86f05f4721548acbcb4f39c3df2d69c27011b7e904f9ff83dbd5a5b981b6222  frontend/tsconfig.json
