Click here to Skip to main content
15,867,568 members
Articles / Desktop Programming / WPF

Inflatimeter™ Inflation Calculator

Rate me:
Please Sign up or sign in to vote.
4.60/5 (9 votes)
17 Feb 2015CPOL13 min read 29.8K   9   7
Win8/Tablet PC app allows inflation calculation on individual products and basket of goods (AIC-2013)

Announcement

INFLATIMETER™-2014 has been released (see demo screenshots below):

Image 1

Borderless Window with upsized controls (adapted for touch-screen); Dark background

Image 2

Light background with on-screen "virtual" keyboard

Introduction

Intel® App Innovation Contest 2013, Round 1 winning submission advanced to Round 2 (status-Submitted)

  • Target Platform: Tablet PC equipped with Windows 8 desktop edition
  • Contest Category: Finance

Image 3

Fig. D1: Inflatimeter™ app running on Lenovo Tablet 2, sample screenshot. 

 


Overview of the Application and main Contest Metrics

Inflation Calculator Inflatimeter™ for Windows (hereinafter - Application) allows to calculate annualized inflation index (either straight-line approximation or compound) and to perform statistical analysis of price dynamics of either individual consumer products/services, or their aggregated values ('baskets").

Identification of the problem and opportunity

Price dynamics and corresponding Inflation Indices represent fundamental economic indicators. This financial tool allows the unique extended "DIY inflation analysis", pertinent to individuals or social groups, providing more representative (personified and location focused) stats than an official CPI and other inflation metrics, which excludes food prices, medicine, energy and other bare necessities.

Technical merits and broader impact of the application

Application extends the functionality of existing online inflation calculator [3] by adding feature-rich UI that utilizes the latest technological breakthrough pertinent to the target hardware platform/OS (in particular, Lenovo® ThinkPad Tablet running Windows 8), selected for production pilot.  The application is also backward compatible with Windows 7/Vista and, to certain extent, with Windows XP.  The application may be used on individual and institutional levels serving both practical and didactic aspects.

Intended uses for the Application 

Proposed Inflation Calculator is intended can be used by individuals, social groups, businesses, educational and research institutions as per the use cases partially identified below :

Table 1: Potential Users and most common use cases
User Usage
Individual Inflation calculation on selected basket of consumer products
Businesses Price dynamics and Inflation calculation on selected products
Research Economic Research of inflation impact on various social groups
Edu Platform for basics of Economic education
Networks Social networks and online communities producing collaborative financial content
 

Application Development approach

From the technical perspective development approach adheres to the cornerstone principle of separation of programmatic concerns, namely: all layout and aesthetic enhancement to be achieved via WPF/XAML; data content to be stored in reference (read-only) and User databases; the algorithmic part will be implemented as managed code compiled into .NET assembly. Proposed  application implements speech-enhanced Multi-Modal User Interface that allows standard PC keyboard/mouse and touch-screen operations with digitizer pen support. From PM prospective, development should utilize existing computation engine, re-programmed in C# and integrated into Windows 8 application. Tablet-adapted UI and Data layer will be developed "from the scratch" following the standard FLCD methodology.

Coding Languages and Frameworks: .NET, WPF, C#

Application's managed code base has been developed using Microsoft .NET/WPF and C# backed by SQL Server Compact Edition  (SQL CE).

About Author 

Dr. Alexander Bell is a Microsoft technology veteran with development experience span from DOS to Win 8. He actively participates in digital life of online development communities (published 21 article and 36 tips on Codeproject). He is personally credited for the completion of 10+ Enterprise level projects, providing consulting services to major financial institution in NYC, including JPMorgan Chase, Societe Generale, etc. Dr. Bell is a pioneer and enthusiast of speech-enhanced Windows application software, and novel MMUI concept. 

Contest Metrics (Round 1  & Round2)

Innovations and User Experience
  • User Experience (UX) improvement via efficient  Multi-Modal User Interface (MMUI) utilizing touch-screen features of Tablet PC and .NET speech enhancement
  • Single-window solution providing intuitive navigation between functional areas
  • Aesthetic improvement achieved via novel border-less WPF windows implementation
  • Innovative app window control box with upsized controls adapted for touch-screen operation
  • Single-click or single-tap window and font resizing feature
  • Completely autonomous mobile operation allows financial/tax professionals to better utilize their commuting time (in particular, using public transportation without Internet access)
Usage of Tablet PC key technical enabling vectors
  • Universal Multi-Modal User Interface MMUI) adapted for PC keyboard/mouse, touch-screen operations with various HID support (detachable keyboard/mouse, stylus or digitizer pen)
  • Context-sensitive error, instructional and notification Voice messaging via TTS
  • High data density and feature aggregation in a single Window, utilizing Tablet PC high-resolution display 
Viability/Significance of the Application for the Finance category
  • Price dynamics and corresponding Inflation Index represent fundamental economic indicators. Proposed application allows "actual" Inflation calculation pertinent to the "basket of products/services" reflecting the reality of consumer consumption by individuals and social groups as well. It's extremely important tool of economic estimates, analysis and planning on both individual and institutional levels. In addition to this practical aspect, proposed application software can serve a didactic purpose used as a platform for the basic economic education.
Descriptive clarity, scope and coverage

Proposed application is based upon several innovative Submission Ideas and practical know-hows, including those already implemented by author and discussed in his recent publication, plus newly introduced ideas and corresponding programmatic tasks/challenges/solutions discussed later in this submission article (see sections Background and Points of Interest).

Background

Inflation: a bit of theory  

Inflation is "money losing its purchasing power". Such simple definition, though not quite academically precise, reflects on the qualitative level the actual feeling of the average "Joe and Joanne" as they going to the market place and watching the prices of the same products/services moving upward. The reverse process of prices declining over time is called, correspondingly, a deflation.

Inflation Index, or the Annual Inflation Rate provides the quantitative representation of that intuitive “market perceptions”, or better say, it should be doing that. In practice, things are not quite that straightforward. For example, the official inflation computational models and related Consumer Price Index (CPI), which has been under reasonable criticism in national blogosphere for its rather questionable representativeness, exclude the prices of energy, housing, food and some other consumer goods, which are certainly important for majority of fellow Americans, who en mass eat, drink, travel, take shower, warm or cool their places, turn on the lights in the evening hours, watch TV and browsing Internet, and, correspondingly, pay their numerous bills.

The price dynamics is not uniformly distributed over different product/service categories, so the different social groups feel the inflation quite differently. It’s conceptually hard to construct the “one size fits all” basket of goods  adequately reflecting the perception and consumer habits of various social groups, but it’s quite obvious that such virtual basket of goods/services should include the items of bare necessity for the US population majority. Therefore, it’s highly desirable to have some computational tool, capable of inflation index computation on any arbitrary selected goods/services over the specified period of time.

CPI Inflation Calculator by U.S. Bureau of Labor Statistics

In reference to the CPI [1] and inflation calculator provided online by U.S. Bureau of Labor Statistics [2] (the quote): “…The CPI inflation calculator uses the average Consumer Price Index for a given calendar year. This data represents changes in prices of all goods and services purchased for consumption by urban households. This index value has been calculated every year since 1913. For the current year, the latest monthly index value is used.” Performing sample calculations on $1 in Y2000, the result returned (“has the same buying power as”) is $1.27 for the year 2010.

Online Inflation Index Calculator [3], developed by the Author allows calculation of the annualized inflation rate (compound or straight line approximation) on any single product/service of interest over specified period of time. Sample Inflation numbers for the decade 2000-2010 (New York City and Nationwide) are listed below :

Existing web application 

The simplified version of proposed calculator was implemented as web application [3]

Image 4

Fig.1: Online Inflation Calculator, sample snapshot

Annualized Compound Inflation Index: ACII

Computational formula for the Annualized Inflation Index (compound) introduced by the Author and implemented in the Calculator is shown below:

ACII= (Px2 / Px1(1/(y2-y1) -1 

where Px1 and Px2  stand for staring/ending price corresponding to starting/ending years y1 and y2.

In addition to this, a straight line approximation sometimes is useful as a simplified estimate, complementing more rigorous AIdx calculation. Sample value of AIdx calculated on various consumer products within 2000-2010 period are listed below:

Coke® Inflation Index calculated for the first decade of XXI century is a good practical example. Assuming that the same big bottle of Coke, regularly priced in the year 2000 about $0.99  is became $1.99 in the Y2010  the annualized inflation rate (compound calculation, see Fig.1), or Inflation Index is: 7.23%

Gas Inflation Index in NYC for the same period is about: 6.94%  ($1.61 average cost per gallon of regular gasoline in Y2000 and $3.15 by the end of Y2010)

Doritos (potato chips) Inflation Index calculated in NYC for the same period is about: 7.18% (small pack of Nacho Cheese Doritos, regularly priced $0.25 in the year 2000  jumped to $0.50 in the Y2010)

NY subway fare Inflation Index. The fare for a single NY subway ride jumped from $1.5 in the year 2000 to $2.25 in Y2010, corresponding to inflation Index of: 4.14%

Post Stamp Inflation Index calculation based on USPS rates for the letters less than 1 oz. sent by First-Class Mail which was $0.33 in 2000 and $0.44 in 2010 gives us a number approx: 2.92%

Oil (WTI) Inflation Index estimated as 13.59 % (corresponding to $25.56 in Y2000 and $91.38 in Y2010).

PC RAM (memory) Inflation Index calculated on the lowest Price ($/MB) for the high-quality products is a negative value of approx. -28.34% (corresponding to $.85/MB in Y2000 and $0.03/MB in Y2010 for selected type). This is actually a Deflation. As we can see, the price dynamics of memory chips vs. potato chips has been very different, really good for our “Intel Insides” cyber-companions.

One of the most important conclusion is that the "actual" inflation numbers on many consumer products are very different from that "aggregated" official calculations, indicating the 2000-2010 price dynamics as a mere jump from $1.00 to $1.27.

Precious metals performance and Dow-to-Gold Ratio

Comparative analysis of market Indices vs. key precious metals performance is visualized in the following Table (dynamically generated using jQuery) and Chart (using HTML5/Canvas-based proprietary charting technology):

Image 5

Fig.2: Dow-to-Gold Ratio (2000-2010), sample screenshot

Image 6

Fig.3: Major Market Indices and precious metals performance (2000-2010), screenshot 

Proposed Solution (Tablet version)

Proposed solution will be implemented as a standalone Windows 8 app running autonomously; it does not require Internet connection for its core operations and stores User data locally, thus properly addressing the privacy security/concern. High-mobility of proposed application, which can run autonomously on Tablet PC provides significant competitive advantages over its web-based counterpart. Extended functionality of proposed solution is partially listed below:

  • Custom Database reflecting price dynamics of User-selected products and services
  • Unique computation and data-visualization engine pertinent to particular financial domain
Novel UI

As mentioned above, for the purpose of UX improvement proposed app will implement novel MMUI utilizing novel features of Tablet PCs. The core design principle of MMUI are listed below:

  • Compatibility with standardized Windows desktop-type GUI operations via mouse/keyboard
  • Multi-touch UI extension pertinent to Tablet PC utilizing most common gestures, namely:Tap, Press and Hold, Swipe, Turn and Slide, corresponding to primary action, learning/instructional mode, navigation between screens and functional areas.
  • Voice feedback to User implementing error, instructional and notification messaging via TTS
  • Voice commands via ASR (optional, depends on the availability of microphone input)
  • Orientation sensor to switch between portrait/landscape
  • Digitizer pen (optional) functionality, corresponding to standard gestures, plus data input features
  • Automated brightness/contrast adjustment (optional, depends on availability of the ALS)

Proposed UX enhancements in conjunction with unique set of features will result in a highly-efficient financial productivity tool , rather competitive against other applications in the same category. It has good potential market perspective. 

External HID

Proposed Tablet app could benefit from external input devices, in particular: detachable keypad and digital pen. Additional bar-code scanner may significantly simplify data entry in User database.

Business Intelligence Layer

Inflation index computation engine, currently implemented in the online version [3] as HTML5 application, will be converted to C# managed code in proposed Tablet/Win 8 application. 

Data Layer

Data Layer is comprised of Reference Database and User Database. The first one contains price dynamics on certain products and services. User Database allow entering price dynamics on arbitrary selected goods and services.

Using the code

NOTE: This section will be continuously updated as project progressing.

Code snippet shown in Listing 1 used to customize "numeric" WPF TextBox to accept only the characters pertinent to the content (dollar amount in a context of proposed app). It works as a pre-emptive input validation triggered on every keystroke by User. Combined with the second validation code block triggered on TextBox.LostFocus event (not shown), it provides reliable and User-friendly input validation mechanism.

Listing 1. WPF Numeric TextBox

C
#region Numeric TextBox (Dollar Amount field)
TextBoxNumeric.PreviewKeyDown += (s, e) =>
    {
        // cast e.Key to int
        int _key = (int)e.Key;

        // allow the following key
        if (e.Key == Key.Back ||
            e.Key == Key.Delete ||
            e.Key == Key.Enter ||
            e.Key == Key.Return ||
            e.Key == Key.Tab ||
            e.Key == Key.OemPeriod ||
            e.Key == Key.OemComma ||
            e.Key == Key.Decimal ||
            e.Key == Key.Left ||
            e.Key == Key.Right ||
            (_key <= 43 && _key >= 34) ||
            (_key <= 84 && _key >= 73)) return;
        else e.Handled = true;
    };
#endregion

 

Points of Interest 

Programmatic Challenges

There are several potential programmatic challenges corresponding to the tasks partially listed below:

  • Borderless WPF windows with custom control box (see the sample screenshot in Fig. 3)
  • Intuitive/efficient voice-messaging (error messages, notification/instructions via TTS) [4-8]

Borderless WPF Windows 

Sample screenshot of borderless WPF Window, implemented in Inflatimeter application is shown below in Fig 3. Borderless Windows have better aesthetic appeal and increase the overall UX, though they represent certain programmatic challenge. The "borderless effect" could be easily achieved via XAML, but it requires some coding to make the window moveable/resizeable: notice the custom window control box having additional resizing button, adding single-click discrete resizing functionality. 

 

Image 7

Fig.3: Inflatimeter Demo sample screenshot 

Speech-Enhancement

The author has been working on speech-enhanced applications for more than a decade and published multiple articles covering two cornerstone technologies, namely: TTS and ASR [4-8].  Speech-enhancement is planned for proposed application via extensive set of context-sensitive TTS voice messages (error, instructional and notification messages).  

History  

  • 2002: Author developed a series of speech-enhanced Windows apps
  • 2009: Compound Interest Calculator has been developed as HTML5/CSS3 web app
  • 2010 Online Inflation Calculator has been developed as HTML5/CSS3 web app
  • Aug 14, 2013: article submitted to the AIC-2013 : Tablet PC/Finance
  • Oct 20, 2013: Final application package submitted to AIC-2013 Round 2
  • Full production version of INFLATIMETER™-2014 has been released om 09/14/2014

References 

  1. Consumer Price Index (BLS) 
  2. CPI Inflation Calculator (BLS)
  3. Alexander Bell, Online Inflation Calculator (HTML5)
  4. INFLATIMETER™-2015 for Windows free download

Acronyms and Abbreviations

  • ALS Ambient Light Sensor
  • ASR Automatic Speech Recognition
  • BI Business Intelligence
  • BLS Bureau of Labor Statistics
  • CPA Certified Public Accountant
  • COTS Commercial Off-The-Shelf
  • DIY Do It Yourself
  • DJIA Dow Jones Industrial Average (Market Index)
  • Dow Dow Jones Index (typically refers to DJIA)
  • FLCD Full Life Cycle Development
  • I/O Input/Output operations 
  • MMUI Multi-Modal User Interface (multi-touch, speech-enhanced)
  • NASDAQ National Association of Securities Dealers (Market Index)
  • NYS New York State
  • NYC New York City
  • PMO Project Management Office
  • SQL CE SQL Compact Edition
  • SPA Single Page Application
  • SP500 Standard & Poor's 500 (Market Index)
  • TTS Text-to-Speech  
  • UI User Interface
  • UX User eXperience
  • VI Virtual Instrumentation
  • WPF Windows Presentation Foundation
  • XAML eXtensible Application Markup Language

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Engineer
United States United States
Dr. Alexander Bell (aka DrABell), a seasoned full-stack Software (Win/Web/Mobile) and Data Engineer holds PhD in Electrical and Computer Engineering, authored 37 inventions and published 100+ technical articles and developed multiple award-winning apps (App Innovation Contests AIC 2012/2013 submissions) Alexander is currently focused on Microsoft Azure Cloud and .NET 6/8 development projects.

  1. HTML5/CSS3 graphic enhancement: buttons, inputs
  2. HTML5 Tables Formatting: Alternate Rows, Color Gradients, Shadows
  3. Azure web app: Engineering Calculator VOLTMATTER
  4. Azure: NYC real-time bus tracking app
  5. Quiz Engine powered by Azure cloud
  6. 'enRoute': Real-time NY City Bus Tracking Web App
  7. Advanced CSS3 Styling of HTML5 SELECT Element
  8. Aggregate Product function extends SQL
  9. YouTube™ API for ASP.NET

Comments and Discussions

 
Questionsource code Pin
kiquenet.com31-Oct-15 8:10
professionalkiquenet.com31-Oct-15 8:10 
AnswerRe: source code Pin
DrABELL1-Nov-15 3:29
DrABELL1-Nov-15 3:29 
GeneralRe: source code Pin
kiquenet.com2-Nov-15 10:07
professionalkiquenet.com2-Nov-15 10:07 
Generalthanks Pin
qholamhoseyni22-Oct-13 8:42
qholamhoseyni22-Oct-13 8:42 
GeneralRe: thanks Pin
DrABELL1-Nov-15 3:30
DrABELL1-Nov-15 3:30 
AdminKeep em' coming! Pin
Kevin Priddle16-Aug-13 15:46
professionalKevin Priddle16-Aug-13 15:46 
GeneralRe: Keep em' coming! Pin
DrABELL16-Aug-13 16:34
DrABELL16-Aug-13 16:34 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.