Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 8 additions & 1 deletion HumanCapital/ICompensationEstimationService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,19 @@ namespace MoneyMirror.HumanCapital;
/// before #24 (real wage-data retrieval + deterministic aggregation) is
/// built; see #148 for the swap-out plan.
/// </summary>
/// <remarks>
/// #266: #24's real, BLS-grounded replacement already exists and is
/// registered in DI - see <see cref="IMarketPotentialPipeline"/> - but
/// nothing in the UI calls it yet. See that type's remarks for why the
/// swap hasn't happened.
/// </remarks>
public interface ICompensationEstimationService
{
/// <exception cref="CompensationEstimationException">
/// The LLM call failed, or its response couldn't be parsed.
/// </exception>
Task<CompensationEstimate> EstimateAsync(
IReadOnlyList<OccupationMatch> occupations,
CancellationToken cancellationToken = default);
CancellationToken cancellationToken = default
);
}
13 changes: 13 additions & 0 deletions HumanCapital/IMarketPotentialPipeline.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,19 @@ namespace MoneyMirror.HumanCapital;
/// prose (#99). No AI participates in choosing the numbers - only in
/// describing them afterward.
/// </summary>
/// <remarks>
/// #266: not currently called from any page - <c>/market-potential</c> and
/// the Dashboard still use the AI-guess-only <see cref="ICompensationEstimationService"/>
/// (#148), whose UI explicitly labels its output "AI estimate - not based
/// on live wage data". This isn't an oversight: this method needs a BLS
/// series ID per matched occupation, which was meant to come from O*NET
/// occupation data (#93/#94, HC4) - but eBay and O*NET were both dropped
/// from project scope (see #177) before that occupation-to-series mapping
/// was built. Wiring this in requires deciding how to get that mapping
/// without O*NET (a fixed lookup table for common titles? a second LLM
/// call to guess a series ID, no longer "no AI in choosing the number"?)
/// before this pipeline can replace the AI-guess path in the UI.
/// </remarks>
public interface IMarketPotentialPipeline
{
/// <returns>
Expand Down
Loading