Transpose financials tables and expose company KPI metrics

This commit is contained in:
2026-03-01 19:27:06 -05:00
parent b8309c9969
commit 94a962bf8e
3 changed files with 10 additions and 4 deletions

View File

@@ -44,12 +44,13 @@ function filingWithExtraction(): Filing {
} }
describe('filing response redaction', () => { describe('filing response redaction', () => {
it('removes internal extraction fields while preserving public analysis fields', () => { it('removes internal extraction fields while preserving public fields and company metrics', () => {
const redacted = redactInternalFilingAnalysisFields(filingWithExtraction()); const redacted = redactInternalFilingAnalysisFields(filingWithExtraction());
expect(redacted.analysis?.provider).toBe('zhipu'); expect(redacted.analysis?.provider).toBe('zhipu');
expect(redacted.analysis?.model).toBe('glm-4.7-flashx'); expect(redacted.analysis?.model).toBe('glm-4.7-flashx');
expect(redacted.analysis?.text).toBe('Report text'); expect(redacted.analysis?.text).toBe('Report text');
expect(redacted.analysis?.companyMetrics).toEqual(['g']);
expect(redacted.analysis?.extraction).toBeUndefined(); expect(redacted.analysis?.extraction).toBeUndefined();
expect(redacted.analysis?.extractionMeta).toBeUndefined(); expect(redacted.analysis?.extractionMeta).toBeUndefined();
}); });

View File

@@ -5,11 +5,15 @@ export function redactInternalFilingAnalysisFields(filing: Filing): Filing {
return filing; return filing;
} }
const { extraction: _extraction, extractionMeta: _extractionMeta, ...analysis } = filing.analysis; const { extraction, extractionMeta: _extractionMeta, ...analysis } = filing.analysis;
const hasPublicFields = Object.keys(analysis).length > 0; const companyMetrics = (extraction?.companySpecificData ?? []).filter((item) => item.trim().length > 0);
const publicAnalysis = companyMetrics.length > 0
? { ...analysis, companyMetrics }
: analysis;
const hasPublicFields = Object.keys(publicAnalysis).length > 0;
return { return {
...filing, ...filing,
analysis: hasPublicFields ? analysis : null analysis: hasPublicFields ? publicAnalysis : null
}; };
} }

View File

@@ -80,6 +80,7 @@ export type Filing = {
model?: string; model?: string;
text?: string; text?: string;
legacyInsights?: string; legacyInsights?: string;
companyMetrics?: string[];
extraction?: FilingExtraction; extraction?: FilingExtraction;
extractionMeta?: FilingExtractionMeta; extractionMeta?: FilingExtractionMeta;
} | null; } | null;