Taloudelliset ja kvantitatiiviset kehotteet
Tulosanalyysi, riskipisteytys ja SEC-ilmoitusten poimintakehotteet
Taloudelliset ja kvantitatiiviset kehotteet on ilmainen Tekoälyn prompt engineering-oppitunti CoddyKitissä. Tämä on oppitunti 3/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Tekoälyn prompt engineering-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Tekoälyn prompt engineering-kurssilla on yhteensä 4 oppituntia.
Taloudellisten kehotteiden toimintaympäristö
Talouden alan kehotteilla poimitaan jäsenneltyä tietoa jäsentämättömistä asiakirjoista, kuten tulosraporteista, SEC-ilmoituksista ja analyytikkojen muistiinpanoista. Täsmällisyys on tärkeää: väärin luettu liikevaihtoluku tai kasvusuunnan kääntyminen päinvastaiseksi voi aiheuttaa vakavia myöhempiä virheitä.
Tulosraportin poimintakehote
Tulosraportit noudattavat puoliksi vakiintunutta rakennetta. Kohdennettu poimintakehote poimii keskeiset taloudelliset tunnusluvut tarkasti ja käsittelee sekä GAAP- että non-GAAP-muodot.
EARNINGS_EXTRACTION_PROMPT = '''Extract the following financial metrics from the earnings report below.
Return ONLY a JSON object with these exact keys.
If a value is not stated, use null.
Do not calculate or derive values — only extract explicitly stated figures.
Required fields:
- revenue_usd_millions: total net revenue (GAAP)
- revenue_yoy_pct: year-over-year revenue growth percentage
- gross_margin_pct: gross margin percentage (GAAP)
- operating_income_usd_millions: GAAP operating income/loss
- ebitda_usd_millions: Adjusted EBITDA (non-GAAP, if reported)
- net_income_usd_millions: GAAP net income/loss
- eps_diluted: diluted EPS (GAAP)
- eps_adj_diluted: adjusted diluted EPS (non-GAAP, if reported)
- guidance_next_quarter_revenue_low: low end of next quarter revenue guidance
- guidance_next_quarter_revenue_high: high end of next quarter revenue guidance
- fiscal_period: e.g. "Q3 FY2024"
Earnings Report:
{report_text}'''
import anthropic, json
client = anthropic.Anthropic(api_key='YOUR_API_KEY')
def extract_earnings(report_text):
response = client.messages.create(
model='claude-opus-4-5', max_tokens=1000,
messages=[{'role': 'user', 'content':
EARNINGS_EXTRACTION_PROMPT.format(report_text=report_text)}]
)
return json.loads(response.content[0].text)Taloudellisten tunnuslukujen laskentakehote
Kun haluatte mallin laskevan taloudellisia tunnuslukuja, antakaa kaava täsmällisesti. Älkää olettako, että malli tuntee tarkan määritelmän, sillä eri analyytikot käyttävät hieman erilaisia kaavoja.
RATIO_PROMPT = '''Calculate the following financial ratios using the data provided.
Show your work: state the formula, plug in the numbers, and give the result.
Round all ratios to 2 decimal places.
Ratios to calculate:
1. Gross Margin = (Revenue - COGS) / Revenue * 100
2. Operating Margin = Operating Income / Revenue * 100
3. Net Margin = Net Income / Revenue * 100
4. Current Ratio = Current Assets / Current Liabilities
5. Quick Ratio = (Current Assets - Inventory) / Current Liabilities
6. Debt-to-Equity = Total Debt / Total Shareholders Equity
7. Return on Equity (ROE) = Net Income / Average Shareholders Equity * 100
8. EV/EBITDA = Enterprise Value / EBITDA (if EV is provided)
Financial Data:
{financial_data}'''
def calculate_ratios(financial_data):
response = client.messages.create(
model='claude-opus-4-5', max_tokens=2000,
messages=[{'role': 'user', 'content':
RATIO_PROMPT.format(financial_data=financial_data)}]
)
return response.content[0].textVuosi vuodelta -kasvun poiminta
Vuosi vuodelta tapahtuva kasvu voidaan ilmoittaa absoluuttisena muutoksena, prosenttiosuutena tai molempina. Kehotteen on käsiteltävä kaikki tapaukset ja erotettava raportoitu kasvu vakioiduilla valuuttakursseilla lasketusta kasvusta.
YOY_PROMPT = '''From the financial document below, extract year-over-year growth metrics.
For each metric found, provide:
- metric_name: e.g. "Revenue", "Gross Profit", "Operating Income"
- current_period: value and period (e.g. "$4.2B, Q3 2024")
- prior_period: value and period (e.g. "$3.8B, Q3 2023")
- yoy_change_pct: percentage change (positive = growth, negative = decline)
- constant_currency_yoy_pct: if reported, the constant-currency growth rate (else null)
- commentary: any management commentary on drivers of the change
IMPORTANT:
- Do not mix GAAP and non-GAAP figures in the same row.
- Mark each row with gaap: true or false.
- If growth is reported only in narrative form (e.g. "revenue grew 15%"),
still capture it but set current_period and prior_period to null.
Document:
{document_text}'''
def extract_yoy_growth(document_text):
import json
response = client.messages.create(
model='claude-opus-4-5', max_tokens=2000,
messages=[{'role': 'user', 'content':
YOY_PROMPT.format(document_text=document_text)}]
)
return response.content[0].textSEC-asiakirjojen poimintamalli
SEC-asiakirjoissa (10-K, 10-Q) on vakiomuotoiset osio-otsikot. Kohdistakaa poiminta tiettyihin osioihin osiot huomioivilla kehotteilla, jotta konteksti-ikkunan käyttö vähenee ja tarkkuus paranee.
SEC_EXTRACTION_PROMPT = '''You are analyzing a {filing_type} SEC filing.
From {section_name}, extract the following:
{extraction_targets}
Rules:
1. Quote exact figures as stated — do not round or reformat numbers.
2. Note the fiscal year end and reporting currency.
3. If the section uses tables, extract all rows of the table.
4. Flag any restatements: "[RESTATED from prior filing]".
5. Note any forward-looking statements with [FLS] tag.
Filing Section Text:
{section_text}'''
# Section targets by filing type
SECTION_TARGETS = {
'10-K': {
'Item 7 MD&A': 'Revenue breakdown by segment, key cost drivers, liquidity discussion',
'Item 1A Risk Factors': 'Top 5 risks by category (operational, financial, regulatory, competitive)',
'Item 8 Financial Statements': 'Consolidated income statement, balance sheet key line items'
},
'10-Q': {
'Item 1 Financial Statements': 'Revenue, operating income, cash flow from operations',
'Item 2 MD&A': 'Quarter-over-quarter and YoY comparisons'
}
}
def extract_sec_section(filing_type, section_name, section_text):
targets = SEC_EXTRACTION_TARGETS = SECTION_TARGETS[filing_type][section_name]
response = client.messages.create(
model='claude-opus-4-5', max_tokens=3000,
messages=[{'role': 'user', 'content':
SEC_EXTRACTION_PROMPT.format(
filing_type=filing_type, section_name=section_name,
extraction_targets=targets, section_text=section_text
)}]
)
return response.content[0].textRiskitekijöiden tiivistäminen
SEC-asiakirjoissa voi olla yli 50 sivua riskitekijöitä. Riskit luokitteleva ja tärkeysjärjestykseen asettava tiivistämiskehote auttaa analyytikkoja tunnistamaan nopeasti merkittävimmät riskit.
RISK_FACTOR_PROMPT = '''Summarize the risk factors from this SEC filing.
Categories to use:
1. Financial Risks (liquidity, debt, interest rate, FX)
2. Operational Risks (supply chain, technology, key personnel)
3. Regulatory / Legal Risks (compliance, litigation, government action)
4. Market / Competitive Risks (competition, market conditions, pricing)
5. Macroeconomic Risks (recession, inflation, geopolitical)
For each risk:
- Title: 5-8 word summary
- Category: one of the 5 above
- Materiality: HIGH / MEDIUM / LOW (based on language used: "could significantly...",
"may adversely affect...", "could result in material...")
- Summary: 2-3 sentence description
Sort each category by Materiality descending.
Limit to top 3 risks per category (15 total max).
Risk Factors Section:
{risk_factors_text}'''
def summarize_risk_factors(risk_factors_text):
response = client.messages.create(
model='claude-opus-4-5', max_tokens=3000,
messages=[{'role': 'user', 'content':
RISK_FACTOR_PROMPT.format(risk_factors_text=risk_factors_text)}]
)
return response.content[0].textAnalyytikon muistiinpanon luominen
Kun taloudelliset tiedot on poimittu ja analysoitu, luokaa havainnoista yhteenveto analyytikon tyyliä noudattavana muistiona. Kehotteen on määritettävä rakenne ja säilytettävä ammattimaiselle taloustutkimukselle ominainen objektiivinen sävy.
ANALYST_NOTE_PROMPT = '''Write an equity research analyst note for the earnings results below.
STRUCTURE (required sections):
1. Headline: one sentence (include ticker, period, key takeaway, and target price if updated)
2. Investment Thesis: 2-3 sentences on the core bull/bear case
3. Earnings Summary: revenue, gross margin, EPS vs consensus estimates
4. Key Positives: 3 bullet points
5. Key Risks/Concerns: 3 bullet points
6. Guidance Commentary: management outlook, consensus vs guidance delta
7. Valuation: brief note on current multiple vs historical and peers
8. Recommendation: OUTPERFORM / MARKET PERFORM / UNDERPERFORM with 12-month target
TONE: Professional, data-driven, third person. Attribute claims to the company
("Management guided...", "The company reported...").
Do not use vague language — state numbers.
DISCLAIMER: This is AI-generated analysis for informational purposes only.
It does not constitute investment advice. Past performance is not indicative
of future results.
Earnings Data:
{earnings_data}'''Taloudellisten vastuuvapauslausekkeiden mallit
Oikeudellisten ja lääketieteellisten työkalujen tavoin taloudelliset tekoälytyökalut edellyttävät pakollisia vastuuvapauslausekkeita. Lisätkää ne sovelluskerroksessa, jotta ne eivät koskaan jää pois.
FINANCIAL_DISCLAIMER = (
'\n\n---\n'
'DISCLAIMER: This content is generated by an AI system for informational '
'and educational purposes only. It does not constitute investment advice, '
'a solicitation to buy or sell any security, or a recommendation to invest. '
'Financial data extracted by AI may contain errors — always verify against '
'primary source filings. Past performance does not guarantee future results. '
'Consult a licensed financial advisor before making investment decisions.'
)
def get_financial_analysis(prompt):
response = client.messages.create(
model='claude-opus-4-5', max_tokens=2000,
messages=[{'role': 'user', 'content': prompt}]
)
raw = response.content[0].text
return raw + FINANCIAL_DISCLAIMER
# Always use get_financial_analysis() rather than calling the API directly
# to ensure disclaimer is never accidentally omittedGAAP- ja non-GAAP-lukujen erottelu
Yksi taloustietojen poiminnan yleisimmistä virheistä on GAAP- ja non-GAAP-lukujen sekoittaminen. Kehotteissa on vaadittava nimenomaisesti mallia merkitsemään jokainen luku ja ilmoittamaan poikkeamat.
GAAP_PROMPT = '''Extract all income statement figures from the text below.
For every number:
- Label it as GAAP or Non-GAAP (Adjusted/Pro Forma)
- If the company reports both, show both on separate rows
- Never combine GAAP and Non-GAAP in a single calculation
Common non-GAAP labels to watch for:
"Adjusted", "Non-GAAP", "Pro Forma", "Normalized", "Underlying",
"Core", "Recurring", "Organic" (for revenue)
Output as a table:
| Metric | GAAP Value | Non-GAAP Value | Period |
|--------|------------|----------------|--------|
Also note in a separate section any reconciliation items between GAAP and Non-GAAP:
- Stock-based compensation
- Amortization of acquired intangibles
- Restructuring charges
- Any other adjustments
Document:
{document_text}'''
print('Always verify GAAP/Non-GAAP labels against the company\'s own reconciliation tables.')Usean ajanjakson trendianalyysi
Yhden ajanjakson poiminta antaa tilannekuvan. Trendianalyysikehote vertaa tunnuslukuja useiden ajanjaksojen välillä ja tuo esiin kehityssuunnan sekä kiihtymisen ja hidastumisen mallit.
TREND_PROMPT = '''Analyze the financial trend for {company_name} using the multi-period data below.
1. Create a summary table with these columns:
| Period | Revenue | Rev Growth YoY | Gross Margin | Op Margin | Net Margin |
2. Identify trends:
- Is revenue growth accelerating, decelerating, or stable?
- Margin expansion or compression trend?
- Any notable inflection points (period where trend changed direction)?
3. Key observations (5 bullet points max):
- Focus on directional changes, not just absolute numbers
- Note any seasonality patterns if visible in quarterly data
4. Risks in the trend:
- Flag any deterioration that management has not addressed
- Note if guidance implies trend continuation or reversal
Data ({num_periods} periods):
{multi_period_data}'''
def analyze_trend(company_name, multi_period_data, num_periods):
response = client.messages.create(
model='claude-opus-4-5', max_tokens=2000,
messages=[{'role': 'user', 'content':
TREND_PROMPT.format(
company_name=company_name,
multi_period_data=multi_period_data,
num_periods=num_periods
)}]
)
return response.content[0].textValidointi: poimittujen lukujen ristiintarkistus
Taloustietojen poimintavirheet ovat vaarallisia. Rakentakaa validointivaihe, joka tarkistaa poimitut luvut ristiin kirjanpidollisten yhtälöiden avulla (esimerkiksi bruttovoitto = liikevaihto - COGS) tunnistaakseen hallusinaatiot tai poimintavirheet.
def validate_financials(extracted):
errors = []
# Check revenue consistency
if extracted.get('revenue_usd_millions') and extracted.get('cogs_usd_millions'):
calc_gp = extracted['revenue_usd_millions'] - extracted['cogs_usd_millions']
stated_gp = extracted.get('gross_profit_usd_millions')
if stated_gp and abs(calc_gp - stated_gp) > 1: # $1M tolerance
errors.append(
f'Gross profit mismatch: calculated {calc_gp:.1f}M '
f'vs stated {stated_gp:.1f}M'
)
# Check gross margin consistency
if extracted.get('revenue_usd_millions') and extracted.get('gross_profit_usd_millions'):
calc_gm = (extracted['gross_profit_usd_millions'] /
extracted['revenue_usd_millions']) * 100
stated_gm = extracted.get('gross_margin_pct')
if stated_gm and abs(calc_gm - stated_gm) > 0.5: # 0.5 pp tolerance
errors.append(
f'Gross margin mismatch: calculated {calc_gm:.1f}% '
f'vs stated {stated_gm:.1f}%'
)
return errors
# Always run validation after extraction
errors = validate_financials(extracted_data)
if errors:
print('Validation errors — manually verify:', errors)
else:
print('Validation passed')Pikatarkistus
Kun poimitte taloudellisia tunnuslukuja tulosraportista, malli ilmoittaa bruttomarginaaliksi 45 %, mutta liikevaihto ja COGS osoittavat bruttomarginaaliksi 51 %. Mitä teidän pitäisi tehdä?
Taloudellisten kehotteiden yhteenveto
Taloudellisten ja määrällisten kehotteiden käytössä tarvitaan täsmällisyyttä, merkintöjä ja validointia:
- Poimintakehotteet: määrittäkää kenttien tarkat nimet ja palauttakaa JSON-tiedot koneellista käsittelyä varten
- Kaava täsmällisesti: antakaa tunnuslukujen laskemista varten aina tarkka kaava
- GAAP ja non-GAAP: merkitkää jokainen luku – älkää koskaan sekoittako niitä laskelmissa
- SEC-osiot: kohdistakaa poiminta tiettyihin Item-osioihin melun vähentämiseksi
- Validointi: tarkistakaa tiedot ristiin kirjanpidollisten yhtälöiden avulla poimintavirheiden havaitsemiseksi
- Vastuuvapauslausekkeet: lisätkää sijoittamista koskeva vastuuvapauslauseke aina sovelluskerroksessa
Opi Tekoälyn prompt engineering tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 53
- Oppitunnit
- 199
Usein kysytyt kysymykset
Onko oppitunti ”Taloudelliset ja kvantitatiiviset kehotteet” ilmainen?
Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Tekoälyn prompt engineering-oppimispolun 3 oppituntia, myös oppitunnin “Taloudelliset ja kvantitatiiviset kehotteet”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Tekoälyn prompt engineering-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Taloudelliset ja kvantitatiiviset kehotteet”?
Tulosanalyysi, riskipisteytys ja SEC-ilmoitusten poimintakehotteet Harjoittelet Tekoälyn prompt engineering-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Tekoälyn prompt engineering-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Tekoälyn prompt engineering-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/4.
Kuinka kauan ”Taloudelliset ja kvantitatiiviset kehotteet”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Tekoälyn prompt engineering-oppitunnilla?
Kyllä. Jokainen Tekoälyn prompt engineering-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Oikeudellisen alan kehotemallit
- Lääketieteelliset ja kliiniset kehotteet
- Taloudelliset ja kvantitatiiviset kehotteet
- Toimialasanaston ja ontologian injektio